u32 status; 
u32 status; 
static unsigned int pdc20621_i2c_read(struct ata_probe_ent *pe, u32 device, 				      u32 subaddr, u32 *pdata){	void *mmio = pe->mmio_base;	u32 i2creg  = 0;	u32 status;     	u32 count =0;	/* hard-code chip #0 */	mmio += PDC_CHIP0_OFS;	i2creg |= device << 24;	i2creg |= subaddr << 16;	/* Set the device and subaddress */	writel(i2creg, mmio + PDC_I2C_ADDR_DATA_OFFSET);	readl(mmio + PDC_I2C_ADDR_DATA_OFFSET);	/* Write Control to perform read operation, mask int */	writel(PDC_I2C_READ | PDC_I2C_START | PDC_I2C_MASK_INT, 	       mmio + PDC_I2C_CONTROL_OFFSET);	for (count = 0; count <= 1000; count ++) {		status = readl(mmio + PDC_I2C_CONTROL_OFFSET);		if (status & PDC_I2C_COMPLETE) {			status = readl(mmio + PDC_I2C_ADDR_DATA_OFFSET);			break;		} else if (count == 1000)			return 0;	}	*pdata = (status >> 8) & 0x000000ff;	return 1;           }
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8a60a07129fad60bba779a2a4038c7518b167fc7/sata_sx4.c/buggy/drivers/scsi/sata_sx4.c