diff options
author | Jean Delvare <khali@linux-fr.org> | 2007-05-08 17:21:59 +0200 |
---|---|---|
committer | Jean Delvare <khali@hyperion.delvare> | 2007-05-08 17:21:59 +0200 |
commit | 94e183fd0425a917d9c1453041ef88f3610c0f01 (patch) | |
tree | bbf098e0b4244fcca76a2f99373888804a3e018f /drivers/hwmon/smsc47m1.c | |
parent | 8eccbb6fb97a5b54a9db166399f0d24f33114522 (diff) | |
download | lwn-94e183fd0425a917d9c1453041ef88f3610c0f01.tar.gz lwn-94e183fd0425a917d9c1453041ef88f3610c0f01.zip |
hwmon/smsc47m1: Get rid of a useless mutex
The smsc47m1 driver uses a mutex to protect the accesses to the
hardware registers. It really doesn't need any protection, as the
register space is flat. Get rid of that mutex for a smaller and
faster driver.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/hwmon/smsc47m1.c')
-rw-r--r-- | drivers/hwmon/smsc47m1.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/drivers/hwmon/smsc47m1.c b/drivers/hwmon/smsc47m1.c index 16762cca87e5..f219d7c6a982 100644 --- a/drivers/hwmon/smsc47m1.c +++ b/drivers/hwmon/smsc47m1.c @@ -116,7 +116,6 @@ struct smsc47m1_data { struct i2c_client client; enum chips type; struct class_device *class_dev; - struct mutex lock; struct mutex update_lock; unsigned long last_updated; /* In jiffies */ @@ -131,13 +130,19 @@ struct smsc47m1_data { static int smsc47m1_detect(struct i2c_adapter *adapter); static int smsc47m1_detach_client(struct i2c_client *client); - -static int smsc47m1_read_value(struct i2c_client *client, u8 reg); -static void smsc47m1_write_value(struct i2c_client *client, u8 reg, u8 value); - static struct smsc47m1_data *smsc47m1_update_device(struct device *dev, int init); +static inline int smsc47m1_read_value(struct i2c_client *client, u8 reg) +{ + return inb_p(client->addr + reg); +} + +static inline void smsc47m1_write_value(struct i2c_client *client, u8 reg, + u8 value) +{ + outb_p(value, client->addr + reg); +} static struct i2c_driver smsc47m1_driver = { .driver = { @@ -477,7 +482,6 @@ static int smsc47m1_detect(struct i2c_adapter *adapter) new_client = &data->client; i2c_set_clientdata(new_client, data); new_client->addr = address; - mutex_init(&data->lock); new_client->adapter = adapter; new_client->driver = &smsc47m1_driver; new_client->flags = 0; @@ -633,23 +637,6 @@ static int smsc47m1_detach_client(struct i2c_client *client) return 0; } -static int smsc47m1_read_value(struct i2c_client *client, u8 reg) -{ - int res; - - mutex_lock(&((struct smsc47m1_data *) i2c_get_clientdata(client))->lock); - res = inb_p(client->addr + reg); - mutex_unlock(&((struct smsc47m1_data *) i2c_get_clientdata(client))->lock); - return res; -} - -static void smsc47m1_write_value(struct i2c_client *client, u8 reg, u8 value) -{ - mutex_lock(&((struct smsc47m1_data *) i2c_get_clientdata(client))->lock); - outb_p(value, client->addr + reg); - mutex_unlock(&((struct smsc47m1_data *) i2c_get_clientdata(client))->lock); -} - static struct smsc47m1_data *smsc47m1_update_device(struct device *dev, int init) { |