mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-22 05:16:38 +00:00
ARM: davinci: da8xx: fix multiple watchdog device registration
Fix multiple watchdog device registration on da8xx devices due to davinci_init_devices blindly registering watchdog device. Fix this by getting rid of the initcall and instead registering watchdog for each soc. Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This commit is contained in:
parent
f26a9968e2
commit
1233090cf6
@ -79,6 +79,8 @@ int davinci_gpio_register(struct resource *res, int size, void *pdata);
|
||||
#define DM646X_ASYNC_EMIF_CONTROL_BASE 0x20008000
|
||||
#define DM646X_ASYNC_EMIF_CS2_SPACE_BASE 0x42000000
|
||||
|
||||
int davinci_init_wdt(void);
|
||||
|
||||
/* DM355 function declarations */
|
||||
void dm355_init(void);
|
||||
void dm355_init_spi0(unsigned chipselect_mask,
|
||||
|
@ -313,9 +313,9 @@ void davinci_restart(enum reboot_mode mode, const char *cmd)
|
||||
davinci_watchdog_reset(&davinci_wdt_device);
|
||||
}
|
||||
|
||||
static void davinci_init_wdt(void)
|
||||
int davinci_init_wdt(void)
|
||||
{
|
||||
platform_device_register(&davinci_wdt_device);
|
||||
return platform_device_register(&davinci_wdt_device);
|
||||
}
|
||||
|
||||
static struct platform_device davinci_gpio_device = {
|
||||
@ -348,16 +348,3 @@ struct davinci_timer_instance davinci_timer_instance[2] = {
|
||||
},
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
static int __init davinci_init_devices(void)
|
||||
{
|
||||
/* please keep these calls, and their implementations above,
|
||||
* in alphabetical order so they're easier to sort through.
|
||||
*/
|
||||
davinci_init_wdt();
|
||||
|
||||
return 0;
|
||||
}
|
||||
arch_initcall(davinci_init_devices);
|
||||
|
||||
|
@ -1076,12 +1076,18 @@ int __init dm355_init_video(struct vpfe_config *vpfe_cfg,
|
||||
|
||||
static int __init dm355_init_devices(void)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (!cpu_is_davinci_dm355())
|
||||
return 0;
|
||||
|
||||
davinci_cfg_reg(DM355_INT_EDMA_CC);
|
||||
platform_device_register(&dm355_edma_device);
|
||||
|
||||
return 0;
|
||||
ret = davinci_init_wdt();
|
||||
if (ret)
|
||||
pr_warn("%s: watchdog init failed: %d\n", __func__, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
postcore_initcall(dm355_init_devices);
|
||||
|
@ -1436,6 +1436,8 @@ int __init dm365_init_video(struct vpfe_config *vpfe_cfg,
|
||||
|
||||
static int __init dm365_init_devices(void)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (!cpu_is_davinci_dm365())
|
||||
return 0;
|
||||
|
||||
@ -1445,6 +1447,10 @@ static int __init dm365_init_devices(void)
|
||||
platform_device_register(&dm365_mdio_device);
|
||||
platform_device_register(&dm365_emac_device);
|
||||
|
||||
return 0;
|
||||
ret = davinci_init_wdt();
|
||||
if (ret)
|
||||
pr_warn("%s: watchdog init failed: %d\n", __func__, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
postcore_initcall(dm365_init_devices);
|
||||
|
@ -964,6 +964,8 @@ int __init dm644x_init_video(struct vpfe_config *vpfe_cfg,
|
||||
|
||||
static int __init dm644x_init_devices(void)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (!cpu_is_davinci_dm644x())
|
||||
return 0;
|
||||
|
||||
@ -972,6 +974,10 @@ static int __init dm644x_init_devices(void)
|
||||
platform_device_register(&dm644x_mdio_device);
|
||||
platform_device_register(&dm644x_emac_device);
|
||||
|
||||
return 0;
|
||||
ret = davinci_init_wdt();
|
||||
if (ret)
|
||||
pr_warn("%s: watchdog init failed: %d\n", __func__, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
postcore_initcall(dm644x_init_devices);
|
||||
|
@ -955,12 +955,18 @@ void __init dm646x_init(void)
|
||||
|
||||
static int __init dm646x_init_devices(void)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (!cpu_is_davinci_dm646x())
|
||||
return 0;
|
||||
|
||||
platform_device_register(&dm646x_mdio_device);
|
||||
platform_device_register(&dm646x_emac_device);
|
||||
|
||||
return 0;
|
||||
ret = davinci_init_wdt();
|
||||
if (ret)
|
||||
pr_warn("%s: watchdog init failed: %d\n", __func__, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
postcore_initcall(dm646x_init_devices);
|
||||
|
Loading…
x
Reference in New Issue
Block a user