AnsweredAssumed Answered

axi_axi_hdmi problems in directfb supplied examples

Question asked by henry10210 on Oct 14, 2014
Latest reply on Oct 20, 2014 by larsc

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 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