On 02/07/11 23:08, Jacob Meuser wrote:
> widget connection lists are described as a series of nids.  the widget
> gives the number of connection list entries.  if the most significant
> bit of a connection list entry is set, all nids between the last nid
> in the connection list and the nid in the entry with the most significant
> bit set are connected.
> 
> this means the number of connected nids isn't necessarily the same as
> the number of connection list entries.  azalia currently assumes they
> are the same, and ends up ignoring some of the connections, which leads
> to widgets being considered unusable.
> 
> the following runs through the connection list entries twice.  the
> first is to get the number of connections.  then once the number of
> connections is known, an array to hold the nids of the connected
> widgets is allocated.  then loop over the connection list entries
> again and insert the nids into the array.
> 
> this affects almost all Analog Devices (AD198x) and Sigmatel/IDT
> (STAC*/92HD*) codecs.
> 
> please test and report to me.  please include a dmesg and a diff of
> 'mixerctl -v' output from before and after applying the diff.  thanks.

Since Jacob didn't mention it, let me say that this totally unbreaks
audio on my Dell laptop (Studio 1558). It is impossible to record audio
without this patch; works fine with it. It would be great to get this in
before the tree locks, so please test this if you have an Azalia,
especially one of the two codecs mentioned, and report results to Jacob.
(Mine is: azalia1: codecs: IDT 92HD73C1)

Thanks

Reply via email to