diff options
| -rw-r--r-- | arch/arm/boot/dts/am33xx.dtsi | 5 | ||||
| -rw-r--r-- | arch/arm/boot/dts/twl6030.dtsi | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/Kconfig | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/board-igep0020.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/board-omap3evm.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/common-board-devices.c | 11 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/common-board-devices.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/mux.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/opp4xxx_data.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 19 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/sleep44xx.S | 8 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/twl-common.c | 1 | ||||
| -rw-r--r-- | arch/arm/plat-omap/dmtimer.c | 6 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/cpu.h | 3 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/multi.h | 9 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/uncompress.h | 4 | ||||
| -rw-r--r-- | drivers/cpufreq/omap-cpufreq.c | 4 |
17 files changed, 42 insertions, 39 deletions
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index 59509c48d7e5..bd0cff3f808c 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi | |||
| @@ -154,5 +154,10 @@ | |||
| 154 | #size-cells = <0>; | 154 | #size-cells = <0>; |
| 155 | ti,hwmods = "i2c3"; | 155 | ti,hwmods = "i2c3"; |
| 156 | }; | 156 | }; |
| 157 | |||
| 158 | wdt2: wdt@44e35000 { | ||
| 159 | compatible = "ti,omap3-wdt"; | ||
| 160 | ti,hwmods = "wd_timer2"; | ||
| 161 | }; | ||
| 157 | }; | 162 | }; |
| 158 | }; | 163 | }; |
diff --git a/arch/arm/boot/dts/twl6030.dtsi b/arch/arm/boot/dts/twl6030.dtsi index 3b2f3510d7eb..d351b27d7213 100644 --- a/arch/arm/boot/dts/twl6030.dtsi +++ b/arch/arm/boot/dts/twl6030.dtsi | |||
| @@ -66,6 +66,7 @@ | |||
| 66 | 66 | ||
| 67 | vcxio: regulator@8 { | 67 | vcxio: regulator@8 { |
| 68 | compatible = "ti,twl6030-vcxio"; | 68 | compatible = "ti,twl6030-vcxio"; |
| 69 | regulator-always-on; | ||
| 69 | }; | 70 | }; |
| 70 | 71 | ||
| 71 | vusb: regulator@9 { | 72 | vusb: regulator@9 { |
| @@ -74,10 +75,12 @@ | |||
| 74 | 75 | ||
| 75 | v1v8: regulator@10 { | 76 | v1v8: regulator@10 { |
| 76 | compatible = "ti,twl6030-v1v8"; | 77 | compatible = "ti,twl6030-v1v8"; |
| 78 | regulator-always-on; | ||
| 77 | }; | 79 | }; |
| 78 | 80 | ||
| 79 | v2v1: regulator@11 { | 81 | v2v1: regulator@11 { |
| 80 | compatible = "ti,twl6030-v2v1"; | 82 | compatible = "ti,twl6030-v2v1"; |
| 83 | regulator-always-on; | ||
| 81 | }; | 84 | }; |
| 82 | 85 | ||
| 83 | clk32kg: regulator@12 { | 86 | clk32kg: regulator@12 { |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index dd2db025f778..4a4d058ed146 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
| @@ -69,6 +69,7 @@ config SOC_OMAP5 | |||
| 69 | select CPU_V7 | 69 | select CPU_V7 |
| 70 | select ARM_GIC | 70 | select ARM_GIC |
| 71 | select HAVE_SMP | 71 | select HAVE_SMP |
| 72 | select ARM_CPU_SUSPEND if PM | ||
| 72 | 73 | ||
| 73 | comment "OMAP Core Type" | 74 | comment "OMAP Core Type" |
| 74 | depends on ARCH_OMAP2 | 75 | depends on ARCH_OMAP2 |
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 74915295482e..28214483aaba 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c | |||
| @@ -554,6 +554,8 @@ static const struct usbhs_omap_board_data igep3_usbhs_bdata __initconst = { | |||
| 554 | 554 | ||
| 555 | #ifdef CONFIG_OMAP_MUX | 555 | #ifdef CONFIG_OMAP_MUX |
| 556 | static struct omap_board_mux board_mux[] __initdata = { | 556 | static struct omap_board_mux board_mux[] __initdata = { |
| 557 | /* SMSC9221 LAN Controller ETH IRQ (GPIO_176) */ | ||
| 558 | OMAP3_MUX(MCSPI1_CS2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||
| 557 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 559 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
| 558 | }; | 560 | }; |
| 559 | #endif | 561 | #endif |
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index ef230a0eb5eb..0d362e9f9cb9 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c | |||
| @@ -58,6 +58,7 @@ | |||
| 58 | #include "hsmmc.h" | 58 | #include "hsmmc.h" |
| 59 | #include "common-board-devices.h" | 59 | #include "common-board-devices.h" |
| 60 | 60 | ||
| 61 | #define OMAP3_EVM_TS_GPIO 175 | ||
| 61 | #define OMAP3_EVM_EHCI_VBUS 22 | 62 | #define OMAP3_EVM_EHCI_VBUS 22 |
| 62 | #define OMAP3_EVM_EHCI_SELECT 61 | 63 | #define OMAP3_EVM_EHCI_SELECT 61 |
| 63 | 64 | ||
diff --git a/arch/arm/mach-omap2/common-board-devices.c b/arch/arm/mach-omap2/common-board-devices.c index 14734746457c..c1875862679f 100644 --- a/arch/arm/mach-omap2/common-board-devices.c +++ b/arch/arm/mach-omap2/common-board-devices.c | |||
| @@ -35,16 +35,6 @@ static struct omap2_mcspi_device_config ads7846_mcspi_config = { | |||
| 35 | .turbo_mode = 0, | 35 | .turbo_mode = 0, |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| 38 | /* | ||
| 39 | * ADS7846 driver maybe request a gpio according to the value | ||
| 40 | * of pdata->get_pendown_state, but we have done this. So set | ||
| 41 | * get_pendown_state to avoid twice gpio requesting. | ||
| 42 | */ | ||
| 43 | static int omap3_get_pendown_state(void) | ||
| 44 | { | ||
| 45 | return !gpio_get_value(OMAP3_EVM_TS_GPIO); | ||
| 46 | } | ||
| 47 | |||
| 48 | static struct ads7846_platform_data ads7846_config = { | 38 | static struct ads7846_platform_data ads7846_config = { |
| 49 | .x_max = 0x0fff, | 39 | .x_max = 0x0fff, |
| 50 | .y_max = 0x0fff, | 40 | .y_max = 0x0fff, |
| @@ -55,7 +45,6 @@ static struct ads7846_platform_data ads7846_config = { | |||
| 55 | .debounce_rep = 1, | 45 | .debounce_rep = 1, |
| 56 | .gpio_pendown = -EINVAL, | 46 | .gpio_pendown = -EINVAL, |
| 57 | .keep_vref_on = 1, | 47 | .keep_vref_on = 1, |
| 58 | .get_pendown_state = &omap3_get_pendown_state, | ||
| 59 | }; | 48 | }; |
| 60 | 49 | ||
| 61 | static struct spi_board_info ads7846_spi_board_info __initdata = { | 50 | static struct spi_board_info ads7846_spi_board_info __initdata = { |
diff --git a/arch/arm/mach-omap2/common-board-devices.h b/arch/arm/mach-omap2/common-board-devices.h index 4c4ef6a6166b..a0b4a42836ab 100644 --- a/arch/arm/mach-omap2/common-board-devices.h +++ b/arch/arm/mach-omap2/common-board-devices.h | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | #include "twl-common.h" | 4 | #include "twl-common.h" |
| 5 | 5 | ||
| 6 | #define NAND_BLOCK_SIZE SZ_128K | 6 | #define NAND_BLOCK_SIZE SZ_128K |
| 7 | #define OMAP3_EVM_TS_GPIO 175 | ||
| 8 | 7 | ||
| 9 | struct mtd_partition; | 8 | struct mtd_partition; |
| 10 | struct ads7846_platform_data; | 9 | struct ads7846_platform_data; |
diff --git a/arch/arm/mach-omap2/mux.h b/arch/arm/mach-omap2/mux.h index 471e62a74a16..76f9b3c2f586 100644 --- a/arch/arm/mach-omap2/mux.h +++ b/arch/arm/mach-omap2/mux.h | |||
| @@ -127,7 +127,6 @@ struct omap_mux_partition { | |||
| 127 | * @gpio: GPIO number | 127 | * @gpio: GPIO number |
| 128 | * @muxnames: available signal modes for a ball | 128 | * @muxnames: available signal modes for a ball |
| 129 | * @balls: available balls on the package | 129 | * @balls: available balls on the package |
| 130 | * @partition: mux partition | ||
| 131 | */ | 130 | */ |
| 132 | struct omap_mux { | 131 | struct omap_mux { |
| 133 | u16 reg_offset; | 132 | u16 reg_offset; |
diff --git a/arch/arm/mach-omap2/opp4xxx_data.c b/arch/arm/mach-omap2/opp4xxx_data.c index 2293ba27101b..c95415da23c2 100644 --- a/arch/arm/mach-omap2/opp4xxx_data.c +++ b/arch/arm/mach-omap2/opp4xxx_data.c | |||
| @@ -94,7 +94,7 @@ int __init omap4_opp_init(void) | |||
| 94 | { | 94 | { |
| 95 | int r = -ENODEV; | 95 | int r = -ENODEV; |
| 96 | 96 | ||
| 97 | if (!cpu_is_omap44xx()) | 97 | if (!cpu_is_omap443x()) |
| 98 | return r; | 98 | return r; |
| 99 | 99 | ||
| 100 | r = omap_init_opp_table(omap44xx_opp_def_list, | 100 | r = omap_init_opp_table(omap44xx_opp_def_list, |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index e4fc88c65dbd..05bd8f02723f 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
| @@ -272,21 +272,16 @@ void omap_sram_idle(void) | |||
| 272 | per_next_state = pwrdm_read_next_pwrst(per_pwrdm); | 272 | per_next_state = pwrdm_read_next_pwrst(per_pwrdm); |
| 273 | core_next_state = pwrdm_read_next_pwrst(core_pwrdm); | 273 | core_next_state = pwrdm_read_next_pwrst(core_pwrdm); |
| 274 | 274 | ||
| 275 | if (mpu_next_state < PWRDM_POWER_ON) { | 275 | pwrdm_pre_transition(NULL); |
| 276 | pwrdm_pre_transition(mpu_pwrdm); | ||
| 277 | pwrdm_pre_transition(neon_pwrdm); | ||
| 278 | } | ||
| 279 | 276 | ||
| 280 | /* PER */ | 277 | /* PER */ |
| 281 | if (per_next_state < PWRDM_POWER_ON) { | 278 | if (per_next_state < PWRDM_POWER_ON) { |
| 282 | pwrdm_pre_transition(per_pwrdm); | ||
| 283 | per_going_off = (per_next_state == PWRDM_POWER_OFF) ? 1 : 0; | 279 | per_going_off = (per_next_state == PWRDM_POWER_OFF) ? 1 : 0; |
| 284 | omap2_gpio_prepare_for_idle(per_going_off); | 280 | omap2_gpio_prepare_for_idle(per_going_off); |
| 285 | } | 281 | } |
| 286 | 282 | ||
| 287 | /* CORE */ | 283 | /* CORE */ |
| 288 | if (core_next_state < PWRDM_POWER_ON) { | 284 | if (core_next_state < PWRDM_POWER_ON) { |
| 289 | pwrdm_pre_transition(core_pwrdm); | ||
| 290 | if (core_next_state == PWRDM_POWER_OFF) { | 285 | if (core_next_state == PWRDM_POWER_OFF) { |
| 291 | omap3_core_save_context(); | 286 | omap3_core_save_context(); |
| 292 | omap3_cm_save_context(); | 287 | omap3_cm_save_context(); |
| @@ -339,20 +334,14 @@ void omap_sram_idle(void) | |||
| 339 | omap2_prm_clear_mod_reg_bits(OMAP3430_AUTO_OFF_MASK, | 334 | omap2_prm_clear_mod_reg_bits(OMAP3430_AUTO_OFF_MASK, |
| 340 | OMAP3430_GR_MOD, | 335 | OMAP3430_GR_MOD, |
| 341 | OMAP3_PRM_VOLTCTRL_OFFSET); | 336 | OMAP3_PRM_VOLTCTRL_OFFSET); |
| 342 | pwrdm_post_transition(core_pwrdm); | ||
| 343 | } | 337 | } |
| 344 | omap3_intc_resume_idle(); | 338 | omap3_intc_resume_idle(); |
| 345 | 339 | ||
| 340 | pwrdm_post_transition(NULL); | ||
| 341 | |||
| 346 | /* PER */ | 342 | /* PER */ |
| 347 | if (per_next_state < PWRDM_POWER_ON) { | 343 | if (per_next_state < PWRDM_POWER_ON) |
| 348 | omap2_gpio_resume_after_idle(); | 344 | omap2_gpio_resume_after_idle(); |
| 349 | pwrdm_post_transition(per_pwrdm); | ||
| 350 | } | ||
| 351 | |||
| 352 | if (mpu_next_state < PWRDM_POWER_ON) { | ||
| 353 | pwrdm_post_transition(mpu_pwrdm); | ||
| 354 | pwrdm_post_transition(neon_pwrdm); | ||
| 355 | } | ||
| 356 | } | 345 | } |
| 357 | 346 | ||
| 358 | static void omap3_pm_idle(void) | 347 | static void omap3_pm_idle(void) |
diff --git a/arch/arm/mach-omap2/sleep44xx.S b/arch/arm/mach-omap2/sleep44xx.S index 9f6b83d1b193..91e71d8f46f0 100644 --- a/arch/arm/mach-omap2/sleep44xx.S +++ b/arch/arm/mach-omap2/sleep44xx.S | |||
| @@ -56,9 +56,13 @@ ppa_por_params: | |||
| 56 | * The restore function pointer is stored at CPUx_WAKEUP_NS_PA_ADDR_OFFSET. | 56 | * The restore function pointer is stored at CPUx_WAKEUP_NS_PA_ADDR_OFFSET. |
| 57 | * It returns to the caller for CPU INACTIVE and ON power states or in case | 57 | * It returns to the caller for CPU INACTIVE and ON power states or in case |
| 58 | * CPU failed to transition to targeted OFF/DORMANT state. | 58 | * CPU failed to transition to targeted OFF/DORMANT state. |
| 59 | * | ||
| 60 | * omap4_finish_suspend() calls v7_flush_dcache_all() which doesn't save | ||
| 61 | * stack frame and it expects the caller to take care of it. Hence the entire | ||
| 62 | * stack frame is saved to avoid possible stack corruption. | ||
| 59 | */ | 63 | */ |
| 60 | ENTRY(omap4_finish_suspend) | 64 | ENTRY(omap4_finish_suspend) |
| 61 | stmfd sp!, {lr} | 65 | stmfd sp!, {r4-r12, lr} |
| 62 | cmp r0, #0x0 | 66 | cmp r0, #0x0 |
| 63 | beq do_WFI @ No lowpower state, jump to WFI | 67 | beq do_WFI @ No lowpower state, jump to WFI |
| 64 | 68 | ||
| @@ -226,7 +230,7 @@ scu_gp_clear: | |||
| 226 | skip_scu_gp_clear: | 230 | skip_scu_gp_clear: |
| 227 | isb | 231 | isb |
| 228 | dsb | 232 | dsb |
| 229 | ldmfd sp!, {pc} | 233 | ldmfd sp!, {r4-r12, pc} |
| 230 | ENDPROC(omap4_finish_suspend) | 234 | ENDPROC(omap4_finish_suspend) |
| 231 | 235 | ||
| 232 | /* | 236 | /* |
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c index de47f170ba50..db5ff6642375 100644 --- a/arch/arm/mach-omap2/twl-common.c +++ b/arch/arm/mach-omap2/twl-common.c | |||
| @@ -67,6 +67,7 @@ void __init omap_pmic_init(int bus, u32 clkrate, | |||
| 67 | const char *pmic_type, int pmic_irq, | 67 | const char *pmic_type, int pmic_irq, |
| 68 | struct twl4030_platform_data *pmic_data) | 68 | struct twl4030_platform_data *pmic_data) |
| 69 | { | 69 | { |
| 70 | omap_mux_init_signal("sys_nirq", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE); | ||
| 70 | strncpy(pmic_i2c_board_info.type, pmic_type, | 71 | strncpy(pmic_i2c_board_info.type, pmic_type, |
| 71 | sizeof(pmic_i2c_board_info.type)); | 72 | sizeof(pmic_i2c_board_info.type)); |
| 72 | pmic_i2c_board_info.irq = pmic_irq; | 73 | pmic_i2c_board_info.irq = pmic_irq; |
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 626ad8cad7a9..938b50a33439 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
| @@ -189,6 +189,7 @@ struct omap_dm_timer *omap_dm_timer_request(void) | |||
| 189 | timer->reserved = 1; | 189 | timer->reserved = 1; |
| 190 | break; | 190 | break; |
| 191 | } | 191 | } |
| 192 | spin_unlock_irqrestore(&dm_timer_lock, flags); | ||
| 192 | 193 | ||
| 193 | if (timer) { | 194 | if (timer) { |
| 194 | ret = omap_dm_timer_prepare(timer); | 195 | ret = omap_dm_timer_prepare(timer); |
| @@ -197,7 +198,6 @@ struct omap_dm_timer *omap_dm_timer_request(void) | |||
| 197 | timer = NULL; | 198 | timer = NULL; |
| 198 | } | 199 | } |
| 199 | } | 200 | } |
| 200 | spin_unlock_irqrestore(&dm_timer_lock, flags); | ||
| 201 | 201 | ||
| 202 | if (!timer) | 202 | if (!timer) |
| 203 | pr_debug("%s: timer request failed!\n", __func__); | 203 | pr_debug("%s: timer request failed!\n", __func__); |
| @@ -220,6 +220,7 @@ struct omap_dm_timer *omap_dm_timer_request_specific(int id) | |||
| 220 | break; | 220 | break; |
| 221 | } | 221 | } |
| 222 | } | 222 | } |
| 223 | spin_unlock_irqrestore(&dm_timer_lock, flags); | ||
| 223 | 224 | ||
| 224 | if (timer) { | 225 | if (timer) { |
| 225 | ret = omap_dm_timer_prepare(timer); | 226 | ret = omap_dm_timer_prepare(timer); |
| @@ -228,7 +229,6 @@ struct omap_dm_timer *omap_dm_timer_request_specific(int id) | |||
| 228 | timer = NULL; | 229 | timer = NULL; |
| 229 | } | 230 | } |
| 230 | } | 231 | } |
| 231 | spin_unlock_irqrestore(&dm_timer_lock, flags); | ||
| 232 | 232 | ||
| 233 | if (!timer) | 233 | if (!timer) |
| 234 | pr_debug("%s: timer%d request failed!\n", __func__, id); | 234 | pr_debug("%s: timer%d request failed!\n", __func__, id); |
| @@ -258,7 +258,7 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_enable); | |||
| 258 | 258 | ||
| 259 | void omap_dm_timer_disable(struct omap_dm_timer *timer) | 259 | void omap_dm_timer_disable(struct omap_dm_timer *timer) |
| 260 | { | 260 | { |
| 261 | pm_runtime_put(&timer->pdev->dev); | 261 | pm_runtime_put_sync(&timer->pdev->dev); |
| 262 | } | 262 | } |
| 263 | EXPORT_SYMBOL_GPL(omap_dm_timer_disable); | 263 | EXPORT_SYMBOL_GPL(omap_dm_timer_disable); |
| 264 | 264 | ||
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index 68b180edcfff..bb5d08a70dbc 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
| @@ -372,7 +372,8 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
| 372 | #define cpu_class_is_omap1() (cpu_is_omap7xx() || cpu_is_omap15xx() || \ | 372 | #define cpu_class_is_omap1() (cpu_is_omap7xx() || cpu_is_omap15xx() || \ |
| 373 | cpu_is_omap16xx()) | 373 | cpu_is_omap16xx()) |
| 374 | #define cpu_class_is_omap2() (cpu_is_omap24xx() || cpu_is_omap34xx() || \ | 374 | #define cpu_class_is_omap2() (cpu_is_omap24xx() || cpu_is_omap34xx() || \ |
| 375 | cpu_is_omap44xx() || soc_is_omap54xx()) | 375 | cpu_is_omap44xx() || soc_is_omap54xx() || \ |
| 376 | soc_is_am33xx()) | ||
| 376 | 377 | ||
| 377 | /* Various silicon revisions for omap2 */ | 378 | /* Various silicon revisions for omap2 */ |
| 378 | #define OMAP242X_CLASS 0x24200024 | 379 | #define OMAP242X_CLASS 0x24200024 |
diff --git a/arch/arm/plat-omap/include/plat/multi.h b/arch/arm/plat-omap/include/plat/multi.h index 045e320f1067..324d31b14852 100644 --- a/arch/arm/plat-omap/include/plat/multi.h +++ b/arch/arm/plat-omap/include/plat/multi.h | |||
| @@ -108,4 +108,13 @@ | |||
| 108 | # endif | 108 | # endif |
| 109 | #endif | 109 | #endif |
| 110 | 110 | ||
| 111 | #ifdef CONFIG_SOC_AM33XX | ||
| 112 | # ifdef OMAP_NAME | ||
| 113 | # undef MULTI_OMAP2 | ||
| 114 | # define MULTI_OMAP2 | ||
| 115 | # else | ||
| 116 | # define OMAP_NAME am33xx | ||
| 117 | # endif | ||
| 118 | #endif | ||
| 119 | |||
| 111 | #endif /* __PLAT_OMAP_MULTI_H */ | 120 | #endif /* __PLAT_OMAP_MULTI_H */ |
diff --git a/arch/arm/plat-omap/include/plat/uncompress.h b/arch/arm/plat-omap/include/plat/uncompress.h index b8d19a136781..7f7b112acccb 100644 --- a/arch/arm/plat-omap/include/plat/uncompress.h +++ b/arch/arm/plat-omap/include/plat/uncompress.h | |||
| @@ -110,7 +110,7 @@ static inline void flush(void) | |||
| 110 | _DEBUG_LL_ENTRY(mach, AM33XX_UART##p##_BASE, OMAP_PORT_SHIFT, \ | 110 | _DEBUG_LL_ENTRY(mach, AM33XX_UART##p##_BASE, OMAP_PORT_SHIFT, \ |
| 111 | AM33XXUART##p) | 111 | AM33XXUART##p) |
| 112 | 112 | ||
| 113 | static inline void __arch_decomp_setup(unsigned long arch_id) | 113 | static inline void arch_decomp_setup(void) |
| 114 | { | 114 | { |
| 115 | int port = 0; | 115 | int port = 0; |
| 116 | 116 | ||
| @@ -198,8 +198,6 @@ static inline void __arch_decomp_setup(unsigned long arch_id) | |||
| 198 | } while (0); | 198 | } while (0); |
| 199 | } | 199 | } |
| 200 | 200 | ||
| 201 | #define arch_decomp_setup() __arch_decomp_setup(arch_id) | ||
| 202 | |||
| 203 | /* | 201 | /* |
| 204 | * nothing to do | 202 | * nothing to do |
| 205 | */ | 203 | */ |
diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c index 17fa04d08be9..b47034e650a5 100644 --- a/drivers/cpufreq/omap-cpufreq.c +++ b/drivers/cpufreq/omap-cpufreq.c | |||
| @@ -218,7 +218,7 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy) | |||
| 218 | 218 | ||
| 219 | policy->cur = policy->min = policy->max = omap_getspeed(policy->cpu); | 219 | policy->cur = policy->min = policy->max = omap_getspeed(policy->cpu); |
| 220 | 220 | ||
| 221 | if (atomic_inc_return(&freq_table_users) == 1) | 221 | if (!freq_table) |
| 222 | result = opp_init_cpufreq_table(mpu_dev, &freq_table); | 222 | result = opp_init_cpufreq_table(mpu_dev, &freq_table); |
| 223 | 223 | ||
| 224 | if (result) { | 224 | if (result) { |
| @@ -227,6 +227,8 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy) | |||
| 227 | goto fail_ck; | 227 | goto fail_ck; |
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | atomic_inc_return(&freq_table_users); | ||
| 231 | |||
| 230 | result = cpufreq_frequency_table_cpuinfo(policy, freq_table); | 232 | result = cpufreq_frequency_table_cpuinfo(policy, freq_table); |
| 231 | if (result) | 233 | if (result) |
| 232 | goto fail_table; | 234 | goto fail_table; |
