[ALSA] PCI168 snd-azt3328 Linux driver: another huge update
authorAndreas Mohr <andi@lisas.de>
Fri, 16 May 2008 10:18:29 +0000 (12:18 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 19 May 2008 11:19:19 +0000 (13:19 +0200)
commit02330fbaaded5b603cba112e4bbf62cdadec159a
tree90895cb270106d00bbc30a3f15afe91d07795ee3
parentf99a633a151686a599413bef758253dfd04887d1
[ALSA] PCI168 snd-azt3328 Linux driver: another huge update

- figured out 'Digital(ly) Enhanced Game Port' functionality,
  implemented support for it (eliminating gameport polling overhead)
- removed optional joystick activation, gameport now enabled unconditionally,
  since we now support it via the PCI I/O space, not via conflict-prone
  legacy I/O (which I was thus able to DISABLE now)!
- fix playback bug (a muted wave output would get unmuted upon start of
  playback, of course this is not what we want, thus remember mute state)
- implement partial power management: when idle, lower clock rate and disable
  codec (reduced noise!), and disable gameport circuit when unused
- instantiate OPL3 timer, too
- much better implementation of snd_azf3328_mixer_write_volume_gradually()
- slightly optimized interrupt handling
- lots of cleanup

This time, I also found a way to verify proper OPL3 operation
via MIDI file playback (emulation via synth hardware).

Signed-off-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
sound/pci/azt3328.c
sound/pci/azt3328.h