All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/48] omapdrm: Merge omapdrm and omapdss
@ 2017-10-13 14:58 Laurent Pinchart
  2017-10-13 14:58 ` [PATCH 01/48] drm: omapdrm: dpi: Don't treat GPIO probe deferral as an error Laurent Pinchart
                   ` (51 more replies)
  0 siblings, 52 replies; 114+ messages in thread
From: Laurent Pinchart @ 2017-10-13 14:58 UTC (permalink / raw)
  To: dri-devel; +Cc: Tomi Valkeinen

Hello,

This patch series merges the omapdrm and omapdss drivers into a single driver
called omapdrm. The split in two drivers was historical, in order to support
the FBDEV, V4L2 and DRM/KMS APIs. Now that the driver supports DRM/KMS only
there's no need to keep two seperate drivers.

The series starts with a few cleanups (01/48 to 03/48) and quickly proceeds to
merging the omapdss and omapdss-base modules (04/48). It then prepares the
omapdss code (05/48 to 08/48), perform a few more cleanups (09/48 to 11/48)
and prepares the omapdrm code (12/48).

Patches 13/48 to 19/48 prepare the connector, encoder and panel drivers. All
those drivers defer probing when their video source can't be found at probe
time. This would cause endless probe deferral when merging omapdrm and omapdss
as the drivers need omapdss to be fully initialized to probe successfully, but
cause omapdrm to defer probing when they're not available.

Patch 20/48 merges the omapdrm and omapdss drivers.

The next patches are added bonuses that start removal of global variables from
the driver. The code relies heavily on global variables for objects that are
instance-specific, and should thus be dynamically allocated. Most of the
patches change internal APIs to pass objects to driver functions (21/48 to
28/48, 36/48, 39/48 to 41/38, 43/48 to 45/48) with a few miscellaneous
cleanups (29/48, 35/48, 37/48, 38/48, 42/48). Patches 30/48 to 34/48 and 46/48
then allocate instance objects dynamically to replace global variables, and
patches 47/48 and 48/48 move global variables to existing instance objects.

The series has been tested on a Pandaboard with the DVI and HDMI output.

Laurent Pinchart (48):
  drm: omapdrm: dpi: Don't treat GPIO probe deferral as an error
  drm: omapdrm: Pass drm_device to omap_gem_resume()
  drm: omapdrm: Remove unused omap_dss_find_device() function
  drm: omapdrm: Merge the omapdss and omapdss-base modules
  drm: omapdrm: dss: Set the DMA coherent mask
  drm: omapdrm: dss: Make dss_dump_clocks() function static
  drm: omapdrm: dpi: Remove dpi_data port_initialized field
  drm: omapdrm: venc: Return error code on OF parsing failure
  drm: omapdrm: Deconstruct the omap_drv.h header.
  drm: omapdrm: Use kernel integer types
  drm: omapdrm: Use unsigned int type
  drm: omapdrm: Split init and cleanup from probe and remove functions
  drm: omapdrm: connector-analog-tv: Remove tvc_of_match forward
    declaration
  drm: omapdrm: displays: Remove OF node check in connector drivers
  drm: omapdrm: displays: Remove OF node check in encoder drivers
  drm: omapdrm: displays: Remove OF node check in panel drivers
  drm: omapdrm: displays: Get connector source at connect time
  drm: omapdrm: displays: Get panel source at connect time
  drm: omapdrm: displays: Get encoder source at connect time
  drm: omapdrm: Merge the omapdrm and omapdss drivers
  drm: omapdrm: dss: Support passing private data to debugfs show
    handlers
  drm: omapdrm: dss: Pass DSS private structure to runtime PM functions
  drm: omapdrm: dss: Pass PLL pointer to dss_ctrl_pll_enable()
  drm: omapdrm: sdi: Pass DSS pointer to dss_sdi_*() functions
  drm: omapdrm: dss: Pass DSS pointer to dss_ops operations
  drm: omapdrm: dss: Pass DSS pointer to dss_get_*_clk_source()
  drm: omapdrm: dss: Pass DSS pointer to dss clock functions
  drm: omapdrm: dss: Pass DSS pointer to remaining dss functions
  drm: omapdrm: dss: Remove dss_get_hdmi_venc_clk_source() function
  drm: omapdrm: dss: Allocate the DSS private data structure dynamically
  drm: omapdrm: hdmi4: Allocate the omap_hdmi data structure dynamically
  drm: omapdrm: hdmi5: Allocate the omap_hdmi data structure dynamically
  drm: omapdrm: venc: Allocate the venc private data structure
    dynamically
  drm: omapdrm: sdi: Allocate the sdi private data structure dynamically
  drm: omapdrm: dsi: Make wait_for_bit_change() return a status
  drm: omapdrm: dsi: Pass the dsi_data pointer to internal functions
  drm: omapdrm: dsi: Combine two commonly used inline functions
  drm: omapdrm: dsi: Use dev pointer directly in dsi_bind() function
  drm: omapdrm: dsi: Store the struct device pointer in struct dsi_data
  drm: omapdrm: dsi: Don't pass channel to dispc init/uninit functions
  drm: omapdrm: dss: Pass omap_dss_device pointer to dss_mgr_*()
    functions
  drm: omapdrm: dss: Remove unused functions prototypes
  drm: omapdrm: dss: Pass omap_drm_private pointer to dss_mgr_ops
  drm: omapdrm: dispc: Pass DISPC pointer to dispc_ops operations
  drm: omapdrm: dispc: Pass DISPC pointer to remaining dispc API
    functions
  drm: omapdrm: dispc: Allocate the dispc private data structure
    dynamically
  drm: omapdrm: dss: Store the debugfs root directory in struct
    dss_device
  drm: omapdrm: dss: Store the registered plls array in struct
    dss_device

 drivers/gpu/drm/omapdrm/Kconfig                    |    5 +-
 drivers/gpu/drm/omapdrm/Makefile                   |   25 +
 .../gpu/drm/omapdrm/displays/connector-analog-tv.c |   50 +-
 drivers/gpu/drm/omapdrm/displays/connector-dvi.c   |   34 +-
 drivers/gpu/drm/omapdrm/displays/connector-hdmi.c  |   40 +-
 drivers/gpu/drm/omapdrm/displays/encoder-opa362.c  |   40 +-
 drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c  |   42 +-
 .../gpu/drm/omapdrm/displays/encoder-tpd12s015.c   |   69 +-
 drivers/gpu/drm/omapdrm/displays/panel-dpi.c       |   38 +-
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c    |   38 +-
 .../omapdrm/displays/panel-lgphilips-lb035q02.c    |   38 +-
 .../drm/omapdrm/displays/panel-nec-nl8048hl11.c    |   42 +-
 .../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c |   38 +-
 .../drm/omapdrm/displays/panel-sony-acx565akm.c    |   35 +-
 .../drm/omapdrm/displays/panel-tpo-td028ttec1.c    |   49 +-
 .../drm/omapdrm/displays/panel-tpo-td043mtea1.c    |   32 +-
 drivers/gpu/drm/omapdrm/dss/Kconfig                |   16 -
 drivers/gpu/drm/omapdrm/dss/Makefile               |   18 -
 drivers/gpu/drm/omapdrm/dss/base.c                 |   20 -
 drivers/gpu/drm/omapdrm/dss/core.c                 |   14 +-
 drivers/gpu/drm/omapdrm/dss/dispc.c                | 2191 +++++++++++---------
 drivers/gpu/drm/omapdrm/dss/display.c              |   16 -
 drivers/gpu/drm/omapdrm/dss/dpi.c                  |   98 +-
 drivers/gpu/drm/omapdrm/dss/dsi.c                  | 1554 +++++++-------
 drivers/gpu/drm/omapdrm/dss/dss-of.c               |    2 -
 drivers/gpu/drm/omapdrm/dss/dss.c                  |  722 ++++---
 drivers/gpu/drm/omapdrm/dss/dss.h                  |  248 ++-
 drivers/gpu/drm/omapdrm/dss/hdmi.h                 |   11 +-
 drivers/gpu/drm/omapdrm/dss/hdmi4.c                |  375 ++--
 drivers/gpu/drm/omapdrm/dss/hdmi4_cec.c            |    4 +-
 drivers/gpu/drm/omapdrm/dss/hdmi4_core.h           |    4 +-
 drivers/gpu/drm/omapdrm/dss/hdmi5.c                |  383 ++--
 drivers/gpu/drm/omapdrm/dss/hdmi5_core.c           |   24 +-
 drivers/gpu/drm/omapdrm/dss/hdmi_phy.c             |    2 +-
 drivers/gpu/drm/omapdrm/dss/hdmi_pll.c             |   15 +-
 drivers/gpu/drm/omapdrm/dss/hdmi_wp.c              |    2 +-
 drivers/gpu/drm/omapdrm/dss/omapdss.h              |  166 +-
 drivers/gpu/drm/omapdrm/dss/output.c               |   61 +-
 drivers/gpu/drm/omapdrm/dss/pll.c                  |   44 +-
 drivers/gpu/drm/omapdrm/dss/sdi.c                  |  163 +-
 drivers/gpu/drm/omapdrm/dss/venc.c                 |  457 ++--
 drivers/gpu/drm/omapdrm/dss/video-pll.c            |   19 +-
 drivers/gpu/drm/omapdrm/omap_connector.h           |   37 +
 drivers/gpu/drm/omapdrm/omap_crtc.c                |   70 +-
 drivers/gpu/drm/omapdrm/omap_crtc.h                |   43 +
 drivers/gpu/drm/omapdrm/omap_dmm_priv.h            |   10 +-
 drivers/gpu/drm/omapdrm/omap_dmm_tiler.c           |   58 +-
 drivers/gpu/drm/omapdrm/omap_dmm_tiler.h           |   25 +-
 drivers/gpu/drm/omapdrm/omap_drv.c                 |  101 +-
 drivers/gpu/drm/omapdrm/omap_drv.h                 |  146 +-
 drivers/gpu/drm/omapdrm/omap_encoder.h             |   33 +
 drivers/gpu/drm/omapdrm/omap_fb.c                  |   18 +-
 drivers/gpu/drm/omapdrm/omap_fb.h                  |   46 +
 drivers/gpu/drm/omapdrm/omap_fbdev.h               |   39 +
 drivers/gpu/drm/omapdrm/omap_gem.c                 |   48 +-
 drivers/gpu/drm/omapdrm/omap_gem.h                 |   99 +
 drivers/gpu/drm/omapdrm/omap_irq.c                 |   38 +-
 drivers/gpu/drm/omapdrm/omap_irq.h                 |   39 +
 drivers/gpu/drm/omapdrm/omap_plane.c               |   16 +-
 drivers/gpu/drm/omapdrm/omap_plane.h               |   37 +
 drivers/gpu/drm/omapdrm/tcm-sita.c                 |   12 +-
 drivers/gpu/drm/omapdrm/tcm.h                      |    4 +-
 62 files changed, 4293 insertions(+), 3870 deletions(-)
 create mode 100644 drivers/gpu/drm/omapdrm/omap_connector.h
 create mode 100644 drivers/gpu/drm/omapdrm/omap_crtc.h
 create mode 100644 drivers/gpu/drm/omapdrm/omap_encoder.h
 create mode 100644 drivers/gpu/drm/omapdrm/omap_fb.h
 create mode 100644 drivers/gpu/drm/omapdrm/omap_fbdev.h
 create mode 100644 drivers/gpu/drm/omapdrm/omap_gem.h
 create mode 100644 drivers/gpu/drm/omapdrm/omap_irq.h
 create mode 100644 drivers/gpu/drm/omapdrm/omap_plane.h

-- 
Regards,

Laurent Pinchart

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

^ permalink raw reply	[flat|nested] 114+ messages in thread

end of thread, other threads:[~2018-01-19  3:48 UTC | newest]

Thread overview: 114+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-13 14:58 [PATCH 00/48] omapdrm: Merge omapdrm and omapdss Laurent Pinchart
2017-10-13 14:58 ` [PATCH 01/48] drm: omapdrm: dpi: Don't treat GPIO probe deferral as an error Laurent Pinchart
2017-10-14 12:11   ` Sebastian Reichel
2017-10-13 14:58 ` [PATCH 02/48] drm: omapdrm: Pass drm_device to omap_gem_resume() Laurent Pinchart
2017-10-14 12:15   ` Sebastian Reichel
2017-10-13 14:58 ` [PATCH 03/48] drm: omapdrm: Remove unused omap_dss_find_device() function Laurent Pinchart
2017-10-14 12:16   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 04/48] drm: omapdrm: Merge the omapdss and omapdss-base modules Laurent Pinchart
2017-10-14 12:22   ` Sebastian Reichel
2017-10-16  9:04     ` Laurent Pinchart
2017-10-18  9:19   ` Tomi Valkeinen
2017-10-18 12:28     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 05/48] drm: omapdrm: dss: Set the DMA coherent mask Laurent Pinchart
2017-10-14 12:24   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 06/48] drm: omapdrm: dss: Make dss_dump_clocks() function static Laurent Pinchart
2017-10-14 12:24   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 07/48] drm: omapdrm: dpi: Remove dpi_data port_initialized field Laurent Pinchart
2017-10-14 12:28   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 08/48] drm: omapdrm: venc: Return error code on OF parsing failure Laurent Pinchart
2017-10-14 12:29   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 09/48] drm: omapdrm: Deconstruct the omap_drv.h header Laurent Pinchart
2017-10-17 22:25   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 10/48] drm: omapdrm: Use kernel integer types Laurent Pinchart
2017-10-14 12:34   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 11/48] drm: omapdrm: Use unsigned int type Laurent Pinchart
2017-10-14 12:37   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 12/48] drm: omapdrm: Split init and cleanup from probe and remove functions Laurent Pinchart
2017-10-14 12:41   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 13/48] drm: omapdrm: connector-analog-tv: Remove tvc_of_match forward declaration Laurent Pinchart
2017-10-14 12:42   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 14/48] drm: omapdrm: displays: Remove OF node check in connector drivers Laurent Pinchart
2017-10-14 12:43   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 15/48] drm: omapdrm: displays: Remove OF node check in encoder drivers Laurent Pinchart
2017-10-14 12:44   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 16/48] drm: omapdrm: displays: Remove OF node check in panel drivers Laurent Pinchart
2017-10-14 12:45   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 17/48] drm: omapdrm: displays: Get connector source at connect time Laurent Pinchart
2017-10-14 12:51   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 18/48] drm: omapdrm: displays: Get panel " Laurent Pinchart
2017-10-14 12:55   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 19/48] drm: omapdrm: displays: Get encoder " Laurent Pinchart
2017-10-14 12:58   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 20/48] drm: omapdrm: Merge the omapdrm and omapdss drivers Laurent Pinchart
2017-10-14 13:12   ` Sebastian Reichel
2017-10-16  9:09     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 21/48] drm: omapdrm: dss: Support passing private data to debugfs show handlers Laurent Pinchart
2017-10-15 21:10   ` Sebastian Reichel
2017-10-16  9:11     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 22/48] drm: omapdrm: dss: Pass DSS private structure to runtime PM functions Laurent Pinchart
2017-10-16  8:39   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 23/48] drm: omapdrm: dss: Pass PLL pointer to dss_ctrl_pll_enable() Laurent Pinchart
2017-10-16  8:42   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 24/48] drm: omapdrm: sdi: Pass DSS pointer to dss_sdi_*() functions Laurent Pinchart
2017-10-16  8:47   ` Sebastian Reichel
2017-10-16  9:03     ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 25/48] drm: omapdrm: dss: Pass DSS pointer to dss_ops operations Laurent Pinchart
2017-10-16  9:05   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 26/48] drm: omapdrm: dss: Pass DSS pointer to dss_get_*_clk_source() Laurent Pinchart
2017-10-16  9:08   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 27/48] drm: omapdrm: dss: Pass DSS pointer to dss clock functions Laurent Pinchart
2017-10-16  9:12   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 28/48] drm: omapdrm: dss: Pass DSS pointer to remaining dss functions Laurent Pinchart
2017-10-16  9:15   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 29/48] drm: omapdrm: dss: Remove dss_get_hdmi_venc_clk_source() function Laurent Pinchart
2017-10-16  9:16   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 30/48] drm: omapdrm: dss: Allocate the DSS private data structure dynamically Laurent Pinchart
2017-10-16  9:39   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 31/48] drm: omapdrm: hdmi4: Allocate the omap_hdmi " Laurent Pinchart
2017-10-16 10:19   ` Sebastian Reichel
2017-10-16 10:27   ` Sebastian Reichel
2017-10-16 11:17     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 32/48] drm: omapdrm: hdmi5: " Laurent Pinchart
2017-10-17 18:52   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 33/48] drm: omapdrm: venc: Allocate the venc private " Laurent Pinchart
2017-10-17 18:52   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 34/48] drm: omapdrm: sdi: Allocate the sdi " Laurent Pinchart
2017-10-17 19:09   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 35/48] drm: omapdrm: dsi: Make wait_for_bit_change() return a status Laurent Pinchart
2017-10-17 19:12   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 36/48] drm: omapdrm: dsi: Pass the dsi_data pointer to internal functions Laurent Pinchart
2017-10-17 20:02   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 37/48] drm: omapdrm: dsi: Combine two commonly used inline functions Laurent Pinchart
2017-10-17 20:06   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 38/48] drm: omapdrm: dsi: Use dev pointer directly in dsi_bind() function Laurent Pinchart
2017-10-17 20:08   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 39/48] drm: omapdrm: dsi: Store the struct device pointer in struct dsi_data Laurent Pinchart
2017-10-17 20:11   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 40/48] drm: omapdrm: dsi: Don't pass channel to dispc init/uninit functions Laurent Pinchart
2017-10-17 20:13   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 41/48] drm: omapdrm: dss: Pass omap_dss_device pointer to dss_mgr_*() functions Laurent Pinchart
2017-10-17 20:31   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 42/48] drm: omapdrm: dss: Remove unused functions prototypes Laurent Pinchart
2017-10-17 20:37   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 43/48] drm: omapdrm: dss: Pass omap_drm_private pointer to dss_mgr_ops Laurent Pinchart
2017-10-17 21:23   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 44/48] drm: omapdrm: dispc: Pass DISPC pointer to dispc_ops operations Laurent Pinchart
2017-10-17 21:23   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 45/48] drm: omapdrm: dispc: Pass DISPC pointer to remaining dispc API functions Laurent Pinchart
2017-10-17 21:24   ` Sebastian Reichel
2017-10-17 21:44     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 46/48] drm: omapdrm: dispc: Allocate the dispc private data structure dynamically Laurent Pinchart
2017-10-17 22:09   ` Sebastian Reichel
2017-10-13 14:59 ` [PATCH 47/48] drm: omapdrm: dss: Store the debugfs root directory in struct dss_device Laurent Pinchart
2017-10-17 22:16   ` Sebastian Reichel
2017-10-17 22:34     ` Laurent Pinchart
2017-10-13 14:59 ` [PATCH 48/48] drm: omapdrm: dss: Store the registered plls array " Laurent Pinchart
2017-10-17 22:21   ` Sebastian Reichel
2017-10-17 22:29 ` [PATCH 00/48] omapdrm: Merge omapdrm and omapdss Sebastian Reichel
2017-10-17 22:36   ` Laurent Pinchart
2017-10-18  9:46 ` Tomi Valkeinen
2017-10-18  9:56   ` Tomi Valkeinen
2018-01-19  3:48     ` Laurent Pinchart
2017-10-18 12:56 ` Tomi Valkeinen
2017-12-01 12:55 ` Tomi Valkeinen

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.