diff options
Diffstat (limited to 'target/linux/generic/patches-4.9/735-net-phy-at803x-fix-at8033-sgmii-mode.patch')
-rw-r--r-- | target/linux/generic/patches-4.9/735-net-phy-at803x-fix-at8033-sgmii-mode.patch | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/target/linux/generic/patches-4.9/735-net-phy-at803x-fix-at8033-sgmii-mode.patch b/target/linux/generic/patches-4.9/735-net-phy-at803x-fix-at8033-sgmii-mode.patch deleted file mode 100644 index 581aff1d9d..0000000000 --- a/target/linux/generic/patches-4.9/735-net-phy-at803x-fix-at8033-sgmii-mode.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -55,6 +55,10 @@ - #define AT803X_DEBUG_ADDR 0x1D - #define AT803X_DEBUG_DATA 0x1E - -+#define AT803X_REG_CHIP_CONFIG 0x1f -+#define AT803X_BT_BX_REG_SEL 0x8000 -+#define AT803X_SGMII_ANEG_EN 0x1000 -+ - #define AT803X_MODE_CFG_MASK 0x0F - #define AT803X_MODE_CFG_SGMII 0x01 - -@@ -295,6 +299,27 @@ static int at803x_config_init(struct phy - { - struct at803x_platform_data *pdata; - int ret; -+ u32 v; -+ -+ if (phydev->drv->phy_id == ATH8031_PHY_ID && -+ phydev->interface == PHY_INTERFACE_MODE_SGMII) -+ { -+ v = phy_read(phydev, AT803X_REG_CHIP_CONFIG); -+ /* select SGMII/fiber page */ -+ ret = phy_write(phydev, AT803X_REG_CHIP_CONFIG, -+ v & ~AT803X_BT_BX_REG_SEL); -+ if (ret) -+ return ret; -+ /* enable SGMII autonegotiation */ -+ ret = phy_write(phydev, MII_BMCR, AT803X_SGMII_ANEG_EN); -+ if (ret) -+ return ret; -+ /* select copper page */ -+ ret = phy_write(phydev, AT803X_REG_CHIP_CONFIG, -+ v | AT803X_BT_BX_REG_SEL); -+ if (ret) -+ return ret; -+ } - - ret = genphy_config_init(phydev); - if (ret < 0) |