mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-21 03:25:22 +00:00
kernel: ar8327: fix active-low LED initialization
Switch LEDs configured as active-low remain low instead of high upon initialization, because in ar8327_leds_init, no distinction is made with regards to LED pattern based on active_low property - only whether HW mode is active. Select the proper initial pattern based also on active_low to fix that. While at that, simplify the equation ruling pattern selection for setting brightness, avoiding unnecessary binary XOR operation, not really valid for 'bool' type. Signed-off-by: Lech Perczak <lech.perczak@gmail.com> Link: https://github.com/openwrt/openwrt/pull/12487 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
9f1f918aed
commit
5a4f8b26f0
@ -326,8 +326,7 @@ ar8327_led_set_brightness(struct led_classdev *led_cdev,
|
||||
u8 pattern;
|
||||
bool active;
|
||||
|
||||
active = (brightness != LED_OFF);
|
||||
active ^= aled->active_low;
|
||||
active = (brightness != LED_OFF) != aled->active_low;
|
||||
|
||||
pattern = (active) ? AR8327_LED_PATTERN_ON :
|
||||
AR8327_LED_PATTERN_OFF;
|
||||
@ -501,7 +500,8 @@ ar8327_leds_init(struct ar8xxx_priv *priv)
|
||||
if (aled->enable_hw_mode)
|
||||
aled->pattern = AR8327_LED_PATTERN_RULE;
|
||||
else
|
||||
aled->pattern = AR8327_LED_PATTERN_OFF;
|
||||
aled->pattern = aled->active_low ?
|
||||
AR8327_LED_PATTERN_ON : AR8327_LED_PATTERN_OFF;
|
||||
|
||||
ar8327_set_led_pattern(priv, aled->led_num, aled->pattern);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user