OSDN Git Service

iio: accel: bma400: Make bma400_remove() return void
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Wed, 13 Oct 2021 20:32:09 +0000 (22:32 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 19 Oct 2021 07:30:45 +0000 (08:30 +0100)
When an i2c or spi driver's remove function returns a non-zero error
code nothing happens apart from emitting a generic error message. Make
this error message more device specific and return zero instead in the
remove callbacks. As the return value of bma400_remove() is unused then,
change the function to not yield a return value.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Link: https://lore.kernel.org/r/20211013203223.2694577-2-u.kleine-koenig@pengutronix.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/bma400.h
drivers/iio/accel/bma400_core.c
drivers/iio/accel/bma400_i2c.c
drivers/iio/accel/bma400_spi.c

index 5ad10db..c4c8d74 100644 (file)
@@ -94,6 +94,6 @@ extern const struct regmap_config bma400_regmap_config;
 
 int bma400_probe(struct device *dev, struct regmap *regmap, const char *name);
 
-int bma400_remove(struct device *dev);
+void bma400_remove(struct device *dev);
 
 #endif
index 21520e0..fd2647b 100644 (file)
@@ -828,7 +828,7 @@ int bma400_probe(struct device *dev, struct regmap *regmap, const char *name)
 }
 EXPORT_SYMBOL(bma400_probe);
 
-int bma400_remove(struct device *dev)
+void bma400_remove(struct device *dev)
 {
        struct iio_dev *indio_dev = dev_get_drvdata(dev);
        struct bma400_data *data = iio_priv(indio_dev);
@@ -838,12 +838,13 @@ int bma400_remove(struct device *dev)
        ret = bma400_set_power_mode(data, POWER_MODE_SLEEP);
        mutex_unlock(&data->mutex);
 
+       if (ret)
+               dev_warn(dev, "Failed to put device into sleep mode (%pe)\n", ERR_PTR(ret));
+
        regulator_bulk_disable(ARRAY_SIZE(data->regulators),
                               data->regulators);
 
        iio_device_unregister(indio_dev);
-
-       return ret;
 }
 EXPORT_SYMBOL(bma400_remove);
 
index 9dcb7cc..f50df53 100644 (file)
@@ -29,7 +29,9 @@ static int bma400_i2c_probe(struct i2c_client *client,
 
 static int bma400_i2c_remove(struct i2c_client *client)
 {
-       return bma400_remove(&client->dev);
+       bma400_remove(&client->dev);
+
+       return 0;
 }
 
 static const struct i2c_device_id bma400_i2c_ids[] = {
index 7c28259..9f622e3 100644 (file)
@@ -89,7 +89,9 @@ static int bma400_spi_probe(struct spi_device *spi)
 
 static int bma400_spi_remove(struct spi_device *spi)
 {
-       return bma400_remove(&spi->dev);
+       bma400_remove(&spi->dev);
+
+       return 0;
 }
 
 static const struct spi_device_id bma400_spi_ids[] = {