[alsa-devel] [PATCH] ALSA: hda_intel: disable corb rirb when single_cmd active

Troy Kisky troy.kisky at boundarydevices.com
Mon Nov 9 20:36:31 CET 2009

Takashi Iwai wrote:
> Thanks for a quick test!  I'll merge it soon.
>> Thanks for spending your time on something you'd rather not.
> Well, I'm willing to fix any bugs, of course ;)  So I really
> appreciated your report and patch.
> But, more important bug still remains -- why single_cmd mode is
> activated.  Let's track it down.
I have a little more information on that. The RIRB engine is fine
but the CORB engine is stopping at seemingly random times. Usually
CORB has about 7 commands queued when it switches to single_cmd mode.
After the engine dies, even a rmmod/insmod sequence won't revive it.
It seems to require a power down/up. I have noticed a couple of things
that I thought might be related, but testing didn't show much difference.

1. The Poulsbo manual says that CORB READ Pointer Reset must be cleared
back to 0 and read back as 0 to verify that the clear completed correctly.

2. azx_corb_send_cmd doesn't compare CORBWP with CORBRP to see if adding
an entry will result in an empty queue.

Do you have a suggestion on a more thorough reset? I hate having to reboot
all the time.


More information about the Alsa-devel mailing list