Re: [PATCH 2/2] pinctrl: exynos: fix eint wakeup by using irq_set_wake()

From: Doug Anderson
Date: Thu May 16 2013 - 18:25:23 EST


Tomasz,

On Thu, May 16, 2013 at 12:26 PM, Tomasz Figa <tomasz.figa@xxxxxxxxx> wrote:
> On Thursday 16 of May 2013 10:12:32 Doug Anderson wrote:
>> From: Prathyush K <prathyush.k@xxxxxxxxxxx>
>>
>> Add the irq_set_wake function for exynos pinctrl to configure the
>> external interrupt wakeup mask register.
>>
>> [dianders: minor nit fixes; port to ToT]
>>
>> Signed-off-by: Prathyush K <prathyush.k@xxxxxxxxxxx>
>> Signed-off-by: Doug Anderson <dianders@xxxxxxxxxxxx>
>> ---
>> drivers/pinctrl/pinctrl-exynos.c | 45
>> ++++++++++++++++++++++++++++-----------
>> drivers/pinctrl/pinctrl-exynos.h | 3 ++-
>> drivers/pinctrl/pinctrl-samsung.h | 2 ++
>> 3 files changed, 37 insertions(+), 13 deletions(-)
>>
>> diff --git a/drivers/pinctrl/pinctrl-exynos.c
>> b/drivers/pinctrl/pinctrl-exynos.c index ac74281..3ebb2ff 100644
>> --- a/drivers/pinctrl/pinctrl-exynos.c
>> +++ b/drivers/pinctrl/pinctrl-exynos.c
>> @@ -30,6 +30,8 @@
>> #include <linux/spinlock.h>
>> #include <linux/err.h>
>>
>> +#include <plat/pm.h>
>> +
>
> This is not going to work with CONFIG_MULTIPLATFORM.

Hmm, this sounds like it might be a bit of a long path, especially
since I haven't been keeping up with what's been going on with
MULTIPLATFORM and I'm currently midway through making 3.8 work (which
has no MULTIPLATFORM).

Perhaps for this patch it makes more sense for you to post your
version and I can review it? We may end up just keeping our version
of this patch for 3.8 and pick up yours when we do our next rebase.
Does that sound OK?


>> -#define EXYNOS_PIN_BANK_EINTW(pins, reg, id, offs) \
>> +#define EXYNOS_PIN_BANK_EINTW(pins, reg, id, offs, base)\
>> { \
>> .type = &bank_type_alive, \
>> .pctl_offset = reg, \
>> .nr_pins = pins, \
>> .eint_type = EINT_TYPE_WKUP, \
>> .eint_offset = offs, \
>> + .eint_base = base, \
>
> I can't look at my patch at the moment, but I think I have managed to get
> EINT index without adding this extra field.

It looks like this is always 2 * eint_offset in the code above. Maybe
you just multiplied? The multiplication works fine although I think
specifying eint_base like this might be more generic and handle future
chips better? Ya never know...

-Doug
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/