2015-06-05 14:06:57

by Octavian Purdila

[permalink] [raw]
Subject: [PATCH v3 0/2] fix drivers that consider 0 as a valid IRQ in client->irq

Since patch "i2c / ACPI: Use 0 to indicate that device does not have
interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
change all driver's checks accordingly.

The same issue occurs when the device is instantiated via device tree
with no IRQ, or from the i2c sysfs interface, even before the patch
above.

[1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>

Changes since v2:

* switch to using https://lkml.kernel.org/ instead of lkml.org

Changes since v1:

* remove the commit id as the referenced patch is not yet merged

* rephrased the subject line to be more descriptive


Octavian Purdila (2):
iio: fix drivers that consider 0 as a valid IRQ in client->irq
rtc: fix drivers that consider 0 as a valid IRQ in client->irq

drivers/iio/accel/bmc150-accel.c | 2 +-
drivers/iio/accel/kxcjk-1013.c | 2 +-
drivers/iio/accel/mma9553.c | 2 +-
drivers/iio/imu/kmx61.c | 8 ++++----
drivers/rtc/rtc-ds1374.c | 4 ++--
drivers/rtc/rtc-ds3232.c | 2 +-
6 files changed, 10 insertions(+), 10 deletions(-)

--
1.9.1


2015-06-05 14:04:15

by Octavian Purdila

[permalink] [raw]
Subject: [PATCH v3 1/2] iio: fix drivers that consider 0 as a valid IRQ in client->irq

Since patch "i2c / ACPI: Use 0 to indicate that device does not have
interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
change all driver's checks accordingly.

The same issue occurs when the device is instantiated via device tree
with no IRQ, or from the i2c sysfs interface, even before the patch
above.

[1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>

Signed-off-by: Octavian Purdila <[email protected]>
Reviewed-by: Mika Westerberg <[email protected]>
---
drivers/iio/accel/bmc150-accel.c | 2 +-
drivers/iio/accel/kxcjk-1013.c | 2 +-
drivers/iio/accel/mma9553.c | 2 +-
drivers/iio/imu/kmx61.c | 8 ++++----
4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel.c
index 4e70f51..55751d9 100644
--- a/drivers/iio/accel/bmc150-accel.c
+++ b/drivers/iio/accel/bmc150-accel.c
@@ -1663,7 +1663,7 @@ static int bmc150_accel_probe(struct i2c_client *client,
if (client->irq < 0)
client->irq = bmc150_accel_gpio_probe(client, data);

- if (client->irq >= 0) {
+ if (client->irq > 0) {
ret = devm_request_threaded_irq(
&client->dev, client->irq,
bmc150_accel_irq_handler,
diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
index 0d9bd35..aa93cbd 100644
--- a/drivers/iio/accel/kxcjk-1013.c
+++ b/drivers/iio/accel/kxcjk-1013.c
@@ -1243,7 +1243,7 @@ static int kxcjk1013_probe(struct i2c_client *client,
if (client->irq < 0)
client->irq = kxcjk1013_gpio_probe(client, data);

- if (client->irq >= 0) {
+ if (client->irq > 0) {
ret = devm_request_threaded_irq(&client->dev, client->irq,
kxcjk1013_data_rdy_trig_poll,
kxcjk1013_event_handler,
diff --git a/drivers/iio/accel/mma9553.c b/drivers/iio/accel/mma9553.c
index 9d649c4..df043b3 100644
--- a/drivers/iio/accel/mma9553.c
+++ b/drivers/iio/accel/mma9553.c
@@ -1143,7 +1143,7 @@ static int mma9553_probe(struct i2c_client *client,
if (client->irq < 0)
client->irq = mma9553_gpio_probe(client);

- if (client->irq >= 0) {
+ if (client->irq > 0) {
ret = devm_request_threaded_irq(&client->dev, client->irq,
mma9553_irq_handler,
mma9553_event_handler,
diff --git a/drivers/iio/imu/kmx61.c b/drivers/iio/imu/kmx61.c
index 462a010..82cdf50 100644
--- a/drivers/iio/imu/kmx61.c
+++ b/drivers/iio/imu/kmx61.c
@@ -1363,7 +1363,7 @@ static int kmx61_probe(struct i2c_client *client,
if (client->irq < 0)
client->irq = kmx61_gpio_probe(client, data);

- if (client->irq >= 0) {
+ if (client->irq > 0) {
ret = devm_request_threaded_irq(&client->dev, client->irq,
kmx61_data_rdy_trig_poll,
kmx61_event_handler,
@@ -1445,10 +1445,10 @@ err_iio_unregister_mag:
err_iio_unregister_acc:
iio_device_unregister(data->acc_indio_dev);
err_buffer_cleanup_mag:
- if (client->irq >= 0)
+ if (client->irq > 0)
iio_triggered_buffer_cleanup(data->mag_indio_dev);
err_buffer_cleanup_acc:
- if (client->irq >= 0)
+ if (client->irq > 0)
iio_triggered_buffer_cleanup(data->acc_indio_dev);
err_trigger_unregister_motion:
iio_trigger_unregister(data->motion_trig);
@@ -1472,7 +1472,7 @@ static int kmx61_remove(struct i2c_client *client)
iio_device_unregister(data->acc_indio_dev);
iio_device_unregister(data->mag_indio_dev);

- if (client->irq >= 0) {
+ if (client->irq > 0) {
iio_triggered_buffer_cleanup(data->acc_indio_dev);
iio_triggered_buffer_cleanup(data->mag_indio_dev);
iio_trigger_unregister(data->acc_dready_trig);
--
1.9.1

2015-06-05 14:00:37

by Octavian Purdila

[permalink] [raw]
Subject: [PATCH v3 2/2] rtc: fix drivers that consider 0 as a valid IRQ in client->irq

Since patch "i2c / ACPI: Use 0 to indicate that device does not have
interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
change all driver's checks accordingly.

The same issue occurs when the device is instantiated via device tree
with no IRQ, or from the i2c sysfs interface, even before the patch
above.

[1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>

Signed-off-by: Octavian Purdila <[email protected]>
Reviewed-by: Mika Westerberg <[email protected]>
Acked-by: Alexandre Belloni <[email protected]>
---
drivers/rtc/rtc-ds1374.c | 4 ++--
drivers/rtc/rtc-ds3232.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/rtc/rtc-ds1374.c b/drivers/rtc/rtc-ds1374.c
index 167783f..592458c 100644
--- a/drivers/rtc/rtc-ds1374.c
+++ b/drivers/rtc/rtc-ds1374.c
@@ -689,7 +689,7 @@ static int ds1374_suspend(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);

- if (client->irq >= 0 && device_may_wakeup(&client->dev))
+ if (client->irq > 0 && device_may_wakeup(&client->dev))
enable_irq_wake(client->irq);
return 0;
}
@@ -698,7 +698,7 @@ static int ds1374_resume(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);

- if (client->irq >= 0 && device_may_wakeup(&client->dev))
+ if (client->irq > 0 && device_may_wakeup(&client->dev))
disable_irq_wake(client->irq);
return 0;
}
diff --git a/drivers/rtc/rtc-ds3232.c b/drivers/rtc/rtc-ds3232.c
index 7e48e53..f280dd1 100644
--- a/drivers/rtc/rtc-ds3232.c
+++ b/drivers/rtc/rtc-ds3232.c
@@ -443,7 +443,7 @@ static int ds3232_remove(struct i2c_client *client)
{
struct ds3232 *ds3232 = i2c_get_clientdata(client);

- if (client->irq >= 0) {
+ if (client->irq > 0) {
mutex_lock(&ds3232->mutex);
ds3232->exiting = 1;
mutex_unlock(&ds3232->mutex);
--
1.9.1

2015-07-23 10:59:42

by Octavian Purdila

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] iio: fix drivers that consider 0 as a valid IRQ in client->irq

On Fri, Jun 5, 2015 at 4:59 PM, Octavian Purdila
<[email protected]> wrote:
> Since patch "i2c / ACPI: Use 0 to indicate that device does not have
> interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
> change all driver's checks accordingly.
>
> The same issue occurs when the device is instantiated via device tree
> with no IRQ, or from the i2c sysfs interface, even before the patch
> above.
>
> [1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>
>
> Signed-off-by: Octavian Purdila <[email protected]>
> Reviewed-by: Mika Westerberg <[email protected]>

Hi Jonathan,

Does this look OK to you? If so, could you pleas ACK the patch so that
Linus can pick it up in its for-next branch if/when needed?

Thanks,
Tavi


> ---
> drivers/iio/accel/bmc150-accel.c | 2 +-
> drivers/iio/accel/kxcjk-1013.c | 2 +-
> drivers/iio/accel/mma9553.c | 2 +-
> drivers/iio/imu/kmx61.c | 8 ++++----
> 4 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel.c
> index 4e70f51..55751d9 100644
> --- a/drivers/iio/accel/bmc150-accel.c
> +++ b/drivers/iio/accel/bmc150-accel.c
> @@ -1663,7 +1663,7 @@ static int bmc150_accel_probe(struct i2c_client *client,
> if (client->irq < 0)
> client->irq = bmc150_accel_gpio_probe(client, data);
>
> - if (client->irq >= 0) {
> + if (client->irq > 0) {
> ret = devm_request_threaded_irq(
> &client->dev, client->irq,
> bmc150_accel_irq_handler,
> diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
> index 0d9bd35..aa93cbd 100644
> --- a/drivers/iio/accel/kxcjk-1013.c
> +++ b/drivers/iio/accel/kxcjk-1013.c
> @@ -1243,7 +1243,7 @@ static int kxcjk1013_probe(struct i2c_client *client,
> if (client->irq < 0)
> client->irq = kxcjk1013_gpio_probe(client, data);
>
> - if (client->irq >= 0) {
> + if (client->irq > 0) {
> ret = devm_request_threaded_irq(&client->dev, client->irq,
> kxcjk1013_data_rdy_trig_poll,
> kxcjk1013_event_handler,
> diff --git a/drivers/iio/accel/mma9553.c b/drivers/iio/accel/mma9553.c
> index 9d649c4..df043b3 100644
> --- a/drivers/iio/accel/mma9553.c
> +++ b/drivers/iio/accel/mma9553.c
> @@ -1143,7 +1143,7 @@ static int mma9553_probe(struct i2c_client *client,
> if (client->irq < 0)
> client->irq = mma9553_gpio_probe(client);
>
> - if (client->irq >= 0) {
> + if (client->irq > 0) {
> ret = devm_request_threaded_irq(&client->dev, client->irq,
> mma9553_irq_handler,
> mma9553_event_handler,
> diff --git a/drivers/iio/imu/kmx61.c b/drivers/iio/imu/kmx61.c
> index 462a010..82cdf50 100644
> --- a/drivers/iio/imu/kmx61.c
> +++ b/drivers/iio/imu/kmx61.c
> @@ -1363,7 +1363,7 @@ static int kmx61_probe(struct i2c_client *client,
> if (client->irq < 0)
> client->irq = kmx61_gpio_probe(client, data);
>
> - if (client->irq >= 0) {
> + if (client->irq > 0) {
> ret = devm_request_threaded_irq(&client->dev, client->irq,
> kmx61_data_rdy_trig_poll,
> kmx61_event_handler,
> @@ -1445,10 +1445,10 @@ err_iio_unregister_mag:
> err_iio_unregister_acc:
> iio_device_unregister(data->acc_indio_dev);
> err_buffer_cleanup_mag:
> - if (client->irq >= 0)
> + if (client->irq > 0)
> iio_triggered_buffer_cleanup(data->mag_indio_dev);
> err_buffer_cleanup_acc:
> - if (client->irq >= 0)
> + if (client->irq > 0)
> iio_triggered_buffer_cleanup(data->acc_indio_dev);
> err_trigger_unregister_motion:
> iio_trigger_unregister(data->motion_trig);
> @@ -1472,7 +1472,7 @@ static int kmx61_remove(struct i2c_client *client)
> iio_device_unregister(data->acc_indio_dev);
> iio_device_unregister(data->mag_indio_dev);
>
> - if (client->irq >= 0) {
> + if (client->irq > 0) {
> iio_triggered_buffer_cleanup(data->acc_indio_dev);
> iio_triggered_buffer_cleanup(data->mag_indio_dev);
> iio_trigger_unregister(data->acc_dready_trig);
> --
> 1.9.1
>

2015-07-23 13:11:57

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] iio: fix drivers that consider 0 as a valid IRQ in client->irq

On Thu, Jul 23, 2015 at 12:59 PM, Octavian Purdila
<[email protected]> wrote:
> On Fri, Jun 5, 2015 at 4:59 PM, Octavian Purdila
> <[email protected]> wrote:
>> Since patch "i2c / ACPI: Use 0 to indicate that device does not have
>> interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
>> change all driver's checks accordingly.
>>
>> The same issue occurs when the device is instantiated via device tree
>> with no IRQ, or from the i2c sysfs interface, even before the patch
>> above.
>>
>> [1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>
>>
>> Signed-off-by: Octavian Purdila <[email protected]>
>> Reviewed-by: Mika Westerberg <[email protected]>
>
> Hi Jonathan,
>
> Does this look OK to you? If so, could you pleas ACK the patch so that
> Linus can pick it up in its for-next branch if/when needed?

Me or Torvalds?

This looks more like a Wolfram patch to me if it should not
go through IIO.

Yours,
Linus Walleij

2015-07-23 13:23:57

by Octavian Purdila

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] iio: fix drivers that consider 0 as a valid IRQ in client->irq

On Thu, Jul 23, 2015 at 4:11 PM, Linus Walleij <[email protected]> wrote:
> On Thu, Jul 23, 2015 at 12:59 PM, Octavian Purdila
> <[email protected]> wrote:
>> On Fri, Jun 5, 2015 at 4:59 PM, Octavian Purdila
>> <[email protected]> wrote:
>>> Since patch "i2c / ACPI: Use 0 to indicate that device does not have
>>> interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
>>> change all driver's checks accordingly.
>>>
>>> The same issue occurs when the device is instantiated via device tree
>>> with no IRQ, or from the i2c sysfs interface, even before the patch
>>> above.
>>>
>>> [1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>
>>>
>>> Signed-off-by: Octavian Purdila <[email protected]>
>>> Reviewed-by: Mika Westerberg <[email protected]>
>>
>> Hi Jonathan,
>>
>> Does this look OK to you? If so, could you pleas ACK the patch so that
>> Linus can pick it up in its for-next branch if/when needed?
>
> Me or Torvalds?
>
> This looks more like a Wolfram patch to me if it should not
> go through IIO.
>

Hi Linus,

This patch fixes one issue introduced by "i2c / ACPI: Use 0 to
indicate that device does not have interrupt assigned" which I see it
is merged in the GPIO for-next branch. That is why I thought you will
pick it up, did I assume wrong?

Thanks,
Tavi

2015-07-23 13:27:02

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] iio: fix drivers that consider 0 as a valid IRQ in client->irq

On 23/07/2015 at 15:11:47 +0200, Linus Walleij wrote :
> On Thu, Jul 23, 2015 at 12:59 PM, Octavian Purdila
> <[email protected]> wrote:
> > On Fri, Jun 5, 2015 at 4:59 PM, Octavian Purdila
> > <[email protected]> wrote:
> >> Since patch "i2c / ACPI: Use 0 to indicate that device does not have
> >> interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
> >> change all driver's checks accordingly.
> >>
> >> The same issue occurs when the device is instantiated via device tree
> >> with no IRQ, or from the i2c sysfs interface, even before the patch
> >> above.
> >>
> >> [1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>
> >>
> >> Signed-off-by: Octavian Purdila <[email protected]>
> >> Reviewed-by: Mika Westerberg <[email protected]>
> >
> > Hi Jonathan,
> >
> > Does this look OK to you? If so, could you pleas ACK the patch so that
> > Linus can pick it up in its for-next branch if/when needed?
>
> Me or Torvalds?
>
> This looks more like a Wolfram patch to me if it should not
> go through IIO.
>

The first cover letter had:

"Linus, since the commit above was already merged in the GPIO tree,
should these fixes be merged also via the GPIO tree (with ACKs from
the others subsystem maintainers)?"

I believe it was referring to you ;). I can take the rtc patch if you
don't plan to take it.


--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

2015-07-23 13:32:12

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] iio: fix drivers that consider 0 as a valid IRQ in client->irq

On Thu, Jul 23, 2015 at 3:23 PM, Octavian Purdila
<[email protected]> wrote:
> On Thu, Jul 23, 2015 at 4:11 PM, Linus Walleij <[email protected]> wrote:

>> Me or Torvalds?
>>
>> This looks more like a Wolfram patch to me if it should not
>> go through IIO.
>>
>
> Hi Linus,
>
> This patch fixes one issue introduced by "i2c / ACPI: Use 0 to
> indicate that device does not have interrupt assigned" which I see it
> is merged in the GPIO for-next branch. That is why I thought you will
> pick it up, did I assume wrong?

Aha yeah O already forgot that I merged that.

That patch is not in -next, it is already in Torvalds'
tree.

So fixes can be merged directly through the IIO tree
without any GPIO dependencies.

Yours,
Linus Walleij

2015-07-23 14:05:46

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] iio: fix drivers that consider 0 as a valid IRQ in client->irq

Octavian Purdila writes:

> On Fri, Jun 5, 2015 at 4:59 PM, Octavian Purdila
> <[email protected]> wrote:
>> Since patch "i2c / ACPI: Use 0 to indicate that device does not have
>> interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
>> change all driver's checks accordingly.
>>
>> The same issue occurs when the device is instantiated via device tree
>> with no IRQ, or from the i2c sysfs interface, even before the patch
>> above.
>>
>> [1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>
>>
>> Signed-off-by: Octavian Purdila <[email protected]>
>> Reviewed-by: Mika Westerberg <[email protected]>
>
> Hi Jonathan,
>
> Does this look OK to you? If so, could you pleas ACK the patch so that
> Linus can pick it up in its for-next branch if/when needed?
>
> Thanks,
> Tavi
>
Hi Tavi,

This is fine, but is there a particular rush to get it in?
Otherwise I'll just take it through the IIO tree.

Acked-by: Jonathan Cameron <[email protected]>
Thanks,

Jonathan
>
>> ---
>> drivers/iio/accel/bmc150-accel.c | 2 +-
>> drivers/iio/accel/kxcjk-1013.c | 2 +-
>> drivers/iio/accel/mma9553.c | 2 +-
>> drivers/iio/imu/kmx61.c | 8 ++++----
>> 4 files changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel.c
>> index 4e70f51..55751d9 100644
>> --- a/drivers/iio/accel/bmc150-accel.c
>> +++ b/drivers/iio/accel/bmc150-accel.c
>> @@ -1663,7 +1663,7 @@ static int bmc150_accel_probe(struct i2c_client *client,
>> if (client->irq < 0)
>> client->irq = bmc150_accel_gpio_probe(client, data);
>>
>> - if (client->irq >= 0) {
>> + if (client->irq > 0) {
>> ret = devm_request_threaded_irq(
>> &client->dev, client->irq,
>> bmc150_accel_irq_handler,
>> diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
>> index 0d9bd35..aa93cbd 100644
>> --- a/drivers/iio/accel/kxcjk-1013.c
>> +++ b/drivers/iio/accel/kxcjk-1013.c
>> @@ -1243,7 +1243,7 @@ static int kxcjk1013_probe(struct i2c_client *client,
>> if (client->irq < 0)
>> client->irq = kxcjk1013_gpio_probe(client, data);
>>
>> - if (client->irq >= 0) {
>> + if (client->irq > 0) {
>> ret = devm_request_threaded_irq(&client->dev, client->irq,
>> kxcjk1013_data_rdy_trig_poll,
>> kxcjk1013_event_handler,
>> diff --git a/drivers/iio/accel/mma9553.c b/drivers/iio/accel/mma9553.c
>> index 9d649c4..df043b3 100644
>> --- a/drivers/iio/accel/mma9553.c
>> +++ b/drivers/iio/accel/mma9553.c
>> @@ -1143,7 +1143,7 @@ static int mma9553_probe(struct i2c_client *client,
>> if (client->irq < 0)
>> client->irq = mma9553_gpio_probe(client);
>>
>> - if (client->irq >= 0) {
>> + if (client->irq > 0) {
>> ret = devm_request_threaded_irq(&client->dev, client->irq,
>> mma9553_irq_handler,
>> mma9553_event_handler,
>> diff --git a/drivers/iio/imu/kmx61.c b/drivers/iio/imu/kmx61.c
>> index 462a010..82cdf50 100644
>> --- a/drivers/iio/imu/kmx61.c
>> +++ b/drivers/iio/imu/kmx61.c
>> @@ -1363,7 +1363,7 @@ static int kmx61_probe(struct i2c_client *client,
>> if (client->irq < 0)
>> client->irq = kmx61_gpio_probe(client, data);
>>
>> - if (client->irq >= 0) {
>> + if (client->irq > 0) {
>> ret = devm_request_threaded_irq(&client->dev, client->irq,
>> kmx61_data_rdy_trig_poll,
>> kmx61_event_handler,
>> @@ -1445,10 +1445,10 @@ err_iio_unregister_mag:
>> err_iio_unregister_acc:
>> iio_device_unregister(data->acc_indio_dev);
>> err_buffer_cleanup_mag:
>> - if (client->irq >= 0)
>> + if (client->irq > 0)
>> iio_triggered_buffer_cleanup(data->mag_indio_dev);
>> err_buffer_cleanup_acc:
>> - if (client->irq >= 0)
>> + if (client->irq > 0)
>> iio_triggered_buffer_cleanup(data->acc_indio_dev);
>> err_trigger_unregister_motion:
>> iio_trigger_unregister(data->motion_trig);
>> @@ -1472,7 +1472,7 @@ static int kmx61_remove(struct i2c_client *client)
>> iio_device_unregister(data->acc_indio_dev);
>> iio_device_unregister(data->mag_indio_dev);
>>
>> - if (client->irq >= 0) {
>> + if (client->irq > 0) {
>> iio_triggered_buffer_cleanup(data->acc_indio_dev);
>> iio_triggered_buffer_cleanup(data->mag_indio_dev);
>> iio_trigger_unregister(data->acc_dready_trig);
>> --
>> 1.9.1
>>

2015-07-23 14:38:44

by Octavian Purdila

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] iio: fix drivers that consider 0 as a valid IRQ in client->irq

On Thu, Jul 23, 2015 at 5:05 PM, <[email protected]> wrote:
>
> Octavian Purdila writes:
>>
>> On Fri, Jun 5, 2015 at 4:59 PM, Octavian Purdila
>> <[email protected]> wrote:
>>>
>>> Since patch "i2c / ACPI: Use 0 to indicate that device does not have
>>> interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
>>> change all driver's checks accordingly.
>>> The same issue occurs when the device is instantiated via device tree
>>> with no IRQ, or from the i2c sysfs interface, even before the patch
>>> above.
>>> [1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>
>>> Signed-off-by: Octavian Purdila <[email protected]>
>>> Reviewed-by: Mika Westerberg <[email protected]>
>>
>>
>> Hi Jonathan,
>> Does this look OK to you? If so, could you pleas ACK the patch so that
>> Linus can pick it up in its for-next branch if/when needed?
>> Thanks,
>> Tavi
>
> Hi Tavi,
> This is fine, but is there a particular rush to get it in?
> Otherwise I'll just take it through the IIO tree.
> Acked-by: Jonathan Cameron <[email protected]>

Hi Jonathan,

Didn't mean to rush things, I haven't seen any activity on this for
some time and thought it was forgotten. I was also confused with the
status of Mika's patch, but now that I learned it was merged in 4.2,
its clear to me that this patch needs to go through the IIO tree.

Thanks,
Tavi

2015-07-23 15:01:36

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH v3 2/2] rtc: fix drivers that consider 0 as a valid IRQ in client->irq

On 05/06/2015 at 16:59:43 +0300, Octavian Purdila wrote :
> Since patch "i2c / ACPI: Use 0 to indicate that device does not have
> interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
> change all driver's checks accordingly.
>
> The same issue occurs when the device is instantiated via device tree
> with no IRQ, or from the i2c sysfs interface, even before the patch
> above.
>
> [1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>
>
> Signed-off-by: Octavian Purdila <[email protected]>
> Reviewed-by: Mika Westerberg <[email protected]>
> Acked-by: Alexandre Belloni <[email protected]>
Applied, thanks.

I included the final commit id instead of the link to the mailing list
redirector.

--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

2015-07-23 19:25:20

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] iio: fix drivers that consider 0 as a valid IRQ in client->irq

On 23/07/15 15:38, Octavian Purdila wrote:
> On Thu, Jul 23, 2015 at 5:05 PM, <[email protected]> wrote:
>>
>> Octavian Purdila writes:
>>>
>>> On Fri, Jun 5, 2015 at 4:59 PM, Octavian Purdila
>>> <[email protected]> wrote:
>>>>
>>>> Since patch "i2c / ACPI: Use 0 to indicate that device does not have
>>>> interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so
>>>> change all driver's checks accordingly.
>>>> The same issue occurs when the device is instantiated via device tree
>>>> with no IRQ, or from the i2c sysfs interface, even before the patch
>>>> above.
>>>> [1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com>
>>>> Signed-off-by: Octavian Purdila <[email protected]>
>>>> Reviewed-by: Mika Westerberg <[email protected]>
>>>
>>>
>>> Hi Jonathan,
>>> Does this look OK to you? If so, could you pleas ACK the patch so that
>>> Linus can pick it up in its for-next branch if/when needed?
>>> Thanks,
>>> Tavi
>>
>> Hi Tavi,
>> This is fine, but is there a particular rush to get it in?
>> Otherwise I'll just take it through the IIO tree.
>> Acked-by: Jonathan Cameron <[email protected]>
>
> Hi Jonathan,
>
> Didn't mean to rush things, I haven't seen any activity on this for
> some time and thought it was forgotten.
A not entirely false assumption. I'd marked it in my email as to be
applied then it got buried. oops and sorry about that.
> I was also confused with the
> status of Mika's patch, but now that I learned it was merged in 4.2,
> its clear to me that this patch needs to go through the IIO tree.
>
Applied to the togreg branch of iio.git - initially pushed out as
testing for autobuilders to play with it.

Thanks,

Jonathan
> Thanks,
> Tavi
>
A