iio: pressure: hp03: update device probe to register with devm functions
authorThéo Borém Fabris <theobf@usp.br>
Mon, 9 Aug 2021 20:30:14 +0000 (17:30 -0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 15 Aug 2021 15:58:37 +0000 (16:58 +0100)
Update device probe to register resources with device-managed functions.
Further, get rid of device-specific remove callback which is no longer
needed.

Signed-off-by: Théo Borém Fabris <theobf@usp.br>
Link: https://lore.kernel.org/r/20210809203014.10955-1-theobf@usp.br
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/pressure/hp03.c

index e40b1d7dc129dc4c831cc7af02d0e67a956848f9..9538118c96489c89164c9a7c5af73fc8d47b3128 100644 (file)
@@ -242,47 +242,26 @@ static int hp03_probe(struct i2c_client *client,
         * which has it's dedicated I2C address and contains
         * the calibration constants for the sensor.
         */
-       priv->eeprom_client = i2c_new_dummy_device(client->adapter, HP03_EEPROM_ADDR);
+       priv->eeprom_client = devm_i2c_new_dummy_device(dev, client->adapter,
+                                                       HP03_EEPROM_ADDR);
        if (IS_ERR(priv->eeprom_client)) {
                dev_err(dev, "New EEPROM I2C device failed\n");
                return PTR_ERR(priv->eeprom_client);
        }
 
-       priv->eeprom_regmap = regmap_init_i2c(priv->eeprom_client,
-                                             &hp03_regmap_config);
+       priv->eeprom_regmap = devm_regmap_init_i2c(priv->eeprom_client,
+                                                  &hp03_regmap_config);
        if (IS_ERR(priv->eeprom_regmap)) {
                dev_err(dev, "Failed to allocate EEPROM regmap\n");
-               ret = PTR_ERR(priv->eeprom_regmap);
-               goto err_cleanup_eeprom_client;
+               return PTR_ERR(priv->eeprom_regmap);
        }
 
-       ret = iio_device_register(indio_dev);
+       ret = devm_iio_device_register(dev, indio_dev);
        if (ret) {
                dev_err(dev, "Failed to register IIO device\n");
-               goto err_cleanup_eeprom_regmap;
+               return ret;
        }
 
-       i2c_set_clientdata(client, indio_dev);
-
-       return 0;
-
-err_cleanup_eeprom_regmap:
-       regmap_exit(priv->eeprom_regmap);
-
-err_cleanup_eeprom_client:
-       i2c_unregister_device(priv->eeprom_client);
-       return ret;
-}
-
-static int hp03_remove(struct i2c_client *client)
-{
-       struct iio_dev *indio_dev = i2c_get_clientdata(client);
-       struct hp03_priv *priv = iio_priv(indio_dev);
-
-       iio_device_unregister(indio_dev);
-       regmap_exit(priv->eeprom_regmap);
-       i2c_unregister_device(priv->eeprom_client);
-
        return 0;
 }
 
@@ -304,7 +283,6 @@ static struct i2c_driver hp03_driver = {
                .of_match_table = hp03_of_match,
        },
        .probe          = hp03_probe,
-       .remove         = hp03_remove,
        .id_table       = hp03_id,
 };
 module_i2c_driver(hp03_driver);