diff options
Diffstat (limited to 'sound/pci/hda/hda_codec.h')
-rw-r--r-- | sound/pci/hda/hda_codec.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index bbbc83b387d1..5587d416229f 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h | |||
@@ -640,6 +640,16 @@ struct hda_codec_preset { | |||
640 | int (*patch)(struct hda_codec *codec); | 640 | int (*patch)(struct hda_codec *codec); |
641 | }; | 641 | }; |
642 | 642 | ||
643 | struct hda_codec_preset_list { | ||
644 | const struct hda_codec_preset *preset; | ||
645 | struct module *owner; | ||
646 | struct list_head list; | ||
647 | }; | ||
648 | |||
649 | /* initial hook */ | ||
650 | int snd_hda_add_codec_preset(struct hda_codec_preset_list *preset); | ||
651 | int snd_hda_delete_codec_preset(struct hda_codec_preset_list *preset); | ||
652 | |||
643 | /* ops set by the preset patch */ | 653 | /* ops set by the preset patch */ |
644 | struct hda_codec_ops { | 654 | struct hda_codec_ops { |
645 | int (*build_controls)(struct hda_codec *codec); | 655 | int (*build_controls)(struct hda_codec *codec); |
@@ -733,6 +743,7 @@ struct hda_codec { | |||
733 | 743 | ||
734 | /* detected preset */ | 744 | /* detected preset */ |
735 | const struct hda_codec_preset *preset; | 745 | const struct hda_codec_preset *preset; |
746 | struct module *owner; | ||
736 | const char *name; /* codec name */ | 747 | const char *name; /* codec name */ |
737 | const char *modelname; /* model name for preset */ | 748 | const char *modelname; /* model name for preset */ |
738 | 749 | ||
@@ -896,4 +907,19 @@ static inline void snd_hda_power_down(struct hda_codec *codec) {} | |||
896 | #define snd_hda_codec_needs_resume(codec) 1 | 907 | #define snd_hda_codec_needs_resume(codec) 1 |
897 | #endif | 908 | #endif |
898 | 909 | ||
910 | /* | ||
911 | * Codec modularization | ||
912 | */ | ||
913 | |||
914 | /* Export symbols only for communication with codec drivers; | ||
915 | * When built in kernel, all HD-audio drivers are supposed to be statically | ||
916 | * linked to the kernel. Thus, the symbols don't have to (or shouldn't) be | ||
917 | * exported unless it's built as a module. | ||
918 | */ | ||
919 | #ifdef MODULE | ||
920 | #define EXPORT_SYMBOL_HDA(sym) EXPORT_SYMBOL_GPL(sym) | ||
921 | #else | ||
922 | #define EXPORT_SYMBOL_HDA(sym) | ||
923 | #endif | ||
924 | |||
899 | #endif /* __SOUND_HDA_CODEC_H */ | 925 | #endif /* __SOUND_HDA_CODEC_H */ |