--- a/r8168_n.c +++ b/r8168_n.c @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -24607,6 +24608,22 @@ rtl8168_set_bios_setting(struct net_device *dev) } } +static int rtl8168_led_configuration(struct rtl8168_private *tp) +{ + u32 led_data; + int ret; + + ret = of_property_read_u32(tp->pci_dev->dev.of_node, + "realtek,led-data", &led_data); + + if (ret) + return ret; + + RTL_W16(tp, CustomLED, led_data); + + return 0; +} + static void rtl8168_init_software_variable(struct net_device *dev) { @@ -25169,6 +25186,8 @@ rtl8168_init_software_variable(struct net_device *dev) tp->NotWrMcuPatchCode = TRUE; } + rtl8168_led_configuration(tp); + tp->NicCustLedValue = RTL_R16(tp, CustomLED); rtl8168_get_hw_wol(dev);