Manually rebased: bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch All patches automatically rebased. Signed-off-by: John Audia <therealgraysky@proton.me> [Move gro_skip in 680-NET-skip-GRO-for-foreign-MAC-addresses.patch to old position] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 82985725e071f2a5735052f18e109a32aeac3a0b Mon Sep 17 00:00:00 2001
 | 
						|
From: David Bauer <mail@david-bauer.net>
 | 
						|
Date: Sun, 26 Jul 2020 02:38:31 +0200
 | 
						|
Subject: [PATCH] net: usb: r8152: 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: David Bauer <mail@david-bauer.net>
 | 
						|
---
 | 
						|
 drivers/net/usb/r8152.c | 23 +++++++++++++++++++++++
 | 
						|
 1 file changed, 23 insertions(+)
 | 
						|
 | 
						|
--- a/drivers/net/usb/r8152.c
 | 
						|
+++ b/drivers/net/usb/r8152.c
 | 
						|
@@ -11,6 +11,7 @@
 | 
						|
 #include <linux/mii.h>
 | 
						|
 #include <linux/ethtool.h>
 | 
						|
 #include <linux/usb.h>
 | 
						|
+#include <linux/of.h>
 | 
						|
 #include <linux/crc32.h>
 | 
						|
 #include <linux/if_vlan.h>
 | 
						|
 #include <linux/uaccess.h>
 | 
						|
@@ -6782,6 +6783,22 @@ static void rtl_tally_reset(struct r8152
 | 
						|
 	ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data);
 | 
						|
 }
 | 
						|
 
 | 
						|
+static int r8152_led_configuration(struct r8152 *tp)
 | 
						|
+{
 | 
						|
+	u32 led_data;
 | 
						|
+	int ret;
 | 
						|
+
 | 
						|
+	ret = of_property_read_u32(tp->udev->dev.of_node, "realtek,led-data",
 | 
						|
+								&led_data);
 | 
						|
+
 | 
						|
+	if (ret)
 | 
						|
+		return ret;
 | 
						|
+
 | 
						|
+	ocp_write_word(tp, MCU_TYPE_PLA, PLA_LEDSEL, led_data);
 | 
						|
+
 | 
						|
+	return 0;
 | 
						|
+}
 | 
						|
+
 | 
						|
 static void r8152b_init(struct r8152 *tp)
 | 
						|
 {
 | 
						|
 	u32 ocp_data;
 | 
						|
@@ -6823,6 +6840,8 @@ static void r8152b_init(struct r8152 *tp
 | 
						|
 	ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
 | 
						|
 	ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
 | 
						|
 	ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
 | 
						|
+
 | 
						|
+	r8152_led_configuration(tp);
 | 
						|
 }
 | 
						|
 
 | 
						|
 static void r8153_init(struct r8152 *tp)
 | 
						|
@@ -6963,6 +6982,8 @@ static void r8153_init(struct r8152 *tp)
 | 
						|
 		tp->coalesce = COALESCE_SLOW;
 | 
						|
 		break;
 | 
						|
 	}
 | 
						|
+
 | 
						|
+	r8152_led_configuration(tp);
 | 
						|
 }
 | 
						|
 
 | 
						|
 static void r8153b_init(struct r8152 *tp)
 | 
						|
@@ -7045,6 +7066,8 @@ static void r8153b_init(struct r8152 *tp
 | 
						|
 	rtl_tally_reset(tp);
 | 
						|
 
 | 
						|
 	tp->coalesce = 15000;	/* 15 us */
 | 
						|
+
 | 
						|
+	r8152_led_configuration(tp);
 | 
						|
 }
 | 
						|
 
 | 
						|
 static void r8153c_init(struct r8152 *tp)
 |