All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: dri-devel@lists.freedesktop.org
Cc: Tony Lindgren <tony@atomide.com>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	linux-omap@vger.kernel.org
Subject: Re: [PATCH v3 00/35] omapdrm: Deconstruct DSS features
Date: Sat, 05 Aug 2017 01:49:03 +0300	[thread overview]
Message-ID: <1596020.QcH2enfq9l@avalon> (raw)
In-Reply-To: <20170804224419.30758-1-laurent.pinchart@ideasonboard.com>

On Saturday 05 Aug 2017 01:43:44 Laurent Pinchart wrote:
> Hello,
> 
> This patch series is a third version of the code previously posted as
> "[PATCH v2 00/29] Remove the omapdrm and omapdss devices 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 new patch that fixes soc_device_match()
> usage on OMAP2+. It turned out that OMAP2+ registers SoC device attributes
> at late init time, making soc_device_match() impossible to use for drivers
> at probe time, which is unfortunately the location where the feature is
> most needed.
> 
> The next five patches (02/35 to 06/35) are small and simple unneeded or
> unused code removal. The next two patches (07/35 and 08/35) are cleanups
> that make sense by themselves and will be needed by later refactoring.
> 
> The series then starts removing usage of the DSS platform data. It first
> removes callbacks to platform code in patches 09/35 and 10/35, and then
> tackles the larger task of replacing DSS version usage with model data
> stored in OF or SoC device match entries (patches 11/35 to 14/35).
> 
> The next large user of the DSS version is the omap_dss_features
> infrastructure not to be confused with the similarly named dss_features.
> The former is a dirty mix of data related to all IP cores in the while
> display device, while the latter contains data related to the DSS itself.
> The next patches deconstruct omap_dss_features by removing one unneeded
> features field (15/35), and slowly moving features to where they belong
> (patches 16/35 to 34/35). Patch 35/35 finally removes the omap_dss_features
> altogether as they're then empty.
> 
> Note that patches 17/35 and 18/35 are not strictly related to
> omap_dss_features deconstruction, but they pave the road to removing 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) which is the ultimate goal of this effort and should be
> ready for upstreaming.
> 
> Compared to v2, the DSS version usage in the HDMI4 and HDMI5 drivers is
> still present, as the related patches were more controversial and require
> more work. I will tackle that next as a separate patch series that will
> finally remove omapdss platform driver
> 
> This version should be simpler to merge given that it doesn't touch the
> FBDEV and ALSA subsystems, but still carries an annoying dependency on
> OMAP2+ platform code. The easiest solution would be to merge the single
> OMAP2+ patch (01/35) through the DRM tree as that's where the bulk of
> changes lies.
> 
> The patches are currently based on top of v4.13-rc2 (-rc1 doesn't boot on
> the AM57xx board I use for testing) and have been tested on OMAP3
> (BeagleBoard-xM, DM3730), OMAP4 (pandaboard, OMAP4460) and OMAP5 (AM572x
> EVM, AM572x). Many regressions were found, and fixed :-)

This should of course have read DRA7, not OMAP5.

> Laurent Pinchart (35):
>   ARM: OMAP2+: Register SoC device attributes from machine .init()
>   drm: omapdrm: acx565akm: Remove unneeded check for OF node
>   drm: omapdrm: connector-analog-tv: Remove unneeded check for OF node
>   drm: omapdrm: panel-dpi: Remove unneeded check for OF node
>   drm: omapdrm: dpi: Remove unneeded regulator check
>   drm: omapdrm: venc: Don't export omap_dss_pal_vm and omap_dss_ntsc_vm
>   drm: omapdrm: hdmi: Store PHY features in PHY data structure
>   drm: omapdrm: dss: Split operations out of dss_features structure
>   drm: omapdrm: dsi: Handle pin muxing internally
>   drm: omapdrm: Don't forward set_min_bus_tput() to no-op platform code
>   drm: omapdrm: dispc: Select features based on compatible string
>   drm: omapdrm: dpi: Replace OMAP SoC model checks with DSS model
>   drm: omapdrm: dsi: Store DSI model and PLL hardware data in OF data
>   drm: omapdrm: dss: Select features based on compatible string
>   drm: omapdrm: dss: Use supported outputs instead of display types
>   drm: omapdrm: dss: Initialize DSS internal features at probe time
>   drm: omapdrm: Move all debugfs code from core to dss
>   drm: omapdrm: Move shutdown() handler from core to dss
>   drm: omapdrm: Move size unit features to dispc_features structure
>   drm: omapdrm: Move color modes feature to dispc_features structure
>   drm: omapdrm: Move overlay caps features to dispc_features structure
>   drm: omapdrm: Move num_ovls and num_mgrs to dispc_features structure
>   drm: omapdrm: Move DISPC_CLK_SWITCH reg feature to struct dss_features
>   drm: omapdrm: Move reg_fields to dispc_features structure
>   drm: omapdrm: Move FEAT_VENC_REQUIRES_TV_DAC_CLK to venc driver
>   drm: omapdrm: Move FEAT_DSI_* features to dsi driver
>   drm: omapdrm: Move FEAT_HDMI_* features to hdmi4 driver
>   drm: omapdrm: Move FEAT_DPI_USES_VDDS_DSI feature to dpi code
>   drm: omapdrm: Move FEAT_LCD_CLK_SRC feature to dss_features structure
>   drm: omapdrm: Move FEAT_* features to dispc driver
>   drm: omapdrm: Move FEAT_PARAM_DSI* features to dsi driver
>   drm: omapdrm: Move PCD, LINEWIDTH and DOWNSCALE features to dispc
>     driver
>   drm: omapdrm: Move DSS_FCK feature to dss driver
>   drm: omapdrm: Move supported outputs feature to dss driver
>   drm: omapdrm: Remove dss_features.h
> 
>  arch/arm/mach-omap2/board-generic.c                |   1 +
>  arch/arm/mach-omap2/io.c                           |   1 -
>  .../gpu/drm/omapdrm/displays/connector-analog-tv.c |   3 +
>  drivers/gpu/drm/omapdrm/displays/panel-dpi.c       |   3 +
>  .../drm/omapdrm/displays/panel-sony-acx565akm.c    |   3 +
>  drivers/gpu/drm/omapdrm/dss/Makefile               |   2 +-
>  drivers/gpu/drm/omapdrm/dss/core.c                 | 133 ---
>  drivers/gpu/drm/omapdrm/dss/dispc.c                | 824 ++++++++++++-----
>  drivers/gpu/drm/omapdrm/dss/dpi.c                  |  88 +-
>  drivers/gpu/drm/omapdrm/dss/dsi.c                  | 307 ++++---
>  drivers/gpu/drm/omapdrm/dss/dss.c                  | 406 ++++++---
>  drivers/gpu/drm/omapdrm/dss/dss.h                  |  46 +-
>  drivers/gpu/drm/omapdrm/dss/dss_features.c         | 905 ------------------
>  drivers/gpu/drm/omapdrm/dss/dss_features.h         | 109 ---
>  drivers/gpu/drm/omapdrm/dss/hdmi.h                 |   9 +
>  drivers/gpu/drm/omapdrm/dss/hdmi4.c                |   1 -
>  drivers/gpu/drm/omapdrm/dss/hdmi4_core.c           |  38 +-
>  drivers/gpu/drm/omapdrm/dss/hdmi5.c                |   1 -
>  drivers/gpu/drm/omapdrm/dss/hdmi_phy.c             |  23 +-
>  drivers/gpu/drm/omapdrm/dss/omapdss.h              |   7 -
>  drivers/gpu/drm/omapdrm/dss/venc.c                 |  21 +-
>  drivers/gpu/drm/omapdrm/dss/video-pll.c            |   1 -
>  22 files changed, 1296 insertions(+), 1636 deletions(-)
>  delete mode 100644 drivers/gpu/drm/omapdrm/dss/dss_features.c
>  delete mode 100644 drivers/gpu/drm/omapdrm/dss/dss_features.h

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2017-08-04 22:49 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-04 22:43 [PATCH v3 00/35] omapdrm: Deconstruct DSS features Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 01/35] ARM: OMAP2+: Register SoC device attributes from machine .init() Laurent Pinchart
2017-08-09 12:56   ` Tomi Valkeinen
2017-08-09 21:49     ` Tony Lindgren
2017-08-04 22:43 ` [PATCH v3 02/35] drm: omapdrm: acx565akm: Remove unneeded check for OF node Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 03/35] drm: omapdrm: connector-analog-tv: " Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 04/35] drm: omapdrm: panel-dpi: " Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 05/35] drm: omapdrm: dpi: Remove unneeded regulator check Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 06/35] drm: omapdrm: venc: Don't export omap_dss_pal_vm and omap_dss_ntsc_vm Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 07/35] drm: omapdrm: hdmi: Store PHY features in PHY data structure Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 08/35] drm: omapdrm: dss: Split operations out of dss_features structure Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 09/35] drm: omapdrm: dsi: Handle pin muxing internally Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 10/35] drm: omapdrm: Don't forward set_min_bus_tput() to no-op platform code Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 11/35] drm: omapdrm: dispc: Select features based on compatible string Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 12/35] drm: omapdrm: dpi: Replace OMAP SoC model checks with DSS model Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 13/35] drm: omapdrm: dsi: Store DSI model and PLL hardware data in OF data Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 14/35] drm: omapdrm: dss: Select features based on compatible string Laurent Pinchart
2017-08-04 22:43 ` [PATCH v3 15/35] drm: omapdrm: dss: Use supported outputs instead of display types Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 16/35] drm: omapdrm: dss: Initialize DSS internal features at probe time Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 17/35] drm: omapdrm: Move all debugfs code from core to dss Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 18/35] drm: omapdrm: Move shutdown() handler " Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 19/35] drm: omapdrm: Move size unit features to dispc_features structure Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 20/35] drm: omapdrm: Move color modes feature " Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 21/35] drm: omapdrm: Move overlay caps features " Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 22/35] drm: omapdrm: Move num_ovls and num_mgrs " Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 23/35] drm: omapdrm: Move DISPC_CLK_SWITCH reg feature to struct dss_features Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 24/35] drm: omapdrm: Move reg_fields to dispc_features structure Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 25/35] drm: omapdrm: Move FEAT_VENC_REQUIRES_TV_DAC_CLK to venc driver Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 26/35] drm: omapdrm: Move FEAT_DSI_* features to dsi driver Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 27/35] drm: omapdrm: Move FEAT_HDMI_* features to hdmi4 driver Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 28/35] drm: omapdrm: Move FEAT_DPI_USES_VDDS_DSI feature to dpi code Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 29/35] drm: omapdrm: Move FEAT_LCD_CLK_SRC feature to dss_features structure Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 30/35] drm: omapdrm: Move FEAT_* features to dispc driver Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 31/35] drm: omapdrm: Move FEAT_PARAM_DSI* features to dsi driver Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 32/35] drm: omapdrm: Move PCD, LINEWIDTH and DOWNSCALE features to dispc driver Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 33/35] drm: omapdrm: Move DSS_FCK feature to dss driver Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 34/35] drm: omapdrm: Move supported outputs " Laurent Pinchart
2017-08-04 22:44 ` [PATCH v3 35/35] drm: omapdrm: Remove dss_features.h Laurent Pinchart
2017-08-04 22:49 ` Laurent Pinchart [this message]
2017-08-08 12:56 ` [PATCH v3 00/35] omapdrm: Deconstruct DSS features Tomi Valkeinen
2017-08-08 13:02   ` Laurent Pinchart
2017-08-08 13:04     ` Tomi Valkeinen
2017-08-08 13:15       ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1596020.QcH2enfq9l@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=tomi.valkeinen@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.