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 /arch/arm | |
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>
Diffstat (limited to 'arch/arm')
-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) |