Bug 4122

Summary: S3 resume: IDE fails - Sony VAIO
Product: ACPI Reporter: Scott Hutton (shutton)
Component: Power-Sleep-WakeAssignee: Shaohua (shaohua.li)
Status: REJECTED DUPLICATE    
Severity: normal CC: acpi-bugzilla
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.10-1.741_FC3 Subsystem:
Regression: --- Bisected commit-id:
Attachments: Output from "lspci -vvv"
Contents of /proc/interrupts

Description Scott Hutton 2005-01-29 00:06:05 UTC
Distribution: Fedora Core 3
Hardware Environment: Sony VAIO B100B (Centrino/Dothan 2GHz, 855GME)
Software Environment: Linux 2.6.10-1.741_FC3
Problem Description:

Following resume from an S3 suspend, the hard drive appears to fail to spin up.
 The following errors eventually appear via dmesg:

  hda: lost interrupt

  ACPI-0286: *** Error: No installed handler for fixed event [00000002]

  hda: no DRQ after issuing MULTWRITE

Steps to reproduce:

  * Boot with "acpi_sleep=s3_bios acpi_sleep=s3_mode" to correct video problem
    on resume (otherwise, screen remains blank)
  * Bring up system in single-user mode.  The set of modules loaded doesn't
    appear to matter (I hacked rc.sysinit to avoid loading any modules in
    some tests)
  * First access of hard drive hangs system

In some tests, I was able to catch errors related to device 00:1f.1 having IRQ
problems, but I haven't managed to keep them on screen long enough to copy them
down (I'll try to catch them with a photo if it would be helpful).  This device
on my system is (ala "lspci -vvv"):

- - - - -
00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4-M) IDE Controller (rev 03)
(prog-if 8a [Master SecP PriP])
        Subsystem: Sony Corporation: Unknown device 8188
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0
        Interrupt: pin A routed to IRQ 255
        Region 0: I/O ports at <unassigned>
        Region 1: I/O ports at <unassigned>
        Region 2: I/O ports at <unassigned>
        Region 3: I/O ports at <unassigned>
        Region 4: I/O ports at 1810 [size=16]
        Region 5: Memory at 20000000 (32-bit, non-prefetchable) [size=1K]
- - - - -

Intel's documentation on the 855GME chipset has a note that might be relevant to
the problem.  Their documentation is at:

  ftp://download.intel.com/design/mobile/desguide/25261604.pdf

Section 11.1.4.1 item 2 (page 198 in my copy) indicates:

  B0:D31:F0 Offset D0-D3h (GEN_CNTL 
Comment 1 Scott Hutton 2005-01-29 00:08:46 UTC
Created attachment 4485 [details]
Output from "lspci -vvv"
Comment 2 Scott Hutton 2005-01-29 00:24:07 UTC
I left out an obvious step in the "steps to reproduce" section.  Before the last
item:

  * echo 3 > /proc/acpi/sleep, then resume with keyboard press
Comment 3 Scott Hutton 2005-01-29 14:53:29 UTC
I figured out how to catch more of the post-suspend output (by trying to put it
to sleep again, which doesn't require disk interaction).  Here's the output.  I
didn't write down all of the addresses and arguments, so let me know if there
are any of particular interest.

FYI, IRQ 14 on my system is allocated to ide0.  I'll append the full interrupt
list as an attachment to this bug.  Also, the second attempt to switch back to
S3 utterly fails and hangs the system.

- - - - -

Back to C!
Warning: CPU frequency is 6000000, cpufreq assumed 2000000 kHz
Debug: sleeping function called from invalid context at mm/slab.c:2055
in_atomic():0, irqs_disabled():1
[<c011b5d1>] __mgmtd_sleep+0xd1/0xf0
[<xxxxxxxx>] acpi_ut_trace ...
[<xxxxxxxx>] kmem_cache_alloc ...
[<xxxxxxxx>] acpi_pci_link_set ...
[<xxxxxxxx>] acpi_pci_link_resume ...
[<xxxxxxxx>] sysdev_resume ...
[<xxxxxxxx>] device_power_up ...
[<xxxxxxxx>] suspend_enter ...
[<xxxxxxxx>] enter_state ...
[<xxxxxxxx>] acpi_suspend ...
[<xxxxxxxx>] copy_from_user ...
[<xxxxxxxx>] acpi_system_write_sleep ...
[<xxxxxxxx>] vfs_write ...
[<xxxxxxxx>] sys_write ...
[<xxxxxxxx>] sysenter_post_exp ...
PM: Finishing up.
  pci_irq-0357 [14] acpi_pci_irq_derive   : Unable to derive IRQ for device
0000:00:1f.1
ACPI: PCI interrupt 0000:00:1f.1[A]: no GSI
hda: lost interrupt
 evevent-0286: *** Error: No installed handler for fixed event [00000002]
Restarting tasks... done
Comment 4 Scott Hutton 2005-01-29 14:54:14 UTC
Created attachment 4488 [details]
Contents of /proc/interrupts
Comment 5 Scott Hutton 2005-01-29 14:56:31 UTC
The last test was performed with a plain 2.6.10 kernel with the
"acpi-20050125-2.6.10.diff.gz" patch applied.  The kernel was passed
"init=/bin/sh" to prevent module loading (beyond ext3 and jbd via initrd).
Comment 6 Len Brown 2005-08-17 09:57:27 UTC
still an issue with 2.6.13?
Comment 7 Shaohua 2005-11-08 19:57:07 UTC
Could you please try the patch at bug 2039 and report it back? Let's see if 
the ide failure is caused by lack of invoking ACPI metthods.
Comment 8 Shaohua 2005-12-22 20:50:15 UTC

*** This bug has been marked as a duplicate of 2039 ***