• Andreas Mohr's avatar
    [ALSA] PCI168 snd-azt3328 Linux driver: another huge update · 02330fba
    Andreas Mohr authored
    - 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: default avatarAndreas Mohr <andi@lisas.de>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
    02330fba
azt3328.c 72.5 KB