@@ -707,17 +707,6 @@ static int omap_dss_resume(struct platform_device *pdev)
return dss_resume_all_devices();
}
-/* DSS HW IP initialisation */
-static int omap_dsshw_probe(struct platform_device *pdev)
-{
- return 0;
-}
-
-static int omap_dsshw_remove(struct platform_device *pdev)
-{
- return 0;
-}
-
/* DISPC HW IP initialisation */
static int omap_dispchw_probe(struct platform_device *pdev)
{
@@ -775,18 +764,6 @@ static struct platform_driver omap_dss_driver = {
},
};
-static struct platform_driver omap_dsshw_driver = {
- .probe = omap_dsshw_probe,
- .remove = omap_dsshw_remove,
- .shutdown = NULL,
- .suspend = NULL,
- .resume = NULL,
- .driver = {
- .name = "dss",
- .owner = THIS_MODULE,
- },
-};
-
static struct platform_driver omap_dispchw_driver = {
.probe = omap_dispchw_probe,
.remove = omap_dispchw_remove,
@@ -1100,7 +1077,6 @@ static int __init omap_dss_init(void)
static int __init omap_dss_init2(void)
{
- platform_driver_register(&omap_dsshw_driver);
platform_driver_register(&omap_dispchw_driver);
platform_driver_register(&omap_dsi1hw_driver);
platform_driver_register(&omap_rfbihw_driver);
@@ -1109,7 +1085,7 @@ static int __init omap_dss_init2(void)
}
core_initcall(omap_dss_init);
-device_initcall(omap_dss_init2);
+device_initcall_sync(omap_dss_init2);
#endif
MODULE_AUTHOR("Tomi Valkeinen <tomi.valkeinen@nokia.com>");
@@ -122,6 +122,29 @@ void dss_restore_context(void)
#undef SR
#undef RR
+/* DSS HW IP initialisation */
+static int omap_dsshw_probe(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static int omap_dsshw_remove(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static struct platform_driver omap_dsshw_driver = {
+ .probe = omap_dsshw_probe,
+ .remove = omap_dsshw_remove,
+ .shutdown = NULL,
+ .suspend = NULL,
+ .resume = NULL,
+ .driver = {
+ .name = "dss",
+ .owner = THIS_MODULE,
+ },
+};
+
void dss_sdi_init(u8 datapairs)
{
u32 l;
@@ -633,3 +656,9 @@ void dss_exit(void)
iounmap(dss.base);
}
+static int __init omap_dss_init1(void)
+{
+ return platform_driver_register(&omap_dsshw_driver);
+}
+
+device_initcall(omap_dss_init1);