Commit 473112e4 authored by Thierry Reding's avatar Thierry Reding

drm/tegra: Use new multi-driver module helpers

Use the new multi-driver module helpers to get rid of some boilerplate
in the module initialization and cleanup functions.
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent a134789a
...@@ -1076,6 +1076,16 @@ static struct host1x_driver host1x_drm_driver = { ...@@ -1076,6 +1076,16 @@ static struct host1x_driver host1x_drm_driver = {
.subdevs = host1x_drm_subdevs, .subdevs = host1x_drm_subdevs,
}; };
static struct platform_driver * const drivers[] = {
&tegra_dc_driver,
&tegra_hdmi_driver,
&tegra_dsi_driver,
&tegra_dpaux_driver,
&tegra_sor_driver,
&tegra_gr2d_driver,
&tegra_gr3d_driver,
};
static int __init host1x_drm_init(void) static int __init host1x_drm_init(void)
{ {
int err; int err;
...@@ -1084,48 +1094,12 @@ static int __init host1x_drm_init(void) ...@@ -1084,48 +1094,12 @@ static int __init host1x_drm_init(void)
if (err < 0) if (err < 0)
return err; return err;
err = platform_driver_register(&tegra_dc_driver); err = platform_register_drivers(drivers, ARRAY_SIZE(drivers));
if (err < 0) if (err < 0)
goto unregister_host1x; goto unregister_host1x;
err = platform_driver_register(&tegra_dsi_driver);
if (err < 0)
goto unregister_dc;
err = platform_driver_register(&tegra_sor_driver);
if (err < 0)
goto unregister_dsi;
err = platform_driver_register(&tegra_hdmi_driver);
if (err < 0)
goto unregister_sor;
err = platform_driver_register(&tegra_dpaux_driver);
if (err < 0)
goto unregister_hdmi;
err = platform_driver_register(&tegra_gr2d_driver);
if (err < 0)
goto unregister_dpaux;
err = platform_driver_register(&tegra_gr3d_driver);
if (err < 0)
goto unregister_gr2d;
return 0; return 0;
unregister_gr2d:
platform_driver_unregister(&tegra_gr2d_driver);
unregister_dpaux:
platform_driver_unregister(&tegra_dpaux_driver);
unregister_hdmi:
platform_driver_unregister(&tegra_hdmi_driver);
unregister_sor:
platform_driver_unregister(&tegra_sor_driver);
unregister_dsi:
platform_driver_unregister(&tegra_dsi_driver);
unregister_dc:
platform_driver_unregister(&tegra_dc_driver);
unregister_host1x: unregister_host1x:
host1x_driver_unregister(&host1x_drm_driver); host1x_driver_unregister(&host1x_drm_driver);
return err; return err;
...@@ -1134,13 +1108,7 @@ module_init(host1x_drm_init); ...@@ -1134,13 +1108,7 @@ module_init(host1x_drm_init);
static void __exit host1x_drm_exit(void) static void __exit host1x_drm_exit(void)
{ {
platform_driver_unregister(&tegra_gr3d_driver); platform_unregister_drivers(drivers, ARRAY_SIZE(drivers));
platform_driver_unregister(&tegra_gr2d_driver);
platform_driver_unregister(&tegra_dpaux_driver);
platform_driver_unregister(&tegra_hdmi_driver);
platform_driver_unregister(&tegra_sor_driver);
platform_driver_unregister(&tegra_dsi_driver);
platform_driver_unregister(&tegra_dc_driver);
host1x_driver_unregister(&host1x_drm_driver); host1x_driver_unregister(&host1x_drm_driver);
} }
module_exit(host1x_drm_exit); module_exit(host1x_drm_exit);
......
...@@ -279,10 +279,10 @@ void tegra_fb_output_poll_changed(struct drm_device *drm); ...@@ -279,10 +279,10 @@ void tegra_fb_output_poll_changed(struct drm_device *drm);
#endif #endif
extern struct platform_driver tegra_dc_driver; extern struct platform_driver tegra_dc_driver;
extern struct platform_driver tegra_dsi_driver;
extern struct platform_driver tegra_sor_driver;
extern struct platform_driver tegra_hdmi_driver; extern struct platform_driver tegra_hdmi_driver;
extern struct platform_driver tegra_dsi_driver;
extern struct platform_driver tegra_dpaux_driver; extern struct platform_driver tegra_dpaux_driver;
extern struct platform_driver tegra_sor_driver;
extern struct platform_driver tegra_gr2d_driver; extern struct platform_driver tegra_gr2d_driver;
extern struct platform_driver tegra_gr3d_driver; extern struct platform_driver tegra_gr3d_driver;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment