ATA subsystem lost drive after resume process

From: Sergey G Nasonov <snasonov_at_bcc.ru>
Date: Tue, 15 Jul 2008 11:24:35 +0400
Hello all.

I have a laptop Lenovo T61 with a FreeBSD current installed on it.
uname -a

FreeBSD snasonovnbwxp.bcc 8.0-CURRENT FreeBSD 8.0-CURRENT #9: Mon Jul 14 
17:00:33 MSD 2008     
snasonov_at_snasonovnbwxp.bcc:/usr/current/src/sys/i386/compile/CUSTOM  i386

I want to understand why suspend/resume does not work. Suspend process works 
fine, but resume lead to hang. LCD screen after resume process remains  
black. At first I compile minimal CUSTOM kernel without USB support. And 
disabled SMP support through sysctl variable
kern.smp.disabled=1

Also hw.acpi.reset_video was set to 1 to properly initialise LCD screen.

After resume I can view folowing:
ata0: reiniting channel ..
ata0: reset tp1 mask=03 ostat0=80 ostat=00
ata0: stat0=0x00 er=0x01 lsb=0x14 msb=0xeb
ata0: stat1=0x00 err=0x00 lsb=0x00 msb=0x00
ata0: reset tp2 stat0=00 stat1=00 devices 0x10000
ata0: reinit done ..
ata1: reiniting channel ..
ata1: reset tp1 mask =00 ostat0=ff ostat1=ff
ata1: reiniting done ..
ata2: reiniting channel ..
ata2: SATA connect time=0ms
ata2: BUSY wait time =1ms
ata2: SIGNATURE:ffffffff
ata2: No signature, assuming disk device
ata2: ahci_reset devices=00000001
em0: Link is up 100 Mbps Full duplex
ad4: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing 
request directly
ad4: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing 
request directly
ad4: WARNING - SETFEATURES ENABLE RCACHE taskqueue timeout - completing 
request directly
ad4: WARNING - SETFEATURES ENABLE WCACHE taskqueue timeout - completing 
request directly
ad4: WARNING - SET_MULTI taskqueue timeout - completing request directly
ata2: reinit done
ata3: reiniting channel ..
ata3: port not implemented
ata3: reinit done ..
ata4: reiniting channel ..
ata4: SATA connect status=00000000
ata4: phy reset found no device
ata4: reinit done ..
atkbd: the current kbd controller command byte 0047
atkbd: keyboard ID 0x54ab (2)
battery0: battery initialization start
battery0: battery initialization done, tried 1 times
ata2: reiniting channel ..
ata2: SATA connect time=0ms
ata2: BUSY wait time =1ms
ata2: SIGNATURE:00000101
ata2: ahci_reset devices=00000001
ad4: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing 
request directly
ad4: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing 
request directly
ad4: WARNING - SETFEATURES ENABLE RCACHE taskqueue timeout - completing 
request directly
ad4: WARNING - SETFEATURES ENABLE WCACHE taskqueue timeout - completing 
request directly
ad4: WARNING - SET_MULTI taskqueue timeout - completing request directly
...

I disabled DMA and cache write but problem remains.
sysctl hw.ata

hw.ata.setmax: 0
hw.ata.wc: 0
hw.ata.atapi_dma: 0
hw.ata.ata_dma: 0

I wrote this log from a screen, because disk subsystem does not save any data 
to disk. So the basic issue preventing normal suspend/resume process on 
modern Lenovo laptops is ata subsystem. Does anyone can help with this 
problem? I can test any path or provide additional info. 

verbose dmesg and pciconf -lv is attached
 
Thanks,
Sergey 

Received on Tue Jul 15 2008 - 05:47:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:32 UTC