hwmon: (corsair-psu) Rely on subsystem locking
Attribute access is now serialized in the hardware monitoring core, so locking in the driver code is no longer necessary. Drop it. Signed-off-by: Guenter Roeck <linux@roeck-us.net>pull/1354/merge
parent
4c8d758d4e
commit
4207069edb
|
|
@ -9,11 +9,9 @@
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/hid.h>
|
#include <linux/hid.h>
|
||||||
#include <linux/hwmon.h>
|
#include <linux/hwmon.h>
|
||||||
#include <linux/hwmon-sysfs.h>
|
|
||||||
#include <linux/jiffies.h>
|
#include <linux/jiffies.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/mutex.h>
|
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
|
|
||||||
|
|
@ -124,7 +122,6 @@ struct corsairpsu_data {
|
||||||
struct device *hwmon_dev;
|
struct device *hwmon_dev;
|
||||||
struct dentry *debugfs;
|
struct dentry *debugfs;
|
||||||
struct completion wait_completion;
|
struct completion wait_completion;
|
||||||
struct mutex lock; /* for locking access to cmd_buffer */
|
|
||||||
u8 *cmd_buffer;
|
u8 *cmd_buffer;
|
||||||
char vendor[REPLY_SIZE];
|
char vendor[REPLY_SIZE];
|
||||||
char product[REPLY_SIZE];
|
char product[REPLY_SIZE];
|
||||||
|
|
@ -220,7 +217,6 @@ static int corsairpsu_request(struct corsairpsu_data *priv, u8 cmd, u8 rail, voi
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
mutex_lock(&priv->lock);
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case PSU_CMD_RAIL_VOLTS_HCRIT:
|
case PSU_CMD_RAIL_VOLTS_HCRIT:
|
||||||
case PSU_CMD_RAIL_VOLTS_LCRIT:
|
case PSU_CMD_RAIL_VOLTS_LCRIT:
|
||||||
|
|
@ -230,17 +226,13 @@ static int corsairpsu_request(struct corsairpsu_data *priv, u8 cmd, u8 rail, voi
|
||||||
case PSU_CMD_RAIL_WATTS:
|
case PSU_CMD_RAIL_WATTS:
|
||||||
ret = corsairpsu_usb_cmd(priv, 2, PSU_CMD_SELECT_RAIL, rail, NULL);
|
ret = corsairpsu_usb_cmd(priv, 2, PSU_CMD_SELECT_RAIL, rail, NULL);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto cmd_fail;
|
return ret;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = corsairpsu_usb_cmd(priv, 3, cmd, 0, data);
|
return corsairpsu_usb_cmd(priv, 3, cmd, 0, data);
|
||||||
|
|
||||||
cmd_fail:
|
|
||||||
mutex_unlock(&priv->lock);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int corsairpsu_get_value(struct corsairpsu_data *priv, u8 cmd, u8 rail, long *val)
|
static int corsairpsu_get_value(struct corsairpsu_data *priv, u8 cmd, u8 rail, long *val)
|
||||||
|
|
@ -797,7 +789,6 @@ static int corsairpsu_probe(struct hid_device *hdev, const struct hid_device_id
|
||||||
|
|
||||||
priv->hdev = hdev;
|
priv->hdev = hdev;
|
||||||
hid_set_drvdata(hdev, priv);
|
hid_set_drvdata(hdev, priv);
|
||||||
mutex_init(&priv->lock);
|
|
||||||
init_completion(&priv->wait_completion);
|
init_completion(&priv->wait_completion);
|
||||||
|
|
||||||
hid_device_io_start(hdev);
|
hid_device_io_start(hdev);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue