Hi,
a couple of weeks ago, I bought an ASUS mainboard with integrated Intel HDA and an AD1988B codec. Unfortunately, the digital / SPDIF output gets distorted with stock 1.0.14 drivers. It does not matter what the volume levels of the various mixers are set to.
I think I might have found the source for this problem. Maybe it's only a workaround, but it solved the issue and digital out now works fine for me, so I thought I'd share.
In patch_analog.c, in static struct hda_verb ad1988_spdif_init_verbs[], changeing the forth entry
from {0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
to {0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}
mutes what might be an feedback loop from the analog inputs. The distortion is gone if the input to this widget is muted.
On a side note, the settings for the ADCs with NID:08, 09, and 0F looks fishy, too. According to the functional diagram, those should have no amps, and thus should not be muteable. The driver mutes them anyway...
I'd like to help somebody who really understands this stuff to solve the problem for good. What would the next step be ?
Thanks, Ingmar