lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 17 May 2013 00:37:37 +0200
From:	Tomasz Figa <tomasz.figa@...il.com>
To:	Doug Anderson <dianders@...omium.org>
Cc:	Kukjin Kim <kgene.kim@...sung.com>,
	Olof Johansson <olof@...om.net>,
	Stephen Warren <swarren@...dotorg.org>,
	Thomas Abraham <thomas.abraham@...aro.org>,
	Linus Walleij <linus.walleij@...aro.org>,
	Prathyush K <prathyush.k@...sung.com>,
	linux-samsung-soc <linux-samsung-soc@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 2/2] pinctrl: exynos: fix eint wakeup by using irq_set_wake()

On Thursday 16 of May 2013 15:25:15 Doug Anderson wrote:
> Tomasz,
> 
> On Thu, May 16, 2013 at 12:26 PM, Tomasz Figa <tomasz.figa@...il.com> 
wrote:
> > On Thursday 16 of May 2013 10:12:32 Doug Anderson wrote:
> >> From: Prathyush K <prathyush.k@...sung.com>
> >> 
> >> 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@...sung.com>
> >> Signed-off-by: Doug Anderson <dianders@...omium.org>
> >> ---
> >> 
> >>  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).

Well, to make long story short, including headers from plat/ and mach/ 
from files outside plat/ or mach/ is no longer valid with 
CONFIG_MULTIPLATFORM, because more than one plat and/or mach can be 
enabled at the same time. In addition to this, care must be taken for code 
to not break platforms other than written for, when compiled into the 
resulting kernel.

> 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?

Fine. I will also send a patch adding save and restore for several EINT 
registers that need it.

> >> -#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...

Since EINT handling is highly SoC-specific (i.e. done in pinctrl-exynos, 
not pinctrl-samsung), such assumption wouldn't be a problem. Let me see 
how I solved this problem in my version tomorrow at work.

Best regards,
Tomasz

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ