X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Farm%2Fmach-pxa%2Fleds-idp.c;h=38aa9270540eebfd5487f3e49a9286079b5f582c;hb=refs%2Fheads%2Fvserver;hp=8f9d2c3c7db6ed7a86b8f05d8cd92aac33c987ca;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/arch/arm/mach-pxa/leds-idp.c b/arch/arm/mach-pxa/leds-idp.c index 8f9d2c3c7..38aa92705 100644 --- a/arch/arm/mach-pxa/leds-idp.c +++ b/arch/arm/mach-pxa/leds-idp.c @@ -12,13 +12,15 @@ */ -#include #include #include #include #include +#include +#include + #include "leds.h" #define LED_STATE_ENABLED 1 @@ -63,12 +65,12 @@ void idp_leds_event(led_event_t evt) #ifdef CONFIG_LEDS_CPU case led_idle_start: if (!(led_state & LED_STATE_CLAIMED)) - hw_led_state |= IDP_BUSY_LED; + hw_led_state &= ~IDP_BUSY_LED; break; case led_idle_end: if (!(led_state & LED_STATE_CLAIMED)) - hw_led_state &= ~IDP_BUSY_LED; + hw_led_state |= IDP_BUSY_LED; break; #endif @@ -77,12 +79,12 @@ void idp_leds_event(led_event_t evt) case led_green_on: if (led_state & LED_STATE_CLAIMED) - hw_led_state &= ~IDP_HB_LED; + hw_led_state |= IDP_HB_LED; break; case led_green_off: if (led_state & LED_STATE_CLAIMED) - hw_led_state |= IDP_HB_LED; + hw_led_state &= ~IDP_HB_LED; break; case led_amber_on: @@ -93,12 +95,12 @@ void idp_leds_event(led_event_t evt) case led_red_on: if (led_state & LED_STATE_CLAIMED) - hw_led_state &= ~IDP_BUSY_LED; + hw_led_state |= IDP_BUSY_LED; break; case led_red_off: if (led_state & LED_STATE_CLAIMED) - hw_led_state |= IDP_BUSY_LED; + hw_led_state &= ~IDP_BUSY_LED; break; default: @@ -106,7 +108,9 @@ void idp_leds_event(led_event_t evt) } if (led_state & LED_STATE_ENABLED) - IDP_WRITE_LEDS(hw_led_state); + IDP_CPLD_LED_CONTROL = ( (IDP_CPLD_LED_CONTROL | IDP_LEDS_MASK) & ~hw_led_state); + else + IDP_CPLD_LED_CONTROL |= IDP_LEDS_MASK; local_irq_restore(flags); }