Re: [PATCH 30/29] drm/omap: Merge omap_dss_device type and output_type fields
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
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 =