The mask and direction are unquestionably correct. The mask is set up
by pci_setup_device() and not changed thereafter. Furthermore, the
audio works okay until another device (a DVB tuner) is plugged in.
Could the driver for the DVB tuner change the PCI mask? That is, change
the pci mask way after it has been initialized (don't laugh, this did
happend - as I remember 4 months fix was posted on the DRM mailing list