5.2-RC2: APM suspend/resume ata0 reset problem
Dr. Gary E. RAFE
gary.rafe at utoledo.edu
Mon Jan 5 10:40:28 PST 2004
Here's another data point regarding the APM suspend/resume ata reset
problem with 5.2-RC2.
I currently run 4.8-R on my Toshiba Satellite Pro 6100
(I burned a 4.9-R CD when it became available, but haven't
had time to work through the upgrade).
In an open partition, I installed 5.2-RC2 during the recent
holiday. I was pleased to find most everything working
correctly (e.g., XFree86 with the nVidia, WiFi through cbb/pccard,
pcm, usb, and so on).
I did give ACPI a go, but found that suspending the system only managed
to hang it without powering anything down.
When I got to testing APM suspend/resume, I noted that:
1) The system hangs upon resume during the ata0 reset:
pci_cfgintr: 0:29 INTA BIOS irq 11
pci_cfgintr: 0:29 INTB BIOS irq 11
pci_cfgintr: 0:29 INTC BIOS irq 11
pci_cfgintr: 0:31 INTA BIOS irq 11
pci_cfgintr: 0:31 INTB BIOS irq 11
pci_cfgintr: 0:31 INTB BIOS irq 11
pci_cfgintr: 1:0 INTA BIOS irq 10
pci_cfgintr: 2:8 INTA BIOS irq 11
pci_cfgintr: 2:10 INTA BIOS irq 11
pci_cfgintr: 2:11 INTA BIOS irq 11
pci_cfgintr: 2:11 INTB BIOS irq 11
pci_cfgintr: 2:13 INTA BIOS irq 11
ata0: resetting devices ..
[stuck here with the disk activity LED on]
2) With a "verbose" kernel boot, the system resumes OK,
but USB goes away:
...
wakeup from sleeping state (slept 15:33:52)
atkbd: the current kbd controller command byte 0065
atkbd: keyboard ID 0x41ab (2)
kbdc: RESET_KBD return code:00fa
kbdc: RESET_KBD status:00aa
ata0: resetting devices ..
ata0: reset tp1 mask=03 ostat0=50 ostat1=00
ad0: stat=0x50 err=0x01 lsb=0x00 msb=0x00
ata0-slave: stat=0x00 err=0x01 lsb=0x00 msb=0x00
ata0: reset tp2 mask=03 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ad0: pio=0x0c wdma=0x22 udma=0x45 cable=80pin
ad0: setting PIO4 on Intel ICH3 chip
ad0: setting UDMA100 on Intel ICH3 chip
ad0: setting UDMA100 on Intel ICH3 chip
done
ata1: resetting devices ..
ata1: reset tp1 mask=03 ostat0=50 ostat1=00
acd0: stat=0x00 err=0x01 lsb=0x14 msb=0xeb
ata1-slave: stat=0x00 err=0x04 lsb=0x00 msb=0x00
ata1: reset tp2 mask=03 stat0=00 stat1=00 devices=0x4<ATAPI_MASTER>
acd0: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
acd0: setting PIO4 on Intel ICH3 chip
acd0: setting PIO4 on Intel ICH3 chip
done
uhub1: at uhub0 port 1 (addr 2) disconnected
ums0: detached
uhub1: detached
...
(probe0:ata0:0:0:0): error 22
(probe0:ata0:0:0:0): Unretryable Error
(probe1:ata0:0:1:0): error 22
(probe1:ata0:0:1:0): Unretryable Error
(probe3:ata1:0:1:0): error 22
(probe3:ata1:0:1:0): Unretryable Error
uhub0: device problem, disabling port 1
uhub0: device problem, disabling port 1
uhub0: port error, restarting port 1
uhub0: device problem, disabling port 1
In the second case above, I found that the system hangs during
a *subsequent* suspend/resume cycle.
Once we returned from our holiday travel,
I tried the simple patch to ata-all.c proposed by Hiroyuki Aizu,
but this code had no positive result to the ata0 reset hang problem.
The ATA controller here, as reported by the 5.2-RC2 kernel:
atapci0: <Intel ICH3 UDMA100 controller> port 0xcfa0-0xcfaf,
0xcfe4-0xcfe7,0xcfe8-0xcfef,0xcff4-0xcff7,0xcff8-0xcfff irq 11
at device 31.1 on pci0
Looking forward to a solution to this "show stopper" !
Cheers,
--
Dr. Gary E. RAFE
gary.rafe at utoledo.edu
More information about the freebsd-current
mailing list