Add module init and exit functions for the bridge to
register and unregister dsi_driver.

Exynos drm driver stack will register the platform_driver
separately in the common of it's exynos_drm_drv.c including
dsi_driver. Register again would return -EBUSY, so return 0
for such cases as dsi_driver is already registered.

Signed-off-by: Jagan Teki <ja...@amarulasolutions.com>
---
 drivers/gpu/drm/bridge/samsung-dsim.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c 
b/drivers/gpu/drm/bridge/samsung-dsim.c
index eed6b3ffdea7..627580abd6df 100644
--- a/drivers/gpu/drm/bridge/samsung-dsim.c
+++ b/drivers/gpu/drm/bridge/samsung-dsim.c
@@ -1878,6 +1878,28 @@ struct platform_driver dsi_driver = {
        },
 };
 
+static int __init samsung_mipi_dsim_init(void)
+{
+       int ret;
+
+       ret = platform_driver_register(&dsi_driver);
+
+       /**
+        * Exynos drm driver stack will register the platform_driver
+        * separately in the common of it's exynos_drm_drv.c including
+        * dsi_driver. Register again would return -EBUSY, so return 0
+        * for such cases as dsi_driver is already registered.
+        */
+       return ret == -EBUSY ? 0 : ret;
+}
+module_init(samsung_mipi_dsim_init);
+
+static void __exit samsung_mipi_dsim_exit(void)
+{
+       platform_driver_unregister(&dsi_driver);
+}
+module_exit(samsung_mipi_dsim_exit);
+
 MODULE_AUTHOR("Tomasz Figa <t.f...@samsung.com>");
 MODULE_AUTHOR("Andrzej Hajda <a.ha...@samsung.com>");
 MODULE_AUTHOR("Jagan Teki <ja...@amarulasolutions.com>");
-- 
2.25.1

Reply via email to