@@ -986,7 +986,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>");
@@ -186,6 +186,26 @@ static inline u32 dispc_read_reg(const struct dispc_reg idx)
return __raw_readl(dispc.base + idx.idx);
}
+/* DISPC HW IP initialisation */
+static int omap_dispchw_probe(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static int omap_dispchw_remove(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static struct platform_driver omap_dispchw_driver = {
+ .probe = omap_dispchw_probe,
+ .remove = omap_dispchw_remove,
+ .driver = {
+ .name = "dss_dispc",
+ .owner = THIS_MODULE,
+ },
+};
+
#define SR(reg) \
dispc.ctx[(DISPC_##reg).idx / sizeof(u32)] = dispc_read_reg(DISPC_##reg)
#define RR(reg) \
@@ -3187,3 +3207,11 @@ int dispc_setup_plane(enum omap_plane plane,
return r;
}
+
+static int __init omap_dispc_init(void)
+{
+ return platform_driver_register(&omap_dispchw_driver);
+}
+
+device_initcall(omap_dispc_init);
+
@@ -292,6 +292,26 @@ static inline u32 dsi_read_reg(const struct dsi_reg idx)
return __raw_readl(dsi.base + idx.idx);
}
+/* DSI1 HW IP initialisation */
+static int omap_dsi1hw_probe(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static int omap_dsi1hw_remove(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static struct platform_driver omap_dsi1hw_driver = {
+ .probe = omap_dsi1hw_probe,
+ .remove = omap_dsi1hw_remove,
+ .driver = {
+ .name = "dss_dsi1",
+ .owner = THIS_MODULE,
+ },
+};
+
void dsi_save_context(void)
{
@@ -3305,3 +3325,11 @@ void dsi_exit(void)
DSSDBG("omap_dsi_exit\n");
}
+static int __init omap_dsi1_init(void)
+{
+ return platform_driver_register(&omap_dsi1hw_driver);
+}
+
+device_initcall(omap_dsi1_init);
+
+
@@ -86,6 +86,29 @@ static inline u32 dss_read_reg(const struct dss_reg idx)
return __raw_readl(dss.base + idx.idx);
}
+/* 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,
+ },
+};
+
#define SR(reg) \
dss.ctx[(DSS_##reg).idx / sizeof(u32)] = dss_read_reg(DSS_##reg)
#define RR(reg) \
@@ -639,3 +662,10 @@ void dss_exit(void)
iounmap(dss.base);
}
+static int __init omap_dss_init1(void)
+{
+ return platform_driver_register(&omap_dsshw_driver);
+}
+
+arch_initcall(omap_dss_init1);
+
@@ -139,6 +139,27 @@ static inline u32 rfbi_read_reg(const struct rfbi_reg idx)
return __raw_readl(rfbi.base + idx.idx);
}
+/* RFBI HW IP initialisation */
+static int omap_rfbihw_probe(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static int omap_rfbihw_remove(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static struct platform_driver omap_rfbihw_driver = {
+ .probe = omap_rfbihw_probe,
+ .remove = omap_rfbihw_remove,
+ .driver = {
+ .name = "dss_rfbi",
+ .owner = THIS_MODULE,
+ },
+};
+
+
static void rfbi_enable_clocks(bool enable)
{
if (enable)
@@ -1054,3 +1075,11 @@ int rfbi_init_display(struct omap_dss_device *dssdev)
dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE;
return 0;
}
+
+static int __init omap_rfbi_init(void)
+{
+ return platform_driver_register(&omap_rfbihw_driver);
+}
+
+device_initcall(omap_rfbi_init);
+
@@ -87,6 +87,26 @@
#define VENC_OUTPUT_TEST 0xC8
#define VENC_DAC_B__DAC_C 0xC8
+/* VENC HW IP initialisation */
+static int omap_venchw_probe(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static int omap_venchw_remove(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static struct platform_driver omap_venchw_driver = {
+ .probe = omap_venchw_probe,
+ .remove = omap_venchw_remove,
+ .driver = {
+ .name = "dss_venc",
+ .owner = THIS_MODULE,
+ },
+};
+
struct venc_config {
u32 f_control;
u32 vidout_ctrl;
@@ -740,3 +760,11 @@ void venc_dump_regs(struct seq_file *s)
#undef DUMPREG
}
+
+static int __init omap_venc_init(void)
+{
+ return platform_driver_register(&omap_venchw_driver);
+}
+
+device_initcall(omap_venc_init);
+