brcm2708: Add support for raspberry pi 3 b+.
[openwrt/openwrt.git] / target / linux / bcm53xx / patches-4.4 / 710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
index dfc422ee3ef4251fc6f09f97558d967a285e6ec8..91bb4fae116fa584ddea6c1b693119615b583c83 100644 (file)
@@ -13,30 +13,40 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 
 --- a/drivers/net/phy/b53/b53_common.c
 +++ b/drivers/net/phy/b53/b53_common.c
-@@ -25,6 +25,7 @@
- #include <linux/module.h>
- #include <linux/switch.h>
+@@ -28,6 +28,7 @@
+ #include <linux/of.h>
+ #include <linux/of_net.h>
  #include <linux/platform_data/b53.h>
 +#include <linux/of.h>
  
  #include "b53_regs.h"
  #include "b53_priv.h"
-@@ -1313,6 +1314,18 @@ static int b53_switch_init(struct b53_de
-                       sw_dev->cpu_port = 5;
+@@ -1579,6 +1580,28 @@ static int b53_switch_init(struct b53_de
+                       return ret;
        }
  
++      /* Set correct CPU port */
 +      if (of_machine_is_compatible("asus,rt-ac87u"))
 +              sw_dev->cpu_port = 7;
++      else if (of_machine_is_compatible("netgear,r7900"))
++              sw_dev->cpu_port = 8;
 +      else if (of_machine_is_compatible("netgear,r8000"))
 +              sw_dev->cpu_port = 8;
++      else if (of_machine_is_compatible("netgear,r8500"))
++              sw_dev->cpu_port = 8;
++
++      /* Enable extra ports */
++      if (of_machine_is_compatible("tenda,ac9"))
++              dev->enabled_ports |= BIT(5);
 +
 +      /*
 +       * Workaround for devices using port 8 (connected to the 3rd iface).
 +       * For some reason it doesn't work (no packets on eth2).
 +       */
-+      if (of_machine_is_compatible("netgear,r8000"))
++      if (of_machine_is_compatible("netgear,r7900") ||
++          of_machine_is_compatible("netgear,r8000"))
 +              sw_dev->cpu_port = 5;
 +
-       /* cpu port is always last */
-       sw_dev->ports = sw_dev->cpu_port + 1;
        dev->enabled_ports |= BIT(sw_dev->cpu_port);
+       sw_dev->ports = fls(dev->enabled_ports);