outw(dataval | MDIO_SHIFT_CLK, mdio_addr); 
iowrite16(dataval | MDIO_SHIFT_CLK, mdio_addr); 
static int mdio_read(struct net_device *dev, int phy_id, int location){	int i;	long ioaddr = dev->base_addr;	int read_cmd = (0xf6 << 10) | (phy_id << 5) | location;	unsigned int retval = 0;	long mdio_addr = ioaddr + Wn4_PhysicalMgmt;	if (mii_preamble_required)		mdio_sync(ioaddr, 32);	/* Shift the read command bits out. */	for (i = 14; i >= 0; i--) {		int dataval = (read_cmd&(1<<i)) ? MDIO_DATA_WRITE1 : MDIO_DATA_WRITE0;		outw(dataval, mdio_addr);		mdio_delay();		outw(dataval | MDIO_SHIFT_CLK, mdio_addr);		mdio_delay();	}	/* Read the two transition, 16 data, and wire-idle bits. */	for (i = 19; i > 0; i--) {		outw(MDIO_ENB_IN, mdio_addr);		mdio_delay();		retval = (retval << 1) | ((inw(mdio_addr) & MDIO_DATA_READ) ? 1 : 0);		outw(MDIO_ENB_IN | MDIO_SHIFT_CLK, mdio_addr);		mdio_delay();	}	return retval & 0x20000 ? 0xffff : retval>>1 & 0xffff;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/62afe595de7aaac6c140103a34dc8c208afa34e7/3c59x.c/buggy/drivers/net/3c59x.c