sound documentation for the snd_hda (Nvidia)

Chuck Robey chuckr at chuckr.org
Thu Nov 29 18:36:11 PST 2007


Alexander Leidinger wrote:
> Quoting Chuck Robey <chuckr at chuckr.org> (from Mon, 26 Nov 2007 12:23:38 
> -0500):
> 
>> Alexander Leidinger wrote:
>>> Quoting Chuck Robey <chuckr at chuckr.org> (from Sun, 25 Nov 2007  
>>> 14:59:01 -0500):
>>>
>>>> Where do the developers of the HDA code hang out, on this list?  Is the
>>>> snd_hda the current hda driver, and if so, where's the new code going
>>>> to be?
>>>
>>> The current HDA driver is in -current. RELENG_7 is on par (AFAIK).  
>>> RELENG_6 is "close", but you are better of with RELENG_7 or HEAD.  
>>> Yes this is the right list, and the only developer working on the  
>>> HDA front and our sound infrastructure I'm aware of is Ariff (sorry 
>>>  to the 2 others which work on the envy and creative drivers, but  
>>> for this discussion you don't count ;-) ). He seems to be short of  
>>> time ATM. You could try to catch him on #freebsd-azalia on freenode.
>>>
>>> I'm not aware of a major rewrite in the HDA part. Ariff seems to be 
>>>  working on something else: http://people.freebsd.org/~ariff/
>>
>> I was operating under the assumption that those comments from hdac.c,
>> about the snd_hda driver badly needing a complete rewrite because it
>> was insufficiently, well, bussed?  Yeah, bussed meant that code rework
>> was ongoing.
>>
>> If you even know what that comment about the busses being less than
>> they might be means, IF you could point me at any driver that you
>> personally think shows a more *ideal* setup, it would at least make me
>> aware of what's really wanted.  You don't need to describe it yourself,
>> I know that'd be a major bore to do that for me, and I could probably
>> learn as well by just reading code that illustrates what things
>> *should* be.
> 
> AFAIK, the non-ideal part of the driver is not related to our 
> soundsystem. I was told the HDA architecture allows more than just the 
> normal sound output you get with, e.g. AC97 based soundcards. So I think 
> the idea is to split up the driver specific part a little bit more, so 
> that you can add more things later. So the parts you need to read are 
> the HDA specs and get an idea what can be improved there. Graphically 
> it's like this ATM:

In private emails with Andriy Gapon, he told me that he was rather 
heaviily involved with the driver, and it was his impression that the 
comment that led me to believe that the snd_hda driver was destined for 
a rewrite due to undetermined buss problems, could be completely 
disregarded, as an old comment that no longer needed to be in any way 
regarded.

Due to the antics of my local apartment management, my last two days 
were pretty much out of control, but at least I finally do understand 
what the heck the hda docs mean by a "widget" (nothing to do with 
graphics at all), but I'm still whacking away at the rest of the 
configuration, which (it seems to me) is about 66% of the magic of that 
entire hda architecture.  Certainly one heck of a long way different 
than any other sound setup I ever heard of.  I think no one would 
possibly disagree with me when I say, it's pretty obvious that a 
programmer basically did the largest part of the system design.

Long time back, when I used to do telephone communications systems, we 
(in the trade) used to use "designed by programmers" as a codeword for 
"disaster", because the resulting systems always seemed to go out of 
their way to totally ignore all existing standards, and re-commit as 
many tried and true mistakes as possible.  Now that I am myself a 
programmer, I try hard not to justify that, but things like the hda 
system bring back the truth of that.

> 
> +----------------------------------------+
> |   FreeBSD kernel                       |
> |                   +--------------+     |
> |                   | sound subsys |     |
> +-------------------+------+-------+-----+
>                            |
>                    +-------+--------+
>                    |   HDA code     |
>                    +----------------+
> 
> 
> And I think the goal is to get something like:
> +----------------------------------------+
> |   FreeBSD kernel                       |
> |                   +--------------+     |
> |                   | sound subsys |     |
> +-------------------+------+-------+-----+
>                            |
>                   +--------+--------+
>                   |HDA bus/framework|
>                   ++-----+--------+-+
>                    |     |        |
>                 sound   ...     something_else
> 
> 
> Hope this helps,
> Alexander.
> 



More information about the freebsd-multimedia mailing list