linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / hwmon / smsc47b397.c
index b608618..8663bbb 100644 (file)
@@ -35,7 +35,6 @@
 #include <linux/hwmon.h>
 #include <linux/err.h>
 #include <linux/init.h>
-#include <linux/mutex.h>
 #include <asm/io.h>
 
 /* Address is autodetected, there is no default value */
@@ -93,9 +92,9 @@ static u8 smsc47b397_reg_temp[] = {0x25, 0x26, 0x27, 0x80};
 struct smsc47b397_data {
        struct i2c_client client;
        struct class_device *class_dev;
-       struct mutex lock;
+       struct semaphore lock;
 
-       struct mutex update_lock;
+       struct semaphore update_lock;
        unsigned long last_updated; /* in jiffies */
        int valid;
 
@@ -109,10 +108,10 @@ static int smsc47b397_read_value(struct i2c_client *client, u8 reg)
        struct smsc47b397_data *data = i2c_get_clientdata(client);
        int res;
 
-       mutex_lock(&data->lock);
+       down(&data->lock);
        outb(reg, client->addr);
        res = inb_p(client->addr + 1);
-       mutex_unlock(&data->lock);
+       up(&data->lock);
        return res;
 }
 
@@ -122,7 +121,7 @@ static struct smsc47b397_data *smsc47b397_update_device(struct device *dev)
        struct smsc47b397_data *data = i2c_get_clientdata(client);
        int i;
 
-       mutex_lock(&data->update_lock);
+       down(&data->update_lock);
 
        if (time_after(jiffies, data->last_updated + HZ) || !data->valid) {
                dev_dbg(&client->dev, "starting device update...\n");
@@ -145,7 +144,7 @@ static struct smsc47b397_data *smsc47b397_update_device(struct device *dev)
                dev_dbg(&client->dev, "... device update complete\n");
        }
 
-       mutex_unlock(&data->update_lock);
+       up(&data->update_lock);
 
        return data;
 }
@@ -255,14 +254,14 @@ static int smsc47b397_detect(struct i2c_adapter *adapter)
        new_client = &data->client;
        i2c_set_clientdata(new_client, data);
        new_client->addr = address;
-       mutex_init(&data->lock);
+       init_MUTEX(&data->lock);
        new_client->adapter = adapter;
        new_client->driver = &smsc47b397_driver;
        new_client->flags = 0;
 
        strlcpy(new_client->name, "smsc47b397", I2C_NAME_SIZE);
 
-       mutex_init(&data->update_lock);
+       init_MUTEX(&data->update_lock);
 
        if ((err = i2c_attach_client(new_client)))
                goto error_free;