android_kernel_motorola_sm6225/drivers
Ben Collins b21efb59c5 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>
Cc: Jody McIntyre <scjody@modernduck.com>
Cc: Ben Collins <bcollins@debian.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Ben Collins <bcollins@ubuntu.com>
2006-06-12 18:15:03 -04:00
..
acorn
acpi [PATCH] powernow-k8 crash workaround 2006-06-10 11:02:05 -07:00
amba
atm [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
base [PATCH] revert "swsusp add check for suspension of X controlled devices" 2006-05-31 16:27:11 -07:00
block [PATCH] USB: ub oops in block_uevent 2006-05-08 23:43:55 -07:00
bluetooth [PATCH] pcmcia: use bitfield instead of p_state and state 2006-03-31 17:26:33 +02:00
cdrom [PATCH] Overrun in cdrom/aztcd.c 2006-04-11 06:18:46 -07:00
char [PATCH] Fix for the PPTP hangs that have been reported 2006-06-11 20:40:39 -07:00
connector [PATCH] sem2mutex: drivers: raw, connector, dcdbas, ppp_generic 2006-03-23 07:38:10 -08:00
cpufreq [PATCH] x86_64: Move ondemand timer into own work queue 2006-05-08 09:34:56 -07:00
crypto [CRYPTO] api: Align tfm context as wide as possible 2006-03-21 20:14:08 +11:00
dio [PATCH] hp300: fix driver_register() return handling, remove dio_module_init() 2006-03-25 08:22:53 -08:00
edac [PATCH] EDAC Coexistence with BIOS 2006-05-03 20:05:41 -07:00
eisa [PATCH] EISA: Ignore generated file drivers/eisa/devlist.h 2006-03-25 08:23:01 -08:00
fc4
firmware [PATCH] DMI: move dmi_scan.c from arch/i386 to drivers/firmware/ 2006-04-14 11:41:25 -07:00
hwmon [PATCH] w83792d: Be quiet on misdetection 2006-04-14 11:18:33 -07:00
i2c [PATCH] scx200_acb: fix section mismatch warning 2006-05-26 11:55:46 -07:00
ide [PATCH] sgiioc4: use mmio ops instead of port io 2006-05-31 16:27:11 -07:00
ieee1394 Fix broken suspend/resume in ohci1394 2006-06-12 18:15:03 -04:00
infiniband IPoIB: Fix AH leak at interface down 2006-06-05 09:51:36 -07:00
input Input: psmouse - DMI updates for lifebook protocol 2006-05-29 23:31:12 -04:00
isdn [PATCH] Overrun in isdn_tty.c 2006-05-21 12:59:18 -07:00
leds [PATCH] LED: Fix sysfs store function error handling 2006-05-15 11:20:56 -07:00
macintosh [PATCH] powerpc: fix oops in alsa powermac driver 2006-04-21 22:34:26 +10:00
mca
md [PATCH] md: Fix badness in sysfs_notify caused by md_new_event 2006-05-31 16:27:11 -07:00
media [PATCH] V4L/DVB (4045): Fixes recursive dependency for I2C 2006-05-24 18:48:28 -07:00
message Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2006-06-10 11:03:51 -07:00
mfd [PATCH] show MCP menu only on ARCH_SA1100 2006-03-24 07:33:28 -08:00
misc [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
mmc [MMC] Prevent au1xmmc.c breakage on non-Au1200 Alchemy 2006-06-04 17:40:58 +01:00
mtd [PATCH] Remove blkmtd 2006-04-11 06:18:43 -07:00
net [TG3]: Handle Sun onboard tg3 chips more correctly. 2006-06-09 12:03:51 -07:00
nubus
oprofile [PATCH] mark f_ops const in the inode 2006-03-28 09:16:05 -08:00
parisc [PARISC] Document that we tolerate "Relaxed Ordering" 2006-04-21 22:20:33 +00:00
parport [PATCH] parport_pc: fix section mismatch warnings (v2) 2006-04-19 09:13:52 -07:00
pci [PATCH] PCI: reverse pci config space restore order 2006-06-11 14:02:27 -07:00
pcmcia [PATCH] pcmcia: missing pcmcia_get_socket() result check 2006-06-02 00:56:17 +02:00
pnp [PATCH] pnp: fix two messages in manager.c 2006-04-19 09:13:52 -07:00
rapidio
rtc [PATCH] m48t86: ia64 build fix 2006-06-05 12:29:17 -07:00
s390 [PATCH] s390: cio non-unique path group ids 2006-06-05 12:29:16 -07:00
sbus [SPARC]: Fix warning on prom_getproperty in openprom.c 2006-05-12 12:53:59 -07:00
scsi [PATCH] sata_mv: grab host lock inside eng_timeout 2006-06-11 23:03:18 -04:00
serial [PATCH] ppc32 CPM_UART: various fixes for pq2 uart users 2006-05-26 22:38:56 +10:00
sh
sn [PATCH] Altix: correct ioc4 port order 2006-05-03 20:05:41 -07:00
spi [PATCH] s3c24xx: fix spi driver with CONFIG_PM 2006-05-26 11:55:46 -07:00
tc [PATCH] kill _INLINE_ 2006-03-23 07:38:16 -08:00
telephony [PATCH] pcmcia: use bitfield instead of p_state and state 2006-03-31 17:26:33 +02:00
usb [PATCH] HID read busywait fix 2006-05-21 12:59:17 -07:00
video [PATCH] fbcon: fix limited scroll in SCROLL_PAN_REDRAW mode 2006-06-08 15:12:21 -07:00
w1 fix typos "wich" -> "which" 2006-03-24 18:23:14 +01:00
zorro [PATCH] amiga: fix driver_register() return handling, remove zorro_module_init() 2006-03-25 08:22:53 -08:00
Kconfig [IA64] IOC4 config option ordering 2006-04-21 10:59:00 -07:00
Makefile Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2006-04-02 12:51:22 -07:00