|
@@ -183,42 +183,6 @@ static int omap_dss_probe(struct platform_device *pdev)
|
|
|
dss_init_overlay_managers(pdev);
|
|
|
dss_init_overlays(pdev);
|
|
|
|
|
|
- r = dss_init_platform_driver();
|
|
|
- if (r) {
|
|
|
- DSSERR("Failed to initialize DSS platform driver\n");
|
|
|
- goto err_dss;
|
|
|
- }
|
|
|
-
|
|
|
- r = dispc_init_platform_driver();
|
|
|
- if (r) {
|
|
|
- DSSERR("Failed to initialize dispc platform driver\n");
|
|
|
- goto err_dispc;
|
|
|
- }
|
|
|
-
|
|
|
- r = rfbi_init_platform_driver();
|
|
|
- if (r) {
|
|
|
- DSSERR("Failed to initialize rfbi platform driver\n");
|
|
|
- goto err_rfbi;
|
|
|
- }
|
|
|
-
|
|
|
- r = venc_init_platform_driver();
|
|
|
- if (r) {
|
|
|
- DSSERR("Failed to initialize venc platform driver\n");
|
|
|
- goto err_venc;
|
|
|
- }
|
|
|
-
|
|
|
- r = dsi_init_platform_driver();
|
|
|
- if (r) {
|
|
|
- DSSERR("Failed to initialize DSI platform driver\n");
|
|
|
- goto err_dsi;
|
|
|
- }
|
|
|
-
|
|
|
- r = hdmi_init_platform_driver();
|
|
|
- if (r) {
|
|
|
- DSSERR("Failed to initialize hdmi\n");
|
|
|
- goto err_hdmi;
|
|
|
- }
|
|
|
-
|
|
|
r = dss_initialize_debugfs();
|
|
|
if (r)
|
|
|
goto err_debugfs;
|
|
@@ -246,18 +210,6 @@ static int omap_dss_probe(struct platform_device *pdev)
|
|
|
err_register:
|
|
|
dss_uninitialize_debugfs();
|
|
|
err_debugfs:
|
|
|
- hdmi_uninit_platform_driver();
|
|
|
-err_hdmi:
|
|
|
- dsi_uninit_platform_driver();
|
|
|
-err_dsi:
|
|
|
- venc_uninit_platform_driver();
|
|
|
-err_venc:
|
|
|
- dispc_uninit_platform_driver();
|
|
|
-err_dispc:
|
|
|
- rfbi_uninit_platform_driver();
|
|
|
-err_rfbi:
|
|
|
- dss_uninit_platform_driver();
|
|
|
-err_dss:
|
|
|
|
|
|
return r;
|
|
|
}
|
|
@@ -269,13 +221,6 @@ static int omap_dss_remove(struct platform_device *pdev)
|
|
|
|
|
|
dss_uninitialize_debugfs();
|
|
|
|
|
|
- hdmi_uninit_platform_driver();
|
|
|
- dsi_uninit_platform_driver();
|
|
|
- venc_uninit_platform_driver();
|
|
|
- rfbi_uninit_platform_driver();
|
|
|
- dispc_uninit_platform_driver();
|
|
|
- dss_uninit_platform_driver();
|
|
|
-
|
|
|
dss_uninit_overlays(pdev);
|
|
|
dss_uninit_overlay_managers(pdev);
|
|
|
|
|
@@ -525,6 +470,80 @@ static int omap_dss_bus_register(void)
|
|
|
|
|
|
/* INIT */
|
|
|
|
|
|
+static int __init omap_dss_register_drivers(void)
|
|
|
+{
|
|
|
+ int r;
|
|
|
+
|
|
|
+ r = platform_driver_register(&omap_dss_driver);
|
|
|
+ if (r)
|
|
|
+ return r;
|
|
|
+
|
|
|
+ r = dss_init_platform_driver();
|
|
|
+ if (r) {
|
|
|
+ DSSERR("Failed to initialize DSS platform driver\n");
|
|
|
+ goto err_dss;
|
|
|
+ }
|
|
|
+
|
|
|
+ r = dispc_init_platform_driver();
|
|
|
+ if (r) {
|
|
|
+ DSSERR("Failed to initialize dispc platform driver\n");
|
|
|
+ goto err_dispc;
|
|
|
+ }
|
|
|
+
|
|
|
+ r = rfbi_init_platform_driver();
|
|
|
+ if (r) {
|
|
|
+ DSSERR("Failed to initialize rfbi platform driver\n");
|
|
|
+ goto err_rfbi;
|
|
|
+ }
|
|
|
+
|
|
|
+ r = venc_init_platform_driver();
|
|
|
+ if (r) {
|
|
|
+ DSSERR("Failed to initialize venc platform driver\n");
|
|
|
+ goto err_venc;
|
|
|
+ }
|
|
|
+
|
|
|
+ r = dsi_init_platform_driver();
|
|
|
+ if (r) {
|
|
|
+ DSSERR("Failed to initialize DSI platform driver\n");
|
|
|
+ goto err_dsi;
|
|
|
+ }
|
|
|
+
|
|
|
+ r = hdmi_init_platform_driver();
|
|
|
+ if (r) {
|
|
|
+ DSSERR("Failed to initialize hdmi\n");
|
|
|
+ goto err_hdmi;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+
|
|
|
+err_hdmi:
|
|
|
+ dsi_uninit_platform_driver();
|
|
|
+err_dsi:
|
|
|
+ venc_uninit_platform_driver();
|
|
|
+err_venc:
|
|
|
+ rfbi_uninit_platform_driver();
|
|
|
+err_rfbi:
|
|
|
+ dispc_uninit_platform_driver();
|
|
|
+err_dispc:
|
|
|
+ dss_uninit_platform_driver();
|
|
|
+err_dss:
|
|
|
+ platform_driver_unregister(&omap_dss_driver);
|
|
|
+
|
|
|
+ return r;
|
|
|
+}
|
|
|
+
|
|
|
+static void __exit omap_dss_unregister_drivers(void)
|
|
|
+{
|
|
|
+ hdmi_uninit_platform_driver();
|
|
|
+ dsi_uninit_platform_driver();
|
|
|
+ venc_uninit_platform_driver();
|
|
|
+ rfbi_uninit_platform_driver();
|
|
|
+ dispc_uninit_platform_driver();
|
|
|
+ dss_uninit_platform_driver();
|
|
|
+
|
|
|
+ platform_driver_unregister(&omap_dss_driver);
|
|
|
+}
|
|
|
+
|
|
|
#ifdef CONFIG_OMAP2_DSS_MODULE
|
|
|
static void omap_dss_bus_unregister(void)
|
|
|
{
|
|
@@ -541,7 +560,7 @@ static int __init omap_dss_init(void)
|
|
|
if (r)
|
|
|
return r;
|
|
|
|
|
|
- r = platform_driver_register(&omap_dss_driver);
|
|
|
+ r = omap_dss_register_drivers();
|
|
|
if (r) {
|
|
|
omap_dss_bus_unregister();
|
|
|
return r;
|
|
@@ -562,7 +581,7 @@ static void __exit omap_dss_exit(void)
|
|
|
core.vdds_sdi_reg = NULL;
|
|
|
}
|
|
|
|
|
|
- platform_driver_unregister(&omap_dss_driver);
|
|
|
+ omap_dss_unregister_drivers();
|
|
|
|
|
|
omap_dss_bus_unregister();
|
|
|
}
|
|
@@ -577,7 +596,7 @@ static int __init omap_dss_init(void)
|
|
|
|
|
|
static int __init omap_dss_init2(void)
|
|
|
{
|
|
|
- return platform_driver_register(&omap_dss_driver);
|
|
|
+ return omap_dss_register_drivers();
|
|
|
}
|
|
|
|
|
|
core_initcall(omap_dss_init);
|