[alsa-devel] [PATCH] ALSA: pxa2xx: fix ac97 cold reset for pxa27x

Mike Dunn mikedunn at newsguy.com
Sat Dec 29 03:26:26 CET 2012


On 12/28/2012 10:22 AM, Robert Jarzmik wrote:
> Mike Dunn <mikedunn at 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.
> 
> Hi Mike,
> 
> I'm glad you take over that burden too :)


No one else wants to work on this ancient hardware.  It's all Kirkwood this and
Omap that :)  Want to get the kernel fully functional on this old but still
widely available device.


> 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.


> 
> This topic was discussed several years ago here :
> http://www.spinics.net/lists/alsa-devel/msg12327.html
> 
> I think Mark has a much better view on the silicon defect, he will be of much
> more help than me.


Thanks for the pointer.  I should have done some searches on this myself.  I
would have if I was hitting a wall, but I chanced upon the solution pretty quickly.

Mike


More information about the Alsa-devel mailing list