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

Commit 852ea22a authored by Ralf Baechle's avatar Ralf Baechle Committed by Jeff Garzik
Browse files

[PATCH] IOC3 fixes



 - Using the right register clearly improves chances of getting the MII
   code and thus the driver working at all.
 - On startup check the media type before setting up duplex or we might
   spend the first 1.2s with a wrong duplex setting.
 - Get rid of whitespace lines.
Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
parent 6be382ea
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -499,7 +499,7 @@ static int ioc3_mdio_read(struct net_device *dev, int phy, int reg)
	ioc3_w_micr((phy << MICR_PHYADDR_SHIFT) | reg | MICR_READTRIG);
	while (ioc3_r_micr() & MICR_BUSY);

	return ioc3_r_micr() & MIDR_DATA_MASK;
	return ioc3_r_midr_r() & MIDR_DATA_MASK;
}

static void ioc3_mdio_write(struct net_device *dev, int phy, int reg, int data)
@@ -1291,7 +1291,6 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
	dev->features		= NETIF_F_IP_CSUM;
#endif

	ioc3_setup_duplex(ip);
	sw_physid1 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID1);
	sw_physid2 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID2);

@@ -1300,6 +1299,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
		goto out_stop;

	mii_check_media(&ip->mii, 1, 1);
	ioc3_setup_duplex(ip);

	vendor = (sw_physid1 << 12) | (sw_physid2 >> 4);
	model  = (sw_physid2 >> 4) & 0x3f;