[Intel-gfx] DRM Inquiry
Jani Nikula
jani.nikula at linux.intel.com
Fri May 25 06:55:54 UTC 2018
On Fri, 25 May 2018, John Sledge <john_sledget at yahoo.com> wrote:
> Hi Jani,
> I can now see /dev/drm_dp_aux*.
> I'm not familiar with dd command.Correct me if I'm wrong.
> 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
> dd if=/dev/drm_dp_aux2 seek=723 ibs=2dd of=/dev/drm_dp_aux2 seek=723 ibs=2
> I assumed I could read the brightness msb and lsb using the define in drm_dp_helper.h.
> #define DP_EDP_BACKLIGHT_BRIGHTNESS_MSB 0x722#define DP_EDP_BACKLIGHT_BRIGHTNESS_LSB 0x723
You're mixing hex and decimal numbers, you should probably use bs=1
count=2, dd outputs binary so you probably need to pipe it to hexdump to
see anything, etc. Perhaps start experiments with reading at seek=0.
> 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.
It's a character device, open, seek, read/write. Don't try any ioctls on
it.
Good luck.
BR,
Jani.
>
> #define BRIGHTNESS 0x723
> 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");
> }
> if((retcode = ioctl(fd,BRIGHTNESS,&out)) < 0) { printf("ioctl failed"); } else { printf("ioctl success");
> }
> // trying aux2 if((fd = open("/dev/drm_dp_aux2",O_RDWR)) >=0) { printf("open success"); } else { printf("open failed");
> }
> if((retcode = ioctl(fd,BRIGHTNESS,&out)) < 0) { printf("ioctl failed"); } else { printf("ioctl success");
> }
> return 0;}
> Thanks,John
>
> On Thursday, May 24, 2018, 8:38:02 PM GMT+8, Jani Nikula <jani.nikula at linux.intel.com> wrote:
>
> On Thu, 24 May 2018, John Sledge <john_sledget at yahoo.com> wrote:
>> I was able to update my kernel to 4.6 which has the DRM_DP_AUX_CHARDEV
>> in the Kconfig file linux-4.6\drivers\gpu\drm. Though I also
>> add DRM_DP_AUX_CHARDEV=y in kernel config. When invoke uname -r, I
>> could see that the kernel is now 4.6.
>
> If you're updating kernels, why not update to a recent kernel that's
> actually supported...?
>
>> How can I verify the DRM_DP_AUX_CHARDEV takes effect or got configure
>> it correctly?
>
> Boot the kernel, run 'ls /dev/drm_dp_aux*'. If you see stuff, you got it
> right.
>
>> 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.
>
> The device is a char device you can open, seek to an offset (which would
> be the DPCD offset), and read. For testing, you can achieve the same
> using dd.
>
> BR,
> Jani.
--
Jani Nikula, Intel Open Source Graphics Center
More information about the Intel-gfx
mailing list