Re: [PATCH 14/29] drm/omap: Add a dss device operation flag for .get_modes()

2018-12-10 Thread Sebastian Reichel
On Wed, Dec 05, 2018 at 05:00:07PM +0200, Laurent Pinchart wrote:
> Instead of manually iterating over the dss devices in the pipeline to
> find the first one that implements the .get_modes() operation, add a new
> operation flag for .get_modes() and use the omap_connector_find_device()
> helper function to locate the right dss device.
> 
> Signed-off-by: Laurent Pinchart 
> ---

Reviewed-by: Sebastian Reichel 

-- Sebastian

>  drivers/gpu/drm/omapdrm/displays/panel-dpi.c  | 1 +
>  drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c   | 1 +
>  .../gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c   | 1 +
>  drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c   | 1 +
>  .../gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c| 1 +
>  drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c   | 1 +
>  drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c   | 1 +
>  drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c   | 1 +
>  drivers/gpu/drm/omapdrm/dss/omapdss.h | 4 +++-
>  drivers/gpu/drm/omapdrm/dss/venc.c| 1 +
>  drivers/gpu/drm/omapdrm/omap_connector.c  | 8 
>  11 files changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c 
> b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
> index 2bda6d4fdb16..3b3570cb0d9a 100644
> --- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
> +++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
> @@ -152,6 +152,7 @@ static int panel_dpi_probe(struct platform_device *pdev)
>   dssdev->type = OMAP_DISPLAY_TYPE_DPI;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(0);
> + dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
>  
>   omapdss_display_init(dssdev);
>   omapdss_device_register(dssdev);
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c 
> b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> index c5f570106a17..fe9d9f847d2e 100644
> --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> @@ -1271,6 +1271,7 @@ static int dsicm_probe(struct platform_device *pdev)
>   dssdev->type = OMAP_DISPLAY_TYPE_DSI;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(0);
> + dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
>  
>   dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE |
>   OMAP_DSS_DISPLAY_CAP_TEAR_ELIM;
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c 
> b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
> index e05b7f80416e..f37931bf1c5f 100644
> --- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
> +++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
> @@ -199,6 +199,7 @@ static int lb035q02_panel_spi_probe(struct spi_device 
> *spi)
>   dssdev->type = OMAP_DISPLAY_TYPE_DPI;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(0);
> + dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
>  
>   /*
>* Note: According to the panel documentation:
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c 
> b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
> index cf2127837e67..8f2fb3d0492f 100644
> --- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
> @@ -194,6 +194,7 @@ static int nec_8048_probe(struct spi_device *spi)
>   dssdev->type = OMAP_DISPLAY_TYPE_DPI;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(0);
> + dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
>   dssdev->bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_SYNC_POSEDGE
> | DRM_BUS_FLAG_PIXDATA_POSEDGE;
>  
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c 
> b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
> index 30320cee1e56..8d5d7f775b55 100644
> --- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
> +++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
> @@ -209,6 +209,7 @@ static int sharp_ls_probe(struct platform_device *pdev)
>   dssdev->type = OMAP_DISPLAY_TYPE_DPI;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(0);
> + dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
>  
>   /*
>* Note: According to the panel documentation:
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c 
> b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
> index 8debe77f92ff..b8360cef3754 100644
> --- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
> @@ -708,6 +708,7 @@ static int acx565akm_probe(struct spi_device *spi)
>   dssdev->type = OMAP_DISPLAY_TYPE_SDI;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(0);
> + dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
>   dssdev->bus_flags = 

[PATCH 14/29] drm/omap: Add a dss device operation flag for .get_modes()

2018-12-05 Thread Laurent Pinchart
Instead of manually iterating over the dss devices in the pipeline to
find the first one that implements the .get_modes() operation, add a new
operation flag for .get_modes() and use the omap_connector_find_device()
helper function to locate the right dss device.

Signed-off-by: Laurent Pinchart 
---
 drivers/gpu/drm/omapdrm/displays/panel-dpi.c  | 1 +
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c   | 1 +
 .../gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c   | 1 +
 drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c   | 1 +
 .../gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c| 1 +
 drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c   | 1 +
 drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c   | 1 +
 drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c   | 1 +
 drivers/gpu/drm/omapdrm/dss/omapdss.h | 4 +++-
 drivers/gpu/drm/omapdrm/dss/venc.c| 1 +
 drivers/gpu/drm/omapdrm/omap_connector.c  | 8 
 11 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c 
b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
index 2bda6d4fdb16..3b3570cb0d9a 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
@@ -152,6 +152,7 @@ static int panel_dpi_probe(struct platform_device *pdev)
dssdev->type = OMAP_DISPLAY_TYPE_DPI;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(0);
+   dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
 
omapdss_display_init(dssdev);
omapdss_device_register(dssdev);
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c 
b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
index c5f570106a17..fe9d9f847d2e 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
@@ -1271,6 +1271,7 @@ static int dsicm_probe(struct platform_device *pdev)
dssdev->type = OMAP_DISPLAY_TYPE_DSI;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(0);
+   dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
 
dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE |
OMAP_DSS_DISPLAY_CAP_TEAR_ELIM;
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c 
b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
index e05b7f80416e..f37931bf1c5f 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
@@ -199,6 +199,7 @@ static int lb035q02_panel_spi_probe(struct spi_device *spi)
dssdev->type = OMAP_DISPLAY_TYPE_DPI;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(0);
+   dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
 
/*
 * Note: According to the panel documentation:
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c 
b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
index cf2127837e67..8f2fb3d0492f 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
@@ -194,6 +194,7 @@ static int nec_8048_probe(struct spi_device *spi)
dssdev->type = OMAP_DISPLAY_TYPE_DPI;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(0);
+   dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
dssdev->bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_SYNC_POSEDGE
  | DRM_BUS_FLAG_PIXDATA_POSEDGE;
 
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c 
b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
index 30320cee1e56..8d5d7f775b55 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
@@ -209,6 +209,7 @@ static int sharp_ls_probe(struct platform_device *pdev)
dssdev->type = OMAP_DISPLAY_TYPE_DPI;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(0);
+   dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
 
/*
 * Note: According to the panel documentation:
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c 
b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
index 8debe77f92ff..b8360cef3754 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
@@ -708,6 +708,7 @@ static int acx565akm_probe(struct spi_device *spi)
dssdev->type = OMAP_DISPLAY_TYPE_SDI;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(0);
+   dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
dssdev->bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_SYNC_NEGEDGE
  | DRM_BUS_FLAG_PIXDATA_POSEDGE;
 
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c 
b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c