iio: st_sensors: remove all driver remove functions
At this point all ST driver remove functions do iio_device_unregister(). This change removes them from them and replaces all iio_device_register() with devm_iio_device_register(). This can be done in a single change relatively easy, since all these remove functions are define in st_sensors.h. Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Alexandru Ardelean <aardelean@deviqon.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20210823112204.243255-5-aardelean@deviqon.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
5363c6c17b
commit
6b658c31bb
@ -1335,6 +1335,7 @@ int st_accel_common_probe(struct iio_dev *indio_dev)
|
||||
{
|
||||
struct st_sensor_data *adata = iio_priv(indio_dev);
|
||||
struct st_sensors_platform_data *pdata = dev_get_platdata(adata->dev);
|
||||
struct device *parent = indio_dev->dev.parent;
|
||||
int err;
|
||||
|
||||
indio_dev->modes = INDIO_DIRECT_MODE;
|
||||
@ -1380,16 +1381,10 @@ int st_accel_common_probe(struct iio_dev *indio_dev)
|
||||
return err;
|
||||
}
|
||||
|
||||
return iio_device_register(indio_dev);
|
||||
return devm_iio_device_register(parent, indio_dev);
|
||||
}
|
||||
EXPORT_SYMBOL(st_accel_common_probe);
|
||||
|
||||
void st_accel_common_remove(struct iio_dev *indio_dev)
|
||||
{
|
||||
iio_device_unregister(indio_dev);
|
||||
}
|
||||
EXPORT_SYMBOL(st_accel_common_remove);
|
||||
|
||||
MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
|
||||
MODULE_DESCRIPTION("STMicroelectronics accelerometers driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
@ -180,15 +180,6 @@ static int st_accel_i2c_probe(struct i2c_client *client)
|
||||
return st_accel_common_probe(indio_dev);
|
||||
}
|
||||
|
||||
static int st_accel_i2c_remove(struct i2c_client *client)
|
||||
{
|
||||
struct iio_dev *indio_dev = i2c_get_clientdata(client);
|
||||
|
||||
st_accel_common_remove(indio_dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct i2c_driver st_accel_driver = {
|
||||
.driver = {
|
||||
.name = "st-accel-i2c",
|
||||
@ -196,7 +187,6 @@ static struct i2c_driver st_accel_driver = {
|
||||
.acpi_match_table = ACPI_PTR(st_accel_acpi_match),
|
||||
},
|
||||
.probe_new = st_accel_i2c_probe,
|
||||
.remove = st_accel_i2c_remove,
|
||||
.id_table = st_accel_id_table,
|
||||
};
|
||||
module_i2c_driver(st_accel_driver);
|
||||
|
@ -130,15 +130,6 @@ static int st_accel_spi_probe(struct spi_device *spi)
|
||||
return st_accel_common_probe(indio_dev);
|
||||
}
|
||||
|
||||
static int st_accel_spi_remove(struct spi_device *spi)
|
||||
{
|
||||
struct iio_dev *indio_dev = spi_get_drvdata(spi);
|
||||
|
||||
st_accel_common_remove(indio_dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct spi_device_id st_accel_id_table[] = {
|
||||
{ LIS3DH_ACCEL_DEV_NAME },
|
||||
{ LSM330D_ACCEL_DEV_NAME },
|
||||
@ -166,7 +157,6 @@ static struct spi_driver st_accel_driver = {
|
||||
.of_match_table = st_accel_of_match,
|
||||
},
|
||||
.probe = st_accel_spi_probe,
|
||||
.remove = st_accel_spi_remove,
|
||||
.id_table = st_accel_id_table,
|
||||
};
|
||||
module_spi_driver(st_accel_driver);
|
||||
|
@ -478,6 +478,7 @@ int st_gyro_common_probe(struct iio_dev *indio_dev)
|
||||
{
|
||||
struct st_sensor_data *gdata = iio_priv(indio_dev);
|
||||
struct st_sensors_platform_data *pdata;
|
||||
struct device *parent = indio_dev->dev.parent;
|
||||
int err;
|
||||
|
||||
indio_dev->modes = INDIO_DIRECT_MODE;
|
||||
@ -515,16 +516,10 @@ int st_gyro_common_probe(struct iio_dev *indio_dev)
|
||||
return err;
|
||||
}
|
||||
|
||||
return iio_device_register(indio_dev);
|
||||
return devm_iio_device_register(parent, indio_dev);
|
||||
}
|
||||
EXPORT_SYMBOL(st_gyro_common_probe);
|
||||
|
||||
void st_gyro_common_remove(struct iio_dev *indio_dev)
|
||||
{
|
||||
iio_device_unregister(indio_dev);
|
||||
}
|
||||
EXPORT_SYMBOL(st_gyro_common_remove);
|
||||
|
||||
MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
|
||||
MODULE_DESCRIPTION("STMicroelectronics gyroscopes driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
@ -93,15 +93,6 @@ static int st_gyro_i2c_probe(struct i2c_client *client,
|
||||
return st_gyro_common_probe(indio_dev);
|
||||
}
|
||||
|
||||
static int st_gyro_i2c_remove(struct i2c_client *client)
|
||||
{
|
||||
struct iio_dev *indio_dev = i2c_get_clientdata(client);
|
||||
|
||||
st_gyro_common_remove(indio_dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct i2c_device_id st_gyro_id_table[] = {
|
||||
{ L3G4200D_GYRO_DEV_NAME },
|
||||
{ LSM330D_GYRO_DEV_NAME },
|
||||
@ -122,7 +113,6 @@ static struct i2c_driver st_gyro_driver = {
|
||||
.of_match_table = st_gyro_of_match,
|
||||
},
|
||||
.probe = st_gyro_i2c_probe,
|
||||
.remove = st_gyro_i2c_remove,
|
||||
.id_table = st_gyro_id_table,
|
||||
};
|
||||
module_i2c_driver(st_gyro_driver);
|
||||
|
@ -97,15 +97,6 @@ static int st_gyro_spi_probe(struct spi_device *spi)
|
||||
return st_gyro_common_probe(indio_dev);
|
||||
}
|
||||
|
||||
static int st_gyro_spi_remove(struct spi_device *spi)
|
||||
{
|
||||
struct iio_dev *indio_dev = spi_get_drvdata(spi);
|
||||
|
||||
st_gyro_common_remove(indio_dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct spi_device_id st_gyro_id_table[] = {
|
||||
{ L3G4200D_GYRO_DEV_NAME },
|
||||
{ LSM330D_GYRO_DEV_NAME },
|
||||
@ -126,7 +117,6 @@ static struct spi_driver st_gyro_driver = {
|
||||
.of_match_table = st_gyro_of_match,
|
||||
},
|
||||
.probe = st_gyro_spi_probe,
|
||||
.remove = st_gyro_spi_remove,
|
||||
.id_table = st_gyro_id_table,
|
||||
};
|
||||
module_spi_driver(st_gyro_driver);
|
||||
|
@ -18,6 +18,5 @@ struct st_lsm9ds0 {
|
||||
};
|
||||
|
||||
int st_lsm9ds0_probe(struct st_lsm9ds0 *lsm9ds0, struct regmap *regmap);
|
||||
int st_lsm9ds0_remove(struct st_lsm9ds0 *lsm9ds0);
|
||||
|
||||
#endif /* ST_LSM9DS0_H */
|
||||
|
@ -142,23 +142,10 @@ int st_lsm9ds0_probe(struct st_lsm9ds0 *lsm9ds0, struct regmap *regmap)
|
||||
return ret;
|
||||
|
||||
/* Setup magnetometer device */
|
||||
ret = st_lsm9ds0_probe_magn(lsm9ds0, regmap);
|
||||
if (ret)
|
||||
st_accel_common_remove(lsm9ds0->accel);
|
||||
|
||||
return ret;
|
||||
return st_lsm9ds0_probe_magn(lsm9ds0, regmap);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(st_lsm9ds0_probe);
|
||||
|
||||
int st_lsm9ds0_remove(struct st_lsm9ds0 *lsm9ds0)
|
||||
{
|
||||
st_magn_common_remove(lsm9ds0->magn);
|
||||
st_accel_common_remove(lsm9ds0->accel);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(st_lsm9ds0_remove);
|
||||
|
||||
MODULE_AUTHOR("Andy Shevchenko <andriy.shevchenko@linux.intel.com>");
|
||||
MODULE_DESCRIPTION("STMicroelectronics LSM9DS0 IMU core driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
@ -64,18 +64,12 @@ static int st_lsm9ds0_i2c_probe(struct i2c_client *client)
|
||||
return st_lsm9ds0_probe(lsm9ds0, regmap);
|
||||
}
|
||||
|
||||
static int st_lsm9ds0_i2c_remove(struct i2c_client *client)
|
||||
{
|
||||
return st_lsm9ds0_remove(i2c_get_clientdata(client));
|
||||
}
|
||||
|
||||
static struct i2c_driver st_lsm9ds0_driver = {
|
||||
.driver = {
|
||||
.name = "st-lsm9ds0-i2c",
|
||||
.of_match_table = st_lsm9ds0_of_match,
|
||||
},
|
||||
.probe_new = st_lsm9ds0_i2c_probe,
|
||||
.remove = st_lsm9ds0_i2c_remove,
|
||||
.id_table = st_lsm9ds0_id_table,
|
||||
};
|
||||
module_i2c_driver(st_lsm9ds0_driver);
|
||||
|
@ -63,18 +63,12 @@ static int st_lsm9ds0_spi_probe(struct spi_device *spi)
|
||||
return st_lsm9ds0_probe(lsm9ds0, regmap);
|
||||
}
|
||||
|
||||
static int st_lsm9ds0_spi_remove(struct spi_device *spi)
|
||||
{
|
||||
return st_lsm9ds0_remove(spi_get_drvdata(spi));
|
||||
}
|
||||
|
||||
static struct spi_driver st_lsm9ds0_driver = {
|
||||
.driver = {
|
||||
.name = "st-lsm9ds0-spi",
|
||||
.of_match_table = st_lsm9ds0_of_match,
|
||||
},
|
||||
.probe = st_lsm9ds0_spi_probe,
|
||||
.remove = st_lsm9ds0_spi_remove,
|
||||
.id_table = st_lsm9ds0_id_table,
|
||||
};
|
||||
module_spi_driver(st_lsm9ds0_driver);
|
||||
|
@ -612,6 +612,7 @@ int st_magn_common_probe(struct iio_dev *indio_dev)
|
||||
{
|
||||
struct st_sensor_data *mdata = iio_priv(indio_dev);
|
||||
struct st_sensors_platform_data *pdata = dev_get_platdata(mdata->dev);
|
||||
struct device *parent = indio_dev->dev.parent;
|
||||
int err;
|
||||
|
||||
indio_dev->modes = INDIO_DIRECT_MODE;
|
||||
@ -650,16 +651,10 @@ int st_magn_common_probe(struct iio_dev *indio_dev)
|
||||
return err;
|
||||
}
|
||||
|
||||
return iio_device_register(indio_dev);
|
||||
return devm_iio_device_register(parent, indio_dev);
|
||||
}
|
||||
EXPORT_SYMBOL(st_magn_common_probe);
|
||||
|
||||
void st_magn_common_remove(struct iio_dev *indio_dev)
|
||||
{
|
||||
iio_device_unregister(indio_dev);
|
||||
}
|
||||
EXPORT_SYMBOL(st_magn_common_remove);
|
||||
|
||||
MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
|
||||
MODULE_DESCRIPTION("STMicroelectronics magnetometers driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
@ -89,15 +89,6 @@ static int st_magn_i2c_probe(struct i2c_client *client,
|
||||
return st_magn_common_probe(indio_dev);
|
||||
}
|
||||
|
||||
static int st_magn_i2c_remove(struct i2c_client *client)
|
||||
{
|
||||
struct iio_dev *indio_dev = i2c_get_clientdata(client);
|
||||
|
||||
st_magn_common_remove(indio_dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct i2c_device_id st_magn_id_table[] = {
|
||||
{ LSM303DLH_MAGN_DEV_NAME },
|
||||
{ LSM303DLHC_MAGN_DEV_NAME },
|
||||
@ -117,7 +108,6 @@ static struct i2c_driver st_magn_driver = {
|
||||
.of_match_table = st_magn_of_match,
|
||||
},
|
||||
.probe = st_magn_i2c_probe,
|
||||
.remove = st_magn_i2c_remove,
|
||||
.id_table = st_magn_id_table,
|
||||
};
|
||||
module_i2c_driver(st_magn_driver);
|
||||
|
@ -83,15 +83,6 @@ static int st_magn_spi_probe(struct spi_device *spi)
|
||||
return st_magn_common_probe(indio_dev);
|
||||
}
|
||||
|
||||
static int st_magn_spi_remove(struct spi_device *spi)
|
||||
{
|
||||
struct iio_dev *indio_dev = spi_get_drvdata(spi);
|
||||
|
||||
st_magn_common_remove(indio_dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct spi_device_id st_magn_id_table[] = {
|
||||
{ LIS3MDL_MAGN_DEV_NAME },
|
||||
{ LSM303AGR_MAGN_DEV_NAME },
|
||||
@ -108,7 +99,6 @@ static struct spi_driver st_magn_driver = {
|
||||
.of_match_table = st_magn_of_match,
|
||||
},
|
||||
.probe = st_magn_spi_probe,
|
||||
.remove = st_magn_spi_remove,
|
||||
.id_table = st_magn_id_table,
|
||||
};
|
||||
module_spi_driver(st_magn_driver);
|
||||
|
@ -678,6 +678,7 @@ int st_press_common_probe(struct iio_dev *indio_dev)
|
||||
{
|
||||
struct st_sensor_data *press_data = iio_priv(indio_dev);
|
||||
struct st_sensors_platform_data *pdata = dev_get_platdata(press_data->dev);
|
||||
struct device *parent = indio_dev->dev.parent;
|
||||
int err;
|
||||
|
||||
indio_dev->modes = INDIO_DIRECT_MODE;
|
||||
@ -721,16 +722,10 @@ int st_press_common_probe(struct iio_dev *indio_dev)
|
||||
return err;
|
||||
}
|
||||
|
||||
return iio_device_register(indio_dev);
|
||||
return devm_iio_device_register(parent, indio_dev);
|
||||
}
|
||||
EXPORT_SYMBOL(st_press_common_probe);
|
||||
|
||||
void st_press_common_remove(struct iio_dev *indio_dev)
|
||||
{
|
||||
iio_device_unregister(indio_dev);
|
||||
}
|
||||
EXPORT_SYMBOL(st_press_common_remove);
|
||||
|
||||
MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
|
||||
MODULE_DESCRIPTION("STMicroelectronics pressures driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
@ -106,15 +106,6 @@ static int st_press_i2c_probe(struct i2c_client *client,
|
||||
return st_press_common_probe(indio_dev);
|
||||
}
|
||||
|
||||
static int st_press_i2c_remove(struct i2c_client *client)
|
||||
{
|
||||
struct iio_dev *indio_dev = i2c_get_clientdata(client);
|
||||
|
||||
st_press_common_remove(indio_dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct i2c_driver st_press_driver = {
|
||||
.driver = {
|
||||
.name = "st-press-i2c",
|
||||
@ -122,7 +113,6 @@ static struct i2c_driver st_press_driver = {
|
||||
.acpi_match_table = ACPI_PTR(st_press_acpi_match),
|
||||
},
|
||||
.probe = st_press_i2c_probe,
|
||||
.remove = st_press_i2c_remove,
|
||||
.id_table = st_press_id_table,
|
||||
};
|
||||
module_i2c_driver(st_press_driver);
|
||||
|
@ -89,15 +89,6 @@ static int st_press_spi_probe(struct spi_device *spi)
|
||||
return st_press_common_probe(indio_dev);
|
||||
}
|
||||
|
||||
static int st_press_spi_remove(struct spi_device *spi)
|
||||
{
|
||||
struct iio_dev *indio_dev = spi_get_drvdata(spi);
|
||||
|
||||
st_press_common_remove(indio_dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct spi_device_id st_press_id_table[] = {
|
||||
{ LPS001WP_PRESS_DEV_NAME },
|
||||
{ LPS25H_PRESS_DEV_NAME },
|
||||
@ -116,7 +107,6 @@ static struct spi_driver st_press_driver = {
|
||||
.of_match_table = st_press_of_match,
|
||||
},
|
||||
.probe = st_press_spi_probe,
|
||||
.remove = st_press_spi_remove,
|
||||
.id_table = st_press_id_table,
|
||||
};
|
||||
module_spi_driver(st_press_driver);
|
||||
|
@ -323,21 +323,17 @@ void st_sensors_dev_name_probe(struct device *dev, char *name, int len);
|
||||
/* Accelerometer */
|
||||
const struct st_sensor_settings *st_accel_get_settings(const char *name);
|
||||
int st_accel_common_probe(struct iio_dev *indio_dev);
|
||||
void st_accel_common_remove(struct iio_dev *indio_dev);
|
||||
|
||||
/* Gyroscope */
|
||||
const struct st_sensor_settings *st_gyro_get_settings(const char *name);
|
||||
int st_gyro_common_probe(struct iio_dev *indio_dev);
|
||||
void st_gyro_common_remove(struct iio_dev *indio_dev);
|
||||
|
||||
/* Magnetometer */
|
||||
const struct st_sensor_settings *st_magn_get_settings(const char *name);
|
||||
int st_magn_common_probe(struct iio_dev *indio_dev);
|
||||
void st_magn_common_remove(struct iio_dev *indio_dev);
|
||||
|
||||
/* Pressure */
|
||||
const struct st_sensor_settings *st_press_get_settings(const char *name);
|
||||
int st_press_common_probe(struct iio_dev *indio_dev);
|
||||
void st_press_common_remove(struct iio_dev *indio_dev);
|
||||
|
||||
#endif /* ST_SENSORS_H */
|
||||
|
Loading…
Reference in New Issue
Block a user