Re: [PATCH 70/73] ACPICA: Fix to disable unknown spurious GPEs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2008-04-25 at 10:10 +0800, Alexey Starikovskiy wrote:
> Actually, I too don't know why _disabling_ some GPE could trigger EC
> one...
> May be Len could try to debug this issue, as he is the only one with
> hardware...
> One thought is that EC GPE is not present in GPE scope, thus it will
> be not configured by the
> time 6217' code is executed. So, in theory, 6217 could try to disable
> EC GPE.
In acpi_install_gpe_handler, Linux always disables the GPE before
installing a GPE handler.
After 6217 is applied, when installing EC GPE handler, Linux will invoke
acpi_hw_write_gpe_enable_reg to try to disable EC GPE which is not done
before. Don't know if this is related.

thanks,
rui

> Moore, Robert wrote:
> > Yes, this is my question also.
> >
> > I hope Alexey can help with this. I'm very nervous about any code
> that
> > works or does not work for reasons unknown. When this happens in the
> GPE
> > code, I get more than nervous.
> >
> > Bob
> >
> >
> > -----Original Message-----
> > From: Zhang, Rui
> > Sent: Thursday, April 24, 2008 6:53 PM
> > To: Len Brown
> > Cc: Moore, Robert; Alexey Starikovskiy; linux-acpi@xxxxxxxxxxxxxxx
> > Subject: Re: [PATCH 70/73] ACPICA: Fix to disable unknown spurious
> GPEs
> >
> >
> > On Fri, 2008-04-25 at 09:40 +0800, Len Brown wrote:
> >> oh goody, i thought this one rang a bell...
> >>
> >> I'll apply 6217 on top of 9916 (which was already in the test tree,
> >> but not on the acpica branch)
> >>
> >> the error goes away with both applied.
> >
> > I still don't see why the error messages pop up if 6217 is applied.
> > IMO, 6217 won't enable the EC GPE. :(
> >
> > thanks,
> > rui
> >
> >> On Wednesday 23 April 2008, Moore, Robert wrote:
> >>> Alexey,
> >>>
> >>> I remember there was some discussion on this, but I'm still not
> sure
> >> why
> >>> the patch for 6217 (Ignore GPE if valid and not enabled) makes the
> >> other
> >>> problem (too early enabling of GPEs) apparent. Please explain.
> >>>
> >>> Thanks,
> >>> Bob
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Alexey Starikovskiy [mailto:astarikovskiy@xxxxxxx]
> >>>> Sent: Tuesday, April 22, 2008 10:29 PM
> >>>> To: Len Brown
> >>>> Cc: linux-acpi@xxxxxxxxxxxxxxx; Moore, Robert; Zhang, Rui
> >>>> Subject: Re: [PATCH 70/73] ACPICA: Fix to disable unknown
> spurious
> >> GPEs
> >>>> Len Brown wrote:
> >>>>> On Saturday 12 April 2008, Len Brown wrote:
> >>>>>> From: Bob Moore <robert.moore@xxxxxxxxx>
> >>>>>>
> >>>>>> Implemented another change to eliminate/suppress spurious or
> >>>>>> stray GPEs. The AcpiEvDisableGpe function will now disable GPEs
> >>>>>> that are neither enabled nor disabled -- meaning that the GPE
> is
> >>>>>> unknown to the system. This will prevent future interrupts from
> >>>>>> that GPE. (Zhang Rui) BZ 6217
> >>>>>>
> >>>>>> Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
> >>>>>> Signed-off-by: Alexey Starikovskiy <astarikovskiy@xxxxxxx>
> >>>>>> Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
> >>>>>> ---
> >>>>>>  drivers/acpi/events/evgpe.c |    9 ++++++++-
> >>>>>>  1 files changed, 8 insertions(+), 1 deletions(-)
> >>>>>>
> >>>>>> diff --git a/drivers/acpi/events/evgpe.c
> >>> b/drivers/acpi/events/evgpe.c
> >>>>>> index 897baed..6940f5d 100644
> >>>>>> --- a/drivers/acpi/events/evgpe.c
> >>>>>> +++ b/drivers/acpi/events/evgpe.c
> >>>>>> @@ -250,7 +250,14 @@ acpi_status acpi_ev_disable_gpe(struct
> >>>> acpi_gpe_event_info *gpe_event_info)
> >>>>>>   ACPI_FUNCTION_TRACE(ev_disable_gpe);
> >>>>>>
> >>>>>> - if (!(gpe_event_info->flags & ACPI_GPE_ENABLE_MASK)) {
> >>>>>> + /*
> >>>>>> +  * Ignore this if the GPE is valid and not enabled.
> >>>>>> +  *
> >>>>>> +  * Flags is only zero if GPE is neither enabled or disabled
> --
> >>> it may
> >>>>>> +  * be a spurious or stray GPE -- disable it in the default
> >> case
> >>>> below.
> >>>>>> +  */
> >>>>>> + if (gpe_event_info->flags &&
> >>>>>> +     (!(gpe_event_info->flags & ACPI_GPE_ENABLE_MASK))) {
> >>>>>>           return_ACPI_STATUS(AE_OK);
> >>>>>>   }
> >>>>>>
> >>>>>
> >>>>> When applied to 2.6.25, the patch above causes ACPI Error
> >> messages
> >>> below
> >>>> on my T61.
> >>>>> Certainly this is a case of the EC getting an interrupt (GPE
> x02)
> >>> before
> >>>> it has initialized.
> >>>>> Perhaps it breaks the call of acpi_install_gpe_handler() to
> >>>> acpi_ev_disable_gpe()?
> >>>> Congratulations, now you too hit this one, patch is already
> >> there...
> >>>> It is wroong to enable GPE before handler for it is installed...
> >>>> http://bugzilla.kernel.org/show_bug.cgi?id=9916
> >>>>
> >>>>> -Len
> >>>>>
> >>>>>
> >>>>>  PCI: Using MMCONFIG at f0000000 - f3ffffff
> >>>>>  PCI: Using configuration type 1
> >>>>>  evgpeblk-0956 [00] ev_create_gpe_block   : GPE 00 to 1F [_GPE]
> 4
> >>> regs on
> >>>> int 0x9
> >>>>> +ACPI Error (evregion-0316): No handler for Region [ECOR]
> >>>> (ffff81007d35dda0) [EmbeddedControl] [20070126]
> >>>>> +ACPI Error (exfldio-0289): Region EmbeddedControl(3) has no
> >> handler
> >>>> [20070126]
> >>>>> +ACPI Error (psparse-0537): Method parse/execution failed
> >>>> [\_SB_.PCI0.LPC_.EC__.AC__._PSR] (Node ffff81007d364ab0),
> >> AE_NOT_EXIST
> >>>>> +ACPI Error (psparse-0537): Method parse/execution failed
> >>>> [\_SB_.PCI0.LPC_.EC__.HKEY.CKC4] (Node ffff81007d364f48),
> >> AE_NOT_EXIST
> >>>>> +ACPI Error (psparse-0537): Method parse/execution failed
> >>> [\_GPE._L02]
> >>>> (Node ffff81007d376420), AE_NOT_EXIST
> >>>>> +ACPI Exception (evgpe-0584): AE_NOT_EXIST, while evaluating GPE
> >>> method
> >>>> [_L02] [20070126]
> >>>>>  evgpeblk-1052 [00] ev_initialize_gpe_bloc: Found 9 Wake,
> Enabled
> >> 3
> >>>> Runtime GPEs in this block
> >>>>>  ACPI: EC: EC description table is found, configuring boot EC
> >>>>> -ACPI: EC: non-query interrupt received, switching to interrupt
> >> mode
> >>>>> -Completing Region/Field/Buffer/Package
> >>
> initialization:........................................................
> >>> ....
> >>>> ............................................................
> >> .......................................................................
> >>> ....
> >>>
> >> .......................................................................
> >>> ....
> >>>> ................
> >>>>> -Initialized 29/33 Regions 138/138 Fields 64/64 Buffers 55/72
> >>> Packages
> >>>> (1888 nodes)
> >>>>> +Completing Region/Field/Buffer/Package
> >>
> initialization:........................................................
> >>> ....
> >>>> ............................................................
> >> .......................................................................
> >>> ....
> >>>
> >> .......................................................................
> >>> ....
> >>>> .................
> >>>>> +Initialized 30/33 Regions 138/138 Fields 64/64 Buffers 55/72
> >>> Packages
> >>>> (1888 nodes)
> >>>>>  Initializing Device/Processor/Thermal objects by executing _INI
> >>>> methods:.<5>ACPI: BIOS _OSI(Linux) query honored via DMI
> >>>>> +ACPI: EC: non-query interrupt received, switching to interrupt
> >> mode
> >>>>>  .......
> >>>>>  Executed 8 _INI methods requiring 2 _STA executions (examined
> 88
> >>>> objects)
> >>>>>  ACPI: Interpreter enabled
> >>>
> >>
> >>
> >>
> >
> 
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux