diff options
Diffstat (limited to 'drivers/hwmon/atxp1.c')
| -rw-r--r-- | drivers/hwmon/atxp1.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/hwmon/atxp1.c b/drivers/hwmon/atxp1.c index b0c490073c8e..728a1e8b9190 100644 --- a/drivers/hwmon/atxp1.c +++ b/drivers/hwmon/atxp1.c | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #include <linux/hwmon.h> | 26 | #include <linux/hwmon.h> |
| 27 | #include <linux/hwmon-vid.h> | 27 | #include <linux/hwmon-vid.h> |
| 28 | #include <linux/err.h> | 28 | #include <linux/err.h> |
| 29 | #include <linux/mutex.h> | ||
| 29 | 30 | ||
| 30 | MODULE_LICENSE("GPL"); | 31 | MODULE_LICENSE("GPL"); |
| 31 | MODULE_DESCRIPTION("System voltages control via Attansic ATXP1"); | 32 | MODULE_DESCRIPTION("System voltages control via Attansic ATXP1"); |
| @@ -60,7 +61,7 @@ static struct i2c_driver atxp1_driver = { | |||
| 60 | struct atxp1_data { | 61 | struct atxp1_data { |
| 61 | struct i2c_client client; | 62 | struct i2c_client client; |
| 62 | struct class_device *class_dev; | 63 | struct class_device *class_dev; |
| 63 | struct semaphore update_lock; | 64 | struct mutex update_lock; |
| 64 | unsigned long last_updated; | 65 | unsigned long last_updated; |
| 65 | u8 valid; | 66 | u8 valid; |
| 66 | struct { | 67 | struct { |
| @@ -80,7 +81,7 @@ static struct atxp1_data * atxp1_update_device(struct device *dev) | |||
| 80 | client = to_i2c_client(dev); | 81 | client = to_i2c_client(dev); |
| 81 | data = i2c_get_clientdata(client); | 82 | data = i2c_get_clientdata(client); |
| 82 | 83 | ||
| 83 | down(&data->update_lock); | 84 | mutex_lock(&data->update_lock); |
| 84 | 85 | ||
| 85 | if (time_after(jiffies, data->last_updated + HZ) || !data->valid) { | 86 | if (time_after(jiffies, data->last_updated + HZ) || !data->valid) { |
| 86 | 87 | ||
| @@ -93,7 +94,7 @@ static struct atxp1_data * atxp1_update_device(struct device *dev) | |||
| 93 | data->valid = 1; | 94 | data->valid = 1; |
| 94 | } | 95 | } |
| 95 | 96 | ||
| 96 | up(&data->update_lock); | 97 | mutex_unlock(&data->update_lock); |
| 97 | 98 | ||
| 98 | return(data); | 99 | return(data); |
| 99 | } | 100 | } |
| @@ -309,7 +310,7 @@ static int atxp1_detect(struct i2c_adapter *adapter, int address, int kind) | |||
| 309 | 310 | ||
| 310 | data->valid = 0; | 311 | data->valid = 0; |
| 311 | 312 | ||
| 312 | init_MUTEX(&data->update_lock); | 313 | mutex_init(&data->update_lock); |
| 313 | 314 | ||
| 314 | err = i2c_attach_client(new_client); | 315 | err = i2c_attach_client(new_client); |
| 315 | 316 | ||
