| From 4abdde3ad6bc0b3b157c4bf6ec0bf139d11d07e8 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com> |
| 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 <zajec5@gmail.com> |
| --- |
| 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 <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" |
| @@ -1587,6 +1588,29 @@ 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") || |
| + (of_machine_is_compatible("linksys,panamera") && dev->chip_id == BCM53012_DEVICE_ID)) |
| + sw_dev->cpu_port = 5; |
| + |
| dev->enabled_ports |= BIT(sw_dev->cpu_port); |
| sw_dev->ports = fls(dev->enabled_ports); |
| |