kernel: rtl8367b: use id as a bit offset for BYPASS_LINE_RATE
authorINAGAKI Hiroshi <musashino.open@gmail.com>
Mon, 30 Mar 2020 06:19:50 +0000 (15:19 +0900)
committerChuanhong Guo <gch981213@gmail.com>
Sat, 4 Apr 2020 09:20:13 +0000 (17:20 +0800)
In RTL8367B (RTL8367RB/RTL8367R-VB), the driver in GPL tars of the
devices with this switch directly uses the ID of external interface
as a bit offset.

We should use the same way.

ref (RTL8367B):
  - ASUS RT-N56U
  - TP-Link Archer C2 v1

ref (RTL8367):
  - TP-Link TL-WR2543ND v1

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
target/linux/generic/files/drivers/net/phy/rtl8367b.c

index de1976f13a25aecdbe98e4a8fc1af52ddb7cc460..1b1d5001a34a0c49fa595d3e9574323b943ce58b 100644 (file)
@@ -813,8 +813,7 @@ static int rtl8367b_extif_set_mode(struct rtl8366_smi *smi, int id,
 
        case RTL8367_EXTIF_MODE_TMII_MAC:
        case RTL8367_EXTIF_MODE_TMII_PHY:
-               REG_RMW(smi, RTL8367B_BYPASS_LINE_RATE_REG,
-                       BIT((id + 1) % 2), BIT((id + 1) % 2));
+               REG_RMW(smi, RTL8367B_BYPASS_LINE_RATE_REG, BIT(id), BIT(id));
                break;
 
        case RTL8367_EXTIF_MODE_GMII:
@@ -827,8 +826,7 @@ static int rtl8367b_extif_set_mode(struct rtl8366_smi *smi, int id,
        case RTL8367_EXTIF_MODE_MII_MAC:
        case RTL8367_EXTIF_MODE_MII_PHY:
        case RTL8367_EXTIF_MODE_DISABLED:
-               REG_RMW(smi, RTL8367B_BYPASS_LINE_RATE_REG,
-                       BIT((id + 1) % 2), 0);
+               REG_RMW(smi, RTL8367B_BYPASS_LINE_RATE_REG, BIT(id), 0);
                REG_RMW(smi, RTL8367B_EXT_RGMXF_REG(id), BIT(6), 0);
                break;