diff --git a/packages/platforms/accton/x86-64/as7326-56x/modules/builds/x86-64-accton-as7326-56x-leds.c b/packages/platforms/accton/x86-64/as7326-56x/modules/builds/x86-64-accton-as7326-56x-leds.c index 8484531bc6..017f1b25ca 100644 --- a/packages/platforms/accton/x86-64/as7326-56x/modules/builds/x86-64-accton-as7326-56x-leds.c +++ b/packages/platforms/accton/x86-64/as7326-56x/modules/builds/x86-64-accton-as7326-56x-leds.c @@ -40,7 +40,7 @@ struct accton_as7326_56x_led_data { struct mutex update_lock; char valid; /* != 0 if registers are valid */ unsigned long last_updated; /* In jiffies */ - u8 reg_val[2]; + u8 reg_val[5]; }; static struct accton_as7326_56x_led_data *ledctl = NULL; @@ -59,6 +59,12 @@ static struct accton_as7326_56x_led_data *ledctl = NULL; #define LED_MODE_DIAG_OFF_VALUE (0x07) #define LED_TYPE_LOC_REG_MASK (0x3F) #define LED_MODE_LOC_OFF_VALUE (0x07) +#define LED_TYPE_FAN_REG_MASK (0x3F) +#define LED_MODE_FAN_OFF_VALUE (0x07) +#define LED_TYPE_PSU1_REG_MASK (0x3F) +#define LED_MODE_PSU1_OFF_VALUE (0x07) +#define LED_TYPE_PSU2_REG_MASK (0x3F) +#define LED_MODE_PSU2_OFF_VALUE (0x07) enum led_type { LED_TYPE_DIAG, @@ -76,6 +82,9 @@ struct led_reg { static const struct led_reg led_reg_map[] = { {(1<reg_val[2]); +} + +static enum led_brightness accton_as7326_56x_led_psu1_get(struct led_classdev *cdev) +{ + accton_as7326_56x_led_update(); + return led_reg_val_to_light_mode(LED_TYPE_PSU1, ledctl->reg_val[3]); +} + +static enum led_brightness accton_as7326_56x_led_psu2_get(struct led_classdev *cdev) +{ + accton_as7326_56x_led_update(); + return led_reg_val_to_light_mode(LED_TYPE_PSU2, ledctl->reg_val[4]); +} + static struct led_classdev accton_as7326_56x_leds[] = { [LED_TYPE_DIAG] = { .name = "accton_as7326_56x_led::diag", @@ -319,7 +358,7 @@ static struct led_classdev accton_as7326_56x_leds[] = { .name = "accton_as7326_56x_led::fan", .default_trigger = "unused", .brightness_set = accton_as7326_56x_led_auto_set, - .brightness_get = accton_as7326_56x_led_auto_get, + .brightness_get = accton_as7326_56x_led_fan_get, .flags = LED_CORE_SUSPENDRESUME, .max_brightness = LED_MODE_AUTO, }, @@ -327,7 +366,7 @@ static struct led_classdev accton_as7326_56x_leds[] = { .name = "accton_as7326_56x_led::psu1", .default_trigger = "unused", .brightness_set = accton_as7326_56x_led_auto_set, - .brightness_get = accton_as7326_56x_led_auto_get, + .brightness_get = accton_as7326_56x_led_psu1_get, .flags = LED_CORE_SUSPENDRESUME, .max_brightness = LED_MODE_AUTO, }, @@ -335,7 +374,7 @@ static struct led_classdev accton_as7326_56x_leds[] = { .name = "accton_as7326_56x_led::psu2", .default_trigger = "unused", .brightness_set = accton_as7326_56x_led_auto_set, - .brightness_get = accton_as7326_56x_led_auto_get, + .brightness_get = accton_as7326_56x_led_psu2_get, .flags = LED_CORE_SUSPENDRESUME, .max_brightness = LED_MODE_AUTO, }, diff --git a/packages/platforms/accton/x86-64/as7326-56x/onlp/builds/x86_64_accton_as7326_56x/module/src/ledi.c b/packages/platforms/accton/x86-64/as7326-56x/onlp/builds/x86_64_accton_as7326_56x/module/src/ledi.c index beb4cbbd0d..0f5587303f 100644 --- a/packages/platforms/accton/x86-64/as7326-56x/onlp/builds/x86_64_accton_as7326_56x/module/src/ledi.c +++ b/packages/platforms/accton/x86-64/as7326-56x/onlp/builds/x86_64_accton_as7326_56x/module/src/ledi.c @@ -99,9 +99,15 @@ led_light_mode_map_t led_map[] = { {LED_LOC, LED_MODE_RED_BLINK, ONLP_LED_MODE_RED_BLINKING}, {LED_LOC, LED_MODE_BLUE_BLINK, ONLP_LED_MODE_BLUE_BLINKING}, {LED_LOC, LED_MODE_PURPLE_BLINK, ONLP_LED_MODE_PURPLE_BLINKING}, -{LED_FAN, LED_MODE_AUTO, ONLP_LED_MODE_AUTO}, -{LED_PSU1, LED_MODE_AUTO, ONLP_LED_MODE_AUTO}, -{LED_PSU2, LED_MODE_AUTO, ONLP_LED_MODE_AUTO} +{LED_FAN, LED_MODE_OFF, ONLP_LED_MODE_OFF}, +{LED_FAN, LED_MODE_GREEN, ONLP_LED_MODE_GREEN}, +{LED_FAN, LED_MODE_RED, ONLP_LED_MODE_RED}, +{LED_PSU1, LED_MODE_OFF, ONLP_LED_MODE_OFF}, +{LED_PSU1, LED_MODE_GREEN, ONLP_LED_MODE_GREEN}, +{LED_PSU1, LED_MODE_RED, ONLP_LED_MODE_RED}, +{LED_PSU2, LED_MODE_OFF, ONLP_LED_MODE_OFF}, +{LED_PSU2, LED_MODE_GREEN, ONLP_LED_MODE_GREEN}, +{LED_PSU2, LED_MODE_RED, ONLP_LED_MODE_RED} }; static char last_path[][10] = /* must map with onlp_led_id */