public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Nathan Bryant <nbryant-p32f3XyCuykqcZcGjlUOXw@public.gmane.org>
To: "Li, Shaohua" <shaohua.li-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: stefandoesinger-RbZlAiThDcE@public.gmane.org,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: "irq 11: nobody cared" after S3
Date: Mon, 02 Aug 2004 10:17:41 -0400	[thread overview]
Message-ID: <410E4D05.3020304@optonline.net> (raw)
In-Reply-To: <B44D37711ED29844BEA67908EAF36F0376876A-4yWAQGcml65pB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 759 bytes --]

Li, Shaohua wrote:
> I guess the bug is: ACPI sets LNKE's IRQ from 10 to 11 in boot time.
> LNKE's register is at LPC bridge offset 0x68, but current PCI config
> space save/restore code only handles first 0x40 bytes. After resume,
> LNKE's register doesn't recover. So LNKE will actually route to 10, but
> ACPI still thinks it routes to 11. Then you will get such error. I guess
> such error is unavoidable unless LPC bridge driver exists (it can
> save/restore all affected config space instead of first 0x40 bytes). 

Hi,

I agree with you, but I suspect a better fix is something like the 
attached diff, from my local tree. (My machine has similar problems, but 
this is not tested yet. Will test tonight and then send a patch to Len 
if it works out.)

[-- Attachment #2: acpi-fixes.patch --]
[-- Type: text/plain, Size: 2121 bytes --]

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/08/02 10:11:58-04:00 nbryant-p32f3XyCuykqcZcGjlUOXw@public.gmane.org 
#   drivers/acpi/pci_link.c: remove setonboot from struct
#   acpi_pci_link_irq. Make acpi_pci_link_allocate() call the BIOS to
#   program the IRQ router every time it is called instead of only after
#   boot. This should hopefully fix problems with IRQ routing after
#   resume from S3 suspend. We can't rely on the bridge state being
#   saved/restored, because we don't have proper drivers for every
#   chipset, so instead we rely on the BIOS. Even pci_save_state only
#   saves the first 0x40 bytes of PCI config space; this is not enough
#   for PIIX.
# 
# drivers/acpi/pci_link.c
#   2004/08/02 10:11:50-04:00 nbryant-p32f3XyCuykqcZcGjlUOXw@public.gmane.org +0 -6
#   remove setonboot from struct
#   acpi_pci_link_irq. Make acpi_pci_link_allocate() call the BIOS to
#   program the IRQ router every time it is called instead of only after
#   boot. This should hopefully fix problems with IRQ routing after
#   resume from S3 suspend. We can't rely on the bridge state being
#   saved/restored, because we don't have proper drivers for every
#   chipset, so instead we rely on the BIOS. Even pci_save_state only
#   saves the first 0x40 bytes of PCI config space; this is not enough
#   for PIIX.
# 
diff -Nru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
--- a/drivers/acpi/pci_link.c	2004-08-02 10:14:23 -04:00
+++ b/drivers/acpi/pci_link.c	2004-08-02 10:14:23 -04:00
@@ -71,7 +71,6 @@
 	u8			active;			/* Current IRQ */
 	u8			edge_level;		/* All IRQs */
 	u8			active_high_low;	/* All IRQs */
-	u8			setonboot;
 	u8			resource_type;
 	u8			possible_count;
 	u8			possible[ACPI_PCI_LINK_MAX_POSSIBLE];
@@ -517,9 +516,6 @@
 
 	ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
 
-	if (link->irq.setonboot)
-		return_VALUE(0);
-
 	/*
 	 * search for active IRQ in list of possible IRQs.
 	 */
@@ -570,8 +566,6 @@
 			acpi_device_name(link->device),
 			acpi_device_bid(link->device), link->irq.active);
 	}
-
-	link->irq.setonboot = 1;
 
 	return_VALUE(0);
 }

  parent reply	other threads:[~2004-08-02 14:17 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-02  6:47 "irq 11: nobody cared" after S3 Li, Shaohua
     [not found] ` <B44D37711ED29844BEA67908EAF36F0376876A-4yWAQGcml65pB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-08-02 14:17   ` Nathan Bryant [this message]
  -- strict thread matches above, loose matches on Subject: below --
2004-08-03  1:43 Li, Shaohua
2004-08-03  1:12 Li, Shaohua
     [not found] ` <B44D37711ED29844BEA67908EAF36F03768BD0-4yWAQGcml65pB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-08-03  1:27   ` Nathan Bryant
2004-08-03  2:21   ` Nathan Bryant
2004-08-01 16:50 Stefan Dösinger
     [not found] ` <200408011850.25991.stefandoesinger-RbZlAiThDcE@public.gmane.org>
2004-08-02  4:21   ` Nathan Bryant
     [not found]     ` <410DC163.1090109-p32f3XyCuykqcZcGjlUOXw@public.gmane.org>
2004-08-03 14:29       ` Stefan Dösinger
     [not found]         ` <200408031629.19466.stefandoesinger-RbZlAiThDcE@public.gmane.org>
2004-08-03 15:32           ` Nathan Bryant

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=410E4D05.3020304@optonline.net \
    --to=nbryant-p32f3xycuykqczcgjluoxw@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=shaohua.li-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=stefandoesinger-RbZlAiThDcE@public.gmane.org \
    /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