leds: Fix the API
The leds API did not work in some cases. E.g. with the following sequence: leds_off(LEDS_ALL); leds_toggle(LEDS_GREEN); leds_off(LEDS_ALL); the green LED was remaining on after the last call. This was caused by the toggle feature made synonymous with the invert feature, although it is unrelated. leds_toggle() is indeed supposed to toggle an LED, while leds_invert() is supposed to change the active level of an LED. However, all users of leds_invert() actually meant leds_toggle(), and the invert feature does not make sense in this module because it is not handy due to successive calls to leds_invert() changing the intended behavior, and hardware active levels should be managed in leds_arch_set() (e.g. by XORing the passed value with a hardware-specific constant before setting the output levels of the pins). Consequently, this change: - removes the leds_invert() function, - makes leds_toggle() behave as expected relatively to leds_off() / leds_on(), - sanitizes the code in the leds module. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
This commit is contained in:
parent
f13316415f
commit
7f48057b9e
6 changed files with 24 additions and 43 deletions
|
@ -968,7 +968,7 @@ void mac_802154raw(const struct radio_driver *radio)
|
|||
#endif
|
||||
|
||||
slip_write(uip_buf, len);
|
||||
leds_invert(LEDS_RED);
|
||||
leds_toggle(LEDS_RED);
|
||||
|
||||
//rndis_send(raw_buf, sendlen, 1);
|
||||
//rndis_stat.rxok++;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue