a7dea777505f68ecd946978f89adf8f223e247d4
[openwrt/staging/hauke.git] / target / linux / mediatek / patches-4.4 / 0080-net-next-mediatek-properly-handle-RGMII-modes.patch
1 From 25eaa5d6483a5899e6bf48b47f762f05c186b4b6 Mon Sep 17 00:00:00 2001
2 From: John Crispin <john@phrozen.org>
3 Date: Fri, 22 Apr 2016 11:08:43 +0200
4 Subject: [PATCH 080/102] net-next: mediatek: properly handle RGMII modes
5
6 If an external Gigabit PHY is connected to either of the MACs we need to
7 be able to tell the PHY to use a delay. Not doing so will result in heavy
8 packet loss and/or data corruption when using PHYs such as the IC+ IP1001.
9 We tell the PHY which MII delay mode to use via the devictree.
10
11 The ethernet driver needs to be adapted to handle all 3 rgmii-*id modes
12 in the same way as normal rgmii when setting up the MAC.
13
14 Reviewed-by: Andrew Lunn <andrew@lunn.ch>
15 Signed-off-by: John Crispin <john@phrozen.org>
16 ---
17 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 3 +++
18 1 file changed, 3 insertions(+)
19
20 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
21 index ab61789..76ecb1b 100644
22 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
23 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
24 @@ -236,6 +236,9 @@ static int mtk_phy_connect(struct mtk_mac *mac)
25 return -ENODEV;
26
27 switch (of_get_phy_mode(np)) {
28 + case PHY_INTERFACE_MODE_RGMII_TXID:
29 + case PHY_INTERFACE_MODE_RGMII_RXID:
30 + case PHY_INTERFACE_MODE_RGMII_ID:
31 case PHY_INTERFACE_MODE_RGMII:
32 ge_mode = 0;
33 break;
34 --
35 1.7.10.4
36