[alsa-devel] how to handle bt848 audio driver

Trent Piepho xyzzy at speakeasy.org
Thu Oct 25 18:31:10 CEST 2007

I've made some more patches for the ALSA bt87x audio driver to support more
features of the Osprey 440 card.

In order to support certain features, the ALSA driver needs access to the
bt878's GPIO lines and I2C bus.  These are controlled by PCI function 0, which
is driven by the V4L driver.  The bt878 DVB driver (which drives PCI function
1 just like the ALSA driver) needs to do the same thing and there is already
some code to handle it.

So, the ALSA driver (snd-bt87x) needs to use functions from the V4L driver
(bttv).  As it is now, the two drivers are completely separate and don't share
any code and can be loaded individually.

The DVB driver in the same tree as bttv, so this isn't a problem.  But the
snd-bt87x is in another tree, so it's somewhat harder, and I'm not sure what
to do about it.

The driver will need some header files from the bttv directory.  I guess this
can be handled by adding a -I flag in the Makefile, though that seems a little

The bigger problem is that changes to snd-bt87x will depend on changes to
bttv.  How can the ALSA build system handle this?

For instance, my patch to add a digital volume control to snd-bt87x requires a
new function to be exported from bttv.  How will ALSA build snd-bt87x if the
kernel source doesn't yet have this function?

More information about the Alsa-devel mailing list