Hi, I am chasing the QT (5.4) embedded example application "analogclock" crashing when run with the directfb platform device, using /dev/fb0 that I *think" is the driver supplied in ADI's kernel git source <kernel>/drivers/gpu/drm/adi_axi_hdmi, using the encoder slave <kernel>/drivers/gpu/drm/ic2/adv7511*
I was (am?) confused about the relationship between these 2 ADI supplied drivers and the Xilinx suuplied driver in <kernel>/drivers/gpu/drm/xilinx/xilinx_drm_drv.c. Adding to the confusion, the recommended link for the AXI HDMI HDL driver points to files that are no longer in ADI's github (404 error).
Anyway, my effort to get directfb working on the Zedboard started when I was troubleshooting the display not showing in "Ubuntu on Zedboard" demo, because AXI HDMI HDL driver page said (love the terseness) "The driver can be tested using the Linux framebuffer console". I've documented my steps, and the current problem in this blog entry. To summarize the problem, QT and all directfb supplied examples are complaining about 1 or more of the IOCTLs failing. The most obvious one is FBIOPUTCMAP operation, return EINVAL. I then tried the raw directfb examples, and many of them fail for other reasons, as you can see in this tally:
- df_andi: OK
- df_dioload: (!!!) *** UNIMPLEMENTED [fusion_get_fusionee_pid] *** [fusion.c:3517]
- df_dok: OK
- df_drivertest: DirectFBError [dfb->CreateSurface( dfb, &dsc, &primary )]: The requested operation or an argument is (currently) not supported
- df_fire: DirectFB/FBDev: Could not set the palette! Core/LayerRegion: Could not lock region surface for SetRegion()!
- df_neo: OK
- df_palette: DirectFB/FBDev: Could not set the palette!
- df_particle: updates rather slowly
- df_porter: mouse does not work?
- df_texture: OK
- df_window: mouse does not work
In directfb, these are the enumerated ioctl operations in <directfb>/systems/fbdev/fb.h:. How can I check whether all these are supported by ADI supplied device driver?
directfb-1.6.3$ grep FBIO systems/fbdev/fb.h
#define FBIOGET_VSCREENINFO 0x4600
#define FBIOPUT_VSCREENINFO 0x4601
#define FBIOGET_FSCREENINFO 0x4602
#define FBIOGETCMAP 0x4604
#define FBIOPUTCMAP 0x4605
#define FBIOPAN_DISPLAY 0x4606
#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor)
/* #define FBIOGET_MONITORSPEC 0x460C */
/* #define FBIOPUT_MONITORSPEC 0x460D */
/* #define FBIOSWITCH_MONIBIT 0x460E */
#define FBIOGET_CON2FBMAP 0x460F
#define FBIOPUT_CON2FBMAP 0x4610
#define FBIOBLANK 0x4611 /* arg: 0 or vesa level+1*/
#define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank)
#define FBIO_ALLOC 0x4613
#define FBIO_FREE 0x4614
#define FBIOGET_GLYPH 0x4615
#define FBIOGET_HWCINFO 0x4616
#define FBIOPUT_MODEINFO 0x4617
#define FBIOGET_DISPINFO 0x4618