forked from luck/tmp_suning_uos_patched
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6
This commit is contained in:
commit
969780f807
|
@ -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>
|
||||
|
|
|
@ -412,7 +412,7 @@ For now, you can ignore the `flags' parameter. It is there for future use.
|
|||
release_region(address,FOO_EXTENT);
|
||||
/* SENSORS ONLY END */
|
||||
ERROR1:
|
||||
kfree(new_client);
|
||||
kfree(data);
|
||||
ERROR0:
|
||||
return err;
|
||||
}
|
||||
|
@ -443,7 +443,7 @@ much simpler than the attachment code, fortunately!
|
|||
release_region(client->addr,LM78_EXTENT);
|
||||
/* HYBRID SENSORS CHIP ONLY END */
|
||||
|
||||
kfree(data);
|
||||
kfree(i2c_get_clientdata(client));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -180,11 +180,10 @@ superio_exit(void)
|
|||
#define W83781D_REG_BANK 0x4E
|
||||
|
||||
#define W83781D_REG_CONFIG 0x40
|
||||
#define W83781D_REG_ALARM1 0x41
|
||||
#define W83781D_REG_ALARM2 0x42
|
||||
#define W83781D_REG_ALARM3 0x450
|
||||
#define W83781D_REG_ALARM1 0x459
|
||||
#define W83781D_REG_ALARM2 0x45A
|
||||
#define W83781D_REG_ALARM3 0x45B
|
||||
|
||||
#define W83781D_REG_IRQ 0x4C
|
||||
#define W83781D_REG_BEEP_CONFIG 0x4D
|
||||
#define W83781D_REG_BEEP_INTS1 0x56
|
||||
#define W83781D_REG_BEEP_INTS2 0x57
|
||||
|
@ -1370,13 +1369,6 @@ static void w83627hf_init_client(struct i2c_client *client)
|
|||
W83781D_REG_TEMP3_CONFIG, tmp & 0xfe);
|
||||
}
|
||||
}
|
||||
|
||||
/* enable comparator mode for temp2 and temp3 so
|
||||
alarm indication will work correctly */
|
||||
i = w83627hf_read_value(client, W83781D_REG_IRQ);
|
||||
if (!(i & 0x40))
|
||||
w83627hf_write_value(client, W83781D_REG_IRQ,
|
||||
i | 0x40);
|
||||
}
|
||||
|
||||
/* Start monitoring */
|
||||
|
@ -1400,7 +1392,7 @@ static struct w83627hf_data *w83627hf_update_device(struct device *dev)
|
|||
/* skip missing sensors */
|
||||
if (((data->type == w83697hf) && (i == 1)) ||
|
||||
((data->type == w83627thf || data->type == w83637hf)
|
||||
&& (i == 4 || i == 5)))
|
||||
&& (i == 5 || i == 6)))
|
||||
continue;
|
||||
data->in[i] =
|
||||
w83627hf_read_value(client, W83781D_REG_IN(i));
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -164,9 +164,9 @@ static int ds1337_set_datetime(struct i2c_client *client, struct rtc_time *dt)
|
|||
buf[1] = BIN2BCD(dt->tm_sec);
|
||||
buf[2] = BIN2BCD(dt->tm_min);
|
||||
buf[3] = BIN2BCD(dt->tm_hour);
|
||||
buf[4] = BIN2BCD(dt->tm_wday) + 1;
|
||||
buf[4] = BIN2BCD(dt->tm_wday + 1);
|
||||
buf[5] = BIN2BCD(dt->tm_mday);
|
||||
buf[6] = BIN2BCD(dt->tm_mon) + 1;
|
||||
buf[6] = BIN2BCD(dt->tm_mon + 1);
|
||||
val = dt->tm_year;
|
||||
if (val >= 100) {
|
||||
val -= 100;
|
||||
|
|
Loading…
Reference in New Issue
Block a user