rev = phy_read(phy, MII_PHYSID2) & 0x000f; if (rev == 0) { 
id = (phy_read(phy, MII_PHYSID1) << 16 | phy_read(phy, MII_PHYSID2));  /* Revision 0 of 5421 needs some fixups */ if (id == 0x002060e0) { 
static int bcm5421_init(struct mii_phy* phy){	u16 data;	int rev;	rev = phy_read(phy, MII_PHYSID2) & 0x000f;	if (rev == 0) {		/* This is borrowed from MacOS		 */		phy_write(phy, 0x18, 0x1007);		data = phy_read(phy, 0x18);		phy_write(phy, 0x18, data | 0x0400);		phy_write(phy, 0x18, 0x0007);		data = phy_read(phy, 0x18);		phy_write(phy, 0x18, data | 0x0800);		phy_write(phy, 0x17, 0x000a);		data = phy_read(phy, 0x15);		phy_write(phy, 0x15, data | 0x0200);	}#if 0	/* This has to be verified before I enable it */	/* Enable automatic low-power */	phy_write(phy, 0x1c, 0x9002);	phy_write(phy, 0x1c, 0xa821);	phy_write(phy, 0x1c, 0x941d);#endif	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3c326fe9cb7ae022f7589a6f5781e49ceab82e64/sungem_phy.c/buggy/drivers/net/sungem_phy.c