From 4abdde3ad6bc0b3b157c4bf6ec0bf139d11d07e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Wed, 13 May 2015 14:13:28 +0200 Subject: [PATCH] b53: add hacky CPU port fixes for devices not using port 5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki --- drivers/net/phy/b53/b53_common.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/drivers/net/phy/b53/b53_common.c +++ b/drivers/net/phy/b53/b53_common.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "b53_regs.h" #include "b53_priv.h" @@ -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,r7900") || + of_machine_is_compatible("netgear,r8000")) + sw_dev->cpu_port = 5; + dev->enabled_ports |= BIT(sw_dev->cpu_port); sw_dev->ports = fls(dev->enabled_ports);