net: hns: bug fix about led control logic when link down
The default driver sets anchor led bit to 0 when link down, actually, the anchor bit should be set to 1, so fixes it when link status is down. Secondly, change the return value of cpld_set_led_id to 0, which means leave the cpld to control led blink frequece other than the driver itself. Signed-off-by: Daode Huang <huangdaode@hisilicon.com> Signed-off-by: Yisen Zhuang <Yisen.Zhuang@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
454784d85d
commit
d8a8371e8b
|
@ -86,9 +86,10 @@ static void hns_cpld_set_led(struct hns_mac_cb *mac_cb, int link_status,
|
|||
mac_cb->cpld_led_value = value;
|
||||
}
|
||||
} else {
|
||||
dsaf_write_syscon(mac_cb->cpld_ctrl, mac_cb->cpld_ctrl_reg,
|
||||
CPLD_LED_DEFAULT_VALUE);
|
||||
mac_cb->cpld_led_value = CPLD_LED_DEFAULT_VALUE;
|
||||
value = (mac_cb->cpld_led_value) & (0x1 << DSAF_LED_ANCHOR_B);
|
||||
dsaf_write_syscon(mac_cb->cpld_ctrl,
|
||||
mac_cb->cpld_ctrl_reg, value);
|
||||
mac_cb->cpld_led_value = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -114,7 +115,7 @@ static int cpld_set_led_id(struct hns_mac_cb *mac_cb,
|
|||
CPLD_LED_ON_VALUE);
|
||||
dsaf_write_syscon(mac_cb->cpld_ctrl, mac_cb->cpld_ctrl_reg,
|
||||
mac_cb->cpld_led_value);
|
||||
return 2;
|
||||
break;
|
||||
case HNAE_LED_INACTIVE:
|
||||
dsaf_set_bit(mac_cb->cpld_led_value, DSAF_LED_ANCHOR_B,
|
||||
CPLD_LED_DEFAULT_VALUE);
|
||||
|
@ -122,7 +123,8 @@ static int cpld_set_led_id(struct hns_mac_cb *mac_cb,
|
|||
mac_cb->cpld_led_value);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
dev_err(mac_cb->dev, "invalid led state: %d!", status);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue