Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Jul 2007 21:27:12 -0700
From:      "Christopher Davis" <loafier@FreeBSD.org>
To:        multimedia@freebsd.org
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Audio driver template
Message-ID:  <c44ca55f0707102127k1164bfbcqc4b86aa917bb8c0b@mail.gmail.com>
In-Reply-To: <20070710093829.34mqbekao4wwww4s@webmail.leidinger.net>
References:  <c44ca55f0707091147n48741250h588a1fcf59d1b74b@mail.gmail.com> <20070710093829.34mqbekao4wwww4s@webmail.leidinger.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 7/10/07, Alexander Leidinger <Alexander@leidinger.net> wrote:
> Quoting Christopher Davis <loafier@FreeBSD.org> (from Mon, 9 Jul 2007
> 11:47:14 -0700):
>
> > http://people.freebsd.org/~cg/template.c
> >
> > 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@FreeBSD.org (or on
> multimedia@) about it.
>
> Ariff@FreeBSD.org (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
>
> http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
> http://www.FreeBSD.org       netchild @ FreeBSD.org  : 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:
http://loafier.sixbit.org/template.c

- 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c44ca55f0707102127k1164bfbcqc4b86aa917bb8c0b>