gm_phy_write(hw, port, PHY_MARV_INT_MASK, PHY_M_IS_AN_COMPL); 
gm_phy_write(hw, port, PHY_MARV_INT_MASK, PHY_M_IS_AN_MSK); 
static void yukon_init(struct skge_hw *hw, int port){	struct skge_port *skge = netdev_priv(hw->dev[port]);	u16 ctrl, ct1000, adv;	u16 ledctrl, ledover;	pr_debug("yukon_init\n");	if (skge->autoneg == AUTONEG_ENABLE) {		u16 ectrl = gm_phy_read(hw, port, PHY_MARV_EXT_CTRL);		ectrl &= ~(PHY_M_EC_M_DSC_MSK | PHY_M_EC_S_DSC_MSK |			  PHY_M_EC_MAC_S_MSK);		ectrl |= PHY_M_EC_MAC_S(MAC_TX_CLK_25_MHZ);		ectrl |= PHY_M_EC_M_DSC(0) | PHY_M_EC_S_DSC(1);		gm_phy_write(hw, port, PHY_MARV_EXT_CTRL, ectrl);	}	ctrl = gm_phy_read(hw, port, PHY_MARV_CTRL);	if (skge->autoneg == AUTONEG_DISABLE)		ctrl &= ~PHY_CT_ANE;	ctrl |= PHY_CT_RESET;	gm_phy_write(hw, port, PHY_MARV_CTRL, ctrl);	ctrl = 0;	ct1000 = 0;	adv = PHY_AN_CSMA;	if (skge->autoneg == AUTONEG_ENABLE) {		if (iscopper(hw)) {			if (skge->advertising & ADVERTISED_1000baseT_Full)				ct1000 |= PHY_M_1000C_AFD;			if (skge->advertising & ADVERTISED_1000baseT_Half)				ct1000 |= PHY_M_1000C_AHD;			if (skge->advertising & ADVERTISED_100baseT_Full)				adv |= PHY_M_AN_100_FD;			if (skge->advertising & ADVERTISED_100baseT_Half)				adv |= PHY_M_AN_100_HD;			if (skge->advertising & ADVERTISED_10baseT_Full)				adv |= PHY_M_AN_10_FD;			if (skge->advertising & ADVERTISED_10baseT_Half)				adv |= PHY_M_AN_10_HD;		} else	/* special defines for FIBER (88E1011S only) */			adv |= PHY_M_AN_1000X_AHD | PHY_M_AN_1000X_AFD;		/* Set Flow-control capabilities */		adv |= phy_pause_map[skge->flow_control];		/* Restart Auto-negotiation */		ctrl |= PHY_CT_ANE | PHY_CT_RE_CFG;	} else {		/* forced speed/duplex settings */		ct1000 = PHY_M_1000C_MSE;		if (skge->duplex == DUPLEX_FULL)			ctrl |= PHY_CT_DUP_MD;		switch (skge->speed) {		case SPEED_1000:			ctrl |= PHY_CT_SP1000;			break;		case SPEED_100:			ctrl |= PHY_CT_SP100;			break;		}		ctrl |= PHY_CT_RESET;	}	gm_phy_write(hw, port, PHY_MARV_1000T_CTRL, ct1000);	gm_phy_write(hw, port, PHY_MARV_AUNE_ADV, adv);	gm_phy_write(hw, port, PHY_MARV_CTRL, ctrl);	/* Setup Phy LED's */	ledctrl = PHY_M_LED_PULS_DUR(PULS_170MS);	ledover = 0;	ledctrl |= PHY_M_LED_BLINK_RT(BLINK_84MS) | PHY_M_LEDC_TX_CTRL;	/* turn off the Rx LED (LED_RX) */	ledover |= PHY_M_LED_MO_RX(MO_LED_OFF);	/* disable blink mode (LED_DUPLEX) on collisions */	ctrl |= PHY_M_LEDC_DP_CTRL;	gm_phy_write(hw, port, PHY_MARV_LED_CTRL, ledctrl);	if (skge->autoneg == AUTONEG_DISABLE || skge->speed == SPEED_100) {		/* turn on 100 Mbps LED (LED_LINK100) */		ledover |= PHY_M_LED_MO_100(MO_LED_ON);	}	if (ledover)		gm_phy_write(hw, port, PHY_MARV_LED_OVER, ledover);	/* Enable phy interrupt on autonegotiation complete (or link up) */	if (skge->autoneg == AUTONEG_ENABLE)		gm_phy_write(hw, port, PHY_MARV_INT_MASK, PHY_M_IS_AN_COMPL);	else		gm_phy_write(hw, port, PHY_MARV_INT_MASK, PHY_M_DEF_MSK);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4cde06ed0fb58402ec1d6d117122d1058983a393/skge.c/clean/drivers/net/skge.c