Re: [PATCH 30/29] drm/omap: Merge omap_dss_device type and output_type fields

2018-12-11 Thread Sebastian Reichel
Hi,

On Mon, Dec 10, 2018 at 02:28:43PM +0200, Laurent Pinchart wrote:
> The omap_dss_device type and output_type fields differ mostly for
> historical reasons. The output_type field is required for all devices
> but the display at the end of the pipeline, and must be set to
> OMAP_DISPLAY_TYPE_NONE for the latter. The type field is required for
> all devices but the internal encoder, for which it is ignored.
> 
> The only reason why the output_type field must be set to
> OMAP_DISPLAY_TYPE_NONE for the display at the end of the pipeline is to
> identify omap_dss_device instances corresponding to displays. This is
> not documented and confusing.
> 
> Clean the code by adding a new display field to the omap_dss_device
> structure to identify displays, and merge the type and output_type
> fields.
> 
> Signed-off-by: Laurent Pinchart 
> ---

Reviewed-by: Sebastian Reichel 

-- Sebastian

>  .../gpu/drm/omapdrm/displays/connector-analog-tv.c |  1 +
>  drivers/gpu/drm/omapdrm/displays/connector-dvi.c   |  1 +
>  drivers/gpu/drm/omapdrm/displays/connector-hdmi.c  |  1 +
>  drivers/gpu/drm/omapdrm/displays/encoder-opa362.c  |  1 -
>  drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c  |  1 -
>  .../gpu/drm/omapdrm/displays/encoder-tpd12s015.c   |  1 -
>  drivers/gpu/drm/omapdrm/displays/panel-dpi.c   |  1 +
>  drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c|  1 +
>  .../omapdrm/displays/panel-lgphilips-lb035q02.c|  1 +
>  .../drm/omapdrm/displays/panel-nec-nl8048hl11.c|  1 +
>  .../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c |  1 +
>  .../drm/omapdrm/displays/panel-sony-acx565akm.c|  1 +
>  .../drm/omapdrm/displays/panel-tpo-td028ttec1.c|  1 +
>  .../drm/omapdrm/displays/panel-tpo-td043mtea1.c|  1 +
>  drivers/gpu/drm/omapdrm/dss/base.c |  2 +-
>  drivers/gpu/drm/omapdrm/dss/dpi.c  |  2 +-
>  drivers/gpu/drm/omapdrm/dss/dsi.c  |  2 +-
>  drivers/gpu/drm/omapdrm/dss/hdmi4.c|  2 +-
>  drivers/gpu/drm/omapdrm/dss/hdmi5.c|  2 +-
>  drivers/gpu/drm/omapdrm/dss/omapdss.h  | 14 +-
>  drivers/gpu/drm/omapdrm/dss/output.c   |  2 +-
>  drivers/gpu/drm/omapdrm/dss/sdi.c  |  2 +-
>  drivers/gpu/drm/omapdrm/dss/venc.c |  2 +-
>  drivers/gpu/drm/omapdrm/omap_crtc.c|  2 +-
>  drivers/gpu/drm/omapdrm/omap_encoder.c |  4 ++--
>  25 files changed, 31 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c 
> b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
> index 1503563117f3..6c0561101874 100644
> --- a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
> +++ b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
> @@ -56,6 +56,7 @@ static int tvc_probe(struct platform_device *pdev)
>   dssdev->ops = _ops;
>   dssdev->dev = >dev;
>   dssdev->type = OMAP_DISPLAY_TYPE_VENC;
> + dssdev->display = true;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(0);
>  
> diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c 
> b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
> index bf5ee50ce5fe..fa3a69bf8a04 100644
> --- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
> +++ b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
> @@ -239,6 +239,7 @@ static int dvic_probe(struct platform_device *pdev)
>   dssdev->ops = _ops;
>   dssdev->dev = >dev;
>   dssdev->type = OMAP_DISPLAY_TYPE_DVI;
> + dssdev->display = true;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(0);
>  
> diff --git a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c 
> b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
> index 797da4a3f22e..68d6f6e44b03 100644
> --- a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
> +++ b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
> @@ -140,6 +140,7 @@ static int hdmic_probe(struct platform_device *pdev)
>   dssdev->ops = _ops;
>   dssdev->dev = >dev;
>   dssdev->type = OMAP_DISPLAY_TYPE_HDMI;
> + dssdev->display = true;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(0);
>   dssdev->ops_flags = ddata->hpd_gpio
> diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c 
> b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c
> index fc5e0c47054d..29a5a130ebd1 100644
> --- a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c
> +++ b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c
> @@ -88,7 +88,6 @@ static int opa362_probe(struct platform_device *pdev)
>   dssdev->ops = _ops;
>   dssdev->dev = >dev;
>   dssdev->type = OMAP_DISPLAY_TYPE_VENC;
> - dssdev->output_type = OMAP_DISPLAY_TYPE_VENC;
>   dssdev->owner = THIS_MODULE;
>   dssdev->of_ports = BIT(1) | BIT(0);
>  
> diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c 
> b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
> index 82035078377a..fb88537de1cc 

[PATCH 30/29] drm/omap: Merge omap_dss_device type and output_type fields

2018-12-10 Thread Laurent Pinchart
The omap_dss_device type and output_type fields differ mostly for
historical reasons. The output_type field is required for all devices
but the display at the end of the pipeline, and must be set to
OMAP_DISPLAY_TYPE_NONE for the latter. The type field is required for
all devices but the internal encoder, for which it is ignored.

The only reason why the output_type field must be set to
OMAP_DISPLAY_TYPE_NONE for the display at the end of the pipeline is to
identify omap_dss_device instances corresponding to displays. This is
not documented and confusing.

Clean the code by adding a new display field to the omap_dss_device
structure to identify displays, and merge the type and output_type
fields.

Signed-off-by: Laurent Pinchart 
---
 .../gpu/drm/omapdrm/displays/connector-analog-tv.c |  1 +
 drivers/gpu/drm/omapdrm/displays/connector-dvi.c   |  1 +
 drivers/gpu/drm/omapdrm/displays/connector-hdmi.c  |  1 +
 drivers/gpu/drm/omapdrm/displays/encoder-opa362.c  |  1 -
 drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c  |  1 -
 .../gpu/drm/omapdrm/displays/encoder-tpd12s015.c   |  1 -
 drivers/gpu/drm/omapdrm/displays/panel-dpi.c   |  1 +
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c|  1 +
 .../omapdrm/displays/panel-lgphilips-lb035q02.c|  1 +
 .../drm/omapdrm/displays/panel-nec-nl8048hl11.c|  1 +
 .../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c |  1 +
 .../drm/omapdrm/displays/panel-sony-acx565akm.c|  1 +
 .../drm/omapdrm/displays/panel-tpo-td028ttec1.c|  1 +
 .../drm/omapdrm/displays/panel-tpo-td043mtea1.c|  1 +
 drivers/gpu/drm/omapdrm/dss/base.c |  2 +-
 drivers/gpu/drm/omapdrm/dss/dpi.c  |  2 +-
 drivers/gpu/drm/omapdrm/dss/dsi.c  |  2 +-
 drivers/gpu/drm/omapdrm/dss/hdmi4.c|  2 +-
 drivers/gpu/drm/omapdrm/dss/hdmi5.c|  2 +-
 drivers/gpu/drm/omapdrm/dss/omapdss.h  | 14 +-
 drivers/gpu/drm/omapdrm/dss/output.c   |  2 +-
 drivers/gpu/drm/omapdrm/dss/sdi.c  |  2 +-
 drivers/gpu/drm/omapdrm/dss/venc.c |  2 +-
 drivers/gpu/drm/omapdrm/omap_crtc.c|  2 +-
 drivers/gpu/drm/omapdrm/omap_encoder.c |  4 ++--
 25 files changed, 31 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c 
b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
index 1503563117f3..6c0561101874 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
@@ -56,6 +56,7 @@ static int tvc_probe(struct platform_device *pdev)
dssdev->ops = _ops;
dssdev->dev = >dev;
dssdev->type = OMAP_DISPLAY_TYPE_VENC;
+   dssdev->display = true;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(0);
 
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c 
b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
index bf5ee50ce5fe..fa3a69bf8a04 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
@@ -239,6 +239,7 @@ static int dvic_probe(struct platform_device *pdev)
dssdev->ops = _ops;
dssdev->dev = >dev;
dssdev->type = OMAP_DISPLAY_TYPE_DVI;
+   dssdev->display = true;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(0);
 
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c 
b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
index 797da4a3f22e..68d6f6e44b03 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
@@ -140,6 +140,7 @@ static int hdmic_probe(struct platform_device *pdev)
dssdev->ops = _ops;
dssdev->dev = >dev;
dssdev->type = OMAP_DISPLAY_TYPE_HDMI;
+   dssdev->display = true;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(0);
dssdev->ops_flags = ddata->hpd_gpio
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c 
b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c
index fc5e0c47054d..29a5a130ebd1 100644
--- a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c
+++ b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c
@@ -88,7 +88,6 @@ static int opa362_probe(struct platform_device *pdev)
dssdev->ops = _ops;
dssdev->dev = >dev;
dssdev->type = OMAP_DISPLAY_TYPE_VENC;
-   dssdev->output_type = OMAP_DISPLAY_TYPE_VENC;
dssdev->owner = THIS_MODULE;
dssdev->of_ports = BIT(1) | BIT(0);
 
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c 
b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
index 82035078377a..fb88537de1cc 100644
--- a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
+++ b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
@@ -84,7 +84,6 @@ static int tfp410_probe(struct platform_device *pdev)
dssdev->ops = _ops;
dssdev->dev = >dev;
dssdev->type =