/* We will always wait for a fraction of a second! 
/* We will always wait for a fraction of a second! 
static int vt596_transaction(void){	int temp;	int result = 0;	int timeout = 0;	dev_dbg(&vt596_adapter.dev, "Transaction (pre): CNT=%02x, CMD=%02x, "		"ADD=%02x, DAT0=%02x, DAT1=%02x\n", inb_p(SMBHSTCNT), 		inb_p(SMBHSTCMD), inb_p(SMBHSTADD), inb_p(SMBHSTDAT0), 		inb_p(SMBHSTDAT1));	/* Make sure the SMBus host is ready to start transmitting */	if ((temp = inb_p(SMBHSTSTS)) & 0x1F) {		dev_dbg(&vt596_adapter.dev, "SMBus busy (0x%02x). "				"Resetting...\n", temp);				outb_p(temp, SMBHSTSTS);		if ((temp = inb_p(SMBHSTSTS)) & 0x1F) {			dev_dbg(&vt596_adapter.dev, "Failed! (0x%02x)\n", temp);						return -1;		} else {			dev_dbg(&vt596_adapter.dev, "Successfull!\n");		}	}	/* start the transaction by setting bit 6 */	outb_p(inb(SMBHSTCNT) | 0x040, SMBHSTCNT);	/* We will always wait for a fraction of a second! 	   I don't know if VIA needs this, Intel did  */	do {		msleep(1);		temp = inb_p(SMBHSTSTS);	} while ((temp & 0x01) && (timeout++ < MAX_TIMEOUT));	/* If the SMBus is still busy, we give up */	if (timeout >= MAX_TIMEOUT) {		result = -1;		dev_dbg(&vt596_adapter.dev, "SMBus Timeout!\n");	}	if (temp & 0x10) {		result = -1;		dev_dbg(&vt596_adapter.dev, "Error: Failed bus transaction\n");	}	if (temp & 0x08) {		result = -1;		dev_info(&vt596_adapter.dev, "Bus collision! SMBus may be "			"locked until next hard\nreset. (sorry!)\n");		/* Clock stops and slave is stuck in mid-transmission */	}	if (temp & 0x04) {		result = -1;		dev_dbg(&vt596_adapter.dev, "Error: no response!\n");	}	if ((temp = inb_p(SMBHSTSTS)) & 0x1F) {		outb_p(temp, SMBHSTSTS);		if ((temp = inb_p(SMBHSTSTS)) & 0x1F) {			dev_warn(&vt596_adapter.dev, "Failed reset at end "				 "of transaction (%02x)\n", temp);		}	}	dev_dbg(&vt596_adapter.dev, "Transaction (post): CNT=%02x, CMD=%02x, "		"ADD=%02x, DAT0=%02x, DAT1=%02x\n", inb_p(SMBHSTCNT),		inb_p(SMBHSTCMD), inb_p(SMBHSTADD), inb_p(SMBHSTDAT0), 		inb_p(SMBHSTDAT1));		return result;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/5f49ef8e8cefe0a95948b4270db28507c1c287d4/i2c-viapro.c/buggy/drivers/i2c/busses/i2c-viapro.c