diff options
Diffstat (limited to 'drivers/net/ns7520_eth.c')
| -rw-r--r-- | drivers/net/ns7520_eth.c | 42 | 
1 files changed, 19 insertions, 23 deletions
| diff --git a/drivers/net/ns7520_eth.c b/drivers/net/ns7520_eth.c index 37411dfeb..e19c22325 100644 --- a/drivers/net/ns7520_eth.c +++ b/drivers/net/ns7520_eth.c @@ -387,8 +387,8 @@ static int ns7520_eth_reset(void)  	    ns7520_mii_get_clock_divisor(nPhyMaxMdioClock);  	/* reset PHY */ -	ns7520_mii_write(PHY_COMMON_CTRL, PHY_COMMON_CTRL_RESET); -	ns7520_mii_write(PHY_COMMON_CTRL, 0); +	ns7520_mii_write(PHY_BMCR, PHY_BMCR_RESET); +	ns7520_mii_write(PHY_BMCR, 0);  	udelay(3000);		/* [2] p.70 says at least 300us reset recovery time. */ @@ -438,26 +438,23 @@ static void ns7520_link_auto_negotiate(void)  	/* run auto-negotation */  	/* define what we are capable of */ -	ns7520_mii_write(PHY_COMMON_AUTO_ADV, -			 PHY_COMMON_AUTO_ADV_100BTXFD | -			 PHY_COMMON_AUTO_ADV_100BTX | -			 PHY_COMMON_AUTO_ADV_10BTFD | -			 PHY_COMMON_AUTO_ADV_10BT | -			 PHY_COMMON_AUTO_ADV_802_3); +	ns7520_mii_write(PHY_ANAR, +			 PHY_ANLPAR_TXFD | +			 PHY_ANLPAR_TX | +			 PHY_ANLPAR_10FD | +			 PHY_ANLPAR_10 | +			 PHY_ANLPAR_PSB_802_3);  	/* start auto-negotiation */ -	ns7520_mii_write(PHY_COMMON_CTRL, -			 PHY_COMMON_CTRL_AUTO_NEG | -			 PHY_COMMON_CTRL_RES_AUTO); +	ns7520_mii_write(PHY_BMCR, PHY_BMCR_AUTON | PHY_BMCR_RST_NEG);  	/* wait for completion */  	ulStartJiffies = get_timer(0);  	while (get_timer(0) < ulStartJiffies + NS7520_MII_NEG_DELAY) { -		uiStatus = ns7520_mii_read(PHY_COMMON_STAT); +		uiStatus = ns7520_mii_read(PHY_BMSR);  		if ((uiStatus & -		     (PHY_COMMON_STAT_AN_COMP | PHY_COMMON_STAT_LNK_STAT)) -		    == -		    (PHY_COMMON_STAT_AN_COMP | PHY_COMMON_STAT_LNK_STAT)) { +		     (PHY_BMSR_AUTN_COMP | PHY_BMSR_LS)) == +		    (PHY_BMSR_AUTN_COMP | PHY_BMSR_LS)) {  			/* lucky we are, auto-negotiation succeeded */  			ns7520_link_print_changed();  			ns7520_link_update_egcr(); @@ -518,14 +515,13 @@ static void ns7520_link_print_changed(void)  	DEBUG_FN(DEBUG_LINK); -	uiControl = ns7520_mii_read(PHY_COMMON_CTRL); +	uiControl = ns7520_mii_read(PHY_BMCR); -	if ((uiControl & PHY_COMMON_CTRL_AUTO_NEG) == -	    PHY_COMMON_CTRL_AUTO_NEG) { -		/* PHY_COMMON_STAT_LNK_STAT is only set on autonegotiation */ -		uiStatus = ns7520_mii_read(PHY_COMMON_STAT); +	if ((uiControl & PHY_BMCR_AUTON) == PHY_BMCR_AUTON) { +		/* PHY_BMSR_LS is only set on autonegotiation */ +		uiStatus = ns7520_mii_read(PHY_BMSR); -		if (!(uiStatus & PHY_COMMON_STAT_LNK_STAT)) { +		if (!(uiStatus & PHY_BMSR_LS)) {  			printk(KERN_WARNING NS7520_DRIVER_NAME  			       ": link down\n");  			/* @TODO Linux: carrier_off */ @@ -586,12 +582,12 @@ static char ns7520_mii_identify_phy(void)  	DEBUG_FN(DEBUG_MII); -	phyDetected = (PhyType) uiID1 = ns7520_mii_read(PHY_COMMON_ID1); +	phyDetected = (PhyType) uiID1 = ns7520_mii_read(PHY_PHYIDR1);  	switch (phyDetected) {  	case PHY_LXT971A:  		szName = "LXT971A"; -		uiID2 = ns7520_mii_read(PHY_COMMON_ID2); +		uiID2 = ns7520_mii_read(PHY_PHYIDR2);  		nPhyMaxMdioClock = PHY_LXT971_MDIO_MAX_CLK;  		cRes = 1;  		break; |