Hi,

On Friday, 25 of March 2005 09:21, Andrew Morton wrote:
> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc1/2.6.12-rc1-mm3/
> 
> - Mainly a bunch of fixes relative to 2.6.12-rc1-mm2.

First, rmmod works again (thanks ;-)).

> - Again, we'd like people who have had recent DRM and USB resume problems to
>   test and report, please.

My box is still hanged solid on resume (swsusp) by the drivers:

ohci_hcd
ehci_hcd
yenta_socket

possibly others, too.  To avoid this, I had to revert the following patch from
the Len's tree:

diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
--- a/drivers/acpi/pci_link.c   2005-03-24 04:57:27 -08:00
+++ b/drivers/acpi/pci_link.c   2005-03-24 04:57:27 -08:00
@@ -72,10 +72,12 @@
        u8                      active;                 /* Current IRQ */
        u8                      edge_level;             /* All IRQs */
        u8                      active_high_low;        /* All IRQs */
-       u8                      initialized;
        u8                      resource_type;
        u8                      possible_count;
        u8                      possible[ACPI_PCI_LINK_MAX_POSSIBLE];
+       u8                      initialized:1;
+       u8                      suspend_resume:1;
+       u8                      reserved:6;
 };
 
 struct acpi_pci_link {
@@ -530,6 +532,10 @@
 
        ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
 
+       if (link->irq.suspend_resume) {
+               acpi_pci_link_set(link, link->irq.active);
+               link->irq.suspend_resume = 0;
+       }
        if (link->irq.initialized)
                return_VALUE(0);
 
@@ -713,38 +719,24 @@
        return_VALUE(result);
 }
 
-
-static int
-acpi_pci_link_resume (
-       struct acpi_pci_link    *link)
-{
-       ACPI_FUNCTION_TRACE("acpi_pci_link_resume");
-       
-       if (link->irq.active && link->irq.initialized)
-               return_VALUE(acpi_pci_link_set(link, link->irq.active));
-       else
-               return_VALUE(0);
-}
-
-
 static int
-irqrouter_resume(
-       struct sys_device *dev)
+irqrouter_suspend(
+       struct sys_device *dev,
+       u32     state)
 {
        struct list_head        *node = NULL;
        struct acpi_pci_link    *link = NULL;
 
-       ACPI_FUNCTION_TRACE("irqrouter_resume");
+       ACPI_FUNCTION_TRACE("irqrouter_suspend");
 
        list_for_each(node, &acpi_link.entries) {
-
                link = list_entry(node, struct acpi_pci_link, node);
                if (!link) {
                        ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Invalid link 
context\n"));
                        continue;
                }
-
-               acpi_pci_link_resume(link);
+               if (link->irq.active && link->irq.initialized)
+                       link->irq.suspend_resume = 1;
        }
        return_VALUE(0);
 }
@@ -856,7 +848,7 @@
 
 static struct sysdev_class irqrouter_sysdev_class = {
         set_kset_name("irqrouter"),
-        .resume = irqrouter_resume,
+        .suspend = irqrouter_suspend,
 };
 
 
# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2005/03/18 16:30:29-05:00 [EMAIL PROTECTED] 
#   [ACPI] S3 Suspend to RAM: interrupt resume fix
#   
#   Delete PCI Interrupt Link Device .resume method --
#   it is the device driver's job to request interrupts,
#   not the Link's job to remember what the devices want.
#   
#   This addresses the issue of attempting to run
#   the ACPI interpreter too early in resume, when
#   interrupts are still disabled.
#   
#   http://bugzilla.kernel.org/show_bug.cgi?id=3469
#   
#   Signed-off-by: David Shaohua Li <[EMAIL PROTECTED]>
#   Signed-off-by: Len Brown <[EMAIL PROTECTED]>
# 
# drivers/acpi/pci_link.c
#   2005/03/02 22:23:50-05:00 [EMAIL PROTECTED] +14 -22
#   Delete PCI Interrupt Link .resume method
# 

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
                -- Lewis Carroll "Alice's Adventures in Wonderland"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to