aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2018-12-10 07:00:38 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2019-03-18 05:42:13 -0400
commit0dbfc396672025d3ef8bacc934b80a5463e75c6d (patch)
tree91ac4d0771a6996daf7c40c0d695cbd2ef1aed2f /drivers/gpu/drm
parenta4e26525cacb5154a0e00415aa3f889ee5d295db (diff)
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 <laurent.pinchart@ideasonboard.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com> Tested-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/connector-dvi.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/connector-hdmi.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/encoder-opa362.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-dpi.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c1
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c1
-rw-r--r--drivers/gpu/drm/omapdrm/dss/base.c2
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dpi.c2
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dsi.c2
-rw-r--r--drivers/gpu/drm/omapdrm/dss/hdmi4.c2
-rw-r--r--drivers/gpu/drm/omapdrm/dss/hdmi5.c2
-rw-r--r--drivers/gpu/drm/omapdrm/dss/omapdss.h14
-rw-r--r--drivers/gpu/drm/omapdrm/dss/output.c2
-rw-r--r--drivers/gpu/drm/omapdrm/dss/sdi.c2
-rw-r--r--drivers/gpu/drm/omapdrm/dss/venc.c2
-rw-r--r--drivers/gpu/drm/omapdrm/omap_crtc.c2
-rw-r--r--drivers/gpu/drm/omapdrm/omap_encoder.c6
25 files changed, 32 insertions, 20 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)
56 dssdev->ops = &tvc_ops; 56 dssdev->ops = &tvc_ops;
57 dssdev->dev = &pdev->dev; 57 dssdev->dev = &pdev->dev;
58 dssdev->type = OMAP_DISPLAY_TYPE_VENC; 58 dssdev->type = OMAP_DISPLAY_TYPE_VENC;
59 dssdev->display = true;
59 dssdev->owner = THIS_MODULE; 60 dssdev->owner = THIS_MODULE;
60 dssdev->of_ports = BIT(0); 61 dssdev->of_ports = BIT(0);
61 62
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)
239 dssdev->ops = &dvic_ops; 239 dssdev->ops = &dvic_ops;
240 dssdev->dev = &pdev->dev; 240 dssdev->dev = &pdev->dev;
241 dssdev->type = OMAP_DISPLAY_TYPE_DVI; 241 dssdev->type = OMAP_DISPLAY_TYPE_DVI;
242 dssdev->display = true;
242 dssdev->owner = THIS_MODULE; 243 dssdev->owner = THIS_MODULE;
243 dssdev->of_ports = BIT(0); 244 dssdev->of_ports = BIT(0);
244 245
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)
140 dssdev->ops = &hdmic_ops; 140 dssdev->ops = &hdmic_ops;
141 dssdev->dev = &pdev->dev; 141 dssdev->dev = &pdev->dev;
142 dssdev->type = OMAP_DISPLAY_TYPE_HDMI; 142 dssdev->type = OMAP_DISPLAY_TYPE_HDMI;
143 dssdev->display = true;
143 dssdev->owner = THIS_MODULE; 144 dssdev->owner = THIS_MODULE;
144 dssdev->of_ports = BIT(0); 145 dssdev->of_ports = BIT(0);
145 dssdev->ops_flags = ddata->hpd_gpio 146 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)
88 dssdev->ops = &opa362_ops; 88 dssdev->ops = &opa362_ops;
89 dssdev->dev = &pdev->dev; 89 dssdev->dev = &pdev->dev;
90 dssdev->type = OMAP_DISPLAY_TYPE_VENC; 90 dssdev->type = OMAP_DISPLAY_TYPE_VENC;
91 dssdev->output_type = OMAP_DISPLAY_TYPE_VENC;
92 dssdev->owner = THIS_MODULE; 91 dssdev->owner = THIS_MODULE;
93 dssdev->of_ports = BIT(1) | BIT(0); 92 dssdev->of_ports = BIT(1) | BIT(0);
94 93
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)
84 dssdev->ops = &tfp410_ops; 84 dssdev->ops = &tfp410_ops;
85 dssdev->dev = &pdev->dev; 85 dssdev->dev = &pdev->dev;
86 dssdev->type = OMAP_DISPLAY_TYPE_DPI; 86 dssdev->type = OMAP_DISPLAY_TYPE_DPI;
87 dssdev->output_type = OMAP_DISPLAY_TYPE_DVI;
88 dssdev->owner = THIS_MODULE; 87 dssdev->owner = THIS_MODULE;
89 dssdev->of_ports = BIT(1) | BIT(0); 88 dssdev->of_ports = BIT(1) | BIT(0);
90 dssdev->bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_SYNC_POSEDGE 89 dssdev->bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_SYNC_POSEDGE
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c
index ced36718a95f..bc03752d2762 100644
--- a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c
+++ b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c
@@ -167,7 +167,6 @@ static int tpd_probe(struct platform_device *pdev)
167 dssdev->ops = &tpd_ops; 167 dssdev->ops = &tpd_ops;
168 dssdev->dev = &pdev->dev; 168 dssdev->dev = &pdev->dev;
169 dssdev->type = OMAP_DISPLAY_TYPE_HDMI; 169 dssdev->type = OMAP_DISPLAY_TYPE_HDMI;
170 dssdev->output_type = OMAP_DISPLAY_TYPE_HDMI;
171 dssdev->owner = THIS_MODULE; 170 dssdev->owner = THIS_MODULE;
172 dssdev->of_ports = BIT(1) | BIT(0); 171 dssdev->of_ports = BIT(1) | BIT(0);
173 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_DETECT 172 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_DETECT
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
index 897b8820e000..389ae2821222 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
@@ -150,6 +150,7 @@ static int panel_dpi_probe(struct platform_device *pdev)
150 dssdev->dev = &pdev->dev; 150 dssdev->dev = &pdev->dev;
151 dssdev->ops = &panel_dpi_ops; 151 dssdev->ops = &panel_dpi_ops;
152 dssdev->type = OMAP_DISPLAY_TYPE_DPI; 152 dssdev->type = OMAP_DISPLAY_TYPE_DPI;
153 dssdev->display = true;
153 dssdev->owner = THIS_MODULE; 154 dssdev->owner = THIS_MODULE;
154 dssdev->of_ports = BIT(0); 155 dssdev->of_ports = BIT(0);
155 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES; 156 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
index d9f10f41ddfb..741a5e324767 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
@@ -1272,6 +1272,7 @@ static int dsicm_probe(struct platform_device *pdev)
1272 dssdev->ops = &dsicm_ops; 1272 dssdev->ops = &dsicm_ops;
1273 dssdev->driver = &dsicm_dss_driver; 1273 dssdev->driver = &dsicm_dss_driver;
1274 dssdev->type = OMAP_DISPLAY_TYPE_DSI; 1274 dssdev->type = OMAP_DISPLAY_TYPE_DSI;
1275 dssdev->display = true;
1275 dssdev->owner = THIS_MODULE; 1276 dssdev->owner = THIS_MODULE;
1276 dssdev->of_ports = BIT(0); 1277 dssdev->of_ports = BIT(0);
1277 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES; 1278 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
index f37931bf1c5f..4133351924be 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
@@ -197,6 +197,7 @@ static int lb035q02_panel_spi_probe(struct spi_device *spi)
197 dssdev->dev = &spi->dev; 197 dssdev->dev = &spi->dev;
198 dssdev->ops = &lb035q02_ops; 198 dssdev->ops = &lb035q02_ops;
199 dssdev->type = OMAP_DISPLAY_TYPE_DPI; 199 dssdev->type = OMAP_DISPLAY_TYPE_DPI;
200 dssdev->display = true;
200 dssdev->owner = THIS_MODULE; 201 dssdev->owner = THIS_MODULE;
201 dssdev->of_ports = BIT(0); 202 dssdev->of_ports = BIT(0);
202 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES; 203 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
index 8f2fb3d0492f..498a88307f04 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
@@ -192,6 +192,7 @@ static int nec_8048_probe(struct spi_device *spi)
192 dssdev->dev = &spi->dev; 192 dssdev->dev = &spi->dev;
193 dssdev->ops = &nec_8048_ops; 193 dssdev->ops = &nec_8048_ops;
194 dssdev->type = OMAP_DISPLAY_TYPE_DPI; 194 dssdev->type = OMAP_DISPLAY_TYPE_DPI;
195 dssdev->display = true;
195 dssdev->owner = THIS_MODULE; 196 dssdev->owner = THIS_MODULE;
196 dssdev->of_ports = BIT(0); 197 dssdev->of_ports = BIT(0);
197 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES; 198 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
index 8d5d7f775b55..1e68e0d14f87 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
@@ -207,6 +207,7 @@ static int sharp_ls_probe(struct platform_device *pdev)
207 dssdev->dev = &pdev->dev; 207 dssdev->dev = &pdev->dev;
208 dssdev->ops = &sharp_ls_ops; 208 dssdev->ops = &sharp_ls_ops;
209 dssdev->type = OMAP_DISPLAY_TYPE_DPI; 209 dssdev->type = OMAP_DISPLAY_TYPE_DPI;
210 dssdev->display = true;
210 dssdev->owner = THIS_MODULE; 211 dssdev->owner = THIS_MODULE;
211 dssdev->of_ports = BIT(0); 212 dssdev->of_ports = BIT(0);
212 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES; 213 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
index b8360cef3754..abee0b348cff 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
@@ -706,6 +706,7 @@ static int acx565akm_probe(struct spi_device *spi)
706 dssdev->dev = &spi->dev; 706 dssdev->dev = &spi->dev;
707 dssdev->ops = &acx565akm_ops; 707 dssdev->ops = &acx565akm_ops;
708 dssdev->type = OMAP_DISPLAY_TYPE_SDI; 708 dssdev->type = OMAP_DISPLAY_TYPE_SDI;
709 dssdev->display = true;
709 dssdev->owner = THIS_MODULE; 710 dssdev->owner = THIS_MODULE;
710 dssdev->of_ports = BIT(0); 711 dssdev->of_ports = BIT(0);
711 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES; 712 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
index 721c5bb3bdef..5b4fbcc196bc 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
@@ -321,6 +321,7 @@ static int td028ttec1_panel_probe(struct spi_device *spi)
321 dssdev->dev = &spi->dev; 321 dssdev->dev = &spi->dev;
322 dssdev->ops = &td028ttec1_ops; 322 dssdev->ops = &td028ttec1_ops;
323 dssdev->type = OMAP_DISPLAY_TYPE_DPI; 323 dssdev->type = OMAP_DISPLAY_TYPE_DPI;
324 dssdev->display = true;
324 dssdev->owner = THIS_MODULE; 325 dssdev->owner = THIS_MODULE;
325 dssdev->of_ports = BIT(0); 326 dssdev->of_ports = BIT(0);
326 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES; 327 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
index 50960018dbe8..781dc8b0afe7 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
@@ -420,6 +420,7 @@ static int tpo_td043_probe(struct spi_device *spi)
420 dssdev->dev = &spi->dev; 420 dssdev->dev = &spi->dev;
421 dssdev->ops = &tpo_td043_ops; 421 dssdev->ops = &tpo_td043_ops;
422 dssdev->type = OMAP_DISPLAY_TYPE_DPI; 422 dssdev->type = OMAP_DISPLAY_TYPE_DPI;
423 dssdev->display = true;
423 dssdev->owner = THIS_MODULE; 424 dssdev->owner = THIS_MODULE;
424 dssdev->of_ports = BIT(0); 425 dssdev->of_ports = BIT(0);
425 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES; 426 dssdev->ops_flags = OMAP_DSS_DEVICE_OP_MODES;
diff --git a/drivers/gpu/drm/omapdrm/dss/base.c b/drivers/gpu/drm/omapdrm/dss/base.c
index d14abde3c5f0..81ea0f55cd75 100644
--- a/drivers/gpu/drm/omapdrm/dss/base.c
+++ b/drivers/gpu/drm/omapdrm/dss/base.c
@@ -207,7 +207,7 @@ void omapdss_device_disconnect(struct omap_dss_device *src,
207 dev_dbg(dst->dev, "disconnect\n"); 207 dev_dbg(dst->dev, "disconnect\n");
208 208
209 if (!dst->id && !omapdss_device_is_connected(dst)) { 209 if (!dst->id && !omapdss_device_is_connected(dst)) {
210 WARN_ON(dst->output_type); 210 WARN_ON(!dst->display);
211 return; 211 return;
212 } 212 }
213 213
diff --git a/drivers/gpu/drm/omapdrm/dss/dpi.c b/drivers/gpu/drm/omapdrm/dss/dpi.c
index 295bc3eeea80..cc78dfa07f04 100644
--- a/drivers/gpu/drm/omapdrm/dss/dpi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dpi.c
@@ -634,7 +634,7 @@ static int dpi_init_output_port(struct dpi_data *dpi, struct device_node *port)
634 634
635 out->dev = &dpi->pdev->dev; 635 out->dev = &dpi->pdev->dev;
636 out->id = OMAP_DSS_OUTPUT_DPI; 636 out->id = OMAP_DSS_OUTPUT_DPI;
637 out->output_type = OMAP_DISPLAY_TYPE_DPI; 637 out->type = OMAP_DISPLAY_TYPE_DPI;
638 out->dispc_channel = dpi_get_channel(dpi); 638 out->dispc_channel = dpi_get_channel(dpi);
639 out->of_ports = BIT(port_num); 639 out->of_ports = BIT(port_num);
640 out->ops = &dpi_ops; 640 out->ops = &dpi_ops;
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
index 4ac325e664b5..2582b566e0b0 100644
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -5121,7 +5121,7 @@ static int dsi_init_output(struct dsi_data *dsi)
5121 out->id = dsi->module_id == 0 ? 5121 out->id = dsi->module_id == 0 ?
5122 OMAP_DSS_OUTPUT_DSI1 : OMAP_DSS_OUTPUT_DSI2; 5122 OMAP_DSS_OUTPUT_DSI1 : OMAP_DSS_OUTPUT_DSI2;
5123 5123
5124 out->output_type = OMAP_DISPLAY_TYPE_DSI; 5124 out->type = OMAP_DISPLAY_TYPE_DSI;
5125 out->name = dsi->module_id == 0 ? "dsi.0" : "dsi.1"; 5125 out->name = dsi->module_id == 0 ? "dsi.0" : "dsi.1";
5126 out->dispc_channel = dsi_get_channel(dsi); 5126 out->dispc_channel = dsi_get_channel(dsi);
5127 out->ops = &dsi_ops; 5127 out->ops = &dsi_ops;
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
index 4337380b1bf7..6339e2756b34 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
@@ -679,7 +679,7 @@ static int hdmi4_init_output(struct omap_hdmi *hdmi)
679 679
680 out->dev = &hdmi->pdev->dev; 680 out->dev = &hdmi->pdev->dev;
681 out->id = OMAP_DSS_OUTPUT_HDMI; 681 out->id = OMAP_DSS_OUTPUT_HDMI;
682 out->output_type = OMAP_DISPLAY_TYPE_HDMI; 682 out->type = OMAP_DISPLAY_TYPE_HDMI;
683 out->name = "hdmi.0"; 683 out->name = "hdmi.0";
684 out->dispc_channel = OMAP_DSS_CHANNEL_DIGIT; 684 out->dispc_channel = OMAP_DSS_CHANNEL_DIGIT;
685 out->ops = &hdmi_ops; 685 out->ops = &hdmi_ops;
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5.c b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
index b94f884c5c1a..2955bbad13bb 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi5.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
@@ -663,7 +663,7 @@ static int hdmi5_init_output(struct omap_hdmi *hdmi)
663 663
664 out->dev = &hdmi->pdev->dev; 664 out->dev = &hdmi->pdev->dev;
665 out->id = OMAP_DSS_OUTPUT_HDMI; 665 out->id = OMAP_DSS_OUTPUT_HDMI;
666 out->output_type = OMAP_DISPLAY_TYPE_HDMI; 666 out->type = OMAP_DISPLAY_TYPE_HDMI;
667 out->name = "hdmi.0"; 667 out->name = "hdmi.0";
668 out->dispc_channel = OMAP_DSS_CHANNEL_DIGIT; 668 out->dispc_channel = OMAP_DSS_CHANNEL_DIGIT;
669 out->ops = &hdmi_ops; 669 out->ops = &hdmi_ops;
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
index d13a6b5774e8..ab5467a1e92c 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
@@ -413,14 +413,18 @@ struct omap_dss_device {
413 413
414 struct list_head list; 414 struct list_head list;
415 415
416 /*
417 * DSS type that this device generates (for DSS internal devices) or
418 * requires (for external encoders, connectors and panels). Must be a
419 * non-zero (different than OMAP_DISPLAY_TYPE_NONE) value.
420 */
416 enum omap_display_type type; 421 enum omap_display_type type;
422
417 /* 423 /*
418 * DSS output type that this device generates (for DSS internal devices) 424 * True if the device is a display (panel or connector) at the end of
419 * or requires (for external encoders). Must be OMAP_DISPLAY_TYPE_NONE 425 * the pipeline, false otherwise.
420 * for display devices (connectors and panels) and to non-zero value for
421 * all other devices.
422 */ 426 */
423 enum omap_display_type output_type; 427 bool display;
424 428
425 const char *name; 429 const char *name;
426 430
diff --git a/drivers/gpu/drm/omapdrm/dss/output.c b/drivers/gpu/drm/omapdrm/dss/output.c
index 0ac400a521f3..f25ecfd26534 100644
--- a/drivers/gpu/drm/omapdrm/dss/output.c
+++ b/drivers/gpu/drm/omapdrm/dss/output.c
@@ -33,7 +33,7 @@ int omapdss_device_init_output(struct omap_dss_device *out)
33 return PTR_ERR(out->next); 33 return PTR_ERR(out->next);
34 } 34 }
35 35
36 if (out->next && out->output_type != out->next->type) { 36 if (out->next && out->type != out->next->type) {
37 dev_err(out->dev, "output type and display type don't match\n"); 37 dev_err(out->dev, "output type and display type don't match\n");
38 return -EINVAL; 38 return -EINVAL;
39 } 39 }
diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c
index 38b0bf19538d..e7945322c471 100644
--- a/drivers/gpu/drm/omapdrm/dss/sdi.c
+++ b/drivers/gpu/drm/omapdrm/dss/sdi.c
@@ -272,7 +272,7 @@ static int sdi_init_output(struct sdi_device *sdi)
272 272
273 out->dev = &sdi->pdev->dev; 273 out->dev = &sdi->pdev->dev;
274 out->id = OMAP_DSS_OUTPUT_SDI; 274 out->id = OMAP_DSS_OUTPUT_SDI;
275 out->output_type = OMAP_DISPLAY_TYPE_SDI; 275 out->type = OMAP_DISPLAY_TYPE_SDI;
276 out->name = "sdi.0"; 276 out->name = "sdi.0";
277 out->dispc_channel = OMAP_DSS_CHANNEL_LCD; 277 out->dispc_channel = OMAP_DSS_CHANNEL_LCD;
278 /* We have SDI only on OMAP3, where it's on port 1 */ 278 /* We have SDI only on OMAP3, where it's on port 1 */
diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c b/drivers/gpu/drm/omapdrm/dss/venc.c
index f2cbecfd05b5..da43b865d973 100644
--- a/drivers/gpu/drm/omapdrm/dss/venc.c
+++ b/drivers/gpu/drm/omapdrm/dss/venc.c
@@ -760,7 +760,7 @@ static int venc_init_output(struct venc_device *venc)
760 760
761 out->dev = &venc->pdev->dev; 761 out->dev = &venc->pdev->dev;
762 out->id = OMAP_DSS_OUTPUT_VENC; 762 out->id = OMAP_DSS_OUTPUT_VENC;
763 out->output_type = OMAP_DISPLAY_TYPE_VENC; 763 out->type = OMAP_DISPLAY_TYPE_VENC;
764 out->name = "venc.0"; 764 out->name = "venc.0";
765 out->dispc_channel = OMAP_DSS_CHANNEL_DIGIT; 765 out->dispc_channel = OMAP_DSS_CHANNEL_DIGIT;
766 out->ops = &venc_ops; 766 out->ops = &venc_ops;
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index ae399435346b..1353aec73611 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -128,7 +128,7 @@ static void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable)
128 if (WARN_ON(omap_crtc->enabled == enable)) 128 if (WARN_ON(omap_crtc->enabled == enable))
129 return; 129 return;
130 130
131 if (omap_crtc->pipe->output->output_type == OMAP_DISPLAY_TYPE_HDMI) { 131 if (omap_crtc->pipe->output->type == OMAP_DISPLAY_TYPE_HDMI) {
132 priv->dispc_ops->mgr_enable(priv->dispc, channel, enable); 132 priv->dispc_ops->mgr_enable(priv->dispc, channel, enable);
133 omap_crtc->enabled = enable; 133 omap_crtc->enabled = enable;
134 return; 134 return;
diff --git a/drivers/gpu/drm/omapdrm/omap_encoder.c b/drivers/gpu/drm/omapdrm/omap_encoder.c
index 367234de5dc7..42748479d374 100644
--- a/drivers/gpu/drm/omapdrm/omap_encoder.c
+++ b/drivers/gpu/drm/omapdrm/omap_encoder.c
@@ -138,7 +138,7 @@ static void omap_encoder_mode_set(struct drm_encoder *encoder,
138 } 138 }
139 139
140 /* Set the HDMI mode and HDMI infoframe if applicable. */ 140 /* Set the HDMI mode and HDMI infoframe if applicable. */
141 if (omap_encoder->output->output_type == OMAP_DISPLAY_TYPE_HDMI) 141 if (omap_encoder->output->type == OMAP_DISPLAY_TYPE_HDMI)
142 omap_encoder_hdmi_mode_set(encoder, adjusted_mode); 142 omap_encoder_hdmi_mode_set(encoder, adjusted_mode);
143} 143}
144 144
@@ -161,7 +161,7 @@ static void omap_encoder_disable(struct drm_encoder *encoder)
161 * DSI is treated as an exception as DSI pipelines still use the legacy 161 * DSI is treated as an exception as DSI pipelines still use the legacy
162 * flow where the pipeline output controls the encoder. 162 * flow where the pipeline output controls the encoder.
163 */ 163 */
164 if (dssdev->output_type != OMAP_DISPLAY_TYPE_DSI) { 164 if (dssdev->type != OMAP_DISPLAY_TYPE_DSI) {
165 dssdev->ops->disable(dssdev); 165 dssdev->ops->disable(dssdev);
166 dssdev->state = OMAP_DSS_DISPLAY_DISABLED; 166 dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
167 } 167 }
@@ -189,7 +189,7 @@ static void omap_encoder_enable(struct drm_encoder *encoder)
189 * DSI is treated as an exception as DSI pipelines still use the legacy 189 * DSI is treated as an exception as DSI pipelines still use the legacy
190 * flow where the pipeline output controls the encoder. 190 * flow where the pipeline output controls the encoder.
191 */ 191 */
192 if (dssdev->output_type != OMAP_DISPLAY_TYPE_DSI) { 192 if (dssdev->type != OMAP_DISPLAY_TYPE_DSI) {
193 dssdev->ops->enable(dssdev); 193 dssdev->ops->enable(dssdev);
194 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; 194 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
195 } 195 }