Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1649550
| From | Mika Westerberg <mika.westerberg@linux.intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v2 10/12] PNP / ACPI: add support for GpioInt resource type |
| Date | 2017-05-24 14:10 +0200 |
| Message-ID | <tKDh0-2cD-23@gated-at.bofh.it> (permalink) |
| References | <tKltL-68D-3@gated-at.bofh.it> <tKltM-68D-17@gated-at.bofh.it> |
| Organization | Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo |
On Tue, May 23, 2017 at 08:03:25PM +0300, Andy Shevchenko wrote:
> From: Jagadish Krishnamoorthy <jagadish.krishnamoorthy@intel.com>
>
> The PNP ACPI driver parses ACPI interrupt resource but not
> GpioInt resource. When the firmware passes GpioInt resource
> for IRQ the PNP ACPI driver ignores it and hence the interrupt for
> the particular driver will not work.
> One such example is 8042 keyboard which uses PNP driver for obtaining
> the interrupt resource. On Intel Braswell project GpioInt is used
> instead of interrupt resource and the keyboard driver fails to
> register interrupt.
> Fix the issue by parsing GpioInt resource type.
Maybe you can add link to the bugzilla entry here?
> Signed-off-by: Jagadish Krishnamoorthy <jagadish.krishnamoorthy@intel.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/pnp/pnpacpi/rsparser.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
> index 4b717c699313..af44e57f5148 100644
> --- a/drivers/pnp/pnpacpi/rsparser.c
> +++ b/drivers/pnp/pnpacpi/rsparser.c
> @@ -180,6 +180,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
> struct pnp_dev *dev = data;
> struct acpi_resource_dma *dma;
> struct acpi_resource_vendor_typed *vendor_typed;
> + struct acpi_resource_gpio *gpio;
> struct resource_win win = {{0}, 0};
> struct resource *r = &win.res;
> int i, flags;
> @@ -210,6 +211,20 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
> }
> }
> return AE_OK;
> + } else if (acpi_gpio_get_irq_resource(res, &gpio)) {
> + /*
> + * If the resource is GpioInt() type then extract the IRQ
> + * from GPIO resource and fill it into IRQ resource type.
> + */
> + i = acpi_dev_gpio_irq_get(dev->data, 0);
> + if (i >= 0) {
> + flags = acpi_dev_irq_flags(gpio->triggering,
> + gpio->polarity,
> + gpio->sharable);
> + } else
> + flags = IORESOURCE_DISABLED;
You need to add {} here as well.
With that done you can add my
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> + pnp_add_irq_resource(dev, i, flags);
> + return AE_OK;
> } else if (r->flags & IORESOURCE_DISABLED) {
> pnp_add_irq_resource(dev, 0, IORESOURCE_DISABLED);
> return AE_OK;
> --
> 2.11.0
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v2 10/12] PNP / ACPI: add support for GpioInt resource type Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-05-23 19:10 +0200 Re: [PATCH v2 10/12] PNP / ACPI: add support for GpioInt resource type Mika Westerberg <mika.westerberg@linux.intel.com> - 2017-05-24 14:10 +0200 Re: [PATCH v2 10/12] PNP / ACPI: add support for GpioInt resource type Linus Walleij <linus.walleij@linaro.org> - 2017-05-29 11:30 +0200
csiph-web