[PATCH 2/2] iio: magnetometer: ak8975: Simplify probe()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Simplify the probe() by replacing device_get_match_data() and
i2c_client_get_device_id by i2c_get_match_data() as we have similar I2C,
ACPI and DT matching table.

While at it, replace name->chipset to make error message consistent.

Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
---
 drivers/iio/magnetometer/ak8975.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
index eb706d0bf70b..9c4d942ffab3 100644
--- a/drivers/iio/magnetometer/ak8975.c
+++ b/drivers/iio/magnetometer/ak8975.c
@@ -878,16 +878,13 @@ static irqreturn_t ak8975_handle_trigger(int irq, void *p)
 
 static int ak8975_probe(struct i2c_client *client)
 {
-	const struct i2c_device_id *id = i2c_client_get_device_id(client);
 	struct ak8975_data *data;
 	struct iio_dev *indio_dev;
 	struct gpio_desc *eoc_gpiod;
 	struct gpio_desc *reset_gpiod;
-	const void *match;
 	unsigned int i;
 	int err;
 	enum asahi_compass_chipset chipset;
-	const char *name = NULL;
 
 	/*
 	 * Grab and set up the supplied GPIO.
@@ -927,15 +924,8 @@ static int ak8975_probe(struct i2c_client *client)
 	if (err)
 		return err;
 
-	/* id will be NULL when enumerated via ACPI */
-	match = device_get_match_data(&client->dev);
-	if (match) {
-		chipset = (uintptr_t)match;
-		name = dev_name(&client->dev);
-	} else if (id) {
-		chipset = (enum asahi_compass_chipset)(id->driver_data);
-		name = id->name;
-	} else
+	chipset = (uintptr_t)i2c_get_match_data(client);
+	if (!chipset)
 		return -ENOSYS;
 
 	for (i = 0; i < ARRAY_SIZE(ak_def_array); i++)
@@ -967,12 +957,13 @@ static int ak8975_probe(struct i2c_client *client)
 		dev_err(&client->dev, "Unexpected device\n");
 		goto power_off;
 	}
-	dev_dbg(&client->dev, "Asahi compass chip %s\n", name);
+	dev_dbg(&client->dev, "Asahi compass chip %d\n", chipset);
 
 	/* Perform some basic start-of-day setup of the device. */
 	err = ak8975_setup(client);
 	if (err < 0) {
-		dev_err(&client->dev, "%s initialization fails\n", name);
+		dev_err(&client->dev, "Initialization failed for chip %d\n",
+			chipset);
 		goto power_off;
 	}
 
@@ -982,7 +973,7 @@ static int ak8975_probe(struct i2c_client *client)
 	indio_dev->info = &ak8975_info;
 	indio_dev->available_scan_masks = ak8975_scan_masks;
 	indio_dev->modes = INDIO_DIRECT_MODE;
-	indio_dev->name = name;
+	indio_dev->name = dev_name(&client->dev);
 
 	err = iio_triggered_buffer_setup(indio_dev, NULL, ak8975_handle_trigger,
 					 NULL);
-- 
2.25.1




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux