Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Bring in the 'net' tree so that we can get some ipv4/ipv6 bug fixes that some net-next work will build upon. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -36,8 +36,9 @@ MODULE_LICENSE("GPL");
|
||||
|
||||
/* IP101A/G - IP1001 */
|
||||
#define IP10XX_SPEC_CTRL_STATUS 16 /* Spec. Control Register */
|
||||
#define IP1001_RXPHASE_SEL (1<<0) /* Add delay on RX_CLK */
|
||||
#define IP1001_TXPHASE_SEL (1<<1) /* Add delay on TX_CLK */
|
||||
#define IP1001_SPEC_CTRL_STATUS_2 20 /* IP1001 Spec. Control Reg 2 */
|
||||
#define IP1001_PHASE_SEL_MASK 3 /* IP1001 RX/TXPHASE_SEL */
|
||||
#define IP1001_APS_ON 11 /* IP1001 APS Mode bit */
|
||||
#define IP101A_G_APS_ON 2 /* IP101A/G APS Mode bit */
|
||||
#define IP101A_G_IRQ_CONF_STATUS 0x11 /* Conf Info IRQ & Status Reg */
|
||||
@@ -138,19 +139,24 @@ static int ip1001_config_init(struct phy_device *phydev)
|
||||
if (c < 0)
|
||||
return c;
|
||||
|
||||
/* INTR pin used: speed/link/duplex will cause an interrupt */
|
||||
c = phy_write(phydev, IP101A_G_IRQ_CONF_STATUS, IP101A_G_IRQ_DEFAULT);
|
||||
if (c < 0)
|
||||
return c;
|
||||
if ((phydev->interface == PHY_INTERFACE_MODE_RGMII) ||
|
||||
(phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) ||
|
||||
(phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID) ||
|
||||
(phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)) {
|
||||
|
||||
if (phydev->interface == PHY_INTERFACE_MODE_RGMII) {
|
||||
/* Additional delay (2ns) used to adjust RX clock phase
|
||||
* at RGMII interface */
|
||||
c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
|
||||
if (c < 0)
|
||||
return c;
|
||||
|
||||
c |= IP1001_PHASE_SEL_MASK;
|
||||
c &= ~(IP1001_RXPHASE_SEL | IP1001_TXPHASE_SEL);
|
||||
|
||||
if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID)
|
||||
c |= (IP1001_RXPHASE_SEL | IP1001_TXPHASE_SEL);
|
||||
else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID)
|
||||
c |= IP1001_RXPHASE_SEL;
|
||||
else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)
|
||||
c |= IP1001_TXPHASE_SEL;
|
||||
|
||||
c = phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c);
|
||||
if (c < 0)
|
||||
return c;
|
||||
@@ -167,6 +173,11 @@ static int ip101a_g_config_init(struct phy_device *phydev)
|
||||
if (c < 0)
|
||||
return c;
|
||||
|
||||
/* INTR pin used: speed/link/duplex will cause an interrupt */
|
||||
c = phy_write(phydev, IP101A_G_IRQ_CONF_STATUS, IP101A_G_IRQ_DEFAULT);
|
||||
if (c < 0)
|
||||
return c;
|
||||
|
||||
/* Enable Auto Power Saving mode */
|
||||
c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
|
||||
c |= IP101A_G_APS_ON;
|
||||
|
||||
@@ -353,15 +353,6 @@ static int m88e1111_config_init(struct phy_device *phydev)
|
||||
int err;
|
||||
int temp;
|
||||
|
||||
/* Enable Fiber/Copper auto selection */
|
||||
temp = phy_read(phydev, MII_M1111_PHY_EXT_SR);
|
||||
temp &= ~MII_M1111_HWCFG_FIBER_COPPER_AUTO;
|
||||
phy_write(phydev, MII_M1111_PHY_EXT_SR, temp);
|
||||
|
||||
temp = phy_read(phydev, MII_BMCR);
|
||||
temp |= BMCR_RESET;
|
||||
phy_write(phydev, MII_BMCR, temp);
|
||||
|
||||
if ((phydev->interface == PHY_INTERFACE_MODE_RGMII) ||
|
||||
(phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) ||
|
||||
(phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID) ||
|
||||
|
||||
Reference in New Issue
Block a user