From: Jonathan Cameron <jic23@cam.ac.uk>
To: Jonathan Cameron <jic23@cam.ac.uk>
Cc: Stephen Warren <swarren@nvidia.com>,
Greg Kroah-Hartman <gregkh@suse.de>,
Russell King <linux@arm.linux.org.uk>,
Andrew Chew <achew@nvidia.com>, Arnd Bergmann <arnd@arndb.de>,
linux-iio@vger.kernel.org, devel@driverdev.osuosl.org,
linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH 1/3] staging:iio:magnetometer:ak8975 Don't use irq_to_gpio()
Date: Thu, 01 Sep 2011 10:24:11 +0100 [thread overview]
Message-ID: <4E5F4F3B.7000607@cam.ac.uk> (raw)
In-Reply-To: <4E5F4B4E.5060801@cam.ac.uk>
On 09/01/11 10:07, Jonathan Cameron wrote:
> On 08/31/11 20:40, Stephen Warren wrote:
>> Tegra doesn't have irq_to_gpio() any more, and ak8975 is included in
>> tegra_defconfig. This causes a build failure. Solve this with a heavy-handed
>> method for now.
>>
>> I suspect the long-term solution is to pass both the IRQ and GPIO IDs
>> to the driver; the GPIO ID coming from either platform data, or perhaps
>> enhancing struct i2c_client to add a gpio field alongside irq.
> Definitely on the platform data front. We need some means of doing this now
> hence my patch putting most trivial form of that in.
Actually taking the time to look at the code...
Can someone explain to me (I have a feeling I may just have forgotten this)
why we aren't using an interrupt here? It looks like a bus transaction triggered
read. So why not do a enable_irq followed by triggering the read and use a
waitqueue to wait for an interrupt handler to signal it is done?
Having found the datahsheeting lying around on the net I can't see why this
won't work and be somewhat cleaner than current polling approach.
Jonathan
>> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
>> ---
>> Russell, now that irq_to_gpio() is going away, can you comment on how
>> you'd like to fix drivers that do this kind of thing? Thanks.
>>
>> drivers/staging/iio/magnetometer/ak8975.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c
>> index a17fa9f..bd40e32 100644
>> --- a/drivers/staging/iio/magnetometer/ak8975.c
>> +++ b/drivers/staging/iio/magnetometer/ak8975.c
>> @@ -477,7 +477,7 @@ static int ak8975_probe(struct i2c_client *client,
>> int err;
>>
>> /* Grab and set up the supplied GPIO. */
>> - eoc_gpio = irq_to_gpio(client->irq);
>> + eoc_gpio = -1; /* FIXME: irq_to_gpio(client->irq) */
>>
>> /* We may not have a GPIO based IRQ to scan, that is fine, we will
>> poll if so */
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <jic23-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
To: Jonathan Cameron <jic23-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
Cc: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
Greg Kroah-Hartman <gregkh-l3A5Bk7waGM@public.gmane.org>,
Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
Andrew Chew <achew-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 1/3] staging:iio:magnetometer:ak8975 Don't use irq_to_gpio()
Date: Thu, 01 Sep 2011 10:24:11 +0100 [thread overview]
Message-ID: <4E5F4F3B.7000607@cam.ac.uk> (raw)
In-Reply-To: <4E5F4B4E.5060801-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
On 09/01/11 10:07, Jonathan Cameron wrote:
> On 08/31/11 20:40, Stephen Warren wrote:
>> Tegra doesn't have irq_to_gpio() any more, and ak8975 is included in
>> tegra_defconfig. This causes a build failure. Solve this with a heavy-handed
>> method for now.
>>
>> I suspect the long-term solution is to pass both the IRQ and GPIO IDs
>> to the driver; the GPIO ID coming from either platform data, or perhaps
>> enhancing struct i2c_client to add a gpio field alongside irq.
> Definitely on the platform data front. We need some means of doing this now
> hence my patch putting most trivial form of that in.
Actually taking the time to look at the code...
Can someone explain to me (I have a feeling I may just have forgotten this)
why we aren't using an interrupt here? It looks like a bus transaction triggered
read. So why not do a enable_irq followed by triggering the read and use a
waitqueue to wait for an interrupt handler to signal it is done?
Having found the datahsheeting lying around on the net I can't see why this
won't work and be somewhat cleaner than current polling approach.
Jonathan
>> Signed-off-by: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> Acked-by: Jonathan Cameron <jic23-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
>> ---
>> Russell, now that irq_to_gpio() is going away, can you comment on how
>> you'd like to fix drivers that do this kind of thing? Thanks.
>>
>> drivers/staging/iio/magnetometer/ak8975.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c
>> index a17fa9f..bd40e32 100644
>> --- a/drivers/staging/iio/magnetometer/ak8975.c
>> +++ b/drivers/staging/iio/magnetometer/ak8975.c
>> @@ -477,7 +477,7 @@ static int ak8975_probe(struct i2c_client *client,
>> int err;
>>
>> /* Grab and set up the supplied GPIO. */
>> - eoc_gpio = irq_to_gpio(client->irq);
>> + eoc_gpio = -1; /* FIXME: irq_to_gpio(client->irq) */
>>
>> /* We may not have a GPIO based IRQ to scan, that is fine, we will
>> poll if so */
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2011-09-01 9:24 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-31 19:40 [PATCH 1/3] staging:iio:magnetometer:ak8975 Don't use irq_to_gpio() Stephen Warren
2011-08-31 19:40 ` Stephen Warren
2011-08-31 19:40 ` [PATCH 2/3] staging:iio:magnetometer:ak8975: Don't assume 0 is an invalid GPIO Stephen Warren
2011-08-31 19:40 ` Stephen Warren
2011-09-01 9:06 ` Jonathan Cameron
2011-09-01 9:06 ` Jonathan Cameron
2011-08-31 19:40 ` [PATCH 3/3] staging:iio:magnetometer:ak8975: Fix probe() error-handling Stephen Warren
2011-09-01 9:08 ` Jonathan Cameron
2011-09-01 9:08 ` Jonathan Cameron
2011-08-31 19:45 ` [PATCH 1/3] staging:iio:magnetometer:ak8975 Don't use irq_to_gpio() Andrew Chew
2011-08-31 19:45 ` Andrew Chew
2011-08-31 19:45 ` Andrew Chew
2011-09-01 9:01 ` Jonathan Cameron
2011-09-01 9:01 ` Jonathan Cameron
2011-09-01 9:04 ` [PATCH] staging:iio:magnetometer:ak8975 use platform_data to pass the gpio number Jonathan Cameron
2011-09-01 9:04 ` Jonathan Cameron
[not found] ` <4E5F49F4.2080208-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
2011-09-01 11:06 ` [PATCH 1/3] staging:iio:magnetometer:ak8975 Don't use irq_to_gpio() Arnd Bergmann
2011-09-01 11:06 ` Arnd Bergmann
2011-09-01 15:36 ` Stephen Warren
2011-09-01 15:36 ` Stephen Warren
2011-09-01 15:36 ` Stephen Warren
2011-09-01 16:20 ` Arnd Bergmann
2011-09-01 16:20 ` Arnd Bergmann
2011-09-01 9:07 ` Jonathan Cameron
2011-09-01 9:07 ` Jonathan Cameron
2011-09-01 9:24 ` Jonathan Cameron [this message]
2011-09-01 9:24 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E5F4F3B.7000607@cam.ac.uk \
--to=jic23@cam.ac.uk \
--cc=achew@nvidia.com \
--cc=arnd@arndb.de \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@suse.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=swarren@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.