]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
[PATCH] ohci1394: Fix broken suspend/resume in ohci1394
authorRobert Hancock <hancockr@shaw.ca>
Fri, 23 Jun 2006 02:33:26 +0000 (20:33 -0600)
committerChris Wright <chrisw@sous-sol.org>
Fri, 30 Jun 2006 00:17:16 +0000 (17:17 -0700)
commit4f75bf81d40d4c5b459343ef34d05478b8bed47d
tree6208cd5e19b0194c5e785c61ab376dd3c4939ec2
parente778d0ec93ec97fb851b8e0bd5e1488f083baa6a
[PATCH] ohci1394: Fix broken suspend/resume in ohci1394

I've been experimenting to track down the cause of suspend/resume
problems on my Compaq Presario X1050 laptop:

http://bugzilla.kernel.org/show_bug.cgi?id=6075

Essentially the ACPI Embedded Controller and keyboard controller would
get into a bizarre, confused state after resume.

I found that unloading the ohci1394 module before suspend and reloading
it after resume made the problem go away. Diffing the dmesg output from
resume, with and without the module loaded, I found that with the module
loaded I was missing these:

PM: Writing back config space on device 0000:02:00.0 at offset 1. (Was
2100080, writing 2100007)
PM: Writing back config space on device 0000:02:00.0 at offset 3. (Was
0, writing 8008)
PM: Writing back config space on device 0000:02:00.0 at offset 4. (Was
0, writing 90200000)
PM: Writing back config space on device 0000:02:00.0 at offset 5. (Was
1, writing 2401)
PM: Writing back config space on device 0000:02:00.0 at offset f. (Was
20000100, writing 2000010a)

The default PCI driver performs the pci_restore_state when no driver is
loaded for the device. When the ohci1394 driver is loaded, it is
supposed to do this, however it appears not to do so.

I created the patch below and tested it, and it appears to resolve the
suspend problems I was having with the module loaded. I only added in
the pci_save_state and pci_restore_state - however, though I know little
of this hardware, surely the driver should really be doing more than
this when suspending and resuming? Currently it does almost nothing,
what if there are commands in progress, etc?

Signed-off-by: Robert Hancock <hancockr@shaw.ca>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
drivers/ieee1394/ohci1394.c