Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f079650 authored by Octavian Purdila's avatar Octavian Purdila Committed by Jonathan Cameron
Browse files

iio: remove gpio interrupt probing from drivers that use a single interrupt



Commit 845c8770 ("i2c / ACPI: Assign IRQ for devices that have
GpioInt automatically") automatically assigns the first ACPI GPIO
interrupt in client->irq, so we can remove the probing code from
drivers that use only one interrupt.

Signed-off-by: default avatarOctavian Purdila <octavian.purdila@intel.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 6839c1b0
Loading
Loading
Loading
Loading
+0 −30
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@

#define BMC150_ACCEL_DRV_NAME			"bmc150_accel"
#define BMC150_ACCEL_IRQ_NAME			"bmc150_accel_event"
#define BMC150_ACCEL_GPIO_NAME			"bmc150_accel_int"

#define BMC150_ACCEL_REG_CHIP_ID		0x00

@@ -1360,32 +1359,6 @@ static irqreturn_t bmc150_accel_irq_handler(int irq, void *private)
	return IRQ_NONE;
}

static int bmc150_accel_gpio_probe(struct i2c_client *client,
				   struct bmc150_accel_data *data)
{
	struct device *dev;
	struct gpio_desc *gpio;
	int ret;

	if (!client)
		return -EINVAL;

	dev = &client->dev;

	/* data ready gpio interrupt pin */
	gpio = devm_gpiod_get_index(dev, BMC150_ACCEL_GPIO_NAME, 0, GPIOD_IN);
	if (IS_ERR(gpio)) {
		dev_err(dev, "Failed: gpio get index\n");
		return PTR_ERR(gpio);
	}

	ret = gpiod_to_irq(gpio);

	dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret);

	return ret;
}

static const struct {
	int intr;
	const char *name;
@@ -1659,9 +1632,6 @@ static int bmc150_accel_probe(struct i2c_client *client,
		return ret;
	}

	if (client->irq < 0)
		client->irq = bmc150_accel_gpio_probe(client, data);

	if (client->irq > 0) {
		ret = devm_request_threaded_irq(
						&client->dev, client->irq,
+1 −33
Original line number Diff line number Diff line
@@ -1162,35 +1162,6 @@ static const char *kxcjk1013_match_acpi_device(struct device *dev,
	return dev_name(dev);
}

static int kxcjk1013_gpio_probe(struct i2c_client *client,
				struct kxcjk1013_data *data)
{
	struct device *dev;
	struct gpio_desc *gpio;
	int ret;

	if (!client)
		return -EINVAL;

	if (data->is_smo8500_device)
		return -ENOTSUPP;

	dev = &client->dev;

	/* data ready gpio interrupt pin */
	gpio = devm_gpiod_get_index(dev, "kxcjk1013_int", 0, GPIOD_IN);
	if (IS_ERR(gpio)) {
		dev_err(dev, "acpi gpio get index failed\n");
		return PTR_ERR(gpio);
	}

	ret = gpiod_to_irq(gpio);

	dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret);

	return ret;
}

static int kxcjk1013_probe(struct i2c_client *client,
			   const struct i2c_device_id *id)
{
@@ -1237,10 +1208,7 @@ static int kxcjk1013_probe(struct i2c_client *client,
	indio_dev->modes = INDIO_DIRECT_MODE;
	indio_dev->info = &kxcjk1013_info;

	if (client->irq < 0)
		client->irq = kxcjk1013_gpio_probe(client, data);

	if (client->irq > 0) {
	if (client->irq > 0 && !data->is_smo8500_device) {
		ret = devm_request_threaded_irq(&client->dev, client->irq,
						kxcjk1013_data_rdy_trig_poll,
						kxcjk1013_event_handler,
+0 −29
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@

#define MMA9553_DRV_NAME			"mma9553"
#define MMA9553_IRQ_NAME			"mma9553_event"
#define MMA9553_GPIO_NAME			"mma9553_int"

/* Pedometer configuration registers (R/W) */
#define MMA9553_REG_CONF_SLEEPMIN		0x00
@@ -1073,31 +1072,6 @@ static irqreturn_t mma9553_event_handler(int irq, void *private)
	return IRQ_HANDLED;
}

static int mma9553_gpio_probe(struct i2c_client *client)
{
	struct device *dev;
	struct gpio_desc *gpio;
	int ret;

	if (!client)
		return -EINVAL;

	dev = &client->dev;

	/* data ready GPIO interrupt pin */
	gpio = devm_gpiod_get_index(dev, MMA9553_GPIO_NAME, 0, GPIOD_IN);
	if (IS_ERR(gpio)) {
		dev_err(dev, "ACPI GPIO get index failed\n");
		return PTR_ERR(gpio);
	}

	ret = gpiod_to_irq(gpio);

	dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret);

	return ret;
}

static const char *mma9553_match_acpi_device(struct device *dev)
{
	const struct acpi_device_id *id;
@@ -1146,9 +1120,6 @@ static int mma9553_probe(struct i2c_client *client,
	indio_dev->modes = INDIO_DIRECT_MODE;
	indio_dev->info = &mma9553_info;

	if (client->irq < 0)
		client->irq = mma9553_gpio_probe(client);

	if (client->irq > 0) {
		ret = devm_request_threaded_irq(&client->dev, client->irq,
						mma9553_irq_handler,
+0 −28
Original line number Diff line number Diff line
@@ -50,7 +50,6 @@
#define STK8312_ALL_CHANNEL_SIZE	3

#define STK8312_DRIVER_NAME		"stk8312"
#define STK8312_GPIO			"stk8312_gpio"
#define STK8312_IRQ_NAME		"stk8312_event"

/*
@@ -504,30 +503,6 @@ static const struct iio_buffer_setup_ops stk8312_buffer_setup_ops = {
	.postdisable = stk8312_buffer_postdisable,
};

static int stk8312_gpio_probe(struct i2c_client *client)
{
	struct device *dev;
	struct gpio_desc *gpio;
	int ret;

	if (!client)
		return -EINVAL;

	dev = &client->dev;

	/* data ready gpio interrupt pin */
	gpio = devm_gpiod_get_index(dev, STK8312_GPIO, 0, GPIOD_IN);
	if (IS_ERR(gpio)) {
		dev_err(dev, "acpi gpio get index failed\n");
		return PTR_ERR(gpio);
	}

	ret = gpiod_to_irq(gpio);
	dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret);

	return ret;
}

static int stk8312_probe(struct i2c_client *client,
			 const struct i2c_device_id *id)
{
@@ -569,9 +544,6 @@ static int stk8312_probe(struct i2c_client *client,
	if (ret < 0)
		return ret;

	if (client->irq < 0)
		client->irq = stk8312_gpio_probe(client);

	if (client->irq > 0) {
		ret = devm_request_threaded_irq(&client->dev, client->irq,
						stk8312_data_rdy_trig_poll,
+0 −28
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@
#define STK8BA50_ALL_CHANNEL_SIZE		6

#define STK8BA50_DRIVER_NAME			"stk8ba50"
#define STK8BA50_GPIO				"stk8ba50_gpio"
#define STK8BA50_IRQ_NAME			"stk8ba50_event"

#define STK8BA50_SCALE_AVAIL			"0.0384 0.0767 0.1534 0.3069"
@@ -388,30 +387,6 @@ static const struct iio_buffer_setup_ops stk8ba50_buffer_setup_ops = {
	.postdisable = stk8ba50_buffer_postdisable,
};

static int stk8ba50_gpio_probe(struct i2c_client *client)
{
	struct device *dev;
	struct gpio_desc *gpio;
	int ret;

	if (!client)
		return -EINVAL;

	dev = &client->dev;

	/* data ready gpio interrupt pin */
	gpio = devm_gpiod_get_index(dev, STK8BA50_GPIO, 0, GPIOD_IN);
	if (IS_ERR(gpio)) {
		dev_err(dev, "acpi gpio get index failed\n");
		return PTR_ERR(gpio);
	}

	ret = gpiod_to_irq(gpio);
	dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret);

	return ret;
}

static int stk8ba50_probe(struct i2c_client *client,
			  const struct i2c_device_id *id)
{
@@ -465,9 +440,6 @@ static int stk8ba50_probe(struct i2c_client *client,
		goto err_power_off;
	}

	if (client->irq < 0)
		client->irq = stk8ba50_gpio_probe(client);

	if (client->irq > 0) {
		ret = devm_request_threaded_irq(&client->dev, client->irq,
						stk8ba50_data_rdy_trig_poll,
Loading