diff options
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index e4c934bd25b3..43aa894174fa 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -902,17 +902,15 @@ static struct omap_hwmod *_lookup(const char *name) | |||
902 | * @data: not used; pass NULL | 902 | * @data: not used; pass NULL |
903 | * | 903 | * |
904 | * Called by omap_hwmod_setup_all() (after omap2_clk_init()). | 904 | * Called by omap_hwmod_setup_all() (after omap2_clk_init()). |
905 | * Resolves all clock names embedded in the hwmod. Returns -EINVAL if | 905 | * Resolves all clock names embedded in the hwmod. Returns 0 on |
906 | * the omap_hwmod has not yet been registered or if the clocks have | 906 | * success, or a negative error code on failure. |
907 | * already been initialized, 0 on success, or a non-zero error on | ||
908 | * failure. | ||
909 | */ | 907 | */ |
910 | static int _init_clocks(struct omap_hwmod *oh, void *data) | 908 | static int _init_clocks(struct omap_hwmod *oh, void *data) |
911 | { | 909 | { |
912 | int ret = 0; | 910 | int ret = 0; |
913 | 911 | ||
914 | if (!oh || (oh->_state != _HWMOD_STATE_REGISTERED)) | 912 | if (oh->_state != _HWMOD_STATE_REGISTERED) |
915 | return -EINVAL; | 913 | return 0; |
916 | 914 | ||
917 | pr_debug("omap_hwmod: %s: looking up clocks\n", oh->name); | 915 | pr_debug("omap_hwmod: %s: looking up clocks\n", oh->name); |
918 | 916 | ||
@@ -1351,14 +1349,16 @@ static int _shutdown(struct omap_hwmod *oh) | |||
1351 | * @oh: struct omap_hwmod * | 1349 | * @oh: struct omap_hwmod * |
1352 | * | 1350 | * |
1353 | * Writes the CLOCKACTIVITY bits @clockact to the hwmod @oh | 1351 | * Writes the CLOCKACTIVITY bits @clockact to the hwmod @oh |
1354 | * OCP_SYSCONFIG register. Returns -EINVAL if the hwmod is in the | 1352 | * OCP_SYSCONFIG register. Returns 0. |
1355 | * wrong state or returns 0. | ||
1356 | */ | 1353 | */ |
1357 | static int _setup(struct omap_hwmod *oh, void *data) | 1354 | static int _setup(struct omap_hwmod *oh, void *data) |
1358 | { | 1355 | { |
1359 | int i, r; | 1356 | int i, r; |
1360 | u8 postsetup_state; | 1357 | u8 postsetup_state; |
1361 | 1358 | ||
1359 | if (oh->_state != _HWMOD_STATE_CLKS_INITED) | ||
1360 | return 0; | ||
1361 | |||
1362 | /* Set iclk autoidle mode */ | 1362 | /* Set iclk autoidle mode */ |
1363 | if (oh->slaves_cnt > 0) { | 1363 | if (oh->slaves_cnt > 0) { |
1364 | for (i = 0; i < oh->slaves_cnt; i++) { | 1364 | for (i = 0; i < oh->slaves_cnt; i++) { |
@@ -1621,6 +1621,9 @@ int __init omap_hwmod_register(struct omap_hwmod **ohs) | |||
1621 | */ | 1621 | */ |
1622 | static int __init _populate_mpu_rt_base(struct omap_hwmod *oh, void *data) | 1622 | static int __init _populate_mpu_rt_base(struct omap_hwmod *oh, void *data) |
1623 | { | 1623 | { |
1624 | if (oh->_state != _HWMOD_STATE_REGISTERED) | ||
1625 | return 0; | ||
1626 | |||
1624 | if (oh->_int_flags & _HWMOD_NO_MPU_PORT) | 1627 | if (oh->_int_flags & _HWMOD_NO_MPU_PORT) |
1625 | return 0; | 1628 | return 0; |
1626 | 1629 | ||