mirror of
https://github.com/torvalds/linux.git
synced 2024-10-31 09:11:49 +00:00
forcedeth bug fix: cicada phy
This patch contains errata fixes for the cicada phy. It only renamed the defines to be phy specific. Signed-off-by: Ayaz Abdulla <aabdulla@nvidia.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
05ffdd7bf3
commit
14a67f3c6c
@ -557,12 +557,12 @@ union ring_type {
|
||||
#define PHYID2_MODEL_MASK 0x03f0
|
||||
#define PHY_MODEL_MARVELL_E3016 0x220
|
||||
#define PHY_MARVELL_E3016_INITMASK 0x0300
|
||||
#define PHY_INIT1 0x0f000
|
||||
#define PHY_INIT2 0x0e00
|
||||
#define PHY_INIT3 0x01000
|
||||
#define PHY_INIT4 0x0200
|
||||
#define PHY_INIT5 0x0004
|
||||
#define PHY_INIT6 0x02000
|
||||
#define PHY_CICADA_INIT1 0x0f000
|
||||
#define PHY_CICADA_INIT2 0x0e00
|
||||
#define PHY_CICADA_INIT3 0x01000
|
||||
#define PHY_CICADA_INIT4 0x0200
|
||||
#define PHY_CICADA_INIT5 0x0004
|
||||
#define PHY_CICADA_INIT6 0x02000
|
||||
#define PHY_GIGABIT 0x0100
|
||||
|
||||
#define PHY_TIMEOUT 0x1
|
||||
@ -1141,14 +1141,14 @@ static int phy_init(struct net_device *dev)
|
||||
/* phy vendor specific configuration */
|
||||
if ((np->phy_oui == PHY_OUI_CICADA) && (phyinterface & PHY_RGMII) ) {
|
||||
phy_reserved = mii_rw(dev, np->phyaddr, MII_RESV1, MII_READ);
|
||||
phy_reserved &= ~(PHY_INIT1 | PHY_INIT2);
|
||||
phy_reserved |= (PHY_INIT3 | PHY_INIT4);
|
||||
phy_reserved &= ~(PHY_CICADA_INIT1 | PHY_CICADA_INIT2);
|
||||
phy_reserved |= (PHY_CICADA_INIT3 | PHY_CICADA_INIT4);
|
||||
if (mii_rw(dev, np->phyaddr, MII_RESV1, phy_reserved)) {
|
||||
printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
|
||||
return PHY_ERROR;
|
||||
}
|
||||
phy_reserved = mii_rw(dev, np->phyaddr, MII_NCONFIG, MII_READ);
|
||||
phy_reserved |= PHY_INIT5;
|
||||
phy_reserved |= PHY_CICADA_INIT5;
|
||||
if (mii_rw(dev, np->phyaddr, MII_NCONFIG, phy_reserved)) {
|
||||
printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
|
||||
return PHY_ERROR;
|
||||
@ -1156,7 +1156,7 @@ static int phy_init(struct net_device *dev)
|
||||
}
|
||||
if (np->phy_oui == PHY_OUI_CICADA) {
|
||||
phy_reserved = mii_rw(dev, np->phyaddr, MII_SREVISION, MII_READ);
|
||||
phy_reserved |= PHY_INIT6;
|
||||
phy_reserved |= PHY_CICADA_INIT6;
|
||||
if (mii_rw(dev, np->phyaddr, MII_SREVISION, phy_reserved)) {
|
||||
printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
|
||||
return PHY_ERROR;
|
||||
|
Loading…
Reference in New Issue
Block a user