Audio driver template

Christopher Davis loafier at
Wed Jul 11 04:27:13 UTC 2007

On 7/10/07, Alexander Leidinger <Alexander at> wrote:
> Quoting Christopher Davis <loafier at> (from Mon, 9 Jul 2007
> 11:47:14 -0700):
> >
> >
> > Thought I would take a look at the audio driver template as
> > part of my task to modernize drivers, soc2007. I would simplify
> > the read and write functions to avoid using the bus tag and
> > handle, but I'm not sure what else to do to bring it up to date.
> >
> > How else can it be improved?
> Putting it into the examples directory instead of having it on the
> people's own pages would be an improvement (the developer handbook
> needs to be changed to point to the examples directory then).
> And you should clarify what kind of improvements are valid for your
> SoC work. Somehow I doubt that adding shiny new features (like hps
> suggested) is part of the goal for your work. I think it's more like
> bringing existing drivers up-to-par with currently available generic
> driver interfaces, isn't it?
> I also think examples for suspend/resume stuff should be added.
> /sys/dev/sound/pci/atiixp.c has suspend and resume methods if you want
> an example.
> You could also review the locking, as it changed a little bit
> recently, I think.
> Apart from the atiixp driver the envy42, emu10kx and HDA drivers can
> also serve as examples for what is the most current in the sound
> subsystem in FreeBSD. Maybe you can gain some more hints from them (I
> think the template is not very up-to-date compared to them).
> The new mixer interface is not used yet in the drivers, so we don't
> have examples at all for them. You could ask ryanb at (or on
> multimedia@) about it.
> Ariff at (or multimedia@) can maybe help if you have some
> questions regarding the drivers in the tree (maybe Ariff will answer
> to your initial question anyway).
> Bye,
> Alexander.
> --
> I guess the Little League is even littler than we thought.
>                 -- D. Cavett
>    Alexander @ PGP ID = B0063FE7
>       netchild @  : PGP ID = 72077137

Yes, my project is to modify drivers to use new interface features,
like bus_alloc_resources(), which can help cut down bloat. Adding
new features is probably out of scope at this point.

Here's what I've done so far:

- simplified read and write functions (changed to macros)

- used bus_alloc_resources() -- I'm not sure if the resource id
numbers are correct.

- used pci_enable_busmaster() and pci_enable_io() functions --
I'm not sure if this is correct, either.

- used bus_get_dma_tag() for the parent arg of bus_dma_tag_create()

I'll take a look at those newer drivers to see what audio-specific
changes to make...

Christopher Davis

More information about the freebsd-multimedia mailing list