[PATCH v3 00/61] omapdrm: Reverse direction of DSS device (dis)connect operations
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Aug 6 00:26:40 UTC 2018
Hello,
This patch series is a first step towards moving the omapdrm driver away from
the custom bridge and panel drivers to drm_bridge and drm_panel.
The main blocker to transition to drm_bridge and drm_panel is the direction of
the bridge operations. While the omapdrm driver manages its components from
sink to source (panel to DSS output), the drm_bridge API is manages bridges in
the source to sink direction. This makes the two models incompatible, and
requires reversing the direction of operations inside omapdrm.
Don't rejoice too fast, we're still far from a complete transition, but this
first step paves the way by reworking the driver's internals to make source to
sink order possible. It then transitions the connect and disconnect operations
(the omapdrm equivalent of the drm_bridge attach and detach operations) to the
new direction.
The series contains patches previously posted by Jyri and Peter that I have
found helpful. Please see the individual patches for changes compared to the
original versions (trivial conflict resolutions caused by a rebase are not
mentioned).
The patches are based on top of Dave's drm-next branch. They can be found at
git://linuxtv.org/pinchartl/media.git omapdrm/bridge/next
The series has been tested on a Pandaboard with the HDMI and DVI outputs, and
on a TI AM57xx EVM with the LCD and HDMI outputs. All patches have been tested
individually on the Pandaboard.
Compared to v1, patch "drm/omap: dss: Remove omapdss_hdmi_ops set_infoframe
operation" has been dropped, and patch "drm/omap: dss: Handle DPI and SDI port
initialization failures" added. Other small changes are documented in
individual patches.
Compared to v2, a crash at module removal has been fixed by adding patch 22/61
and rebasing the rest of the series on top of it.
Jyri Sarha (1):
drm/omap: dss: Move platform_device_register from core.c to dss.c
probe
Laurent Pinchart (56):
drm/omap: dss: Gather OMAP DSS components at probe time
drm/omap: dss: Handle DPI and SDI port initialization failures
drm/omap: dss: Remove omapdss_atv_ops get_wss and set_wss operations
drm/omap: dss: Remove DSS encoders get_timings operation
drm/omap: dss: Remove unused omapdss_default_get_timings()
drm/omap: dss: Constify omap_dss_driver operations structure
drm/omap: displays: Remove videomode from omap_dss_device structure
drm/omap: dss: Remove omap_dss_device panel fields
drm/omap: dss: Rename omap_dss_device list field to output_list
drm/omap: dss: Create global list of all omap_dss_device instances
drm/omap: dss: Create and use omapdss_device_is_registered()
drm/omap: dss: Rework output lookup by port node
drm/omap: dss: Allow looking up any device by port
drm/omap: dss: Move common device operations to common structure
drm/omap: dss: Add functions to connect and disconnect devices
drm/omap: dss: Move debug message and checks to connection handlers
drm/omap: displays: Don't call disconnect handlers directly
drm/omap: dss: Move src and dst check and set to connection handlers
drm/omap: displays: Remove input omap_dss_device from panel data
drm/omap: dsi: Simplify debugfs implementation
drm/omap: Move DSI debugfs clocks dump to dsi%u_clks files
drm/omap: dss: Remove output devices list
drm/omap: dss: Rename for_each_dss_dev macro to for_each_dss_display
drm/omap: dss: Make omap_dss_get_next_device() more generic
drm/omap: dss: Split omapdss_register_display()
drm/omap: dss: Remove panel devices list
drm/omap: dss: Move and rename omap_dss_(get|put)_device()
drm/omap: dss: Store dss_device pointer in omap_dss_device
drm/omap: dss: Move DSS mgr ops and private data to dss_device
drm/omap: dss: Modify omapdss_find_output_from_display() to return
channel
drm/omap: dss: Replace omap_dss_device port number with bitmask
drm/omap: dss: Extend omapdss_of_find_source_for_first_ep() to sinks
drm/omap: displays: Don't cast dssdev to panel data unnecessarily
drm/omap: dss: Cleanup error paths in output init functions
drm/omap: dss: dsi: Move initialization code from bind to probe
drm/omap: dss: hdmi4: Move initialization code from bind to probe
drm/omap: dss: hdmi5: Move initialization code from bind to probe
drm/omap: dss: venc: Move initialization code from bind to probe
drm/omap: dss: Acquire next dssdev at probe time
drm/omap: dss: Add for_each_dss_output() macro
drm/omap: dss: Add function to retrieve display for an output
drm/omap: dss: Remove duplicated parameter to dss_mgr_(dis)connect()
drm/omap: dss: Get regulators at probe time
drm/omap: Remove unneeded variable assignments in omap_modeset_init
drm/omap: Create all planes before CRTCs
drm/omap: Group CRTC, encoder, connector and dssdev in a structure
drm/omap: Reverse direction of DSS device (dis)connect operations
drm/omap: dss: Move connection checks to omapdss_device_(dis)connect
drm/omap: dss: Move display type validation to initialization time
drm/omap: dss: Merge two disconnection helpers
drm/omap: Pass pipe pointer to omap_crtc_init()
drm/omap: Store CRTC lookup by channel table in omap_drm_private
drm/omap: Remove omap_crtc_output global array
drm/omap: Remove supported output check in CRTC connect handler
drm/omap: Set dispc_channel_connect from DSS output connect handlers
drm/omap: dss: Remove the dss_mgr_(dis)connect() operations
Peter Ujfalusi (4):
drm/omap: Allocate drm_device earlier and unref it as last step
drm/omap: Manage the usable omap_dss_device list within
omap_drm_private
drm/omap: Do dss_device (display) ordering in omap_drv.c
drm/omap: dss: Remove display ordering from dss/display.c
.../gpu/drm/omapdrm/displays/connector-analog-tv.c | 95 +---
drivers/gpu/drm/omapdrm/displays/connector-dvi.c | 78 +--
drivers/gpu/drm/omapdrm/displays/connector-hdmi.c | 122 ++---
drivers/gpu/drm/omapdrm/displays/encoder-opa362.c | 113 ++---
drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c | 107 ++---
.../gpu/drm/omapdrm/displays/encoder-tpd12s015.c | 146 +++---
drivers/gpu/drm/omapdrm/displays/panel-dpi.c | 73 +--
drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 237 ++++-----
.../omapdrm/displays/panel-lgphilips-lb035q02.c | 71 +--
.../drm/omapdrm/displays/panel-nec-nl8048hl11.c | 71 +--
.../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c | 71 +--
.../drm/omapdrm/displays/panel-sony-acx565akm.c | 90 +---
.../drm/omapdrm/displays/panel-tpo-td028ttec1.c | 71 +--
.../drm/omapdrm/displays/panel-tpo-td043mtea1.c | 87 +---
drivers/gpu/drm/omapdrm/dss/base.c | 224 ++++++++-
drivers/gpu/drm/omapdrm/dss/core.c | 26 +-
drivers/gpu/drm/omapdrm/dss/dispc.c | 8 -
drivers/gpu/drm/omapdrm/dss/display.c | 134 +-----
drivers/gpu/drm/omapdrm/dss/dpi.c | 172 +++----
drivers/gpu/drm/omapdrm/dss/dsi.c | 527 ++++++++++-----------
drivers/gpu/drm/omapdrm/dss/dss-of.c | 47 +-
drivers/gpu/drm/omapdrm/dss/dss.c | 40 +-
drivers/gpu/drm/omapdrm/dss/dss.h | 8 +-
drivers/gpu/drm/omapdrm/dss/hdmi4.c | 328 ++++++-------
drivers/gpu/drm/omapdrm/dss/hdmi5.c | 311 ++++++------
drivers/gpu/drm/omapdrm/dss/omapdss.h | 229 +++------
drivers/gpu/drm/omapdrm/dss/output.c | 208 ++------
drivers/gpu/drm/omapdrm/dss/sdi.c | 113 ++---
drivers/gpu/drm/omapdrm/dss/venc.c | 252 ++++------
drivers/gpu/drm/omapdrm/omap_connector.c | 10 +-
drivers/gpu/drm/omapdrm/omap_crtc.c | 78 +--
drivers/gpu/drm/omapdrm/omap_crtc.h | 6 +-
drivers/gpu/drm/omapdrm/omap_drv.c | 296 +++++++-----
drivers/gpu/drm/omapdrm/omap_drv.h | 19 +-
drivers/gpu/drm/omapdrm/omap_encoder.c | 6 +-
drivers/gpu/drm/omapdrm/omap_fbdev.c | 4 +-
drivers/gpu/drm/omapdrm/omap_irq.c | 4 +-
37 files changed, 1803 insertions(+), 2679 deletions(-)
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list