aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/sdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/omap2/dss/sdi.c')
-rw-r--r--drivers/video/omap2/dss/sdi.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/sdi.c b/drivers/video/omap2/dss/sdi.c
index 919ff728c502..47f9fe4e1741 100644
--- a/drivers/video/omap2/dss/sdi.c
+++ b/drivers/video/omap2/dss/sdi.c
@@ -36,6 +36,8 @@ static struct {
36 struct dss_lcd_mgr_config mgr_config; 36 struct dss_lcd_mgr_config mgr_config;
37 struct omap_video_timings timings; 37 struct omap_video_timings timings;
38 int datapairs; 38 int datapairs;
39
40 struct omap_dss_output output;
39} sdi; 41} sdi;
40 42
41static void sdi_config_lcd_manager(struct omap_dss_device *dssdev) 43static void sdi_config_lcd_manager(struct omap_dss_device *dssdev)
@@ -255,8 +257,28 @@ static void __init sdi_probe_pdata(struct platform_device *sdidev)
255 } 257 }
256} 258}
257 259
260static void __init sdi_init_output(struct platform_device *pdev)
261{
262 struct omap_dss_output *out = &sdi.output;
263
264 out->pdev = pdev;
265 out->id = OMAP_DSS_OUTPUT_SDI;
266 out->type = OMAP_DISPLAY_TYPE_SDI;
267
268 dss_register_output(out);
269}
270
271static void __exit sdi_uninit_output(struct platform_device *pdev)
272{
273 struct omap_dss_output *out = &sdi.output;
274
275 dss_unregister_output(out);
276}
277
258static int __init omap_sdi_probe(struct platform_device *pdev) 278static int __init omap_sdi_probe(struct platform_device *pdev)
259{ 279{
280 sdi_init_output(pdev);
281
260 sdi_probe_pdata(pdev); 282 sdi_probe_pdata(pdev);
261 283
262 return 0; 284 return 0;
@@ -266,6 +288,8 @@ static int __exit omap_sdi_remove(struct platform_device *pdev)
266{ 288{
267 dss_unregister_child_devices(&pdev->dev); 289 dss_unregister_child_devices(&pdev->dev);
268 290
291 sdi_uninit_output(pdev);
292
269 return 0; 293 return 0;
270} 294}
271 295