[RFC 0/8] rmk's Dove DRM/TDA19988 Cubox driver

Jean-Francois Moine moinejf at free.fr
Fri May 17 07:33:45 EDT 2013


On Thu, 16 May 2013 20:25:10 +0100
Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:

> What follows is my DRM driver for Dove, which I've been working on with
> the Solid-run Cubox, which only offers HDMI output via the TDA19988
> chip.
> 
> Not everything is finished off perfectly in this driver; there's quite
> a number of ragged edges (particularly with page flipping, which is
> completely untested.)
> 
> I have most of the Xorg driver complete - none of the DRI interfaces
> checked yet (partly because that involves quite an amount of work with
> Mesa).
> 
> However, graphics, video overlay, interlacing, accelerated GPU via the
> original vivante support all works through this driver, with this driver
> providing the X pixmaps.

Hi Russell,

I quickly compared your dove drm driver and ours (Sebastian and me):

- CMA helper

  You don't use DRM_KMS_CMA_HELPER and DRM_GEM_CMA_HELPER which would
  simplify some code.

- device tree

  Our driver depends on the DT and, by this way, it may be used for
  various boards (Cubox, DB-MV88AP510 Development Board, CompuLab
  CM-A510 Board..). Especially, in the Cubox, only a HDMI screen may be
  connected, while the display controller permits connection of a smart
  panel (port A) and a VGA screen (port B). 
  Also, the driver could be used for different chips as the Armada 160
  which has quite the same LCD controller (but one LCD only and no
  display controller - Sebastian's idea).

- module loading (si5351, tda998x)

  As our driver is loaded by the Cubox DT, and as the auxilliary drivers
  (external clock, HDMI transmitter) may also be modules, a
  synchronization mechanism (inspired by the tegra drm driver) permits
  the driver to start when all the other drivers are also started.

- display controller

  I implemented output port cloning (LCD 0 to port B) but it is not
  tested (I just have a Cubox and I think that Sebastian did not have
  time enough yet to do it).     

- LCD handling

  With our driver, the description of a smart panel (port A) may be
  done by the DT.

- hardware cursor

  Our driver always proposes the HWC 32 (RGBA 64x64).

- LCD clocks

  Each LCD may use one clock amongst 4 (AXI, LCD PLL and 2 external
  clocks). In our driver, the choice of the clock is done on each video
  mode change (Sebastian's idea).

- interlaced modes

  While the code is there, I did not test the interlaced modes.
  Your code may be better.

- video overlay

  Same as above: the code is in our driver (overlay plane), but it is
  not tested.

- private ioctls

  It should be easy to add them in our driver and have an API
  compatible with your X server module. 

- screen rotation (IRE)

  This feature is needed when the Dove SoC is used in a tablet and does
  not exist in both drivers.

- VGA DAC

  This feature is needed to get the VGA screen parameters (mode,
  dimensions) and does not exist in both drivers too.

Otherwise, there are some small differences in, for example,
programming the LCD modes, or treating the vblank events.

What do you think about merging?

-- 
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/



More information about the linux-arm-kernel mailing list