Commit cc7c0f7e authored by Hartmut Knaack's avatar Hartmut Knaack Committed by Jonathan Cameron
Browse files

staging:iio:ad799x Move to devm_request_threaded_irq to make device-removal simpler.

parent a37d70eb
Loading
Loading
Loading
Loading
+9 −13
Original line number Original line Diff line number Diff line
@@ -577,7 +577,8 @@ static int ad799x_probe(struct i2c_client *client,
		goto error_disable_reg;
		goto error_disable_reg;


	if (client->irq > 0) {
	if (client->irq > 0) {
		ret = request_threaded_irq(client->irq,
		ret = devm_request_threaded_irq(&client->dev,
						client->irq,
						NULL,
						NULL,
						ad799x_event_handler,
						ad799x_event_handler,
						IRQF_TRIGGER_FALLING |
						IRQF_TRIGGER_FALLING |
@@ -589,13 +590,10 @@ static int ad799x_probe(struct i2c_client *client,
	}
	}
	ret = iio_device_register(indio_dev);
	ret = iio_device_register(indio_dev);
	if (ret)
	if (ret)
		goto error_free_irq;
		goto error_cleanup_ring;


	return 0;
	return 0;


error_free_irq:
	if (client->irq > 0)
		free_irq(client->irq, indio_dev);
error_cleanup_ring:
error_cleanup_ring:
	ad799x_ring_cleanup(indio_dev);
	ad799x_ring_cleanup(indio_dev);
error_disable_reg:
error_disable_reg:
@@ -611,8 +609,6 @@ static int ad799x_remove(struct i2c_client *client)
	struct ad799x_state *st = iio_priv(indio_dev);
	struct ad799x_state *st = iio_priv(indio_dev);


	iio_device_unregister(indio_dev);
	iio_device_unregister(indio_dev);
	if (client->irq > 0)
		free_irq(client->irq, indio_dev);


	ad799x_ring_cleanup(indio_dev);
	ad799x_ring_cleanup(indio_dev);
	if (!IS_ERR(st->reg))
	if (!IS_ERR(st->reg))