linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-gpio@vger.kernel.org, linux-acpi@vger.kernel.org,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: [PATCH 2/2] gpio: sch: Add interrupt support
Date: Wed, 24 Apr 2019 14:41:02 +0200	[thread overview]
Message-ID: <761ed823-58f4-d166-c415-6b100b1fe615@siemens.com> (raw)
In-Reply-To: <20190424104613.GD2654@lahna.fi.intel.com>

On 24.04.19 12:46, Mika Westerberg wrote:
> On Wed, Apr 24, 2019 at 12:39:35PM +0200, Jan Kiszka wrote:
>> On 24.04.19 12:33, Mika Westerberg wrote:
>>> On Wed, Apr 24, 2019 at 12:19:02PM +0200, Jan Kiszka wrote:
>>>>> I think what you want is "GPIO signaled ACPI event". It works so that
>>>>> you declare _AEI method below the GPIO controller listing the GPIOs you
>>>>> want to trigger events for and then either _Lxx, _Exx or _EVT method for
>>>>> each of them under the same controller. GPIO core then handles it
>>>>> automatically when you register the GPIO chip. See also
>>>>> acpi_gpiochip_request_interrupts().
>>>>
>>>> Right, that is was I read as well. Let's assume I would be able to patch the
>>>> tables: Would I describe all the logic of this patch in ACPI terms? Where to
>>>> enable interrupts, how to dispatch the SCI event, how to acknowledge it
>>>> etc.? Will it also take care of locking? (BTW, my locking seems to have some
>>>> remaining inconsistency, on second look.)
>>>
>>> The GPIO core would then take care of it by requesting the GPIO in
>>> question and dispatching to the correct event handler. In this patch you
>>> just leave out the SCI part and only implement the irqchip like you did
>>> already.
>>
>> Could you point me to a gpio driver that works like that already? Would be
>> easier to learn that from an example. That infrastructure with all its
>> different modes is seriously complex and not very well documented.
> 
> Pretty much all drivers under drivers/pinctrl/intel.

OK... that's a purely descriptive way. So, provided we had such ACPI table 
entries, that plus some corresponding pinctrl driver would obsolete gpio-sch.c? 
Or are there other reason than historical ones for having gpio-*ch.c drivers around?

> 
>>>> And even if that were possible, we would be back to the square of existing
>>>> devices without those definitions. If this were a recent chipset, I would
>>>> say, "go, fix future firmware versions". But this one is legacy.
>>>
>>> Is it fixing some real issue with these legacy platforms? I mean without
>>> the patch some GPE event is not handled properly? It was not clear to me
>>> from the commit message.
>>>
>> Without that patch, you are forced to poll for event changes in your
>> application, timer-driven. There are application that cannot process these
>> GPIOs because they lack such logic (mraa with node-red-node-intel-gpio is a
>> public example).
> 
> But those are using the GPIOs via sysfs or the char device which should
> work without the SCI handling part of your patch, no?

They work via sysfs. How would the char dev compensate the missing interrupt 
support? By doing polling itself when the user wants an event? But I don't find 
any traces or timers.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

  reply	other threads:[~2019-04-24 12:41 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-18  9:23 [PATCH 0/2] gpio: sch: Interrupt support Jan Kiszka
2019-04-18  9:23 ` [PATCH 1/2] gpio: sch: Remove write-only core_base Jan Kiszka
2019-04-23 11:09   ` Linus Walleij
2019-04-18  9:23 ` [PATCH 2/2] gpio: sch: Add interrupt support Jan Kiszka
2019-04-23 11:10   ` Linus Walleij
2019-04-24  7:58   ` Mika Westerberg
2019-04-24  8:12     ` Jan Kiszka
2019-04-24  8:18       ` Mika Westerberg
2019-04-24  8:25         ` Jan Kiszka
2019-04-24  8:42           ` Mika Westerberg
2019-04-24  9:36             ` Jan Kiszka
2019-04-24  9:45               ` Mika Westerberg
2019-04-24  9:48                 ` Jan Kiszka
2019-04-24 10:01                   ` Mika Westerberg
2019-04-24 10:19                     ` Jan Kiszka
2019-04-24 10:33                       ` Mika Westerberg
2019-04-24 10:39                         ` Jan Kiszka
2019-04-24 10:46                           ` Mika Westerberg
2019-04-24 12:41                             ` Jan Kiszka [this message]
2019-04-24 13:13                               ` Mika Westerberg
2019-04-24 14:24                                 ` Jan Kiszka
2019-04-24 15:33                                   ` Mika Westerberg
2019-04-26 13:06                           ` Andy Shevchenko
2019-04-26 13:36                             ` Jan Kiszka
2019-04-26 14:42                               ` Enrico Weigelt, metux IT consult
2019-04-26 15:31                                 ` Manivannan Sadhasivam
2019-04-26 16:03                                 ` Jan Kiszka
2019-04-26 17:20                                   ` Andy Shevchenko
2019-04-26 17:33                                     ` Manivannan Sadhasivam
2019-04-26 17:39                                       ` Jan Kiszka
2019-04-26 17:46                                         ` Manivannan Sadhasivam
2019-04-26 17:52                                           ` Jan Kiszka
2019-04-26 17:56                                             ` Manivannan Sadhasivam
2019-04-26 17:44                                       ` Andy Shevchenko
2019-04-26 17:52                                         ` Manivannan Sadhasivam
2019-04-26 18:26                                           ` Andy Shevchenko
2019-04-26 17:37                                     ` Jan Kiszka
2019-04-29 11:09                                   ` Enrico Weigelt, metux IT consult
2019-05-16 12:20                                     ` Linus Walleij
2019-04-26 14:41                             ` Linus Walleij
2019-04-26 15:44                               ` Jan Kiszka

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=761ed823-58f4-d166-c415-6b100b1fe615@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bgolaszewski@baylibre.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rafael.j.wysocki@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).