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);
}
next prev 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