On 12/30/2012 05:12 AM, Robert Jarzmik wrote:
Mike Dunn mikedunn@newsguy.com writes:
On 12/28/2012 10:22 AM, Robert Jarzmik wrote:
Mike Dunn mikedunn@newsguy.com writes:
Currently, ac97 reset is broken on PXA27x. Through trial-and-error (the pxa270 developer's manual is mostly incoherent on the topic of ac97 reset), I fixed it by setting the WARM_RST bit in the GCR register at the end of the cold reset, and then skipping the warm reset if the link is already up and running.
It appears that setting the WARM_RST bit is a necessary final step during cold reset. I think that the PXA25x and PXA3xx may currently be working correctly because WARM_RST is set within the warm reset routine, and the codec drivers always follow a cold reset with a warm reset during their initialization. so this combination effectively completes a cold reset. This doesn't work on the PXA27x because its warm reset routine contains additional code for working around a hardware bug in the warm reset sequence, which causes the reset sequence to fail. I only have a PXA27x platform for testing, so this patch only affects the PXA27x.
If you've tested that and if it work, that's great news. I'll test it also to crosscheck.
Thanks. I'd really appreciate that. Yes, it works for me.
Ok, I tested it, through a suspend/resume cycle with a music played, and it works, and the patch looks correct to me. So :
Tested-by: Robert Jarzmik robert.jarzmik@free.fr Reviewed-by: Robert Jarzmik robert.jarzmik@free.fr
Great! Many thanks Robert!
Mike