Commit 35157f44 authored by Hans de Goede's avatar Hans de Goede Committed by Jonathan Cameron

iio: accel: bmc150: Remove bmc150_set/get_second_device() accessor functions

Now that the definition of the bmc150_accel_data struct is no longer
private to bmc150-accel-core.c, bmc150-accel-i2c.c can simply directly
access the second_dev member and the accessor functions are no longer
necessary.

Note if the i2c_acpi_new_device() for the second-client now fails,
an ERR_PTR gets stored in data->second_dev this is fine since it is only
ever passed to i2c_unregister_device() which has an IS_ERR_OR_NULL() check.
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20210523170103.176958-7-hdegoede@redhat.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent ba8bd0b3
...@@ -1750,22 +1750,6 @@ int bmc150_accel_core_probe(struct device *dev, struct regmap *regmap, int irq, ...@@ -1750,22 +1750,6 @@ int bmc150_accel_core_probe(struct device *dev, struct regmap *regmap, int irq,
} }
EXPORT_SYMBOL_GPL(bmc150_accel_core_probe); EXPORT_SYMBOL_GPL(bmc150_accel_core_probe);
struct i2c_client *bmc150_get_second_device(struct i2c_client *client)
{
struct bmc150_accel_data *data = iio_priv(i2c_get_clientdata(client));
return data->second_device;
}
EXPORT_SYMBOL_GPL(bmc150_get_second_device);
void bmc150_set_second_device(struct i2c_client *client, struct i2c_client *second_dev)
{
struct bmc150_accel_data *data = iio_priv(i2c_get_clientdata(client));
data->second_device = second_dev;
}
EXPORT_SYMBOL_GPL(bmc150_set_second_device);
int bmc150_accel_core_remove(struct device *dev) int bmc150_accel_core_remove(struct device *dev)
{ {
struct iio_dev *indio_dev = dev_get_drvdata(dev); struct iio_dev *indio_dev = dev_get_drvdata(dev);
......
...@@ -35,8 +35,8 @@ static const struct acpi_device_id bmc150_acpi_dual_accel_ids[] = { ...@@ -35,8 +35,8 @@ static const struct acpi_device_id bmc150_acpi_dual_accel_ids[] = {
*/ */
static void bmc150_acpi_dual_accel_probe(struct i2c_client *client) static void bmc150_acpi_dual_accel_probe(struct i2c_client *client)
{ {
struct bmc150_accel_data *data = iio_priv(i2c_get_clientdata(client));
struct acpi_device *adev = ACPI_COMPANION(&client->dev); struct acpi_device *adev = ACPI_COMPANION(&client->dev);
struct i2c_client *second_dev;
char dev_name[16]; char dev_name[16];
struct i2c_board_info board_info = { struct i2c_board_info board_info = {
.type = "bmc150_accel", .type = "bmc150_accel",
...@@ -55,16 +55,14 @@ static void bmc150_acpi_dual_accel_probe(struct i2c_client *client) ...@@ -55,16 +55,14 @@ static void bmc150_acpi_dual_accel_probe(struct i2c_client *client)
board_info.irq = acpi_dev_gpio_irq_get(adev, 1); board_info.irq = acpi_dev_gpio_irq_get(adev, 1);
second_dev = i2c_acpi_new_device(&client->dev, 1, &board_info); data->second_device = i2c_acpi_new_device(&client->dev, 1, &board_info);
if (!IS_ERR(second_dev))
bmc150_set_second_device(client, second_dev);
} }
static void bmc150_acpi_dual_accel_remove(struct i2c_client *client) static void bmc150_acpi_dual_accel_remove(struct i2c_client *client)
{ {
struct i2c_client *second_dev = bmc150_get_second_device(client); struct bmc150_accel_data *data = iio_priv(i2c_get_clientdata(client));
i2c_unregister_device(second_dev); i2c_unregister_device(data->second_device);
} }
#else #else
static void bmc150_acpi_dual_accel_probe(struct i2c_client *client) {} static void bmc150_acpi_dual_accel_probe(struct i2c_client *client) {}
......
...@@ -78,8 +78,6 @@ enum { ...@@ -78,8 +78,6 @@ enum {
int bmc150_accel_core_probe(struct device *dev, struct regmap *regmap, int irq, int bmc150_accel_core_probe(struct device *dev, struct regmap *regmap, int irq,
const char *name, bool block_supported); const char *name, bool block_supported);
int bmc150_accel_core_remove(struct device *dev); int bmc150_accel_core_remove(struct device *dev);
struct i2c_client *bmc150_get_second_device(struct i2c_client *second_device);
void bmc150_set_second_device(struct i2c_client *client, struct i2c_client *second_dev);
extern const struct dev_pm_ops bmc150_accel_pm_ops; extern const struct dev_pm_ops bmc150_accel_pm_ops;
extern const struct regmap_config bmc150_regmap_conf; extern const struct regmap_config bmc150_regmap_conf;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment