diff options
| author | Jordan Crouse <jcrouse@codeaurora.org> | 2016-01-25 16:01:59 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:18:42 -0700 |
| commit | bc3e27ab70aaf5f4dd979e0f5554e46ee02bcb49 (patch) | |
| tree | 978304c7b348c245acdd5605a2e3da37b4397956 /drivers/gpu | |
| parent | da324cf8f6ee36e5da13d543927ab6e077fb6531 (diff) | |
msm: kgsl: Move all platform drivers to the same module init function
There can only be one module_init() function per module. Move all
three driver register calls into the same initialization function. The
ordering should still work correctly.
Change-Id: Ic0dedbadf7c69221a836ba3bbba362d0660f1f0f
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/msm/adreno.c | 79 |
1 files changed, 47 insertions, 32 deletions
diff --git a/drivers/gpu/msm/adreno.c b/drivers/gpu/msm/adreno.c index 8b72428ee4d4..68d5f8ec35fe 100644 --- a/drivers/gpu/msm/adreno.c +++ b/drivers/gpu/msm/adreno.c @@ -393,19 +393,6 @@ static struct platform_driver kgsl_iommu_platform_driver = { } }; -static int __init kgsl_iommu_pdev_init(void) -{ - return platform_driver_register(&kgsl_iommu_platform_driver); -} - -static void __exit kgsl_iommu_pdev_exit(void) -{ - platform_driver_unregister(&kgsl_iommu_platform_driver); -} - -module_init(kgsl_iommu_pdev_init); -module_exit(kgsl_iommu_pdev_exit); - static int _get_counter(struct adreno_device *adreno_dev, int group, int countable, unsigned int *lo, unsigned int *hi) @@ -2901,20 +2888,6 @@ static struct platform_driver adreno_platform_driver = { } }; -static int __init kgsl_3d_init(void) -{ - return platform_driver_register(&adreno_platform_driver); -} - -static void __exit kgsl_3d_exit(void) -{ - platform_driver_unregister(&adreno_platform_driver); -} - -module_init(kgsl_3d_init); -module_exit(kgsl_3d_exit); - - static struct of_device_id busmon_match_table[] = { { .compatible = "qcom,kgsl-busmon", .data = &device_3d0 }, {} @@ -2945,18 +2918,60 @@ static struct platform_driver kgsl_bus_platform_driver = { } }; -static int __init kgsl_busmon_init(void) +#if defined(CONFIG_ARM_SMMU) || defined(CONFIG_MSM_IOMMU) +static int kgsl_iommu_driver_register(void) { - return platform_driver_register(&kgsl_bus_platform_driver); + return platform_driver_register(&kgsl_iommu_platform_driver); } -static void __exit kgsl_busmon_exit(void) +static void kgsl_iommu_driver_unregister(void) { + platform_driver_unregister(&kgsl_iommu_platform_driver); +} +#else +static inline int kgsl_iommu_driver_register(void) +{ + return 0; +} + +static inline void kgsl_iommu_driver_unregister(void) +{ +} +#endif + +static int __init kgsl_3d_init(void) +{ + int ret; + + ret = platform_driver_register(&kgsl_bus_platform_driver); + if (ret) + return ret; + + ret = kgsl_iommu_driver_register(); + if (ret) { + platform_driver_unregister(&kgsl_bus_platform_driver); + return ret; + } + + ret = platform_driver_register(&adreno_platform_driver); + if (ret) { + kgsl_iommu_driver_unregister(); + platform_driver_unregister(&kgsl_bus_platform_driver); + } + + return ret; +} + +static void __exit kgsl_3d_exit(void) +{ + platform_driver_unregister(&adreno_platform_driver); + kgsl_iommu_driver_unregister(); platform_driver_unregister(&kgsl_bus_platform_driver); + } -module_init(kgsl_busmon_init); -module_exit(kgsl_busmon_exit); +module_init(kgsl_3d_init); +module_exit(kgsl_3d_exit); MODULE_DESCRIPTION("3D Graphics driver"); MODULE_VERSION("1.2"); |
