aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2015-12-02 11:23:31 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2015-12-31 04:25:41 -0500
commite1c49bdcdbe31008919ac81e08b46b14e30afd12 (patch)
treee661b964c8d90683d70a6efbae4505b38f87322c
parentd4182e35aa4ae358c024ca3d370fb3cc3da30eb7 (diff)
drm/omap: Use platform_register/unregister_drivers()
These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 5c6609cbb6a2..db6d05576685 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -928,35 +928,23 @@ static struct platform_driver pdev = {
928 .remove = pdev_remove, 928 .remove = pdev_remove,
929}; 929};
930 930
931static struct platform_driver * const drivers[] = {
932 &omap_dmm_driver,
933 &pdev,
934};
935
931static int __init omap_drm_init(void) 936static int __init omap_drm_init(void)
932{ 937{
933 int r;
934
935 DBG("init"); 938 DBG("init");
936 939
937 r = platform_driver_register(&omap_dmm_driver); 940 return platform_register_drivers(drivers, ARRAY_SIZE(drivers));
938 if (r) {
939 pr_err("DMM driver registration failed\n");
940 return r;
941 }
942
943 r = platform_driver_register(&pdev);
944 if (r) {
945 pr_err("omapdrm driver registration failed\n");
946 platform_driver_unregister(&omap_dmm_driver);
947 return r;
948 }
949
950 return 0;
951} 941}
952 942
953static void __exit omap_drm_fini(void) 943static void __exit omap_drm_fini(void)
954{ 944{
955 DBG("fini"); 945 DBG("fini");
956 946
957 platform_driver_unregister(&pdev); 947 platform_unregister_drivers(drivers, ARRAY_SIZE(drivers));
958
959 platform_driver_unregister(&omap_dmm_driver);
960} 948}
961 949
962/* need late_initcall() so we load after dss_driver's are loaded */ 950/* need late_initcall() so we load after dss_driver's are loaded */