aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/core.c
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@nokia.com>2010-02-17 06:36:48 -0500
committerTomi Valkeinen <tomi.valkeinen@nokia.com>2010-02-18 06:19:41 -0500
commite020f9af6d8311cd935217219f49175e161be100 (patch)
tree22fe43864e3238b8c51a12b3d4cf25202c7ec0f3 /drivers/video/omap2/dss/core.c
parente296264977f68ddf395b8f93f8e174930f88499a (diff)
OMAP: DSS2: remove sub-panel system
The system to allow panel drivers to exists as attached to ctrl drivers did never work very well. It is not useed, and this patch removes it to make the driver cleaner. For now, controller drivers need to include also the panel driver code. In the future a proper mechanism for this should be developed, perhaps by creating busses for controllers. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Diffstat (limited to 'drivers/video/omap2/dss/core.c')
-rw-r--r--drivers/video/omap2/dss/core.c35
1 files changed, 3 insertions, 32 deletions
diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c
index 72547dfc56b8..967cbda1fd72 100644
--- a/drivers/video/omap2/dss/core.c
+++ b/drivers/video/omap2/dss/core.c
@@ -771,11 +771,8 @@ static int dss_driver_probe(struct device *dev)
771 771
772 dss_init_device(core.pdev, dssdev); 772 dss_init_device(core.pdev, dssdev);
773 773
774 /* skip this if the device is behind a ctrl */ 774 force = pdata->default_device == dssdev;
775 if (!dssdev->panel.ctrl) { 775 dss_recheck_connections(dssdev, force);
776 force = pdata->default_device == dssdev;
777 dss_recheck_connections(dssdev, force);
778 }
779 776
780 r = dssdrv->probe(dssdev); 777 r = dssdrv->probe(dssdev);
781 778
@@ -861,8 +858,6 @@ static void omap_dss_dev_release(struct device *dev)
861int omap_dss_register_device(struct omap_dss_device *dssdev) 858int omap_dss_register_device(struct omap_dss_device *dssdev)
862{ 859{
863 static int dev_num; 860 static int dev_num;
864 static int panel_num;
865 int r;
866 861
867 WARN_ON(!dssdev->driver_name); 862 WARN_ON(!dssdev->driver_name);
868 863
@@ -871,36 +866,12 @@ int omap_dss_register_device(struct omap_dss_device *dssdev)
871 dssdev->dev.parent = &dss_bus; 866 dssdev->dev.parent = &dss_bus;
872 dssdev->dev.release = omap_dss_dev_release; 867 dssdev->dev.release = omap_dss_dev_release;
873 dev_set_name(&dssdev->dev, "display%d", dev_num++); 868 dev_set_name(&dssdev->dev, "display%d", dev_num++);
874 r = device_register(&dssdev->dev); 869 return device_register(&dssdev->dev);
875 if (r)
876 return r;
877
878 if (dssdev->ctrl.panel) {
879 struct omap_dss_device *panel = dssdev->ctrl.panel;
880
881 panel->panel.ctrl = dssdev;
882
883 reset_device(&panel->dev, 1);
884 panel->dev.bus = &dss_bus_type;
885 panel->dev.parent = &dssdev->dev;
886 panel->dev.release = omap_dss_dev_release;
887 dev_set_name(&panel->dev, "panel%d", panel_num++);
888 r = device_register(&panel->dev);
889 if (r)
890 return r;
891 }
892
893 return 0;
894} 870}
895 871
896void omap_dss_unregister_device(struct omap_dss_device *dssdev) 872void omap_dss_unregister_device(struct omap_dss_device *dssdev)
897{ 873{
898 device_unregister(&dssdev->dev); 874 device_unregister(&dssdev->dev);
899
900 if (dssdev->ctrl.panel) {
901 struct omap_dss_device *panel = dssdev->ctrl.panel;
902 device_unregister(&panel->dev);
903 }
904} 875}
905 876
906/* BUS */ 877/* BUS */