mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-08 16:11:26 +00:00
fix enable/disable. Patch from ticket #932.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1493 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
1f09a5e26b
commit
657a9c7e03
1 file changed
+7
-4
@@ -356,6 +356,9 @@ int ds1621_read_value(struct i2c_client *client, u8 reg)
|
||||
the usual practice. */
|
||||
int ds1621_write_value(struct i2c_client *client, u8 reg, u16 value)
|
||||
{
|
||||
if ( (reg == DS1621_COM_START) || (reg == DS1621_COM_STOP) )
|
||||
return i2c_smbus_write_byte(client, reg);
|
||||
else
|
||||
if ((reg == DS1621_REG_CONF) || (reg == DS1621_REG_TEMP_COUNTER)
|
||||
|| (reg == DS1621_REG_TEMP_SLOPE))
|
||||
return i2c_smbus_write_byte_data(client, reg, value);
|
||||
@@ -410,7 +413,7 @@ void ds1621_update_client(struct i2c_client *client)
|
||||
data->temp_int = ITEMP_FROM_REG(data->temp);
|
||||
/* restart the conversion */
|
||||
if (data->enable)
|
||||
ds1621_read_value(client, DS1621_COM_START);
|
||||
ds1621_write_value(client, DS1621_COM_START, 0);
|
||||
}
|
||||
|
||||
/* reset alarms if neccessary */
|
||||
@@ -504,14 +507,14 @@ void ds1621_enable(struct i2c_client *client, int operation, int ctl_name,
|
||||
} else if (operation == SENSORS_PROC_REAL_WRITE) {
|
||||
if (*nrels_mag >= 1) {
|
||||
if (results[0]) {
|
||||
ds1621_read_value(client, DS1621_COM_START);
|
||||
ds1621_write_value(client, DS1621_COM_START, 0);
|
||||
data->enable=1;
|
||||
} else {
|
||||
ds1621_read_value(client, DS1621_COM_STOP);
|
||||
ds1621_write_value(client, DS1621_COM_STOP, 0);
|
||||
data->enable=0;
|
||||
}
|
||||
} else {
|
||||
ds1621_read_value(client, DS1621_COM_START);
|
||||
ds1621_write_value(client, DS1621_COM_START, 0);
|
||||
data->enable=1;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user