[PATCH 00/29] omapdrm: Last large refactoring for drm_bridge transition

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Dec 5 14:59:53 UTC 2018


Hello,

This patch series finishes the large omapdrm refactoring started in v4.17 to
transition from the omapdrm-specific encoder and panel drivers to drm_bridge
and drm_panel. While more changes will follow, the next patch series will
focus on the usage of the first drm_bridge driver (for the tftp410).

The series starts with a few miscalleanous cleanups (01/29 to 04/29) and then
reverses the direction of the DSS device .enable() and .disable() operations
(05/29 to 09/29). All DSS device operations now match the drm_bridge model.

After a bit of further cleanups (10/29 and 11/29), the next step is to move
from struct videomode to struct drm_display_mode in the encoder and panel
drivers (12/29 to 14/29). This allows the VENC encoder to report all supported
modes (PAL and NTSC), not just the active mode (15/29).

We then move to removing access to the component at the end of the pipeline,
as the bridge API doesn't give us easy access to it (patches 16/29 to 18/29).
The next three patches (19/29 to 21/29) remove the src field from the
omap_dss_device structure, again to align with drm_bridge.

Additional miscellaneous refactoring follows to simplify the code (22/29 to
24/29), and the next patch (25/29) replaces usage of struct videomode with
struct drm_display_mode for the .check_timings() and .set_timings()
operations. The VENC encoder can then use struct drm_display_mode internally
(26/29) and the DPI and SDI drivers can avoid storing the full mode
(27/29).

Finally patches 28/29 and 29/29 simplify and refactor the omapdrm
initialization sequence to prepare for drm_bridge usage.

With these changes in place, the next series will fix a few issues in the
tfp410 drm_bridge driver, add direct support for drm_bridge in omapdrm, and
remove the internal tfp410 and DVI connector drivers.

Laurent Pinchart (29):
  drm/omap: Remove declaration of nonexisting function
  drm/omap: Remove unused kobj field from struct omap_dss_device
  drm/omap: venc: Remove wss_data field from venc_device structure
  drm/omap: Use atomic suspend/resume helpers
  drm/omap: Move common display enable/disable code to encoder
  drm/omap: Remove connection checks from internal encoders .enable()
  drm/omap: Remove connection checks from display .enable() and
    .remove()
  drm/omap: Remove enable checks from display .enable() and .remove()
  drm/omap: Reverse direction of the DSS device enable/disable
    operations
  drm/omap: Remove omap_dss_device dst field
  drm/omap: Factor out common init/cleanup code for output devices
  drm/omap: Expose DRM modes instead of timings in display devices
  drm/omap: Merge display .get_modes() and .get_size() operations
  drm/omap: Add a dss device operation flag for .get_modes()
  drm/omap: venc: List both PAL and NTSC modes
  drm/omap: Don't pass display pointer to encoder init function
  drm/omap: Move display alias ID to omap_drm_pipeline
  drm/omap: Don't store display pointer in omap_connector structure
  drm/omap: panel-dsi-cm: Store source pointer internally
  drm/omap: Notify all devices in the pipeline of output disconnection
  drm/omap: Remove src field from omap_dss_device structure
  drm/omap: Move DISPC timing checks to CRTC .mode_valid() operation
  drm/omap: venc: Simplify mode setting by caching configuration
  drm/omap: Factor out common mode validation code
  drm/omap: Pass drm_display_mode to .check_timings() and .set_timings()
  drm/omap: venc: Use drm_display_mode natively
  drm/omap: Store pixel clock instead of full mode in DPI and SDI
    encoders
  drm/omap: Simplify OF lookup of DSS devices
  drm/omap: Refactor initialization sequence

 .../omapdrm/displays/connector-analog-tv.c    |  44 ----
 .../gpu/drm/omapdrm/displays/connector-dvi.c  |  38 ---
 .../gpu/drm/omapdrm/displays/connector-hdmi.c |  44 ----
 .../gpu/drm/omapdrm/displays/encoder-opa362.c |  38 +--
 .../gpu/drm/omapdrm/displays/encoder-tfp410.c |  34 +--
 .../drm/omapdrm/displays/encoder-tpd12s015.c  |  39 ----
 drivers/gpu/drm/omapdrm/displays/panel-dpi.c  |  43 +---
 .../gpu/drm/omapdrm/displays/panel-dsi-cm.c   | 139 +++++------
 .../displays/panel-lgphilips-lb035q02.c       |  35 +--
 .../omapdrm/displays/panel-nec-nl8048hl11.c   |  35 +--
 .../displays/panel-sharp-ls037v7dw01.c        |  55 ++---
 .../omapdrm/displays/panel-sony-acx565akm.c   |  49 +---
 .../omapdrm/displays/panel-tpo-td028ttec1.c   |  46 +---
 .../omapdrm/displays/panel-tpo-td043mtea1.c   |  42 +---
 drivers/gpu/drm/omapdrm/dss/base.c            |  76 ++++--
 drivers/gpu/drm/omapdrm/dss/display.c         |  24 +-
 drivers/gpu/drm/omapdrm/dss/dpi.c             |  62 ++---
 drivers/gpu/drm/omapdrm/dss/dsi.c             |  44 +---
 drivers/gpu/drm/omapdrm/dss/dss-of.c          |  60 +----
 drivers/gpu/drm/omapdrm/dss/hdmi4.c           |  52 +----
 drivers/gpu/drm/omapdrm/dss/hdmi5.c           |  52 +----
 drivers/gpu/drm/omapdrm/dss/omapdss.h         |  48 ++--
 drivers/gpu/drm/omapdrm/dss/output.c          |  18 +-
 drivers/gpu/drm/omapdrm/dss/sdi.c             |  62 ++---
 drivers/gpu/drm/omapdrm/dss/venc.c            | 219 ++++++++----------
 drivers/gpu/drm/omapdrm/omap_connector.c      | 158 ++++++-------
 drivers/gpu/drm/omapdrm/omap_connector.h      |   7 +-
 drivers/gpu/drm/omapdrm/omap_crtc.c           |   9 +
 drivers/gpu/drm/omapdrm/omap_drv.c            | 170 ++++++--------
 drivers/gpu/drm/omapdrm/omap_drv.h            |   3 +
 drivers/gpu/drm/omapdrm/omap_encoder.c        |  99 ++++----
 drivers/gpu/drm/omapdrm/omap_encoder.h        |   3 +-
 32 files changed, 625 insertions(+), 1222 deletions(-)

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list