dev_dbg(&adap->dev, "SMBus busy (%04x). Resetting... \n", temp); 
dev_dbg(&adap->dev, "SMBus busy (%04x). Resetting...\n", temp); 
static int sis5595_transaction(struct i2c_adapter *adap){	int temp;	int result = 0;	int timeout = 0;	/* Make sure the SMBus host is ready to start transmitting */	temp = sis5595_read(SMB_STS_LO) + (sis5595_read(SMB_STS_HI) << 8);	if (temp != 0x00) {		dev_dbg(&adap->dev, "SMBus busy (%04x). Resetting... \n", temp);		sis5595_write(SMB_STS_LO, temp & 0xff);		sis5595_write(SMB_STS_HI, temp >> 8);		if ((temp = sis5595_read(SMB_STS_LO) + (sis5595_read(SMB_STS_HI) << 8)) != 0x00) {			dev_dbg(&adap->dev, "Failed! (%02x)\n", temp);			return -1;		} else {			dev_dbg(&adap->dev, "Successfull!\n");		}	}	/* start the transaction by setting bit 4 */	sis5595_write(SMB_CTL_LO, sis5595_read(SMB_CTL_LO) | 0x10);	/* We will always wait for a fraction of a second! */	do {		msleep(1);		temp = sis5595_read(SMB_STS_LO);	} while (!(temp & 0x40) && (timeout++ < MAX_TIMEOUT));	/* If the SMBus is still busy, we give up */	if (timeout >= MAX_TIMEOUT) {		dev_dbg(&adap->dev, "SMBus Timeout!\n");		result = -1;	}	if (temp & 0x10) {		dev_dbg(&adap->dev, "Error: Failed bus transaction\n");		result = -1;	}	if (temp & 0x20) {		dev_err(&adap->dev, "Bus collision! SMBus may be locked until "			"next hard reset (or not...)\n");		/* Clock stops and slave is stuck in mid-transmission */		result = -1;	}	temp = sis5595_read(SMB_STS_LO) + (sis5595_read(SMB_STS_HI) << 8);	if (temp != 0x00) {		sis5595_write(SMB_STS_LO, temp & 0xff);		sis5595_write(SMB_STS_HI, temp >> 8);	}	temp = sis5595_read(SMB_STS_LO) + (sis5595_read(SMB_STS_HI) << 8);	if (temp != 0x00)		dev_dbg(&adap->dev, "Failed reset at end of transaction (%02x)\n", temp);	return result;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/541e6a02768404efb06bd1ea5f33d614732f41fc/i2c-sis5595.c/clean/drivers/i2c/busses/i2c-sis5595.c