sis_priv->mii_info.phy_id = sis_priv->cur_phy;  
static u16 sis900_default_phy(struct net_device * net_dev){	struct sis900_private * sis_priv = net_dev->priv; 	struct mii_phy *phy = NULL, *phy_home = NULL, 		*default_phy = NULL, *phy_lan = NULL;	u16 status;        for (phy=sis_priv->first_mii; phy; phy=phy->next) {		status = mdio_read(net_dev, phy->phy_addr, MII_STATUS);		status = mdio_read(net_dev, phy->phy_addr, MII_STATUS);		/* Link ON & Not select default PHY & not ghost PHY */		 if ((status & MII_STAT_LINK) && !default_phy &&					(phy->phy_types != UNKNOWN))		 	default_phy = phy;		 else {			status = mdio_read(net_dev, phy->phy_addr, MII_CONTROL);			mdio_write(net_dev, phy->phy_addr, MII_CONTROL,				status | MII_CNTL_AUTO | MII_CNTL_ISOLATE);			if (phy->phy_types == HOME)				phy_home = phy;			else if(phy->phy_types == LAN)				phy_lan = phy;		 }	}	if (!default_phy && phy_home)		default_phy = phy_home;	else if (!default_phy && phy_lan)		default_phy = phy_lan;	else if (!default_phy)		default_phy = sis_priv->first_mii;	if (sis_priv->mii != default_phy) {		sis_priv->mii = default_phy;		sis_priv->cur_phy = default_phy->phy_addr;		printk(KERN_INFO "%s: Using transceiver found at address %d as default\n",		       pci_name(sis_priv->pci_dev), sis_priv->cur_phy);	}		status = mdio_read(net_dev, sis_priv->cur_phy, MII_CONTROL);	status &= (~MII_CNTL_ISOLATE);	mdio_write(net_dev, sis_priv->cur_phy, MII_CONTROL, status);		status = mdio_read(net_dev, sis_priv->cur_phy, MII_STATUS);	status = mdio_read(net_dev, sis_priv->cur_phy, MII_STATUS);	return status;	}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/da369b01d49b34803265096eb92a2d6da61cf0d0/sis900.c/clean/drivers/net/sis900.c