immortalwrt/package/kernel/r8168/patches/001-r8168-add-LED-configuration-from-OF.patch
AmadeusGhost b6ba7d4c34
r8168: add LED configuration from OF
This adds the ability to configure the LED configuration register using
OF. This way, the correct value for board specific LED configuration can
be determined.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
(cherry picked from commit 66b00bed22358be85f86cd94744692ec613695e0)
2021-04-29 13:39:17 +08:00

43 lines
1.0 KiB
Diff

--- a/src/r8168_n.c
+++ b/src/r8168_n.c
@@ -46,6 +46,7 @@
#include <linux/etherdevice.h>
#include <linux/delay.h>
#include <linux/mii.h>
+#include <linux/of.h>
#include <linux/if_vlan.h>
#include <linux/crc32.h>
#include <linux/interrupt.h>
@@ -23978,6 +23979,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)
{
@@ -24441,6 +24458,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);