<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:10px;"><div></div>
            <div>Hi Jani,</div><div><br></div><div>I was able to update my kernel to 4.6 which has the DRM_DP_AUX_CHARDEV in the <span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;">Kconfig file <span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;">linux-4.6\drivers\gpu\drm. Though I also add <span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;">DRM_DP_AUX_CHARDEV=y in <span><span style="color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"> kernel config. When invoke uname -r, I could see that the kernel is now 4.6.</span></span></span></span></span></span></span></span></div><div><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;"><span><span style="color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"><br></span></span></span></span></span></span></span></span></div><div><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;"><span><span style="color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;">How can I verify the DRM_DP_AUX_CHARDEV takes effect or got configure it correctly?</span></span></span></span></span></span></span></span></div><div><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;"><span><span style="color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"><br></span></span></span></span></span></span></span></span></div><div>It still unclear to me how to follow what you mean by using DRM DP AUX interface and getting /dev/drm_dp_auxN node(s) that allows me to read and write arbitrary DPCD offsets. </div><div><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;"><br></span></span></div><div><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;">Please have comments and advice.</span></span></div><div><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;"><br></span></span></div><div><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;">Regards,</span></span></div><div><span><span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;">John</span></span></div><div><br></div>
            
            <div id="yahoo_quoted_7850742074" class="yahoo_quoted">
                <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                    
                    <div>
                        On Thursday, May 24, 2018, 12:19:55 PM GMT+8, John Sledge <john_sledget@yahoo.com> wrote:
                    </div>
                    <div><br></div>
                    <div><br></div>
                    <div><div id="yiv2749589476"><div><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:10px;"><div></div>
            <div><span></span><div style="">Hi Jani,</div><div style=""><br clear="none"></div><div style="">Good day!</div><div style=""><br clear="none"></div><div style="">Thank you for taking the time to point out those information. It’s a great help to me.<br clear="none"></div><div style="">Also apologies for the late reply, your first reply went to my spam inbox, not sure what happen and I was waiting for replies for days.</div><div style=""><br clear="none"></div><div style="">I'm still new to Linux and to DRM. I also need to investigate and learn more about it.</div><div style=""><br clear="none"></div><div style="">Here's what I have done so far. I was able to work on the modeprint test application from the libdrm package found in the website <span>github.com/grate-driver/libdrm. I need to understand how user space and kernel works and modeprint provided me a simple understanding how it works.</span></div><div style=""><span>The modeprint requires a module name to open and I provided the i915 module. It followed opening the device name then calling ioctl commands to get resources, drm mode get connectors, encoders and crtc. From here, i was able to detect the display device's information successfully.</span></div><div style=""><span><br clear="none"></span></div><div style="">So from here I got stuck and got confused. I only notice that in the drm.h it has limited IOCTL commands which it doesn't reach what i needed like to reach scope in <span>drm_dp_helper.c or <span>intel_dp.c where the dp aux read/write functions.</span></span></div><div style=""><span></span><div><br clear="none"></div>Okay, back to your advice. Correct, I'm trying to access DPCD from the userspace. I haven't tried it and I'm not sure how it will goes out. I will try it now and I will give feedback on this.</div><div style="">From what I understand, I need to rebuild the entire kernel with modification to Kconfig file (<span><span style="color:rgb(0, 0, 0);">depends on DRM=y</span></span>) in <span>linux-4.16\drivers\gpu\drm directory. Then expect <span><span style="">/dev/drm_dp_auxN node in the system.</span></span></span></div><div style=""><br clear="none"></div><div style=""><span></span><div>config DRM_DP_AUX_CHARDEV</div><div><span style="white-space:pre-wrap;">        </span>bool "DRM DP AUX Interface"</div><div><span style="white-space:pre-wrap;">   </span>depends on DRM=y</div><div><span style="white-space:pre-wrap;">        </span>help</div><div><span style="white-space:pre-wrap;">    </span>  Choose this option to enable a /dev/drm_dp_auxN node that allows to</div><div><span style="white-space:pre-wrap;">      </span>  read and write values to arbitrary DPCD registers on the DP aux</div><div><span style="white-space:pre-wrap;">  </span>  channel.</div><div><br clear="none"></div><div>The second advice, I guess your correct since the display device i needed to communicate is under <span>Connector: DP-1 and not in <span>Connector: eDP-1. This is based on the application modeprint result.</span></span></div><div><br clear="none"></div><div>Regards,</div><div>John</div><br clear="none"></div><div style=""><span><br clear="none"></span></div><div style=""><span><br clear="none"></span></div><br clear="none"></div><div><br clear="none"></div>
            
            <div class="yiv2749589476yahoo_quoted" id="yiv2749589476yahoo_quoted_7498888823">
                <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                    
                    <div class="yiv2749589476yqt1991619486" id="yiv2749589476yqt92519"><div>
                        On Friday, May 18, 2018, 5:48:31 PM GMT+8, Jani Nikula <jani.nikula@linux.intel.com> wrote:
                    </div>
                    <div><br clear="none"></div>
                    <div><br clear="none"></div>
                    <div><div dir="ltr">On Thu, 17 May 2018, John Sledge <<a rel="nofollow" shape="rect" ymailto="mailto:john_sledget@yahoo.com" target="_blank" href="mailto:john_sledget@yahoo.com">john_sledget@yahoo.com</a>> wrote:<div class="yiv2749589476yqt9608212504" id="yiv2749589476yqtfd62195"><br clear="none">> I’ve been doing some PTN3460 programming under Linux using C/C++ and I<br clear="none">> have some questions regarding on setting the brightness level to my<br clear="none">> display device.<br clear="none">><br clear="none">> The display device with PTN3460 is connected in DP (display port) to<br clear="none">> my computer. Only needs a DisplayPort native AUX command to access<br clear="none">> DPCD address from PTN3460.  I’m currently looking into the DRM (Direct<br clear="none">> Rendering Manager) a subsystem of the Linux kernel. It has a methods<br clear="none">> drm_dp_dpcd_readb, drm_dp_dpcd_read and drm_dp_dpcd_write.<br clear="none">><br clear="none">> Do you have any suggestions or advice how to use the kernel driver in<br clear="none">> DRM in regards to how to implement the method drm_dp_dpcd_readb for<br clear="none">> example? I couldn't not find any test tool examples that implement<br clear="none">> it. Biggest concern is I don't have sufficient knowledge where to<br clear="none">> start what to code using the DRM module.</div><br clear="none"><br clear="none">Let me double check, you're talking about doing DPCD access from<br clear="none">userspace? The *only* interface that can be recommended for that is the<br clear="none">DRM DP AUX interface. If you have kernel config DRM_DP_AUX_CHARDEV=y,<br clear="none">you'll get /dev/drm_dp_auxN node(s) that allows you to read and write<br clear="none">arbitrary DPCD offsets. It's a chardev; you can use e.g. dd to debug<br clear="none">read DPCD.<br clear="none"><br clear="none">Of course, it would be better to have a generic backlight interface for<br clear="none">DPCD based backlight in kernel. We have the basics for that for Intel<br clear="none">GPU in i915/intel_dp_aux_backlight.c. Granted, it should be moved to<br clear="none">common DRM code, but it also doesn't work for you if you have the chip<br clear="none">connected to regular DP. It expects eDP, and somewhat spec compliant eDP<br clear="none">DPCD backlight support.<br clear="none"><br clear="none">HTH,<br clear="none">Jani.<br clear="none"><br clear="none"><br clear="none">-- <br clear="none">Jani Nikula, Intel Open Source Graphics Center</div></div></div>
                </div>
            </div></div></div></div></div>
                </div>
            </div></div></body></html>