Re: [PATCH] ALSA: hda_intel: disable corb rirb when single_cmd active

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Mon, 09 Nov 2009 12:36:31 -0700,
Troy Kisky wrote:
> 
> 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.

At which timing?

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

It's because azx_corb_send_cmd is asynchronous.  It doesn't wait.
That's the purpose of CORB being a ring buffer...

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

Try to set codec->bus->sync_write = 1 somewhere in the initialization.
This will make the driver to wait and synchronize for each verb
response.


thanks,

Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux