aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/hdmi.c
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2012-12-07 05:50:08 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-12-07 09:55:04 -0500
commit486c0e17b7d1a4f8f057a97f2e48f715208f950d (patch)
treed8ece0b76b86b47973921d33f5971d3a5be5d79a /drivers/video/omap2/dss/hdmi.c
parent09a8c45cbb872f5e861c4385d6967d0aa7f637f1 (diff)
OMAPDSS: manage output-dssdev connection in output drivers
We currently attach an output to a dssdev in the initialization code for dssdevices in display.c. This works, but doesn't quite make sense: an output entity represents (surprisingly) an output of DSS, which is managed by an output driver. The output driver also handles adding new dssdev's for that particular output. It makes more sense to make the output-dssdev connection in the output driver. This is also in line with common display framework. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/hdmi.c')
-rw-r--r--drivers/video/omap2/dss/hdmi.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
index 24a2eefb7e8c..769d0828581c 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -1026,9 +1026,18 @@ static void __init hdmi_probe_pdata(struct platform_device *pdev)
1026 return; 1026 return;
1027 } 1027 }
1028 1028
1029 r = omapdss_output_set_device(&hdmi.output, dssdev);
1030 if (r) {
1031 DSSERR("failed to connect output to new device: %s\n",
1032 dssdev->name);
1033 dss_put_device(dssdev);
1034 return;
1035 }
1036
1029 r = dss_add_device(dssdev); 1037 r = dss_add_device(dssdev);
1030 if (r) { 1038 if (r) {
1031 DSSERR("device %s register failed: %d\n", dssdev->name, r); 1039 DSSERR("device %s register failed: %d\n", dssdev->name, r);
1040 omapdss_output_unset_device(&hdmi.output);
1032 hdmi_uninit_display(dssdev); 1041 hdmi_uninit_display(dssdev);
1033 dss_put_device(dssdev); 1042 dss_put_device(dssdev);
1034 return; 1043 return;