提交 8750197f 编写于 作者: J Jean Delvare 提交者: Greg Kroah-Hartman

[PATCH] i2c-viapro: Some adjustments

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: NJean Delvare <khali@linux-fr.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 4a1c4447
...@@ -7,12 +7,10 @@ Supported adapters: ...@@ -7,12 +7,10 @@ Supported adapters:
* VIA Technologies, Inc. VT82C686A/B * VIA Technologies, Inc. VT82C686A/B
Datasheet: Sometimes available at the VIA website Datasheet: Sometimes available at the VIA website
* VIA Technologies, Inc. VT8231, VT8233, VT8233A, VT8235, VT8237 * VIA Technologies, Inc. VT8231, VT8233, VT8233A, VT8235, VT8237R
Datasheet: available on request from Via Datasheet: available on request from VIA
Authors: Authors:
Frodo Looijaard <frodol@dds.nl>,
Philip Edelbrock <phil@netroedge.com>,
Kysti Mlkki <kmalkki@cc.hut.fi>, Kysti Mlkki <kmalkki@cc.hut.fi>,
Mark D. Studebaker <mdsxyz123@yahoo.com>, Mark D. Studebaker <mdsxyz123@yahoo.com>,
Jean Delvare <khali@linux-fr.org> Jean Delvare <khali@linux-fr.org>
......
...@@ -142,19 +142,18 @@ static int vt596_transaction(u8 size) ...@@ -142,19 +142,18 @@ static int vt596_transaction(u8 size)
/* 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) {
dev_dbg(&vt596_adapter.dev, "SMBus busy (0x%02x). " dev_dbg(&vt596_adapter.dev, "SMBus busy (0x%02x). "
"Resetting... ", temp); "Resetting...\n", temp);
outb_p(temp, SMBHSTSTS); outb_p(temp, SMBHSTSTS);
if ((temp = inb_p(SMBHSTSTS)) & 0x1F) { 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; return -1;
} else {
printk("Successful!\n");
} }
} }
/* Start the transaction by setting bit 6 */ /* 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 */ /* We will always wait for a fraction of a second */
do { do {
...@@ -171,7 +170,7 @@ static int vt596_transaction(u8 size) ...@@ -171,7 +170,7 @@ static int vt596_transaction(u8 size)
if (temp & 0x10) { if (temp & 0x10) {
result = -1; result = -1;
dev_err(&vt596_adapter.dev, "Transaction failed (0x%02x)\n", dev_err(&vt596_adapter.dev, "Transaction failed (0x%02x)\n",
inb_p(SMBHSTCNT) & 0x3C); size);
} }
if (temp & 0x08) { if (temp & 0x08) {
...@@ -180,11 +179,13 @@ static int vt596_transaction(u8 size) ...@@ -180,11 +179,13 @@ static int vt596_transaction(u8 size)
} }
if (temp & 0x04) { if (temp & 0x04) {
int read = inb_p(SMBHSTADD) & 0x01;
result = -1; result = -1;
/* Quick commands are used to probe for chips, so /* The quick and receive byte commands are used to probe
errors are expected, and we don't want to frighten the for chips, so errors are expected, and we don't want
user. */ to frighten the user. */
if ((inb_p(SMBHSTCNT) & 0x3C) != VT596_QUICK) if (!((size == VT596_QUICK && !read) ||
(size == VT596_BYTE && read)))
dev_err(&vt596_adapter.dev, "Transaction error!\n"); dev_err(&vt596_adapter.dev, "Transaction error!\n");
} }
...@@ -462,9 +463,9 @@ static void __exit i2c_vt596_exit(void) ...@@ -462,9 +463,9 @@ static void __exit i2c_vt596_exit(void)
} }
} }
MODULE_AUTHOR( MODULE_AUTHOR("Kyosti Malkki <kmalkki@cc.hut.fi>, "
"Frodo Looijaard <frodol@dds.nl> and " "Mark D. Studebaker <mdsxyz123@yahoo.com> and "
"Philip Edelbrock <phil@netroedge.com>"); "Jean Delvare <khali@linux-fr.org>");
MODULE_DESCRIPTION("vt82c596 SMBus driver"); MODULE_DESCRIPTION("vt82c596 SMBus driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册