Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14a67f3c authored by Ayaz Abdulla's avatar Ayaz Abdulla Committed by Jeff Garzik
Browse files

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: default avatarAyaz Abdulla <aabdulla@nvidia.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 05ffdd7b
Loading
Loading
Loading
Loading
+10 −10
Original line number Original line Diff line number Diff line
@@ -557,12 +557,12 @@ union ring_type {
#define PHYID2_MODEL_MASK		0x03f0
#define PHYID2_MODEL_MASK		0x03f0
#define PHY_MODEL_MARVELL_E3016		0x220
#define PHY_MODEL_MARVELL_E3016		0x220
#define PHY_MARVELL_E3016_INITMASK	0x0300
#define PHY_MARVELL_E3016_INITMASK	0x0300
#define PHY_INIT1	0x0f000
#define PHY_CICADA_INIT1	0x0f000
#define PHY_INIT2	0x0e00
#define PHY_CICADA_INIT2	0x0e00
#define PHY_INIT3	0x01000
#define PHY_CICADA_INIT3	0x01000
#define PHY_INIT4	0x0200
#define PHY_CICADA_INIT4	0x0200
#define PHY_INIT5	0x0004
#define PHY_CICADA_INIT5	0x0004
#define PHY_INIT6	0x02000
#define PHY_CICADA_INIT6	0x02000
#define PHY_GIGABIT	0x0100
#define PHY_GIGABIT	0x0100


#define PHY_TIMEOUT	0x1
#define PHY_TIMEOUT	0x1
@@ -1141,14 +1141,14 @@ static int phy_init(struct net_device *dev)
	/* phy vendor specific configuration */
	/* phy vendor specific configuration */
	if ((np->phy_oui == PHY_OUI_CICADA) && (phyinterface & PHY_RGMII) ) {
	if ((np->phy_oui == PHY_OUI_CICADA) && (phyinterface & PHY_RGMII) ) {
		phy_reserved = mii_rw(dev, np->phyaddr, MII_RESV1, MII_READ);
		phy_reserved = mii_rw(dev, np->phyaddr, MII_RESV1, MII_READ);
		phy_reserved &= ~(PHY_INIT1 | PHY_INIT2);
		phy_reserved &= ~(PHY_CICADA_INIT1 | PHY_CICADA_INIT2);
		phy_reserved |= (PHY_INIT3 | PHY_INIT4);
		phy_reserved |= (PHY_CICADA_INIT3 | PHY_CICADA_INIT4);
		if (mii_rw(dev, np->phyaddr, MII_RESV1, phy_reserved)) {
		if (mii_rw(dev, np->phyaddr, MII_RESV1, phy_reserved)) {
			printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
			printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
			return PHY_ERROR;
			return PHY_ERROR;
		}
		}
		phy_reserved = mii_rw(dev, np->phyaddr, MII_NCONFIG, MII_READ);
		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)) {
		if (mii_rw(dev, np->phyaddr, MII_NCONFIG, phy_reserved)) {
			printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
			printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
			return PHY_ERROR;
			return PHY_ERROR;
@@ -1156,7 +1156,7 @@ static int phy_init(struct net_device *dev)
	}
	}
	if (np->phy_oui == PHY_OUI_CICADA) {
	if (np->phy_oui == PHY_OUI_CICADA) {
		phy_reserved = mii_rw(dev, np->phyaddr, MII_SREVISION, MII_READ);
		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)) {
		if (mii_rw(dev, np->phyaddr, MII_SREVISION, phy_reserved)) {
			printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
			printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev));
			return PHY_ERROR;
			return PHY_ERROR;