* [PATCH] fix for firewire patch added in 2.6.17.2 that breaks things on ppc [not found] <20060805151050.B24484@luna.ellen.dexterslabs.com> @ 2006-08-07 4:38 ` danny 2006-08-08 5:05 ` Paul Mackerras 0 siblings, 1 reply; 4+ messages in thread From: danny @ 2006-08-07 4:38 UTC (permalink / raw) To: linuxppc-dev [-- Attachment #1: Type: text/plain, Size: 614 bytes --] Hello, I sent this to Ben earlier but forgot to cc this list: > > Sleep broke on my ibook G3 with 2.6.17. After some tests it seemed it only broke when I had used my > iSight. Plugging it after a sleep/resume cycle would sometimes instantly hang the machine. > > The problem appeared to result from a patch added in 2.6.17.2, where a > pci_save_state(pdev); > is called after > pmac_call_feature(PMAC_FTR_1394_ENABLE, of_node, 0, 0); > > resuming shows that the corresponding pci_restore_state is writing all ffffffff to the config space. > Which is probably not a good idea. > Patch is attached Danny [-- Attachment #2: ohci1394_save_state.patch --] [-- Type: text/plain, Size: 987 bytes --] 2.6.17.2 contained a patch for preliminary suspend/resume handling on !PPC_PMAC. However, this broke suspend and firewire on powerpc because it saves the state after the device has already been disabled. Firewire works perfectly through suspend on my ibook, so save/restore state is not needed there. Signed-off-by: Danny Tholen <obiwan@mailmij.org> --- linux-2.6.17.7/drivers/ieee1394/ohci1394.c~ 2006-08-03 10:00:01.875855084 -0400 +++ linux-2.6.17.7/drivers/ieee1394/ohci1394.c 2006-08-03 10:08:24.274059577 -0400 @@ -3537,9 +3537,9 @@ if (of_node) pmac_call_feature (PMAC_FTR_1394_ENABLE, of_node, 0, 1); } -#endif /* CONFIG_PPC_PMAC */ - +#else pci_restore_state(pdev); +#endif /* CONFIG_PPC_PMAC */ pci_enable_device(pdev); return 0; @@ -3557,10 +3557,9 @@ if (of_node) pmac_call_feature(PMAC_FTR_1394_ENABLE, of_node, 0, 0); } -#endif - +#else pci_save_state(pdev); - +#endif /* CONFIG_PPC_PMAC */ return 0; } ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] fix for firewire patch added in 2.6.17.2 that breaks things on ppc 2006-08-07 4:38 ` [PATCH] fix for firewire patch added in 2.6.17.2 that breaks things on ppc danny @ 2006-08-08 5:05 ` Paul Mackerras 2006-08-08 5:37 ` danny 2006-08-08 16:50 ` danny 0 siblings, 2 replies; 4+ messages in thread From: Paul Mackerras @ 2006-08-08 5:05 UTC (permalink / raw) To: danny; +Cc: linuxppc-dev danny@mailmij.org writes: > -#endif > - > +#else > pci_save_state(pdev); > - > +#endif /* CONFIG_PPC_PMAC */ Shouldn't we just move the pci_save_state call up before the pmac_call_feature() call? Paul. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] fix for firewire patch added in 2.6.17.2 that breaks things on ppc 2006-08-08 5:05 ` Paul Mackerras @ 2006-08-08 5:37 ` danny 2006-08-08 16:50 ` danny 1 sibling, 0 replies; 4+ messages in thread From: danny @ 2006-08-08 5:37 UTC (permalink / raw) To: Paul Mackerras; +Cc: danny, linuxppc-dev On Tue, Aug 08, 2006 at 03:05:15PM +1000, Paul Mackerras wrote: > danny@mailmij.org writes: > > > -#endif > > - > > +#else > > pci_save_state(pdev); > > - > > +#endif /* CONFIG_PPC_PMAC */ > > Shouldn't we just move the pci_save_state call up before the > pmac_call_feature() call? > I can do a rebuild tonight or so to test this. But since it was working perfectly before I did not see any reason to keep it. Danny ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] fix for firewire patch added in 2.6.17.2 that breaks things on ppc 2006-08-08 5:05 ` Paul Mackerras 2006-08-08 5:37 ` danny @ 2006-08-08 16:50 ` danny 1 sibling, 0 replies; 4+ messages in thread From: danny @ 2006-08-08 16:50 UTC (permalink / raw) To: linuxppc-dev On Tue, Aug 08, 2006 at 03:05:15PM +1000, Paul Mackerras wrote: > danny@mailmij.org writes: > > > -#endif > > - > > +#else > > pci_save_state(pdev); > > - > > +#endif /* CONFIG_PPC_PMAC */ > > Shouldn't we just move the pci_save_state call up before the > pmac_call_feature() call? > > Paul. > I tested this. It works, but it has no effect (pci_restore_state does not report that anything changed, thus this means that the config space already contained the correct values). I discovered one additional problem with leaving a device running through a sleep/resume cycle: suspend: ohci1394: fw-host0: SelfID received outside of bus reset sequence resume: ohci1394: fw-host0: SelfID is inconsistent [0x7e80773f/0x7e80773f] The last leads to the node not being able to resume when the device is actually plugged. Anyway, it's a separate issue, I will investigate. Danny ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-08-08 16:50 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20060805151050.B24484@luna.ellen.dexterslabs.com>
2006-08-07 4:38 ` [PATCH] fix for firewire patch added in 2.6.17.2 that breaks things on ppc danny
2006-08-08 5:05 ` Paul Mackerras
2006-08-08 5:37 ` danny
2006-08-08 16:50 ` danny
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox