mbox series

[0/4] drm/mipi-dbi: Support panel drivers

Message ID 20190801135249.28803-1-noralf@tronnes.org (mailing list archive)
Headers show
Series drm/mipi-dbi: Support panel drivers | expand

Message

Noralf Trønnes Aug. 1, 2019, 1:52 p.m. UTC
This series adds drm_panel support to drm_mipi_dbi. This avoids having 2
drivers for the same controller, one per interface DPI/DBI. Some display
controllers like the ILI9341 support both interfaces and some
displays/panels make both these interfaces available.

Some info about why MIPI DBI is special:
MIPI DSI (Display Serial Interface) and MIPI DPI (Display Pixel
Interface) needs specialiced hardware and thus they have interface
drivers for this. MIPI DBI (Display Bus Interface) on the other hand
reuses existing busses like SPI/8080/6800 and in the case of SPI just
reuses the exising SPI subsystem. All the panels I have seen that have
onboard RAM and can receive pixels over DBI needs to initialize the
controller as well. This means that both the panel driver and the
interface driver needs access to the same bus device.

Changes since RFC[1]:
- Instead of starting with Josef's driver[2], I've started with moving
  the existing ili9341 driver into drm/panel and then move over mi0283qt
  as well since it has a ili9341 controller. Josef can then add support
  for his panel to this driver. His panel can support both interface
  modes.
- Emil mentioned that the DRM driver name is ABI so I've honoured that.
- The DRM driver structure is now defined in the driver using a macro
  instead of doing it in drm_mipi_dbi. This is necessary for file open to
  take a ref on the driver module.

Another thing:
Looking at drm_panel.c I couldn't find anything that pins the panel
driver module while the panel is attached to the connector. Shouldn't
struct drm_panel_funcs have a module owner field?

Noralf.

[1] https://patchwork.freedesktop.org/series/64398/
[2] https://patchwork.freedesktop.org/patch/316528/

Noralf Trønnes (4):
  drm/mipi-dbi: Support command mode panel drivers
  drm/tiny/ili9341: Move driver to drm/panel
  drm/tiny/mi0283qt: Move driver to panel-ilitek-ili9341
  drm/panel/ili9341: Support DPI panels

 MAINTAINERS                                  |  16 +-
 drivers/gpu/drm/drm_mipi_dbi.c               |  92 ++++
 drivers/gpu/drm/panel/Kconfig                |  13 +
 drivers/gpu/drm/panel/Makefile               |   1 +
 drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 469 +++++++++++++++++++
 drivers/gpu/drm/tiny/Kconfig                 |  24 -
 drivers/gpu/drm/tiny/Makefile                |   2 -
 drivers/gpu/drm/tiny/ili9341.c               | 268 -----------
 drivers/gpu/drm/tiny/mi0283qt.c              | 294 ------------
 include/drm/drm_mipi_dbi.h                   |  34 ++
 10 files changed, 618 insertions(+), 595 deletions(-)
 create mode 100644 drivers/gpu/drm/panel/panel-ilitek-ili9341.c
 delete mode 100644 drivers/gpu/drm/tiny/ili9341.c
 delete mode 100644 drivers/gpu/drm/tiny/mi0283qt.c