aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.14/961-lan78xx-enable-LED.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/961-lan78xx-enable-LED.patch')
-rw-r--r--target/linux/brcm2708/patches-4.14/961-lan78xx-enable-LED.patch18
1 files changed, 18 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.14/961-lan78xx-enable-LED.patch b/target/linux/brcm2708/patches-4.14/961-lan78xx-enable-LED.patch
new file mode 100644
index 0000000000..ae09e08337
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.14/961-lan78xx-enable-LED.patch
@@ -0,0 +1,18 @@
+--- a/drivers/net/usb/lan78xx.c
++++ b/drivers/net/usb/lan78xx.c
+@@ -2458,6 +2458,15 @@ static int lan78xx_reset(struct lan78xx_
+
+ ret = lan78xx_read_reg(dev, HW_CFG, &buf);
+ buf |= HW_CFG_MEF_;
++ if (dev->chipid == ID_REV_CHIP_ID_7800_) {
++ ret = lan78xx_read_raw_eeprom(dev, 0, 1, &sig);
++ if (!ret && sig != EEPROM_INDICATOR) {
++ /* Implies there is no external eeprom. Enable LEDS */
++ netdev_info(dev->net,
++ "No External EEPROM. Enabling LEDS\n");
++ buf |= HW_CFG_LED0_EN_ | HW_CFG_LED1_EN_;
++ }
++ }
+ ret = lan78xx_write_reg(dev, HW_CFG, buf);
+
+ ret = lan78xx_read_reg(dev, USB_CFG0, &buf);