git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
i2c
/
busses
/
i2c-amd756-s4882.c
diff --git
a/drivers/i2c/busses/i2c-amd756-s4882.c
b/drivers/i2c/busses/i2c-amd756-s4882.c
index
56c7d98
..
08e9157
100644
(file)
--- a/
drivers/i2c/busses/i2c-amd756-s4882.c
+++ b/
drivers/i2c/busses/i2c-amd756-s4882.c
@@
-38,6
+38,7
@@
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/i2c.h>
+#include <linux/mutex.h>
extern struct i2c_adapter amd756_smbus;
extern struct i2c_adapter amd756_smbus;
@@
-45,7
+46,7
@@
static struct i2c_adapter *s4882_adapter;
static struct i2c_algorithm *s4882_algo;
/* Wrapper access functions for multiplexed SMBus */
static struct i2c_algorithm *s4882_algo;
/* Wrapper access functions for multiplexed SMBus */
-static
struct semaphore amd756_lock
;
+static
DEFINE_MUTEX(amd756_lock)
;
static s32 amd756_access_virt0(struct i2c_adapter * adap, u16 addr,
unsigned short flags, char read_write,
static s32 amd756_access_virt0(struct i2c_adapter * adap, u16 addr,
unsigned short flags, char read_write,
@@
-59,12
+60,12
@@
static s32 amd756_access_virt0(struct i2c_adapter * adap, u16 addr,
|| addr == 0x18)
return -1;
|| addr == 0x18)
return -1;
-
down
(&amd756_lock);
+
mutex_lock
(&amd756_lock);
error = amd756_smbus.algo->smbus_xfer(adap, addr, flags, read_write,
command, size, data);
error = amd756_smbus.algo->smbus_xfer(adap, addr, flags, read_write,
command, size, data);
-
up
(&amd756_lock);
+
mutex_unlock
(&amd756_lock);
return error;
}
return error;
}
@@
-87,7
+88,7
@@
static inline s32 amd756_access_channel(struct i2c_adapter * adap, u16 addr,
if (addr != 0x4c && (addr & 0xfc) != 0x50 && (addr & 0xfc) != 0x30)
return -1;
if (addr != 0x4c && (addr & 0xfc) != 0x50 && (addr & 0xfc) != 0x30)
return -1;
-
down
(&amd756_lock);
+
mutex_lock
(&amd756_lock);
if (last_channels != channels) {
union i2c_smbus_data mplxdata;
if (last_channels != channels) {
union i2c_smbus_data mplxdata;
@@
-105,7
+106,7
@@
static inline s32 amd756_access_channel(struct i2c_adapter * adap, u16 addr,
command, size, data);
UNLOCK:
command, size, data);
UNLOCK:
-
up
(&amd756_lock);
+
mutex_unlock
(&amd756_lock);
return error;
}
return error;
}
@@
-166,8
+167,6
@@
static int __init amd756_s4882_init(void)
}
printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4882\n");
}
printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4882\n");
- init_MUTEX(&amd756_lock);
-
/* Define the 5 virtual adapters and algorithms structures */
if (!(s4882_adapter = kzalloc(5 * sizeof(struct i2c_adapter),
GFP_KERNEL))) {
/* Define the 5 virtual adapters and algorithms structures */
if (!(s4882_adapter = kzalloc(5 * sizeof(struct i2c_adapter),
GFP_KERNEL))) {