[PATCH v2 00/29] Remove the omapdrm and omapdss devices from platform code
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon May 8 11:32:35 UTC 2017
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
More information about the dri-devel
mailing list