summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-11-22 13:29:19 +0100
committerTakashi Iwai <tiwai@suse.de>2010-11-22 13:29:19 +0100
commit9d57883f08d3c0c111b50bf185dfee9731a12c76 (patch)
tree5d35f1d97789730bf40dff660b0144b64eedc92a
parentALSA: hda - Fixed ALC887-VD initial error (diff)
downloadlinux-9d57883f08d3c0c111b50bf185dfee9731a12c76.tar.xz
linux-9d57883f08d3c0c111b50bf185dfee9731a12c76.zip
ALSA: hda - Add a generic fixup callback for Realtek codecs
Add a generic callback function for fixup elements. This can be used to do some unusual things like overriding the AMP cache, etc. Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_realtek.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 564e6c136ddd..f10c613c530f 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1681,6 +1681,8 @@ struct alc_fixup {
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 pre_init);
};
static void alc_pick_fixup(struct hda_codec *codec,
@@ -1720,6 +1722,13 @@ static void alc_pick_fixup(struct hda_codec *codec,
#endif
add_verb(codec->spec, fix->verbs);
}
+ if (fix->func) {
+#ifdef CONFIG_SND_DEBUG_VERBOSE
+ snd_printdd(KERN_INFO "hda_codec: %s: Apply fix-func for %s\n",
+ codec->chip_name, quirk->name);
+#endif
+ fix->func(codec, fix, pre_init);
+ }
}
static int alc_read_coef_idx(struct hda_codec *codec,