Commit ed5453e5 authored by Jean Delvare's avatar Jean Delvare Committed by Greg Kroah-Hartman

[PATCH] i2c-viapro: Improve register dump

Improve the register dump used to debug the i2c-viapro driver. The
original dump was missing the HSTSTS register and the block data
buffer.
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>

 drivers/i2c/busses/i2c-viapro.c |   38 ++++++++++++++++++++++++++++++--------
 1 file changed, 30 insertions(+), 8 deletions(-)
parent 50c1cc33
...@@ -104,6 +104,30 @@ static struct i2c_adapter vt596_adapter; ...@@ -104,6 +104,30 @@ static struct i2c_adapter vt596_adapter;
#define FEATURE_I2CBLOCK (1<<0) #define FEATURE_I2CBLOCK (1<<0)
static unsigned int vt596_features; static unsigned int vt596_features;
#ifdef DEBUG
static void vt596_dump_regs(const char *msg, u8 size)
{
dev_dbg(&vt596_adapter.dev, "%s: STS=%02x CNT=%02x CMD=%02x ADD=%02x "
"DAT=%02x,%02x\n", msg, inb_p(SMBHSTSTS), inb_p(SMBHSTCNT),
inb_p(SMBHSTCMD), inb_p(SMBHSTADD), inb_p(SMBHSTDAT0),
inb_p(SMBHSTDAT1));
if (size == VT596_BLOCK_DATA
|| size == VT596_I2C_BLOCK_DATA) {
int i;
dev_dbg(&vt596_adapter.dev, "BLK=");
for (i = 0; i < I2C_SMBUS_BLOCK_MAX / 2; i++)
printk("%02x,", inb_p(SMBBLKDAT));
printk("\n");
dev_dbg(&vt596_adapter.dev, " ");
for (; i < I2C_SMBUS_BLOCK_MAX - 1; i++)
printk("%02x,", inb_p(SMBBLKDAT));
printk("%02x\n", inb_p(SMBBLKDAT));
}
}
#endif
/* Return -1 on error, 0 on success */ /* Return -1 on error, 0 on success */
static int vt596_transaction(u8 size) static int vt596_transaction(u8 size)
{ {
...@@ -111,10 +135,9 @@ static int vt596_transaction(u8 size) ...@@ -111,10 +135,9 @@ static int vt596_transaction(u8 size)
int result = 0; int result = 0;
int timeout = 0; int timeout = 0;
dev_dbg(&vt596_adapter.dev, "Transaction (pre): CNT=%02x, CMD=%02x, " #ifdef DEBUG
"ADD=%02x, DAT0=%02x, DAT1=%02x\n", inb_p(SMBHSTCNT), vt596_dump_regs("Transaction (pre)", size);
inb_p(SMBHSTCMD), inb_p(SMBHSTADD), inb_p(SMBHSTDAT0), #endif
inb_p(SMBHSTDAT1));
/* Make sure the SMBus host is ready to start transmitting */ /* Make sure the SMBus host is ready to start transmitting */
if ((temp = inb_p(SMBHSTSTS)) & 0x1F) { if ((temp = inb_p(SMBHSTSTS)) & 0x1F) {
...@@ -169,10 +192,9 @@ static int vt596_transaction(u8 size) ...@@ -169,10 +192,9 @@ static int vt596_transaction(u8 size)
if (temp & 0x1F) if (temp & 0x1F)
outb_p(temp, SMBHSTSTS); outb_p(temp, SMBHSTSTS);
dev_dbg(&vt596_adapter.dev, "Transaction (post): CNT=%02x, CMD=%02x, " #ifdef DEBUG
"ADD=%02x, DAT0=%02x, DAT1=%02x\n", inb_p(SMBHSTCNT), vt596_dump_regs("Transaction (post)", size);
inb_p(SMBHSTCMD), inb_p(SMBHSTADD), inb_p(SMBHSTDAT0), #endif
inb_p(SMBHSTDAT1));
return result; return result;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment