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. I've sent the patches as an RFC as I might not be aware of all the consequences of the numerous changes to the driver's internals, even if I took care to analyze the code flows to the best of my abilities. 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 a merge between Tomi's omapdrm-next branch and the drm-misc/drm-misc-next branch for the "drm: fix drm_get_max_iomem type mismatch" compilation fix. They can be found at git://linuxtv.org/pinchartl/media.git omapdrm/bridge The series has been tested on a Pandaboard with the HDMI and DVI outputs. All patches have been at least compile-tested individually. I'll now go through the process of making sure each of them gets tested on hardware as well. Jyri Sarha (1): drm/omap: dss: Move platform_device_register from core.c to dss.c probe Laurent Pinchart (55): drm/omap: dss: Gather OMAP DSS components at probe time drm/omap: dss: Remove omapdss_hdmi_ops set_infoframe operation 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: 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 | 127 ++--- 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 | 149 ++---- 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 | 225 ++++++++- 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 | 27 +- drivers/gpu/drm/omapdrm/dss/dss.h | 8 +- drivers/gpu/drm/omapdrm/dss/hdmi4.c | 336 +++++++------ drivers/gpu/drm/omapdrm/dss/hdmi5.c | 319 ++++++------- drivers/gpu/drm/omapdrm/dss/omapdss.h | 227 +++------ 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, 1783 insertions(+), 2709 deletions(-) -- Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel