On Fri, 25 May 2018, John Sledge <john_sledget@xxxxxxxxx> 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@xxxxxxxxxxxxxxx> wrote: > > On Thu, 24 May 2018, John Sledge <john_sledget@xxxxxxxxx> 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx