Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

hwmon: (ina238) 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>

+5 -21
+5 -21
drivers/hwmon/ina238.c
··· 117 117 struct ina238_data { 118 118 const struct ina238_config *config; 119 119 struct i2c_client *client; 120 - struct mutex config_lock; 121 120 struct regmap *regmap; 122 121 u32 rshunt; 123 122 int gain; ··· 606 607 static int ina238_write(struct device *dev, enum hwmon_sensor_types type, 607 608 u32 attr, int channel, long val) 608 609 { 609 - struct ina238_data *data = dev_get_drvdata(dev); 610 - int err; 611 - 612 - mutex_lock(&data->config_lock); 613 - 614 610 switch (type) { 615 611 case hwmon_in: 616 - err = ina238_write_in(dev, attr, channel, val); 617 - break; 612 + return ina238_write_in(dev, attr, channel, val); 618 613 case hwmon_curr: 619 - err = ina238_write_curr(dev, attr, val); 620 - break; 614 + return ina238_write_curr(dev, attr, val); 621 615 case hwmon_power: 622 - err = ina238_write_power_max(dev, val); 623 - break; 616 + return ina238_write_power_max(dev, val); 624 617 case hwmon_temp: 625 - err = ina238_write_temp_max(dev, val); 626 - break; 618 + return ina238_write_temp_max(dev, val); 627 619 default: 628 - err = -EOPNOTSUPP; 629 - break; 620 + return -EOPNOTSUPP; 630 621 } 631 - 632 - mutex_unlock(&data->config_lock); 633 - return err; 634 622 } 635 623 636 624 static umode_t ina238_is_visible(const void *drvdata, ··· 742 756 data->client = client; 743 757 /* set the device type */ 744 758 data->config = &ina238_config[chip]; 745 - 746 - mutex_init(&data->config_lock); 747 759 748 760 data->regmap = devm_regmap_init_i2c(client, &ina238_regmap_config); 749 761 if (IS_ERR(data->regmap)) {