[PATCH 2.6] i2c-viapro: Some adjustments

From: Jean Delvare
Date: Mon Oct 31 2005 - 12:51:26 EST


Hi Linus,

Can you please apply the following patch to your git tree? Thanks.

* * * * *

The big i2c-viapro SMBus driver update which went into 2.6.14-git1
introduced a few minor issues. Nothing critical, but I would like a
few adjustments to be merged in to fix the following problems:

* VIA should not be spelled Via.
* Frodo Looijaard and Philip Edelbrock did not write the i2c-viapro
driver.
* When debugging is disabled, half of messages would be logged.
* Drop an unneeded masking.
* Some port reads can be avoided now that the transaction size is
passed as a parameter to vt596_transaction().
* SMBus Receive Byte transactions are used for probing too (for
EEPROMs), so hide errors on these too.

Signed-off-by: Jean Delvare <khali@xxxxxxxxxxxx>
---

Documentation/i2c/busses/i2c-viapro | 6 ++----
drivers/i2c/busses/i2c-viapro.c | 27 ++++++++++++++-------------
2 files changed, 16 insertions(+), 17 deletions(-)

--- linux-2.6.14-git.orig/Documentation/i2c/busses/i2c-viapro 2005-10-31 14:18:19.000000000 +0100
+++ linux-2.6.14-git/Documentation/i2c/busses/i2c-viapro 2005-10-31 18:48:32.000000000 +0100
@@ -7,12 +7,10 @@
* VIA Technologies, Inc. VT82C686A/B
Datasheet: Sometimes available at the VIA website

- * VIA Technologies, Inc. VT8231, VT8233, VT8233A, VT8235, VT8237
- Datasheet: available on request from Via
+ * VIA Technologies, Inc. VT8231, VT8233, VT8233A, VT8235, VT8237R
+ Datasheet: available on request from VIA

Authors:
- Frodo Looijaard <frodol@xxxxxx>,
- Philip Edelbrock <phil@xxxxxxxxxxxxx>,
Kyösti Mälkki <kmalkki@xxxxxxxxx>,
Mark D. Studebaker <mdsxyz123@xxxxxxxxx>,
Jean Delvare <khali@xxxxxxxxxxxx>
--- linux-2.6.14-git.orig/drivers/i2c/busses/i2c-viapro.c 2005-10-31 14:18:30.000000000 +0100
+++ linux-2.6.14-git/drivers/i2c/busses/i2c-viapro.c 2005-10-31 18:46:36.000000000 +0100
@@ -142,19 +142,18 @@
/* 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... ", temp);
+ "Resetting...\n", temp);

outb_p(temp, SMBHSTSTS);
if ((temp = inb_p(SMBHSTSTS)) & 0x1F) {
- printk("Failed! (0x%02x)\n", temp);
+ dev_err(&vt596_adapter.dev, "SMBus reset failed! "
+ "(0x%02x)\n", temp);
return -1;
- } else {
- printk("Successful!\n");
}
}

/* Start the transaction by setting bit 6 */
- outb_p(0x40 | (size & 0x3C), SMBHSTCNT);
+ outb_p(0x40 | size, SMBHSTCNT);

/* We will always wait for a fraction of a second */
do {
@@ -171,7 +170,7 @@
if (temp & 0x10) {
result = -1;
dev_err(&vt596_adapter.dev, "Transaction failed (0x%02x)\n",
- inb_p(SMBHSTCNT) & 0x3C);
+ size);
}

if (temp & 0x08) {
@@ -180,11 +179,13 @@
}

if (temp & 0x04) {
+ int read = inb_p(SMBHSTADD) & 0x01;
result = -1;
- /* Quick commands are used to probe for chips, so
- errors are expected, and we don't want to frighten the
- user. */
- if ((inb_p(SMBHSTCNT) & 0x3C) != VT596_QUICK)
+ /* The quick and receive byte commands are used to probe
+ for chips, so errors are expected, and we don't want
+ to frighten the user. */
+ if (!((size == VT596_QUICK && !read) ||
+ (size == VT596_BYTE && read)))
dev_err(&vt596_adapter.dev, "Transaction error!\n");
}

@@ -462,9 +463,9 @@
}
}

-MODULE_AUTHOR(
- "Frodo Looijaard <frodol@xxxxxx> and "
- "Philip Edelbrock <phil@xxxxxxxxxxxxx>");
+MODULE_AUTHOR("Kyosti Malkki <kmalkki@xxxxxxxxx>, "
+ "Mark D. Studebaker <mdsxyz123@xxxxxxxxx> and "
+ "Jean Delvare <khali@xxxxxxxxxxxx>");
MODULE_DESCRIPTION("vt82c596 SMBus driver");
MODULE_LICENSE("GPL");


--
Jean Delvare
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/