Re: [PATCH] pinctrl-baytrail: fix for irq descriptor conflict on ASUS T100TA

From: Mika Westerberg
Date: Tue Apr 22 2014 - 07:43:55 EST


On Wed, Apr 16, 2014 at 08:05:59PM +0800, Jin Yao wrote:
> A crash is triggered on the ASUS T100TA Baytrail-T because of a irq
> descriptor conflict. There are two gpio triggered acpi events in this
> device, GPIO 6 and 18. These gpios are translated to irqs by calling
> gpio_to_irq which in turn will call irq_create_mapping(vg->domain, offset).
> irq_create_mapping will take care of allocating the irq descriptor, taking
> the first available number starting from the given value (6 in our case).
> The 0-15 are already reserved by legacy ISA code, so it gets the first
> free irq descriptor which is number 16. The i915 driver also uses irq 16,
> it loads later than gpio and crashes in probe.
>
> The bug is reported here:
> https://bugzilla.kernel.org/show_bug.cgi?id=68291
>
> The rootcause we know now is a low level irq issue. It needs a long term
> solution to fix the issue in irq system.
>
> This patch changes the Baytrail GPIO driver to avoid the irq descriptor
> conflict. It still uses the irq domain to allocate irq descriptor but start
> from a predefined irq base number (256) to avoid the conflict.
>
> Signed-off-by: Jin Yao <yao.jin@xxxxxxxxxxxxxxx>

I'm getting following warnings when compiling this:

drivers/pinctrl/pinctrl-baytrail.c: In function âbyt_gpio_probeâ:
drivers/pinctrl/pinctrl-baytrail.c:512:4: warning: passing argument 3 of
âkstrtolâ from incompatible pointer type [enabled by default]
ret = kstrtol(range->name, 10, &i);
^
In file included from drivers/pinctrl/pinctrl-baytrail.c:22:0:
include/linux/kernel.h:301:32: note: expected âlong int *â but argument is
of type âint *â
static inline int __must_check kstrtol(const char *s, unsigned int base, long *res)
--
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/