public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: linux-pm@lists.linux-foundation.org
Cc: Maxim Levitsky <maximlevitsky@gmail.com>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"Moore, Robert" <robert.moore@intel.com>,
	len.brown@intel.com
Subject: Re: [linux-pm] commit 'ACPICA: Minimize the differences between linux GPE code and ACPICA code base' breaks EC GPE on my system
Date: Fri, 11 Jun 2010 22:59:33 +0200	[thread overview]
Message-ID: <201006112259.33602.rjw@sisk.pl> (raw)
In-Reply-To: <201006112234.39747.rjw@sisk.pl>

On Friday, June 11, 2010, Rafael J. Wysocki wrote:
> On Friday, June 11, 2010, Maxim Levitsky wrote:
> > On Fri, 2010-06-11 at 21:43 +0200, Rafael J. Wysocki wrote: 
> > > On Friday, June 11, 2010, Rafael J. Wysocki wrote:
> > > > On Friday, June 11, 2010, Maxim Levitsky wrote:
> > > > > Just bisected it.
> > > > > 
> > > > > I also tried linux-acpi-next/test, and no change.
> > > > > 
> > > > > The sympthoms are that EC does't sent any GPEs, and therefore battery
> > > > > insert/removal events don't show up.
> > > > > 
> > > > > It can be see by doing 'grep  . /sys/firmware/acpi/interrupts/*'
> > > > > With regression the line is shown like this:
> > > > > 
> > > > > 
> > > > > /sys/firmware/acpi/interrupts/gpe1C:   1	enabled
> > > > > 
> > > > > Without regression it is
> > > > > 
> > > > > /sys/firmware/acpi/interrupts/gpe1C:   22889	enabled
> > > > > 
> > > > > and steadily increasing.
> > > > > 
> > > > > After suspend/resume, regression disappears.
> > > > 
> > > > Hmm.
> > > > 
> > > > Can you please apply the following patches:
> > > > 
> > > > https://patchwork.kernel.org/patch/104903/
> > > > https://patchwork.kernel.org/patch/104912/
> > > > https://patchwork.kernel.org/patch/104909/
> > > > https://patchwork.kernel.org/patch/104911/
> > > > https://patchwork.kernel.org/patch/104910/
> > > > 
> > > > on top of current -git and see if the problem is still there?
> > > 
> > > Also, regardless of whether or not this helps, please try to revert only the
> > > changes made by the "guilty" commit in drivers/acpi/acpica/evxface.c and see
> > > if that helps (this revert will conflict with the patches above, so you'll need
> > > to unapply them before).
> > > 
> > > Thanks,
> > > Rafael
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> > Yes, reverting changes in 'drivers/acpi/acpica/evxface.c' do restore
> > correct behavior.
> 
> Good.  I think we'll need to revert them for .35, then.
> 
> I'll prepare a patch and send it to Len.

Can you check if the patch below fixes the issue?

Rafael

---
From: Rafael J. Wysocki <rjw@sisk.pl>
Subject: ACPI / ACPICA: Do not attempt to disable GPE when installing handler

Commit 0f849d2cc6863c7874889ea60a871fb71399dd3f (ACPICA: Minimize
the differences between linux GPE code and ACPICA code base)
introduced a change attempting to disable a GPE before installing
a handler for it in acpi_install_gpe_handler() which was incorrect.
First, the GPE disabled by it is never enabled again (except during
resume) which leads to battery insert/remove events not being
reported on the Maxim Levitsky's machine.  Second, the disabled
GPE is still reported as enabled by the sysfs interface that only
checks its enable register's enable_for_run mask.

Revert this change for now, because it causes more damage to happen
than the bug it was supposed to fix.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Reported-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
 drivers/acpi/acpica/evxface.c |   20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

Index: linux-2.6/drivers/acpi/acpica/evxface.c
===================================================================
--- linux-2.6.orig/drivers/acpi/acpica/evxface.c
+++ linux-2.6/drivers/acpi/acpica/evxface.c
@@ -719,13 +720,6 @@ acpi_install_gpe_handler(acpi_handle gpe
 	handler->context = context;
 	handler->method_node = gpe_event_info->dispatch.method_node;
 
-	/* Disable the GPE before installing the handler */
-
-	status = acpi_ev_disable_gpe(gpe_event_info);
-	if (ACPI_FAILURE (status)) {
-		goto unlock_and_exit;
-	}
-
 	/* Install the handler */
 
 	flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);

  reply	other threads:[~2010-06-11 21:01 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-11 11:47 commit 'ACPICA: Minimize the differences between linux GPE code and ACPICA code base' breaks EC GPE on my system Maxim Levitsky
2010-06-11 17:12 ` Len Brown
2010-06-11 19:23 ` Rafael J. Wysocki
2010-06-11 19:43   ` Rafael J. Wysocki
2010-06-11 20:32     ` Maxim Levitsky
2010-06-11 20:34       ` Rafael J. Wysocki
2010-06-11 20:59         ` Rafael J. Wysocki [this message]
2010-06-11 21:43           ` [linux-pm] " Maxim Levitsky
2010-06-11 19:47   ` Maxim Levitsky
2010-06-11 19:50     ` Rafael J. Wysocki
2010-06-11 19:59       ` Maxim Levitsky
2010-06-11 19:51     ` Maxim Levitsky

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=201006112259.33602.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=maximlevitsky@gmail.com \
    --cc=robert.moore@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