This looks mostly fine, a couple of small things and like I said inOk. I set default return value to -ENODEV. W1 (OneWire) Bus periodically scan for connected devices. Typical time between scans about 60 sec. This period W1 slave device can present in kernel device list, but will physically disconnected.
reply to Greg please use subject lines matching the style for the
subsystem - this makes it a lot easier for people to identify relevant
patches.
+ int ret = -ENODEV;This is a bit confusing with how -ENODEV is generated - move the
+
+
+ if (reg > 255)
+ return -EINVAL;
+
+ mutex_lock(&sl->master->bus_mutex);
+ if (!w1_reset_select_slave(sl)) {
+ w1_write_8(sl->master, W1_CMD_READ_DATA);
+ w1_write_8(sl->master, reg);
+ *val = w1_read_8(sl->master);
+ ret = 0;
+ }
+ mutex_unlock(&sl->master->bus_mutex);
assignment into the if statement so it doesn't look like we're silently
ignoring errors unless you look back to the top of the function.
Ok. I move this structs down in next version of patches.+static struct regmap_bus regmap_w1_bus_a8_v16 = {It'd be clearer to just have all all these structs at the end of the set
+ .reg_read = w1_reg_a8_v16_read,
+ .reg_write = w1_reg_a8_v16_write,
+};
of functions rather than scattered about randomly.