Hi,
there were slight changes in the handling of fix-up's in HD-audio patch_realtek.c. Now, the fixup struct is like:
struct alc_fixup { int type; bool chained; int chain_id; union { unsigned int sku; const struct alc_pincfg *pins; const struct hda_verb *verbs; void (*func)(struct hda_codec *codec, const struct alc_fixup *fix, int action); } v; };
and each fixup entry has only one type, either sku, pins, verbs or func specified by the type field. If chained is set, the entry corresponding to chain_id is evaluated at next, so fixup entries can be reused if an additional change is required to the existing one.
The callback function can take "action" instead of "pre_init" flag. This can be either ALC_FIXUP_ACT_PRE_PROBE, ALC_FIXUP_ACT_PROBE or AL_FIXUP_ACT_INIT. The first two are the cases pre_init=1 and pre_init=0, i.e. the fix-up is handled during probing only once. The last one means that the fix-up is called in the init callback, i.e. at initialization during the first loading and PM resume.
My plan is to move from the quirk entries to fixup entries with auto-parse mode in more cases, and the above changes are of help for that.
thanks,
Takashi