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

iio: light: adjd_s311: convert probe to device-managed functions

Now that the driver's buffer is stored on the adjd_s311_data private
object, the driver is a simple conversion to use only device-managed
functions in the probe.

The iio_triggered_buffer_setup() and iio_device_register() functions are
the only ones needing conversion.
And i2c_set_clientdata() is no longer required.

Signed-off-by: Alexandru Ardelean <aardelean@deviqon.com>
Link: https://lore.kernel.org/r/20210705071456.649659-2-aardelean@deviqon.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Alexandru Ardelean and committed by
Jonathan Cameron
bb761e72 2427a7e9

+3 -25
+3 -25
drivers/iio/light/adjd_s311.c
··· 245 245 return -ENOMEM; 246 246 247 247 data = iio_priv(indio_dev); 248 - i2c_set_clientdata(client, indio_dev); 249 248 data->client = client; 250 249 251 250 indio_dev->info = &adjd_s311_info; ··· 253 254 indio_dev->num_channels = ARRAY_SIZE(adjd_s311_channels); 254 255 indio_dev->modes = INDIO_DIRECT_MODE; 255 256 256 - err = iio_triggered_buffer_setup(indio_dev, NULL, 257 - adjd_s311_trigger_handler, NULL); 257 + err = devm_iio_triggered_buffer_setup(&client->dev, indio_dev, NULL, 258 + adjd_s311_trigger_handler, NULL); 258 259 if (err < 0) 259 260 return err; 260 261 261 - err = iio_device_register(indio_dev); 262 - if (err) 263 - goto exit_unreg_buffer; 264 - 265 - dev_info(&client->dev, "ADJD-S311 color sensor registered\n"); 266 - 267 - return 0; 268 - 269 - exit_unreg_buffer: 270 - iio_triggered_buffer_cleanup(indio_dev); 271 - return err; 272 - } 273 - 274 - static int adjd_s311_remove(struct i2c_client *client) 275 - { 276 - struct iio_dev *indio_dev = i2c_get_clientdata(client); 277 - 278 - iio_device_unregister(indio_dev); 279 - iio_triggered_buffer_cleanup(indio_dev); 280 - 281 - return 0; 262 + return devm_iio_device_register(&client->dev, indio_dev); 282 263 } 283 264 284 265 static const struct i2c_device_id adjd_s311_id[] = { ··· 272 293 .name = ADJD_S311_DRV_NAME, 273 294 }, 274 295 .probe = adjd_s311_probe, 275 - .remove = adjd_s311_remove, 276 296 .id_table = adjd_s311_id, 277 297 }; 278 298 module_i2c_driver(adjd_s311_driver);