File r8169_custom_led.patch of Package linux
diff -urN a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
--- a/drivers/net/ethernet/realtek/r8169_main.c 2024-05-25 23:30:56.000000000 +0900
+++ b/drivers/net/ethernet/realtek/r8169_main.c 2024-05-27 09:37:25.034538360 +0900
@@ -10,6 +10,7 @@
*/
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
@@ -167,12 +168,15 @@
MODULE_DEVICE_TABLE(pci, rtl8169_pci_tbl);
+static int custom_led = -1;
+
enum rtl_registers {
MAC0 = 0, /* Ethernet hardware address. */
MAC4 = 4,
MAR0 = 8, /* Multicast filter. */
CounterAddrLow = 0x10,
CounterAddrHigh = 0x14,
+ CustomLED = 0x18,
TxDescStartAddrLow = 0x20,
TxDescStartAddrHigh = 0x24,
TxHDescStartAddrLow = 0x28,
@@ -656,6 +660,8 @@
MODULE_AUTHOR("Realtek and the Linux r8169 crew <netdev@vger.kernel.org>");
MODULE_DESCRIPTION("RealTek RTL-8169 Gigabit Ethernet driver");
+module_param(custom_led, int, 0);
+MODULE_PARM_DESC(custom_led, "Custom LED value (try 0x7f0)");
MODULE_SOFTDEP("pre: realtek");
MODULE_LICENSE("GPL");
MODULE_FIRMWARE(FIRMWARE_8168D_1);
@@ -3903,6 +3909,11 @@
rtl_hw_aspm_clkreq_enable(tp, true);
rtl_set_rx_max_size(tp);
rtl_set_rx_tx_desc_registers(tp);
+
+ /* Experiment: Custom LED*/
+ if (custom_led != -1)
+ RTL_W16(tp, CustomLED, custom_led);
+
rtl_lock_config_regs(tp);
rtl_jumbo_config(tp);