Hello, This patch series is a second, extended version of the code previously posted as "[PATCH/RFC 0/7] Remove the omapdrm device from platform code". The omapdss/omapdrm initialization code is quite a mess. The physical devices are instantiated from DT, but two virtual devices named omapdrm and omapdss are instanciated from platform code to pass various pieces of platform data to the drivers. The omapdrm and omapdss platform devices are currently used to pass data and function pointers from board code to the drivers for the purpose of - identifying the OMAP SoC revision - controlling the DSI pads - configuring bus throughput It turns out that all these can be handled in the omapdrm and omapdss drivers without the need for platform data. - The SoC revision is used to identify the version of various DSS IP cores, which can instead be done through compatible string matching (with the help of soc_device_match() in two cases where ES version is needed). - The DSI pads control can be performed by the driver directly without calling board code, accessing the related registers through syscon. - Bus throughput control is implemented in mach-omap2 as a no-op, so we can just drop the code. This patch series starts with a few small cleanups and unused features removal (01/28 to 04/28). It then slowly replaces all uses of the omapdrm and omapdss platform data as explained above (05/28 to 20/28). The next step is to remove the omapdss platform driver (for the virtual omapdss platform device, also known as core code, not to be confused with the omapdss_dss driver for the DSS hardware device). Patches 21/28 to 23/28 move the useful features of the core to the omapdss_dss driver. Patch 24/28 adds omapdrm platform device registration to the omapdss_dss driver to replace board code, and patch 25/28 finally removes the omapdss platform driver. Note that registering the omapdrm platform device from within the omapdss_dss driver is a hack, but isn't worse than the current situation. Quite the contrary, given that the omapdrm device exists for the sole purpose of supporting the omapdrm/omapdss driver architecture, moving it out of platform code can be considered as (slightly) cleaner. In any case, it will be easier to refactor the code as everything is now isolated on the driver side. Patches 26/28 and 27/28 remove the now unnecessary platform devices from platform code, and patch 28/28 removes the now unused omapdrm platform data structure. The series will be annoying to merge given that it touches multiple subsystems (ARM core, DRM, FBDEV and ALSA). The easiest solution would be to merge everything through the DRM tree as that's where the bulk of changes lies. This would require an ack from Bartlomiej for patch 04/28, from Peter, Liam or Mark on patch 18/28 and from Tony on patches 26/28 and 27/28. The patches are currently based on top of v4.11. Laurent Pinchart (28): drm: omapdrm: Remove duplicate error messages when mapping memory drm: omapdrm: Drop support for non-DT devices drm: omapdrm: Remove unused dss_get_core_pdev() function drm: omapdrm: Remove unused default display name support drm: omapdrm: Infer the OMAP version from the SoC family drm: omapdrm: dispc: Select features based on compatible string drm: omapdrm: dpi: Remove platform driver drm: omapdrm: dpi: Replace OMAP SoC model checks with DSS device type drm: omapdrm: dsi: Store DSI type and PLL hardware data in OF data drm: omapdrm: dsi: Handle pin muxing internally drm: omapdrm: dss: Select features based on compatible string drm: omapdrm: dss: Split operations out of dss_features structure drm: omapdrm: dss: Initialize DSS internal features at probe time drm: omapdrm: hdmi: Store PHY features in PHY data structure drm: omapdrm: hdmi: Store PHY features in HDMI transmitter drivers drm: omapdrm: hdmi: Store PLL hardware data in HDMI transmitter drivers drm: omapdrm: hdmi: Replace OMAP SoC model check with HDMI xmit version drm: omapdrm: hdmi: Pass HDMI core version as integer to HDMI audio drm: omapdrm: sdi: Remove platform driver drm: omapdrm: Don't forward set_min_bus_tput() to no-op platform code drm: omapdrm: Move all debugfs code from core to dss drm: omapdrm: Move shutdown() handler from core to dss drm: omapdrm: Merge the dss_features and omap_dss_features structures drm: omapdrm: Register omapdrm platform device in omapdss driver drm: omapdrm: Remove the omapdss driver ARM: OMAP2+: Remove unused omapdrm platform device ARM: OMAP2+: Don't register omapdss device for omapdrm drm: omapdrm: Remove omapdrm platform data arch/arm/mach-omap2/Makefile | 2 +- arch/arm/mach-omap2/display.c | 118 +++++------ arch/arm/mach-omap2/display.h | 1 - arch/arm/mach-omap2/drm.c | 53 ----- drivers/gpu/drm/omapdrm/dss/core.c | 230 ++------------------- drivers/gpu/drm/omapdrm/dss/dispc.c | 96 +++------ drivers/gpu/drm/omapdrm/dss/display.c | 19 +- drivers/gpu/drm/omapdrm/dss/dpi.c | 150 +++----------- drivers/gpu/drm/omapdrm/dss/dsi.c | 298 ++++++++++++++-------------- drivers/gpu/drm/omapdrm/dss/dss.c | 274 +++++++++++-------------- drivers/gpu/drm/omapdrm/dss/dss.h | 46 +++-- drivers/gpu/drm/omapdrm/dss/dss_features.c | 220 +++++++++++++------- drivers/gpu/drm/omapdrm/dss/dss_features.h | 41 +++- drivers/gpu/drm/omapdrm/dss/hdmi.h | 16 +- drivers/gpu/drm/omapdrm/dss/hdmi4.c | 47 ++++- drivers/gpu/drm/omapdrm/dss/hdmi4_core.c | 9 +- drivers/gpu/drm/omapdrm/dss/hdmi5.c | 48 ++++- drivers/gpu/drm/omapdrm/dss/hdmi5_core.c | 9 +- drivers/gpu/drm/omapdrm/dss/hdmi_phy.c | 79 +------- drivers/gpu/drm/omapdrm/dss/hdmi_pll.c | 86 +------- drivers/gpu/drm/omapdrm/dss/hdmi_wp.c | 24 +-- drivers/gpu/drm/omapdrm/dss/omapdss.h | 2 - drivers/gpu/drm/omapdrm/dss/rfbi.c | 12 +- drivers/gpu/drm/omapdrm/dss/sdi.c | 54 ----- drivers/gpu/drm/omapdrm/dss/venc.c | 28 +-- drivers/gpu/drm/omapdrm/dss/video-pll.c | 20 +- drivers/gpu/drm/omapdrm/omap_drv.c | 16 +- drivers/gpu/drm/omapdrm/omap_drv.h | 1 - drivers/video/fbdev/omap2/omapfb/dss/core.c | 2 - include/linux/platform_data/omap_drm.h | 53 ----- include/linux/platform_data/omapdss.h | 1 - include/sound/omap-hdmi-audio.h | 2 +- sound/soc/omap/omap-hdmi-audio.c | 9 +- 33 files changed, 763 insertions(+), 1303 deletions(-) delete mode 100644 arch/arm/mach-omap2/drm.c delete mode 100644 include/linux/platform_data/omap_drm.h -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html