]> git.sur5r.net Git - groeck-nct6775/commitdiff
Drop read/write lock
authorGuenter Roeck <linux@roeck-us.net>
Fri, 8 Mar 2013 15:44:56 +0000 (07:44 -0800)
committerGuenter Roeck <linux@roeck-us.net>
Fri, 8 Mar 2013 15:44:56 +0000 (07:44 -0800)
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>
nct6775.c

index 37258361891285a9a3b080e6f3af0be5e2087465..c15eb2752e42e65c91c1a27df022c254d8e49afc 100644 (file)
--- a/nct6775.c
+++ b/nct6775.c
@@ -555,7 +555,6 @@ struct nct6775_data {
        const char *name;
 
        struct device *hwmon_dev;
-       struct mutex lock;
 
        u16 reg_temp[4][NUM_TEMP]; /* 0=temp, 1=temp_over, 2=temp_hyst,
                                    * 3=temp_crit
@@ -746,8 +745,6 @@ static u16 nct6775_read_value(struct nct6775_data *data, u16 reg)
 {
        int res, word_sized = is_word_sized(data, reg);
 
-       mutex_lock(&data->lock);
-
        nct6775_set_bank(data, reg);
        outb_p(reg & 0xff, data->addr + ADDR_REG_OFFSET);
        res = inb_p(data->addr + DATA_REG_OFFSET);
@@ -756,8 +753,6 @@ static u16 nct6775_read_value(struct nct6775_data *data, u16 reg)
                       data->addr + ADDR_REG_OFFSET);
                res = (res << 8) + inb_p(data->addr + DATA_REG_OFFSET);
        }
-
-       mutex_unlock(&data->lock);
        return res;
 }
 
@@ -765,8 +760,6 @@ static int nct6775_write_value(struct nct6775_data *data, u16 reg, u16 value)
 {
        int word_sized = is_word_sized(data, reg);
 
-       mutex_lock(&data->lock);
-
        nct6775_set_bank(data, reg);
        outb_p(reg & 0xff, data->addr + ADDR_REG_OFFSET);
        if (word_sized) {
@@ -775,8 +768,6 @@ static int nct6775_write_value(struct nct6775_data *data, u16 reg, u16 value)
                       data->addr + ADDR_REG_OFFSET);
        }
        outb_p(value & 0xff, data->addr + DATA_REG_OFFSET);
-
-       mutex_unlock(&data->lock);
        return 0;
 }
 
@@ -3417,7 +3408,6 @@ static int nct6775_probe(struct platform_device *pdev)
 
        data->kind = sio_data->kind;
        data->addr = res->start;
-       mutex_init(&data->lock);
        mutex_init(&data->update_lock);
        data->name = nct6775_device_names[data->kind];
        data->bank = 0xff;              /* Force initial bank selection */