Loading drivers/net/ucc_geth.c +15 −8 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ #include <asm/qe.h> #include <asm/ucc.h> #include <asm/ucc_fast.h> #include <asm/machdep.h> #include "ucc_geth.h" #include "fsl_pq_mdio.h" Loading Loading @@ -1334,7 +1335,7 @@ static int adjust_enet_interface(struct ucc_geth_private *ugeth) struct ucc_geth __iomem *ug_regs; struct ucc_fast __iomem *uf_regs; int ret_val; u32 upsmr, maccfg2, tbiBaseAddress; u32 upsmr, maccfg2; u16 value; ugeth_vdbg("%s: IN", __func__); Loading Loading @@ -1389,14 +1390,20 @@ static int adjust_enet_interface(struct ucc_geth_private *ugeth) /* Note that this depends on proper setting in utbipar register. */ if ((ugeth->phy_interface == PHY_INTERFACE_MODE_TBI) || (ugeth->phy_interface == PHY_INTERFACE_MODE_RTBI)) { tbiBaseAddress = in_be32(&ug_regs->utbipar); tbiBaseAddress &= UTBIPAR_PHY_ADDRESS_MASK; tbiBaseAddress >>= UTBIPAR_PHY_ADDRESS_SHIFT; value = ugeth->phydev->bus->read(ugeth->phydev->bus, (u8) tbiBaseAddress, ENET_TBI_MII_CR); struct ucc_geth_info *ug_info = ugeth->ug_info; struct phy_device *tbiphy; if (!ug_info->tbi_node) ugeth_warn("TBI mode requires that the device " "tree specify a tbi-handle\n"); tbiphy = of_phy_find_device(ug_info->tbi_node); if (!tbiphy) ugeth_warn("Could not get TBI device\n"); value = phy_read(tbiphy, ENET_TBI_MII_CR); value &= ~0x1000; /* Turn off autonegotiation */ ugeth->phydev->bus->write(ugeth->phydev->bus, (u8) tbiBaseAddress, ENET_TBI_MII_CR, value); phy_write(tbiphy, ENET_TBI_MII_CR, value); } init_check_frame_length_mode(ug_info->lengthCheckRx, &ug_regs->maccfg2); Loading Loading
drivers/net/ucc_geth.c +15 −8 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ #include <asm/qe.h> #include <asm/ucc.h> #include <asm/ucc_fast.h> #include <asm/machdep.h> #include "ucc_geth.h" #include "fsl_pq_mdio.h" Loading Loading @@ -1334,7 +1335,7 @@ static int adjust_enet_interface(struct ucc_geth_private *ugeth) struct ucc_geth __iomem *ug_regs; struct ucc_fast __iomem *uf_regs; int ret_val; u32 upsmr, maccfg2, tbiBaseAddress; u32 upsmr, maccfg2; u16 value; ugeth_vdbg("%s: IN", __func__); Loading Loading @@ -1389,14 +1390,20 @@ static int adjust_enet_interface(struct ucc_geth_private *ugeth) /* Note that this depends on proper setting in utbipar register. */ if ((ugeth->phy_interface == PHY_INTERFACE_MODE_TBI) || (ugeth->phy_interface == PHY_INTERFACE_MODE_RTBI)) { tbiBaseAddress = in_be32(&ug_regs->utbipar); tbiBaseAddress &= UTBIPAR_PHY_ADDRESS_MASK; tbiBaseAddress >>= UTBIPAR_PHY_ADDRESS_SHIFT; value = ugeth->phydev->bus->read(ugeth->phydev->bus, (u8) tbiBaseAddress, ENET_TBI_MII_CR); struct ucc_geth_info *ug_info = ugeth->ug_info; struct phy_device *tbiphy; if (!ug_info->tbi_node) ugeth_warn("TBI mode requires that the device " "tree specify a tbi-handle\n"); tbiphy = of_phy_find_device(ug_info->tbi_node); if (!tbiphy) ugeth_warn("Could not get TBI device\n"); value = phy_read(tbiphy, ENET_TBI_MII_CR); value &= ~0x1000; /* Turn off autonegotiation */ ugeth->phydev->bus->write(ugeth->phydev->bus, (u8) tbiBaseAddress, ENET_TBI_MII_CR, value); phy_write(tbiphy, ENET_TBI_MII_CR, value); } init_check_frame_length_mode(ug_info->lengthCheckRx, &ug_regs->maccfg2); Loading