From: Al Stone <al.stone@linaro.org>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: linux-acpi@vger.kernel.org, linaro-acpi@lists.linaro.org,
Al Stone <ahs3@redhat.com>
Subject: Re: [PATCH 04/12] ACPI: HW reduced mode does not allow use of the FADT sci_interrupt field
Date: Thu, 21 Nov 2013 15:19:27 -0700 [thread overview]
Message-ID: <528E86EF.6040804@linaro.org> (raw)
In-Reply-To: <11851356.OfxTKMH3Jy@vostro.rjw.lan>
On 11/21/2013 02:36 PM, Rafael J. Wysocki wrote:
> On Thursday, November 21, 2013 12:36:35 PM Al Stone wrote:
>> On 11/20/2013 05:27 PM, Rafael J. Wysocki wrote:
>>> On Wednesday, November 20, 2013 02:24:29 PM Al Stone wrote:
>>>> On 11/17/2013 03:06 PM, Rafael J. Wysocki wrote:
>>>>> On Saturday, November 09, 2013 06:36:14 PM al.stone@linaro.org wrote:
>>>>>> From: Al Stone <ahs3@redhat.com>
>>>>>
>>>>> -ENOCHANGELOG
>>>>
>>>> Yup. Will be added.
>>>>
>>>>>> Signed-off-by: Al Stone <al.stone@linaro.org>
>>>>>> ---
>>>>>> drivers/acpi/bus.c | 3 ++-
>>>>>> drivers/acpi/osl.c | 10 ++++++----
>>>>>> drivers/acpi/pci_link.c | 14 ++++++++------
>>>>>> 3 files changed, 16 insertions(+), 11 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
>>>>>> index b587ec8..6a54dd5 100644
>>>>>> --- a/drivers/acpi/bus.c
>>>>>> +++ b/drivers/acpi/bus.c
>>>>>> @@ -540,7 +540,8 @@ void __init acpi_early_init(void)
>>>>>> goto error0;
>>>>>> }
>>>>>>
>>>>>> -#ifdef CONFIG_X86
>>>>>> +#if (!CONFIG_ACPI_REDUCED_HARDWARE)
>>>>>
>>>>> Why don't you use #ifndef here?
>>>>
>>>> No particular reason; I'll change it.
>>>>
>>>>>> + /* NB: in HW reduced mode, FADT sci_interrupt has no meaning */
>>>>>
>>>>> I'm not sure what the "NB" stands for, but it looks like that's what "NOTE:" is
>>>>> used for elsewhere.
>>>>
>>>> Ah. Whups. "NB" == "Nota Bene" -- Latin for "note well" and a
>>>> personal habit when writing. Yes, it should be "NOTE:".
>>>>
>>>>>> if (!acpi_ioapic) {
>>>>>> /* compatible (0) means level (3) */
>>>>>> if (!(acpi_sci_flags & ACPI_MADT_TRIGGER_MASK)) {
>>>>>> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
>>>>>> index 54a20ff..017b85c 100644
>>>>>> --- a/drivers/acpi/osl.c
>>>>>> +++ b/drivers/acpi/osl.c
>>>>>> @@ -84,6 +84,7 @@ static int (*__acpi_os_prepare_extended_sleep)(u8 sleep_state, u32 val_a,
>>>>>>
>>>>>> static acpi_osd_handler acpi_irq_handler;
>>>>>> static void *acpi_irq_context;
>>>>>> +static u32 acpi_irq_number;
>>>>>> static struct workqueue_struct *kacpid_wq;
>>>>>> static struct workqueue_struct *kacpi_notify_wq;
>>>>>> static struct workqueue_struct *kacpi_hotplug_wq;
>>>>>> @@ -797,9 +798,9 @@ acpi_os_install_interrupt_handler(u32 gsi, acpi_osd_handler handler,
>>>>>>
>>>>>> /*
>>>>>> * ACPI interrupts different from the SCI in our copy of the FADT are
>>>>>> - * not supported.
>>>>>> + * not supported, except in HW reduced mode.
>>>>>> */
>>>>>> - if (gsi != acpi_gbl_FADT.sci_interrupt)
>>>>>> + if (!acpi_gbl_reduced_hardware && (gsi != acpi_gbl_FADT.sci_interrupt))
>>>>>
>>>>> The inner parens are not necessary.
>>>>
>>>> Ack.
>>>>
>>>>> Also it seems that we may need to support gsi != acpi_gbl_FADT.sci_interrupt
>>>>> generically, because there may be GPE device objects with interrupts different
>>>>> from the SCI.
>>>>
>>>> In reduced HW mode, there are no GPE blocks defined; all
>>>> interrupts of that nature are required to use GPIO interrupts
>>>> instead, afaict.
>>>
>>> Well, I'm not sure about that. The GPE0/1 blocks in FADT are not supposed to
>>> be present, but does that apply to GPE block devices (Section 9.10 of ACPI 5.0)?
>>>
>>>> The spec unfortunately has this info scattered
>>>> through out -- the earlier parts of the spec discussing the
>>>> reduced HW mode and the discussion around the FADT go into
>>>> some of the details.
>>>
>>> Any more precise pointers?
>>>
>>> Anyway, the point was that we may need to support interrupts different from
>>> acpi_gbl_FADT.sci_interrupt even if the HW reduced mode is *not* used, so
>>> making that depend on acpi_gbl_reduced_hardware doesn't seem quite right.
>>
>> Yeah, sorry, I should have included the pointers earlier. I'm basing
>> my thinking on my understanding of these sections:
>>
>> -- Section 4.1 which defines HW reduced ACPI, and specifically
>> on 4.1.1, Hardware-Reduced Events.
>>
>> -- Section 5.2.9 defining the FADT and the HW reduced restrictions
>>
>> -- Section 5.6.5, GPIO-signaled ACPI events
>>
>> -- Section 9.10, GPE block device
>>
>> The way I read 9.10 in particular is why I'm thinking that any use of
>> acpi_gbl_FADT.sci_interrupt needs to go away in HW reduced mode. The
>> first sentence says:
>>
>> The GPE Block device is an optional device that allows a system
>> designer to describe GPE blocks beyond the two that are described
>> in the FADT.
>
> Well, precisely. It doesn't say anything like "GPE block devices may
> only be used if the GPE blocks described in the FADT are present."
>
>> The way I am interpreting that is that a GPE block device only makes
>> sense as an extension of the GPE0/1 blocks, not as an independent
>> device.
>
> It is an independent device and it may use a *different* interrupt (see
> the example in Section 9.10). [The paragraph right before that example
> even says: "To represent the GPE block associated with the FADT ..."
> and describes that in detail.]
>
> So to my eyes the spec doesn't actually explicitly say anywhere that
> using GPE block devices in the HW reduced mode is invalid.
Valid point. I am making the interpretation based on implied
statements, versus an explicit statement. Now that the ACPI
spec is part of the UEFI forum, perhaps I can get some clarifying
language inserted one way or the other. I'll start poking at
that as a side project.
>> Since using the GPE0/1 blocks is not allowed in reduced HW
>> mode (see 5.2.9), we cannot extend them with a GPE block device.
>>
>> That being said, I agree we should be able to install interrupt
>> handlers other than acpi_gbl_FADT.sci_interrupt regardless of whether
>> we are in legacy or reduced HW mode. So, I'm thinking that this
>> block:
>>
>> if (gsi != acpi_gbl_FADT.sci_interrupt)
>> return AE_BAD_PARAMETER;
>>
>> should just be removed from acpi_os_install_interrupt_handler().
>>
>> Does that make sense?
>
> I think so. At least I don't recall any specific situation in which it will
> lead to problems.
I couldn't recall any either. I'll change the patch to remove
this if test, then.
Thanks for the feedback.
--
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Linaro Enterprise Group
al.stone@linaro.org
-----------------------------------
next prev parent reply other threads:[~2013-11-21 22:19 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-10 1:36 [PATCH 00/12] Hardware Reduced Mode cleanup for ACPI al.stone
2013-11-10 1:36 ` [PATCH 01/12] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode al.stone
2013-11-17 22:29 ` Rafael J. Wysocki
[not found] ` <CAGHbJ3ArVr+4g8UHyxFSL9Bu2ehsUAqsapGuxYLgfoR4NfT02w@mail.gmail.com>
2013-11-18 13:24 ` Rafael J. Wysocki
[not found] ` <CAGHbJ3DkXQ1-kQSdzXZ7=YSNhTstebGrdX4qXygBWmh2vYe0Bw@mail.gmail.com>
2013-11-18 13:37 ` Rafael J. Wysocki
2013-11-19 7:32 ` Hanjun Guo
2013-11-19 13:10 ` Rafael J. Wysocki
2013-11-20 1:30 ` Hanjun Guo
2013-11-22 6:14 ` Zheng, Lv
2013-11-22 9:56 ` Hanjun Guo
2013-11-25 7:43 ` Zheng, Lv
2013-11-25 8:14 ` Zheng, Lv
2013-11-27 9:02 ` Hanjun Guo
2013-11-10 1:36 ` [PATCH 02/12] ACPI: bus master reload not supported in reduced HW mode al.stone
2013-11-17 21:56 ` Rafael J. Wysocki
2013-11-20 21:11 ` Al Stone
2013-11-21 0:31 ` Rafael J. Wysocki
2013-11-10 1:36 ` [PATCH 03/12] ACPI: clean up compiler warning about uninitialized field al.stone
2013-11-17 21:58 ` Rafael J. Wysocki
2013-11-20 21:13 ` Al Stone
2013-11-10 1:36 ` [PATCH 04/12] ACPI: HW reduced mode does not allow use of the FADT sci_interrupt field al.stone
2013-11-17 22:06 ` Rafael J. Wysocki
2013-11-20 21:24 ` Al Stone
2013-11-21 0:27 ` Rafael J. Wysocki
2013-11-21 19:36 ` Al Stone
2013-11-21 21:36 ` Rafael J. Wysocki
2013-11-21 22:19 ` Al Stone [this message]
2013-11-10 1:36 ` [PATCH 05/12] ACPI: ARM: exclude calls on ARM platforms, not include them on x86 al.stone
2013-11-17 22:08 ` Rafael J. Wysocki
2013-11-20 21:25 ` Al Stone
2013-11-22 6:19 ` Zheng, Lv
2013-11-10 1:36 ` [PATCH 06/12] ACPI: ensure several FADT fields are only used in HW reduced mode al.stone
2013-11-22 6:05 ` Zheng, Lv
2013-11-22 6:26 ` Zheng, Lv
2013-11-10 1:36 ` [PATCH 07/12] ACPI: do not reserve memory regions for some FADT entries " al.stone
2013-11-17 22:15 ` Rafael J. Wysocki
2013-11-20 21:27 ` Al Stone
2013-11-10 1:36 ` [PATCH 08/12] ACPI: in HW reduced mode, getting power latencies from FADT is not allowed al.stone
2013-11-17 22:17 ` Rafael J. Wysocki
2013-11-20 21:48 ` Al Stone
2013-11-10 1:36 ` [PATCH 09/12] ACPI: add clarifying comment about processor throttling in HW reduced mode al.stone
2013-11-17 22:20 ` Rafael J. Wysocki
2013-11-20 21:54 ` Al Stone
2013-11-21 0:14 ` Rafael J. Wysocki
2013-11-21 23:11 ` Al Stone
2013-11-10 1:36 ` [PATCH 10/12] ACPI: ACPI_FADT_C2_MP_SUPPORTED must be ignored " al.stone
2013-11-17 22:24 ` Rafael J. Wysocki
2013-11-20 21:55 ` Al Stone
2013-11-10 1:36 ` [PATCH 11/12] ACPI: use of ACPI_FADT_32BIT_TIMER is not allowed " al.stone
2013-11-17 22:26 ` Rafael J. Wysocki
2013-11-20 22:15 ` Al Stone
2013-11-21 23:43 ` Al Stone
2013-11-22 12:08 ` Rafael J. Wysocki
2013-11-10 1:36 ` [PATCH 12/12] ACPI: correct #ifdef so compilation without ACPI_REDUCED_HARDWARE works al.stone
2013-11-17 22:28 ` Rafael J. Wysocki
2013-11-20 22:17 ` Al Stone
2013-11-17 21:47 ` [PATCH 00/12] Hardware Reduced Mode cleanup for ACPI Rafael J. Wysocki
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=528E86EF.6040804@linaro.org \
--to=al.stone@linaro.org \
--cc=ahs3@redhat.com \
--cc=linaro-acpi@lists.linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=rjw@rjwysocki.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.