diff options
| author | David Brownell <david-b@pacbell.net> | 2007-04-02 15:48:10 -0400 |
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2007-08-22 03:42:51 -0400 |
| commit | eebdf7d7c478682756fd29d376223f350311f105 (patch) | |
| tree | 2781d1bf7db9a45c350dc43394f791153db3adff | |
| parent | 4e63915cbe4525beb9c0281f8e22945d88acc9bc (diff) | |
ARM: OMAP: OSK led fixes
Bugfixes for the OSK led support:
- Fix Kconfig merge glitches: Mistral handles idle and timer leds just fine
- Fix pm_suspend() runtime botch: can't sleep, so can't touch tps65010 leds
Improvements:
- Switch sense of Mistral idle led, so idle == off
Probably the TPS65010 leds should be handled only by the "new led" API.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
| -rw-r--r-- | arch/arm/Kconfig | 7 | ||||
| -rw-r--r-- | arch/arm/mach-omap1/leds-osk.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-omap1/pm.c | 11 |
3 files changed, 8 insertions, 16 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index d6145298a325..691aae309c8a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -721,7 +721,8 @@ config LEDS | |||
| 721 | 721 | ||
| 722 | config LEDS_TIMER | 722 | config LEDS_TIMER |
| 723 | bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \ | 723 | bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \ |
| 724 | MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 | 724 | OMAP_OSK_MISTRAL || MACH_OMAP_H2 \ |
| 725 | || MACH_OMAP_PERSEUS2 | ||
| 725 | depends on LEDS | 726 | depends on LEDS |
| 726 | depends on !GENERIC_CLOCKEVENTS | 727 | depends on !GENERIC_CLOCKEVENTS |
| 727 | default y if ARCH_EBSA110 | 728 | default y if ARCH_EBSA110 |
| @@ -738,7 +739,9 @@ config LEDS_TIMER | |||
| 738 | 739 | ||
| 739 | config LEDS_CPU | 740 | config LEDS_CPU |
| 740 | bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \ | 741 | bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \ |
| 741 | !ARCH_OMAP) || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 | 742 | !ARCH_OMAP) \ |
| 743 | || OMAP_OSK_MISTRAL || MACH_OMAP_H2 \ | ||
| 744 | || MACH_OMAP_PERSEUS2 | ||
| 742 | depends on LEDS | 745 | depends on LEDS |
| 743 | help | 746 | help |
| 744 | If you say Y here, the red LED will be used to give a good real | 747 | If you say Y here, the red LED will be used to give a good real |
diff --git a/arch/arm/mach-omap1/leds-osk.c b/arch/arm/mach-omap1/leds-osk.c index 0cbf1b0071f8..86de303ecab2 100644 --- a/arch/arm/mach-omap1/leds-osk.c +++ b/arch/arm/mach-omap1/leds-osk.c | |||
| @@ -133,13 +133,13 @@ void osk_leds_event(led_event_t evt) | |||
| 133 | mistral_setled(); | 133 | mistral_setled(); |
| 134 | break; | 134 | break; |
| 135 | 135 | ||
| 136 | case led_idle_start: | 136 | case led_idle_start: /* idle == off */ |
| 137 | hw_led_state |= IDLE_LED; | 137 | hw_led_state &= ~IDLE_LED; |
| 138 | mistral_setled(); | 138 | mistral_setled(); |
| 139 | break; | 139 | break; |
| 140 | 140 | ||
| 141 | case led_idle_end: | 141 | case led_idle_end: |
| 142 | hw_led_state &= ~IDLE_LED; | 142 | hw_led_state |= IDLE_LED; |
| 143 | mistral_setled(); | 143 | mistral_setled(); |
| 144 | break; | 144 | break; |
| 145 | 145 | ||
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c index 5bb348e2e315..2e68be607295 100644 --- a/arch/arm/mach-omap1/pm.c +++ b/arch/arm/mach-omap1/pm.c | |||
| @@ -57,7 +57,6 @@ | |||
| 57 | #include <asm/arch/tc.h> | 57 | #include <asm/arch/tc.h> |
| 58 | #include <asm/arch/pm.h> | 58 | #include <asm/arch/pm.h> |
| 59 | #include <asm/arch/mux.h> | 59 | #include <asm/arch/mux.h> |
| 60 | #include <asm/arch/tps65010.h> | ||
| 61 | #include <asm/arch/dma.h> | 60 | #include <asm/arch/dma.h> |
| 62 | #include <asm/arch/dsp_common.h> | 61 | #include <asm/arch/dsp_common.h> |
| 63 | #include <asm/arch/dmtimer.h> | 62 | #include <asm/arch/dmtimer.h> |
| @@ -250,11 +249,6 @@ void omap_pm_suspend(void) | |||
| 250 | 249 | ||
| 251 | omap_serial_wake_trigger(1); | 250 | omap_serial_wake_trigger(1); |
| 252 | 251 | ||
| 253 | if (machine_is_omap_osk()) { | ||
| 254 | /* Stop LED1 (D9) blink */ | ||
| 255 | tps65010_set_led(LED1, OFF); | ||
| 256 | } | ||
| 257 | |||
| 258 | if (!cpu_is_omap15xx()) | 252 | if (!cpu_is_omap15xx()) |
| 259 | omap_writew(0xffff, ULPD_SOFT_DISABLE_REQ_REG); | 253 | omap_writew(0xffff, ULPD_SOFT_DISABLE_REQ_REG); |
| 260 | 254 | ||
| @@ -447,11 +441,6 @@ void omap_pm_suspend(void) | |||
| 447 | omap_serial_wake_trigger(0); | 441 | omap_serial_wake_trigger(0); |
| 448 | 442 | ||
| 449 | printk("PM: OMAP%x is re-starting from deep sleep...\n", system_rev); | 443 | printk("PM: OMAP%x is re-starting from deep sleep...\n", system_rev); |
| 450 | |||
| 451 | if (machine_is_omap_osk()) { | ||
| 452 | /* Let LED1 (D9) blink again */ | ||
| 453 | tps65010_set_led(LED1, BLINK); | ||
| 454 | } | ||
| 455 | } | 444 | } |
| 456 | 445 | ||
| 457 | #if defined(DEBUG) && defined(CONFIG_PROC_FS) | 446 | #if defined(DEBUG) && defined(CONFIG_PROC_FS) |
