mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 21:57:43 +00:00
hwmon: (nct6775) Drop read/write lock
The read/write lock is acquired for each read/write operation from/to the chip. This occurs either during initialization, when it is not needed, or during updates, when the update_lock is held as well, and it is not needed either. Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
0fc1f8fc61
commit
236d903948
1 changed files with 0 additions and 10 deletions
|
@ -554,7 +554,6 @@ struct nct6775_data {
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
||||||
struct device *hwmon_dev;
|
struct device *hwmon_dev;
|
||||||
struct mutex lock;
|
|
||||||
|
|
||||||
u16 reg_temp[4][NUM_TEMP]; /* 0=temp, 1=temp_over, 2=temp_hyst,
|
u16 reg_temp[4][NUM_TEMP]; /* 0=temp, 1=temp_over, 2=temp_hyst,
|
||||||
* 3=temp_crit
|
* 3=temp_crit
|
||||||
|
@ -745,8 +744,6 @@ static u16 nct6775_read_value(struct nct6775_data *data, u16 reg)
|
||||||
{
|
{
|
||||||
int res, word_sized = is_word_sized(data, reg);
|
int res, word_sized = is_word_sized(data, reg);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
|
||||||
|
|
||||||
nct6775_set_bank(data, reg);
|
nct6775_set_bank(data, reg);
|
||||||
outb_p(reg & 0xff, data->addr + ADDR_REG_OFFSET);
|
outb_p(reg & 0xff, data->addr + ADDR_REG_OFFSET);
|
||||||
res = inb_p(data->addr + DATA_REG_OFFSET);
|
res = inb_p(data->addr + DATA_REG_OFFSET);
|
||||||
|
@ -755,8 +752,6 @@ static u16 nct6775_read_value(struct nct6775_data *data, u16 reg)
|
||||||
data->addr + ADDR_REG_OFFSET);
|
data->addr + ADDR_REG_OFFSET);
|
||||||
res = (res << 8) + inb_p(data->addr + DATA_REG_OFFSET);
|
res = (res << 8) + inb_p(data->addr + DATA_REG_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&data->lock);
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -764,8 +759,6 @@ static int nct6775_write_value(struct nct6775_data *data, u16 reg, u16 value)
|
||||||
{
|
{
|
||||||
int word_sized = is_word_sized(data, reg);
|
int word_sized = is_word_sized(data, reg);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
|
||||||
|
|
||||||
nct6775_set_bank(data, reg);
|
nct6775_set_bank(data, reg);
|
||||||
outb_p(reg & 0xff, data->addr + ADDR_REG_OFFSET);
|
outb_p(reg & 0xff, data->addr + ADDR_REG_OFFSET);
|
||||||
if (word_sized) {
|
if (word_sized) {
|
||||||
|
@ -774,8 +767,6 @@ static int nct6775_write_value(struct nct6775_data *data, u16 reg, u16 value)
|
||||||
data->addr + ADDR_REG_OFFSET);
|
data->addr + ADDR_REG_OFFSET);
|
||||||
}
|
}
|
||||||
outb_p(value & 0xff, data->addr + DATA_REG_OFFSET);
|
outb_p(value & 0xff, data->addr + DATA_REG_OFFSET);
|
||||||
|
|
||||||
mutex_unlock(&data->lock);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3416,7 +3407,6 @@ static int nct6775_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
data->kind = sio_data->kind;
|
data->kind = sio_data->kind;
|
||||||
data->addr = res->start;
|
data->addr = res->start;
|
||||||
mutex_init(&data->lock);
|
|
||||||
mutex_init(&data->update_lock);
|
mutex_init(&data->update_lock);
|
||||||
data->name = nct6775_device_names[data->kind];
|
data->name = nct6775_device_names[data->kind];
|
||||||
data->bank = 0xff; /* Force initial bank selection */
|
data->bank = 0xff; /* Force initial bank selection */
|
||||||
|
|
Loading…
Reference in a new issue