1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /*
- * BIOS auto-parser helper functions for HD-audio
- *
- * Copyright (c) 2012 Takashi Iwai <tiwai@suse.de>
- *
- * This driver is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- */
- #ifndef __SOUND_HDA_AUTO_PARSER_H
- #define __SOUND_HDA_AUTO_PARSER_H
- struct hda_gen_spec {
- /* fix-up list */
- int fixup_id;
- const struct hda_fixup *fixup_list;
- const char *fixup_name;
- /* additional init verbs */
- struct snd_array verbs;
- };
- /*
- * Fix-up pin default configurations and add default verbs
- */
- struct hda_pintbl {
- hda_nid_t nid;
- u32 val;
- };
- struct hda_model_fixup {
- const int id;
- const char *name;
- };
- struct hda_fixup {
- int type;
- bool chained;
- int chain_id;
- union {
- const struct hda_pintbl *pins;
- const struct hda_verb *verbs;
- void (*func)(struct hda_codec *codec,
- const struct hda_fixup *fix,
- int action);
- } v;
- };
- /* fixup types */
- enum {
- HDA_FIXUP_INVALID,
- HDA_FIXUP_PINS,
- HDA_FIXUP_VERBS,
- HDA_FIXUP_FUNC,
- };
- /* fixup action definitions */
- enum {
- HDA_FIXUP_ACT_PRE_PROBE,
- HDA_FIXUP_ACT_PROBE,
- HDA_FIXUP_ACT_INIT,
- HDA_FIXUP_ACT_BUILD,
- };
- int snd_hda_gen_add_verbs(struct hda_gen_spec *spec,
- const struct hda_verb *list);
- void snd_hda_gen_apply_verbs(struct hda_codec *codec);
- void snd_hda_apply_pincfgs(struct hda_codec *codec,
- const struct hda_pintbl *cfg);
- void snd_hda_apply_fixup(struct hda_codec *codec, int action);
- void snd_hda_pick_fixup(struct hda_codec *codec,
- const struct hda_model_fixup *models,
- const struct snd_pci_quirk *quirk,
- const struct hda_fixup *fixlist);
- #endif /* __SOUND_HDA_AUTO_PARSER_H */
|