<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 seek 0-800 and here's what I get, all 11 0A in hex. Not sure if this is the brightness value of the display. I also did a test, when I disconnect the DP to the display and execute the dd commands, it would say error reading 'dev/drm_dp_aux1': Connection timed out. So I think my display setup is okay and the 11 0A values are really coming out from the display.</div><div><span><div style="color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;"><br></div><div style="color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;">Output in hex:</div><div style="color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10px;">11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A 11 0A ....<br></div><div><br></div></span></div><div>int main(int argc, char **argv)<br></div><div><span><div>{</div><div><span style="white-space: pre-wrap;">  </span>int ret = 0;</div><div><span style="white-space: pre-wrap;">   </span>int offset = 0;</div><div><span style="white-space: pre-wrap;">        </span>char call[100];</div><div><span style="white-space: pre-wrap;">        </span></div><div><span style="white-space: pre-wrap;">       </span>for(offset=0;offset<800;offset++)</div><div><span style="white-space: pre-wrap;">   </span>{</div><div><span style="white-space: pre-wrap;">              </span>sprintf(call,"dd if=/dev/drm_dp_aux1 bs=1 count=2 seek=%d >> out.txt",offset);</div><div><span style="white-space: pre-wrap;"> </span></div><div><span style="white-space: pre-wrap;">               </span>ret = system(call);</div><div><span style="white-space: pre-wrap;">    </span>}</div><div>    return 0;</div><div>}<br><br></div><div>Regards,</div><div>John</div><div><br></div><div><br></div><div><br></div></span></div><div><br></div>
            
            <div id="yahoo_quoted_8022113972" class="yahoo_quoted">
                <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                    
                    <div>
                        On Friday, May 25, 2018, 2:56:04 PM GMT+8, Jani Nikula <jani.nikula@linux.intel.com> wrote:
                    </div>
                    <div><br></div>
                    <div><br></div>
                    <div><div dir="ltr">On Fri, 25 May 2018, John Sledge <<a shape="rect" ymailto="mailto:john_sledget@yahoo.com" href="mailto:john_sledget@yahoo.com">john_sledget@yahoo.com</a>> wrote:<br clear="none">>  Hi Jani,<br clear="none">> I can now see /dev/drm_dp_aux*.<br clear="none">> I'm not familiar with dd command.Correct me if I'm wrong.<br clear="none">> Possible commands i tried and nothing happen:dd if=/dev/drm_dp_aux1 seek=723 ibs=2dd of=/dev/drm_dp_aux1 seek=723 ibs=2<br clear="none">> dd if=/dev/drm_dp_aux2 seek=723 ibs=2dd of=/dev/drm_dp_aux2 seek=723 ibs=2<br clear="none">> I assumed I could read the brightness msb and lsb using the define in drm_dp_helper.h.<br clear="none">> #define DP_EDP_BACKLIGHT_BRIGHTNESS_MSB     0x722#define DP_EDP_BACKLIGHT_BRIGHTNESS_LSB     0x723<br clear="none"><br clear="none">You're mixing hex and decimal numbers, you should probably use bs=1<br clear="none">count=2, dd outputs binary so you probably need to pipe it to hexdump to<br clear="none">see anything, etc. Perhaps start experiments with reading at seek=0.<br clear="none"><br clear="none">> From here, I was thinking if I could try to open \dev\drm_dp_aux* then read the brightness offset 0x723, though not sure how to proceed with it.I was able to successfully open \dev\drm_dp_aux1 and \dev\drm_dp_aux2 but I thinking I'm wrong when I proceed to ioctl because they all failed.<br clear="none"><br clear="none">It's a character device, open, seek, read/write. Don't try any ioctls on<br clear="none">it.<br clear="none"><br clear="none">Good luck.<br clear="none"><br clear="none"><br clear="none">BR,<div class="yqt6253407513" id="yqtfd45039"><br clear="none">Jani.<br clear="none"><br clear="none"><br clear="none">><br clear="none">> #define BRIGHTNESS 0x723<br clear="none">> int main(int argc, char ** argv){  int fd;  int retcode;  char out[128];    if((fd = open("/dev/drm_dp_aux1",O_RDWR)) >=0)  {    printf("open success");  }  else  {    printf("open failed");<br clear="none">>   }<br clear="none">>    if((retcode = ioctl(fd,BRIGHTNESS,&out)) < 0)  {    printf("ioctl failed");  }  else  {    printf("ioctl success");<br clear="none">>   }<br clear="none">>   // trying aux2  if((fd = open("/dev/drm_dp_aux2",O_RDWR)) >=0)  {    printf("open success");  }  else  {    printf("open failed");<br clear="none">>   }<br clear="none">>   if((retcode = ioctl(fd,BRIGHTNESS,&out)) < 0)  {    printf("ioctl failed");  }  else  {    printf("ioctl success");<br clear="none">>   }<br clear="none">>   return 0;}<br clear="none">> Thanks,John<br clear="none">><br clear="none">>     On Thursday, May 24, 2018, 8:38:02 PM GMT+8, Jani Nikula <<a shape="rect" ymailto="mailto:jani.nikula@linux.intel.com" href="mailto:jani.nikula@linux.intel.com">jani.nikula@linux.intel.com</a>> wrote:  <br clear="none">>  <br clear="none">>  On Thu, 24 May 2018, John Sledge <<a shape="rect" ymailto="mailto:john_sledget@yahoo.com" href="mailto:john_sledget@yahoo.com">john_sledget@yahoo.com</a>> wrote:<br clear="none">>> I was able to update my kernel to 4.6 which has the DRM_DP_AUX_CHARDEV<br clear="none">>> in the Kconfig file linux-4.6\drivers\gpu\drm. Though I also<br clear="none">>> add DRM_DP_AUX_CHARDEV=y in  kernel config. When invoke uname -r, I<br clear="none">>> could see that the kernel is now 4.6.<br clear="none">><br clear="none">> If you're updating kernels, why not update to a recent kernel that's<br clear="none">> actually supported...?<br clear="none">><br clear="none">>> How can I verify the DRM_DP_AUX_CHARDEV takes effect or got configure<br clear="none">>> it correctly?<br clear="none">><br clear="none">> Boot the kernel, run 'ls /dev/drm_dp_aux*'. If you see stuff, you got it<br clear="none">> right.<br clear="none">><br clear="none">>> It still unclear to me how to follow what you mean by using DRM DP AUX<br clear="none">>> interface and getting /dev/drm_dp_auxN node(s) that allows me to read<br clear="none">>> and write arbitrary DPCD offsets. <br clear="none">><br clear="none">> The device is a char device you can open, seek to an offset (which would<br clear="none">> be the DPCD offset), and read. For testing, you can achieve the same<br clear="none">> using dd.<br clear="none">><br clear="none">> BR,<br clear="none">> Jani.<br clear="none"><br clear="none">-- <br clear="none">Jani Nikula, Intel Open Source Graphics Center<br clear="none">_______________________________________________<br clear="none">dri-devel mailing list<br clear="none"><a shape="rect" ymailto="mailto:dri-devel@lists.freedesktop.org" href="mailto:dri-devel@lists.freedesktop.org">dri-devel@lists.freedesktop.org</a><br clear="none"><a shape="rect" href="https://lists.freedesktop.org/mailman/listinfo/dri-devel" target="_blank">https://lists.freedesktop.org/mailman/listinfo/dri-devel</a><br clear="none"></div></div></div>
                </div>
            </div></div></body></html>