switch(aux & PHY_B_AS_AN_RES_MSK) { 
switch (aux & PHY_B_AS_AN_RES_MSK) { 
static void bcom_check_link(struct skge_hw *hw, int port){	struct net_device *dev = hw->dev[port];	struct skge_port *skge = netdev_priv(dev);	u16 status;	/* read twice because of latch */	(void) xm_phy_read(hw, port, PHY_BCOM_STAT);	status = xm_phy_read(hw, port, PHY_BCOM_STAT);	pr_debug("bcom_check_link status=0x%x\n", status);	if ((status & PHY_ST_LSYNC) == 0) {		u16 cmd = xm_read16(hw, port, XM_MMU_CMD);		cmd &= ~(XM_MMU_ENA_RX | XM_MMU_ENA_TX);		xm_write16(hw, port, XM_MMU_CMD, cmd);		/* dummy read to ensure writing */		(void) xm_read16(hw, port, XM_MMU_CMD);		if (netif_carrier_ok(dev))			skge_link_down(skge);	} else {		if (skge->autoneg == AUTONEG_ENABLE &&		    (status & PHY_ST_AN_OVER)) {			u16 lpa = xm_phy_read(hw, port, PHY_BCOM_AUNE_LP);			u16 aux = xm_phy_read(hw, port, PHY_BCOM_AUX_STAT);			if (lpa & PHY_B_AN_RF) {				printk(KERN_NOTICE PFX "%s: remote fault\n",				       dev->name);				return;			}			/* Check Duplex mismatch */			switch(aux & PHY_B_AS_AN_RES_MSK) {			case PHY_B_RES_1000FD:				skge->duplex = DUPLEX_FULL;				break;			case PHY_B_RES_1000HD:				skge->duplex = DUPLEX_HALF;				break;			default:				printk(KERN_NOTICE PFX "%s: duplex mismatch\n",				       dev->name);				return;			}			/* We are using IEEE 802.3z/D5.0 Table 37-4 */			switch (aux & PHY_B_AS_PAUSE_MSK) {			case PHY_B_AS_PAUSE_MSK:				skge->flow_control = FLOW_MODE_SYMMETRIC;				break;			case PHY_B_AS_PRR:				skge->flow_control = FLOW_MODE_REM_SEND;				break;			case PHY_B_AS_PRT:				skge->flow_control = FLOW_MODE_LOC_SEND;				break;			default:				skge->flow_control = FLOW_MODE_NONE;			}			skge->speed = SPEED_1000;		}		if (!netif_carrier_ok(dev))			genesis_link_up(skge);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2c66851460c9438823e39b76887376d1511fb67c/skge.c/buggy/drivers/net/skge.c