Replace binary semaphore with mutex. Mutex also gives better performance
than semaphore.
Signed-off-by: Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
};
struct dt9812_private {
};
struct dt9812_private {
struct {
__u8 addr;
size_t size;
struct {
__u8 addr;
size_t size;
+ mutex_lock(&devpriv->mut);
ret = dt9812_read_multiple_registers(dev, 2, reg, value);
if (ret == 0) {
/*
ret = dt9812_read_multiple_registers(dev, 2, reg, value);
if (ret == 0) {
/*
*/
*bits = (value[0] & 0x7f) | ((value[1] & 0x08) << 4);
}
*/
*bits = (value[0] & 0x7f) | ((value[1] & 0x08) << 4);
}
+ mutex_unlock(&devpriv->mut);
u8 value[1] = { bits };
int ret;
u8 value[1] = { bits };
int ret;
+ mutex_lock(&devpriv->mut);
ret = dt9812_write_multiple_registers(dev, 1, reg, value);
ret = dt9812_write_multiple_registers(dev, 1, reg, value);
+ mutex_unlock(&devpriv->mut);
+ mutex_lock(&devpriv->mut);
/* 1 select the gain */
dt9812_configure_gain(dev, &rmw[0], gain);
/* 1 select the gain */
dt9812_configure_gain(dev, &rmw[0], gain);
+ mutex_unlock(&devpriv->mut);
struct dt9812_rmw_byte rmw[3];
int ret;
struct dt9812_rmw_byte rmw[3];
int ret;
+ mutex_lock(&devpriv->mut);
switch (channel) {
case 0:
switch (channel) {
case 0:
}
ret = dt9812_rmw_multiple_registers(dev, 3, rmw);
}
ret = dt9812_rmw_multiple_registers(dev, 3, rmw);
+ mutex_unlock(&devpriv->mut);
struct dt9812_private *devpriv = dev->private;
int ret;
struct dt9812_private *devpriv = dev->private;
int ret;
+ mutex_lock(&devpriv->mut);
ret = comedi_readback_insn_read(dev, s, insn, data);
ret = comedi_readback_insn_read(dev, s, insn, data);
+ mutex_unlock(&devpriv->mut);
if (!devpriv)
return -ENOMEM;
if (!devpriv)
return -ENOMEM;
- sema_init(&devpriv->sem, 1);
+ mutex_init(&devpriv->mut);
usb_set_intfdata(intf, devpriv);
ret = dt9812_find_endpoints(dev);
usb_set_intfdata(intf, devpriv);
ret = dt9812_find_endpoints(dev);
+ mutex_lock(&devpriv->mut);
usb_set_intfdata(intf, NULL);
usb_set_intfdata(intf, NULL);
+ mutex_unlock(&devpriv->mut);
}
static struct comedi_driver dt9812_driver = {
}
static struct comedi_driver dt9812_driver = {