Hi Sebastian, On Wed, Aug 05, 2020 at 06:05:20PM +0200, Sebastian Reichel wrote: > > +static int exc3000_query_interrupt(struct exc3000_data *data) > +{ > + u8 *buf = data->buf; > + int err; > + > + err = i2c_master_recv(data->client, buf, EXC3000_LEN_FRAME); > + if (err < 0) > + return err; > + > + if (buf[0] != 0x42) I changed this to 'B' to match the rest of the function. > + return -EPROTO; > + > + if (buf[4] == 'E') > + strlcpy(data->model, buf+5, sizeof(data->model)); > + else if (buf[4] == 'D') > + strlcpy(data->fw_version, buf+5, sizeof(data->fw_version)); > + else > + return -EPROTO; > + > + return 0; > +} > + > + error = sysfs_create_group(&client->dev.kobj, &exc3000_attribute_group); > + if (error) > + return error; > + > + error = devm_add_action_or_reset(&client->dev, exc3000_unregister_sysfs, &client->dev); > + if (error) > + return error; Replaced 2 calls with devm_device_add_group(). Please yell if I managed to break it... Thanks. -- Dmitry