[alsa-devel] Changes on Realtek fix-up handling

Takashi Iwai tiwai at suse.de
Fri Jan 14 10:02:40 CET 2011


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


More information about the Alsa-devel mailing list