]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
ARM: davinci: dm644x: remove unnecessary postcore_initcall()
authorSekhar Nori <nsekhar@ti.com>
Fri, 6 Apr 2018 12:38:20 +0000 (18:08 +0530)
committerSekhar Nori <nsekhar@ti.com>
Wed, 2 May 2018 09:32:25 +0000 (15:02 +0530)
dm644x_init_devices() is unnecessarily implemented as a
postcore_initcall().

This does not cause any issues now, but creates issues when
converting to common clock framework where clocks themselves
become platform devices and are initialized later. Because of
this, device clock acquisition and runtime PM on that device
fails.

Move the call to .init_machine() callback along with rest of
platform device's registration.

While at it, convert it to return void since return value is
ignored by caller anyway.

Reviewed-by: David Lechner <david@lechnology.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
arch/arm/mach-davinci/board-dm644x-evm.c
arch/arm/mach-davinci/board-neuros-osd2.c
arch/arm/mach-davinci/board-sffsdr.c
arch/arm/mach-davinci/davinci.h
arch/arm/mach-davinci/dm644x.c

index 95b55aae1366f6ef9fd6f19277dce0ed30f626fc..5bf02478473826983c47c34d9d37125adc6878a3 100644 (file)
@@ -768,6 +768,8 @@ static __init void davinci_evm_init(void)
        struct clk *aemif_clk;
        struct davinci_soc_info *soc_info = &davinci_soc_info;
 
+       dm644x_init_devices();
+
        ret = dm644x_gpio_register();
        if (ret)
                pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
index f2875770fbff64f5a9ec4dfcdaa9a27290a481b0..0b13237e63f248c09bf7cd52bf8d28a2b0131d91 100644 (file)
@@ -174,6 +174,8 @@ static __init void davinci_ntosd2_init(void)
        struct clk *aemif_clk;
        struct davinci_soc_info *soc_info = &davinci_soc_info;
 
+       dm644x_init_devices();
+
        ret = dm644x_gpio_register();
        if (ret)
                pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
index 2922da9d1684304cfb8b3d606f86b3420b174224..e7c1728b0833a0b791de802866a3ef7578955c67 100644 (file)
@@ -134,6 +134,8 @@ static __init void davinci_sffsdr_init(void)
 {
        struct davinci_soc_info *soc_info = &davinci_soc_info;
 
+       dm644x_init_devices();
+
        platform_add_devices(davinci_sffsdr_devices,
                             ARRAY_SIZE(davinci_sffsdr_devices));
        sffsdr_init_i2c();
index 270cef85750a76fcc5262211089faecdf48cc543..376cdd51ce9d7beb89a5551f4abbe0e501db52b3 100644 (file)
@@ -104,6 +104,7 @@ int dm365_gpio_register(void);
 
 /* DM644x function declarations */
 void dm644x_init(void);
+void dm644x_init_devices(void);
 void dm644x_init_time(void);
 void dm644x_init_asp(void);
 int dm644x_init_video(struct vpfe_config *, struct vpbe_config *);
index b409801649e1f2e4ea25788f1bdcb0ae3fa18fe8..a2e8586c8a6d57229d27665393fa74f26463145d 100644 (file)
@@ -961,19 +961,14 @@ int __init dm644x_init_video(struct vpfe_config *vpfe_cfg,
        return 0;
 }
 
-static int __init dm644x_init_devices(void)
+void __init dm644x_init_devices(void)
 {
        struct platform_device *edma_pdev;
-       int ret = 0;
-
-       if (!cpu_is_davinci_dm644x())
-               return 0;
+       int ret;
 
        edma_pdev = platform_device_register_full(&dm644x_edma_device);
-       if (IS_ERR(edma_pdev)) {
+       if (IS_ERR(edma_pdev))
                pr_warn("%s: Failed to register eDMA\n", __func__);
-               return PTR_ERR(edma_pdev);
-       }
 
        platform_device_register(&dm644x_mdio_device);
        platform_device_register(&dm644x_emac_device);
@@ -982,6 +977,4 @@ static int __init dm644x_init_devices(void)
        if (ret)
                pr_warn("%s: watchdog init failed: %d\n", __func__, ret);
 
-       return ret;
 }
-postcore_initcall(dm644x_init_devices);