Skip to content

Commit

Permalink
hwmon/smsc47m1: Get rid of a useless mutex
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
Jean Delvare authored and Jean Delvare committed May 8, 2007
1 parent 8eccbb6 commit 94e183f
Showing 1 changed file with 10 additions and 23 deletions.
33 changes: 10 additions & 23 deletions drivers/hwmon/smsc47m1.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand All @@ -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 = {
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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)
{
Expand Down

0 comments on commit 94e183f

Please sign in to comment.