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 66b00bed22)
This commit is contained in:
AmadeusGhost 2021-04-25 11:20:30 +08:00 committed by Tianling Shen
parent 7c8f07e4a3
commit b6ba7d4c34
No known key found for this signature in database
GPG Key ID: 6850B6345C862176

View File

@ -0,0 +1,42 @@
--- 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);