Ive always had issues getting my ac97 on board sound chip working well with linux and Unix and figured I would take a look at the drivers myself. My question is I have 4 files ac07.h, ac97.c, ac97_codec.c, and ac97_plugin_ad1980.c and really don't know how they layer on top of each other. Looking at the actual driver ac97.c and ac97.h there are a few data structures and functions but no code witch calls these functions. In addition it doesn't look like any of these functions really provide a stream of bits to the sound card to decode but I possibly am just missing something. So when an application wants to access your sound card it writes to /dev/dsp from there how do these files work together to eventually give the sound card something to output?
I am aware of ALSA and other alternatives as far as actually getting the chip working I just want to learn something about this so succeeding at getting it to work isn't the primary goal.
any help would be appreciated