Dominique Dumont domi.dumont@free.fr writes:
I'm looking at a same kind of issue for my MSI mobo (ALC883).
There's something fishy about the verb used to set the stream format (also referred as stream converter in realtek's doc).
The verb used in snd-hda-intel are 0x200 and 0x300 where Intel's and Realtek's doc specify 2h and 3h.
Hmm, that one escaped me. If this is a problem with hda_codec.h and not with the documentation, then there are more errors:
#define AC_VERB_GET_STREAM_FORMAT 0x0a00 -> 0x000a #define AC_VERB_GET_AMP_GAIN_MUTE 0x0b00 -> 0x000b #define AC_VERB_GET_PROC_COEF 0x0c00 -> 0x000c #define AC_VERB_GET_COEF_INDEX 0x0d00 -> 0x000d
#define AC_VERB_SET_STREAM_FORMAT 0x200 -> 0x002 #define AC_VERB_SET_AMP_GAIN_MUTE 0x300 -> 0x003 #define AC_VERB_SET_PROC_COEF 0x400 -> 0x004 #define AC_VERB_SET_COEF_INDEX 0x500 -> 0x005
So I tried to switch the verbs to 0x002 and 0x003, but it did not work. :-( (it would be too easy ;-) )
Why not, I wish it were that easy :-)
The parameter passed with these verbs also look fishy, but I can't say more as I was to tired to dig further. I'll have a look tonight.
I checked the parameter calculation in hda_codec.c:snd_hda_calc_stream_format(), and it seems to match the Realtek ALC882 Series Datasheet spec. Perhaps something has escaped me here as well, please do have a look.
I'm glad that I'm not alone with the S/PDIF sample rate problem, please keep me updated on your research! So far I can only state that there is definitely an initialization problem somewhere, since the behavior of the S/PDIF link is not deterministic. Perhaps a codec reset timing issue?