Date: Wed, 29 Sep 2010 22:39:30 GMT From: Bernd Heller <bdheller@users.sourceforge.net> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/151091: JMicron JMB363 unusable after S3 suspend/resume Message-ID: <201009292239.o8TMdUKk078616@www.freebsd.org> Resent-Message-ID: <201009292240.o8TMe4Ui001174@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 151091 >Category: kern >Synopsis: JMicron JMB363 unusable after S3 suspend/resume >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Sep 29 22:40:03 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Bernd Heller >Release: 8.1 >Organization: >Environment: FreeBSD helios.home.lan 8.1-RELEASE FreeBSD 8.1-RELEASE #21: Thu Sep 30 00:18:01 CEST 2010 root@helios.home.lan:/usr/obj/usr/src/sys/HELIOS amd64 >Description: I have experienced this using the normal ata drivers, and the new ATA/AHCI/CAM integration. I have done all tests only with AHCI/CAM from now on. I have been trying to get my JMB363 SATA controller to be usable after putting the machine into S3 with acpiconf. The result in the logs after resume looks like this: kernel: ahci0: AHCI controller reset failure Comparing the PCI registers before and after shows that not the entire state is restored. So fixing the problem seemed easy enough: save and restore the registers in the driver *_suspend/*_restore functions. The main problem however is, that those are called AFTER the AHCI driver has executed the reset. The call chain seems to go like this: pci_resume() ahci_resume() ahci_ctrl_reset() ata_jmicron_resume() I only got a first rudimentary hack to work by modifying ahci_resume() such, that it first calls bus_generic_resume() and then does the reset(). I have absolutely no idea if that has any other side effects. Someone who knows these systems in depth should have a look though. >How-To-Repeat: Use a system with a JMB363 controller. Put the system to sleep with "acpiconf -s 3". On resume try to access the disks: no go. >Fix: I have a hack that seems to lead in the right direction, but no patch quality code yet. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009292239.o8TMdUKk078616>