[RFC 0/7] drm: add DPI bus support

Boris Brezillon boris.brezillon at free-electrons.com
Mon Oct 6 08:37:46 PDT 2014


Hello,

This is a proposal to address one of the issue I've been facing with the
atmel-hlcdc driver.

This driver provides a DPI (or raw RGB) bus on which we might access
several devices (a panel, an HDMI encoder, or any other type of encoder).

My problem is that I have to find the best bus format according to the
devices connected on the bus.
Another problem is when 2 devices on the same bus requires 2 orthogonal
formats, we should be able to detect this kind of issue and reject the
requested mode setting.

This implementation was designed in a few hours and thus is far from
perfect.
It is given as a starting point to further discuss the available
solution I have to support this kind of configuration.

Patches 1 and 2 implement a basic DPI bus infrastructure (or whatever name
we decide to use: DPI is a MIPI standard that involves more than just
video bus format description).

Patches 3 and 4 add DPI panel support, and patches 5, 6 and 7 implement a
DPI host in the atmel-hlcdc driver (the driver I'm currently working on).

This implementation also has the benefit of keeping the display controller
driver indepedant of slave device types (panels, encoders, bridges,
...).

Feel free to share your thoughts on this problem (and/or the proposed
solution).

Best Regards,

Boris

Boris Brezillon (7):
  drm: add DPI bus support
  drm: add DPI connector/encoder definitions
  drm: support panels connected on a DPI bus
  drm: panel: move foxlink fl500wvr00-a0t panel to the DPI panel list
  drm: atmel-hlcdc: add DPI support
  drm: atmel-hlcdc: move to DPI
  ARM: at91/dt: define sama5d3xek panel as a DPI device

 arch/arm/boot/dts/sama5d36ek.dts                 |  12 +-
 arch/arm/boot/dts/sama5d3_lcd.dtsi               |   6 +-
 arch/arm/boot/dts/sama5d3xdm.dtsi                |  28 +-
 drivers/gpu/drm/Kconfig                          |   4 +
 drivers/gpu/drm/Makefile                         |   1 +
 drivers/gpu/drm/atmel-hlcdc/Kconfig              |   1 +
 drivers/gpu/drm/atmel-hlcdc/Makefile             |   2 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c   |  11 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c     |  12 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h     |   6 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dpi.c    | 212 +++++++++++
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 443 -----------------------
 drivers/gpu/drm/drm_crtc.c                       |   2 +
 drivers/gpu/drm/drm_mipi_dpi.c                   | 369 +++++++++++++++++++
 drivers/gpu/drm/panel/panel-simple.c             | 331 +++++++++++++++--
 include/drm/drm_mipi_dpi.h                       | 169 +++++++++
 include/uapi/drm/drm_mode.h                      |   2 +
 17 files changed, 1100 insertions(+), 511 deletions(-)
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dpi.c
 delete mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c
 create mode 100644 drivers/gpu/drm/drm_mipi_dpi.c
 create mode 100644 include/drm/drm_mipi_dpi.h

-- 
1.9.1



More information about the dri-devel mailing list