[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: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
4a1c4447e5
Коммит
8750197f0e
|
@ -7,12 +7,10 @@ Supported adapters:
|
|||
* 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@dds.nl>,
|
||||
Philip Edelbrock <phil@netroedge.com>,
|
||||
Kyösti Mälkki <kmalkki@cc.hut.fi>,
|
||||
Mark D. Studebaker <mdsxyz123@yahoo.com>,
|
||||
Jean Delvare <khali@linux-fr.org>
|
||||
|
|
|
@ -142,19 +142,18 @@ static int vt596_transaction(u8 size)
|
|||
/* 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 @@ static int vt596_transaction(u8 size)
|
|||
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 @@ static int vt596_transaction(u8 size)
|
|||
}
|
||||
|
||||
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 @@ static void __exit i2c_vt596_exit(void)
|
|||
}
|
||||
}
|
||||
|
||||
MODULE_AUTHOR(
|
||||
"Frodo Looijaard <frodol@dds.nl> and "
|
||||
"Philip Edelbrock <phil@netroedge.com>");
|
||||
MODULE_AUTHOR("Kyosti Malkki <kmalkki@cc.hut.fi>, "
|
||||
"Mark D. Studebaker <mdsxyz123@yahoo.com> and "
|
||||
"Jean Delvare <khali@linux-fr.org>");
|
||||
MODULE_DESCRIPTION("vt82c596 SMBus driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче