All of lore.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 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.