aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-11-28 09:17:06 -0500
committerTakashi Iwai <tiwai@suse.de>2008-11-28 09:22:02 -0500
commitff7a3267368634e368ebaac68d5e3abf129edd1d (patch)
tree588571dbc3f6017c6fa26990f5349ca5f63c1f98 /sound
parent645f10c1ac7f733b224eaf97634edf9b20e2370e (diff)
ALSA: hda - Don't export symbols when built-in kernel
The global functions in hda_codec.c and other core parts are only for HD-audio codec and controller drivers. When the HD-audio driver is built in kernel, all stuff have to be statically linked, thus we don't need any exports. This patch introduces a conditional macro to do export only when needed. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/hda_beep.c4
-rw-r--r--sound/pci/hda/hda_codec.c148
-rw-r--r--sound/pci/hda/hda_codec.h15
3 files changed, 91 insertions, 76 deletions
diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c
index e6cc9463667a..e00421c0d8ba 100644
--- a/sound/pci/hda/hda_beep.c
+++ b/sound/pci/hda/hda_beep.c
@@ -128,7 +128,7 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid)
128 INIT_WORK(&beep->beep_work, &snd_hda_generate_beep); 128 INIT_WORK(&beep->beep_work, &snd_hda_generate_beep);
129 return 0; 129 return 0;
130} 130}
131EXPORT_SYMBOL_GPL(snd_hda_attach_beep_device); 131EXPORT_SYMBOL_HDA(snd_hda_attach_beep_device);
132 132
133void snd_hda_detach_beep_device(struct hda_codec *codec) 133void snd_hda_detach_beep_device(struct hda_codec *codec)
134{ 134{
@@ -141,4 +141,4 @@ void snd_hda_detach_beep_device(struct hda_codec *codec)
141 kfree(beep); 141 kfree(beep);
142 } 142 }
143} 143}
144EXPORT_SYMBOL_GPL(snd_hda_detach_beep_device); 144EXPORT_SYMBOL_HDA(snd_hda_detach_beep_device);
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 2fff0fb77ba2..004344825e9e 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -71,7 +71,7 @@ int snd_hda_add_codec_preset(struct hda_codec_preset_list *preset)
71 mutex_unlock(&preset_mutex); 71 mutex_unlock(&preset_mutex);
72 return 0; 72 return 0;
73} 73}
74EXPORT_SYMBOL_GPL(snd_hda_add_codec_preset); 74EXPORT_SYMBOL_HDA(snd_hda_add_codec_preset);
75 75
76int snd_hda_delete_codec_preset(struct hda_codec_preset_list *preset) 76int snd_hda_delete_codec_preset(struct hda_codec_preset_list *preset)
77{ 77{
@@ -80,7 +80,7 @@ int snd_hda_delete_codec_preset(struct hda_codec_preset_list *preset)
80 mutex_unlock(&preset_mutex); 80 mutex_unlock(&preset_mutex);
81 return 0; 81 return 0;
82} 82}
83EXPORT_SYMBOL_GPL(snd_hda_delete_codec_preset); 83EXPORT_SYMBOL_HDA(snd_hda_delete_codec_preset);
84 84
85#ifdef CONFIG_SND_HDA_POWER_SAVE 85#ifdef CONFIG_SND_HDA_POWER_SAVE
86static void hda_power_work(struct work_struct *work); 86static void hda_power_work(struct work_struct *work);
@@ -114,7 +114,7 @@ const char *snd_hda_get_jack_location(u32 cfg)
114 } 114 }
115 return "UNKNOWN"; 115 return "UNKNOWN";
116} 116}
117EXPORT_SYMBOL_GPL(snd_hda_get_jack_location); 117EXPORT_SYMBOL_HDA(snd_hda_get_jack_location);
118 118
119const char *snd_hda_get_jack_connectivity(u32 cfg) 119const char *snd_hda_get_jack_connectivity(u32 cfg)
120{ 120{
@@ -122,7 +122,7 @@ const char *snd_hda_get_jack_connectivity(u32 cfg)
122 122
123 return jack_locations[(cfg >> (AC_DEFCFG_LOCATION_SHIFT + 4)) & 3]; 123 return jack_locations[(cfg >> (AC_DEFCFG_LOCATION_SHIFT + 4)) & 3];
124} 124}
125EXPORT_SYMBOL_GPL(snd_hda_get_jack_connectivity); 125EXPORT_SYMBOL_HDA(snd_hda_get_jack_connectivity);
126 126
127const char *snd_hda_get_jack_type(u32 cfg) 127const char *snd_hda_get_jack_type(u32 cfg)
128{ 128{
@@ -136,7 +136,7 @@ const char *snd_hda_get_jack_type(u32 cfg)
136 return jack_types[(cfg & AC_DEFCFG_DEVICE) 136 return jack_types[(cfg & AC_DEFCFG_DEVICE)
137 >> AC_DEFCFG_DEVICE_SHIFT]; 137 >> AC_DEFCFG_DEVICE_SHIFT];
138} 138}
139EXPORT_SYMBOL_GPL(snd_hda_get_jack_type); 139EXPORT_SYMBOL_HDA(snd_hda_get_jack_type);
140 140
141/* 141/*
142 * Compose a 32bit command word to be sent to the HD-audio controller 142 * Compose a 32bit command word to be sent to the HD-audio controller
@@ -185,7 +185,7 @@ unsigned int snd_hda_codec_read(struct hda_codec *codec, hda_nid_t nid,
185 snd_hda_power_down(codec); 185 snd_hda_power_down(codec);
186 return res; 186 return res;
187} 187}
188EXPORT_SYMBOL_GPL(snd_hda_codec_read); 188EXPORT_SYMBOL_HDA(snd_hda_codec_read);
189 189
190/** 190/**
191 * snd_hda_codec_write - send a single command without waiting for response 191 * snd_hda_codec_write - send a single command without waiting for response
@@ -214,7 +214,7 @@ int snd_hda_codec_write(struct hda_codec *codec, hda_nid_t nid, int direct,
214 snd_hda_power_down(codec); 214 snd_hda_power_down(codec);
215 return err; 215 return err;
216} 216}
217EXPORT_SYMBOL_GPL(snd_hda_codec_write); 217EXPORT_SYMBOL_HDA(snd_hda_codec_write);
218 218
219/** 219/**
220 * snd_hda_sequence_write - sequence writes 220 * snd_hda_sequence_write - sequence writes
@@ -229,7 +229,7 @@ void snd_hda_sequence_write(struct hda_codec *codec, const struct hda_verb *seq)
229 for (; seq->nid; seq++) 229 for (; seq->nid; seq++)
230 snd_hda_codec_write(codec, seq->nid, 0, seq->verb, seq->param); 230 snd_hda_codec_write(codec, seq->nid, 0, seq->verb, seq->param);
231} 231}
232EXPORT_SYMBOL_GPL(snd_hda_sequence_write); 232EXPORT_SYMBOL_HDA(snd_hda_sequence_write);
233 233
234/** 234/**
235 * snd_hda_get_sub_nodes - get the range of sub nodes 235 * snd_hda_get_sub_nodes - get the range of sub nodes
@@ -251,7 +251,7 @@ int snd_hda_get_sub_nodes(struct hda_codec *codec, hda_nid_t nid,
251 *start_id = (parm >> 16) & 0x7fff; 251 *start_id = (parm >> 16) & 0x7fff;
252 return (int)(parm & 0x7fff); 252 return (int)(parm & 0x7fff);
253} 253}
254EXPORT_SYMBOL_GPL(snd_hda_get_sub_nodes); 254EXPORT_SYMBOL_HDA(snd_hda_get_sub_nodes);
255 255
256/** 256/**
257 * snd_hda_get_connections - get connection list 257 * snd_hda_get_connections - get connection list
@@ -340,7 +340,7 @@ int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid,
340 } 340 }
341 return conns; 341 return conns;
342} 342}
343EXPORT_SYMBOL_GPL(snd_hda_get_connections); 343EXPORT_SYMBOL_HDA(snd_hda_get_connections);
344 344
345 345
346/** 346/**
@@ -375,7 +375,7 @@ int snd_hda_queue_unsol_event(struct hda_bus *bus, u32 res, u32 res_ex)
375 375
376 return 0; 376 return 0;
377} 377}
378EXPORT_SYMBOL_GPL(snd_hda_queue_unsol_event); 378EXPORT_SYMBOL_HDA(snd_hda_queue_unsol_event);
379 379
380/* 380/*
381 * process queued unsolicited events 381 * process queued unsolicited events
@@ -521,7 +521,7 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card,
521 *busp = bus; 521 *busp = bus;
522 return 0; 522 return 0;
523} 523}
524EXPORT_SYMBOL_GPL(snd_hda_bus_new); 524EXPORT_SYMBOL_HDA(snd_hda_bus_new);
525 525
526#ifdef CONFIG_SND_HDA_GENERIC 526#ifdef CONFIG_SND_HDA_GENERIC
527#define is_generic_config(codec) \ 527#define is_generic_config(codec) \
@@ -808,7 +808,7 @@ int /*__devinit*/ snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr
808 *codecp = codec; 808 *codecp = codec;
809 return 0; 809 return 0;
810} 810}
811EXPORT_SYMBOL_GPL(snd_hda_codec_new); 811EXPORT_SYMBOL_HDA(snd_hda_codec_new);
812 812
813int snd_hda_codec_configure(struct hda_codec *codec) 813int snd_hda_codec_configure(struct hda_codec *codec)
814{ 814{
@@ -868,7 +868,7 @@ void snd_hda_codec_setup_stream(struct hda_codec *codec, hda_nid_t nid,
868 msleep(1); 868 msleep(1);
869 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_STREAM_FORMAT, format); 869 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_STREAM_FORMAT, format);
870} 870}
871EXPORT_SYMBOL_GPL(snd_hda_codec_setup_stream); 871EXPORT_SYMBOL_HDA(snd_hda_codec_setup_stream);
872 872
873void snd_hda_codec_cleanup_stream(struct hda_codec *codec, hda_nid_t nid) 873void snd_hda_codec_cleanup_stream(struct hda_codec *codec, hda_nid_t nid)
874{ 874{
@@ -882,7 +882,7 @@ void snd_hda_codec_cleanup_stream(struct hda_codec *codec, hda_nid_t nid)
882 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_STREAM_FORMAT, 0); 882 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_STREAM_FORMAT, 0);
883#endif 883#endif
884} 884}
885EXPORT_SYMBOL_GPL(snd_hda_codec_cleanup_stream); 885EXPORT_SYMBOL_HDA(snd_hda_codec_cleanup_stream);
886 886
887/* 887/*
888 * amp access functions 888 * amp access functions
@@ -964,7 +964,7 @@ u32 query_amp_caps(struct hda_codec *codec, hda_nid_t nid, int direction)
964 } 964 }
965 return info->amp_caps; 965 return info->amp_caps;
966} 966}
967EXPORT_SYMBOL_GPL(query_amp_caps); 967EXPORT_SYMBOL_HDA(query_amp_caps);
968 968
969int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir, 969int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
970 unsigned int caps) 970 unsigned int caps)
@@ -978,7 +978,7 @@ int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
978 info->head.val |= INFO_AMP_CAPS; 978 info->head.val |= INFO_AMP_CAPS;
979 return 0; 979 return 0;
980} 980}
981EXPORT_SYMBOL_GPL(snd_hda_override_amp_caps); 981EXPORT_SYMBOL_HDA(snd_hda_override_amp_caps);
982 982
983/* 983/*
984 * read the current volume to info 984 * read the current volume to info
@@ -1032,7 +1032,7 @@ int snd_hda_codec_amp_read(struct hda_codec *codec, hda_nid_t nid, int ch,
1032 return 0; 1032 return 0;
1033 return get_vol_mute(codec, info, nid, ch, direction, index); 1033 return get_vol_mute(codec, info, nid, ch, direction, index);
1034} 1034}
1035EXPORT_SYMBOL_GPL(snd_hda_codec_amp_read); 1035EXPORT_SYMBOL_HDA(snd_hda_codec_amp_read);
1036 1036
1037/* 1037/*
1038 * update the AMP value, mask = bit mask to set, val = the value 1038 * update the AMP value, mask = bit mask to set, val = the value
@@ -1052,7 +1052,7 @@ int snd_hda_codec_amp_update(struct hda_codec *codec, hda_nid_t nid, int ch,
1052 put_vol_mute(codec, info, nid, ch, direction, idx, val); 1052 put_vol_mute(codec, info, nid, ch, direction, idx, val);
1053 return 1; 1053 return 1;
1054} 1054}
1055EXPORT_SYMBOL_GPL(snd_hda_codec_amp_update); 1055EXPORT_SYMBOL_HDA(snd_hda_codec_amp_update);
1056 1056
1057/* 1057/*
1058 * update the AMP stereo with the same mask and value 1058 * update the AMP stereo with the same mask and value
@@ -1066,7 +1066,7 @@ int snd_hda_codec_amp_stereo(struct hda_codec *codec, hda_nid_t nid,
1066 idx, mask, val); 1066 idx, mask, val);
1067 return ret; 1067 return ret;
1068} 1068}
1069EXPORT_SYMBOL_GPL(snd_hda_codec_amp_stereo); 1069EXPORT_SYMBOL_HDA(snd_hda_codec_amp_stereo);
1070 1070
1071#ifdef SND_HDA_NEEDS_RESUME 1071#ifdef SND_HDA_NEEDS_RESUME
1072/* resume the all amp commands from the cache */ 1072/* resume the all amp commands from the cache */
@@ -1092,7 +1092,7 @@ void snd_hda_codec_resume_amp(struct hda_codec *codec)
1092 } 1092 }
1093 } 1093 }
1094} 1094}
1095EXPORT_SYMBOL_GPL(snd_hda_codec_resume_amp); 1095EXPORT_SYMBOL_HDA(snd_hda_codec_resume_amp);
1096#endif /* SND_HDA_NEEDS_RESUME */ 1096#endif /* SND_HDA_NEEDS_RESUME */
1097 1097
1098/* volume */ 1098/* volume */
@@ -1120,7 +1120,7 @@ int snd_hda_mixer_amp_volume_info(struct snd_kcontrol *kcontrol,
1120 uinfo->value.integer.max = caps; 1120 uinfo->value.integer.max = caps;
1121 return 0; 1121 return 0;
1122} 1122}
1123EXPORT_SYMBOL_GPL(snd_hda_mixer_amp_volume_info); 1123EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_volume_info);
1124 1124
1125int snd_hda_mixer_amp_volume_get(struct snd_kcontrol *kcontrol, 1125int snd_hda_mixer_amp_volume_get(struct snd_kcontrol *kcontrol,
1126 struct snd_ctl_elem_value *ucontrol) 1126 struct snd_ctl_elem_value *ucontrol)
@@ -1140,7 +1140,7 @@ int snd_hda_mixer_amp_volume_get(struct snd_kcontrol *kcontrol,
1140 & HDA_AMP_VOLMASK; 1140 & HDA_AMP_VOLMASK;
1141 return 0; 1141 return 0;
1142} 1142}
1143EXPORT_SYMBOL_GPL(snd_hda_mixer_amp_volume_get); 1143EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_volume_get);
1144 1144
1145int snd_hda_mixer_amp_volume_put(struct snd_kcontrol *kcontrol, 1145int snd_hda_mixer_amp_volume_put(struct snd_kcontrol *kcontrol,
1146 struct snd_ctl_elem_value *ucontrol) 1146 struct snd_ctl_elem_value *ucontrol)
@@ -1165,7 +1165,7 @@ int snd_hda_mixer_amp_volume_put(struct snd_kcontrol *kcontrol,
1165 snd_hda_power_down(codec); 1165 snd_hda_power_down(codec);
1166 return change; 1166 return change;
1167} 1167}
1168EXPORT_SYMBOL_GPL(snd_hda_mixer_amp_volume_put); 1168EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_volume_put);
1169 1169
1170int snd_hda_mixer_amp_tlv(struct snd_kcontrol *kcontrol, int op_flag, 1170int snd_hda_mixer_amp_tlv(struct snd_kcontrol *kcontrol, int op_flag,
1171 unsigned int size, unsigned int __user *_tlv) 1171 unsigned int size, unsigned int __user *_tlv)
@@ -1192,7 +1192,7 @@ int snd_hda_mixer_amp_tlv(struct snd_kcontrol *kcontrol, int op_flag,
1192 return -EFAULT; 1192 return -EFAULT;
1193 return 0; 1193 return 0;
1194} 1194}
1195EXPORT_SYMBOL_GPL(snd_hda_mixer_amp_tlv); 1195EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_tlv);
1196 1196
1197/* 1197/*
1198 * set (static) TLV for virtual master volume; recalculated as max 0dB 1198 * set (static) TLV for virtual master volume; recalculated as max 0dB
@@ -1212,7 +1212,7 @@ void snd_hda_set_vmaster_tlv(struct hda_codec *codec, hda_nid_t nid, int dir,
1212 tlv[2] = -nums * step; 1212 tlv[2] = -nums * step;
1213 tlv[3] = step; 1213 tlv[3] = step;
1214} 1214}
1215EXPORT_SYMBOL_GPL(snd_hda_set_vmaster_tlv); 1215EXPORT_SYMBOL_HDA(snd_hda_set_vmaster_tlv);
1216 1216
1217/* find a mixer control element with the given name */ 1217/* find a mixer control element with the given name */
1218static struct snd_kcontrol * 1218static struct snd_kcontrol *
@@ -1232,7 +1232,7 @@ struct snd_kcontrol *snd_hda_find_mixer_ctl(struct hda_codec *codec,
1232{ 1232{
1233 return _snd_hda_find_mixer_ctl(codec, name, 0); 1233 return _snd_hda_find_mixer_ctl(codec, name, 0);
1234} 1234}
1235EXPORT_SYMBOL_GPL(snd_hda_find_mixer_ctl); 1235EXPORT_SYMBOL_HDA(snd_hda_find_mixer_ctl);
1236 1236
1237/* Add a control element and assign to the codec */ 1237/* Add a control element and assign to the codec */
1238int snd_hda_ctl_add(struct hda_codec *codec, struct snd_kcontrol *kctl) 1238int snd_hda_ctl_add(struct hda_codec *codec, struct snd_kcontrol *kctl)
@@ -1249,7 +1249,7 @@ int snd_hda_ctl_add(struct hda_codec *codec, struct snd_kcontrol *kctl)
1249 *knewp = kctl; 1249 *knewp = kctl;
1250 return 0; 1250 return 0;
1251} 1251}
1252EXPORT_SYMBOL_GPL(snd_hda_ctl_add); 1252EXPORT_SYMBOL_HDA(snd_hda_ctl_add);
1253 1253
1254#ifdef CONFIG_SND_HDA_RECONFIG 1254#ifdef CONFIG_SND_HDA_RECONFIG
1255/* Clear all controls assigned to the given codec */ 1255/* Clear all controls assigned to the given codec */
@@ -1328,7 +1328,7 @@ int snd_hda_add_vmaster(struct hda_codec *codec, char *name,
1328 } 1328 }
1329 return 0; 1329 return 0;
1330} 1330}
1331EXPORT_SYMBOL_GPL(snd_hda_add_vmaster); 1331EXPORT_SYMBOL_HDA(snd_hda_add_vmaster);
1332 1332
1333/* switch */ 1333/* switch */
1334int snd_hda_mixer_amp_switch_info(struct snd_kcontrol *kcontrol, 1334int snd_hda_mixer_amp_switch_info(struct snd_kcontrol *kcontrol,
@@ -1342,7 +1342,7 @@ int snd_hda_mixer_amp_switch_info(struct snd_kcontrol *kcontrol,
1342 uinfo->value.integer.max = 1; 1342 uinfo->value.integer.max = 1;
1343 return 0; 1343 return 0;
1344} 1344}
1345EXPORT_SYMBOL_GPL(snd_hda_mixer_amp_switch_info); 1345EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_switch_info);
1346 1346
1347int snd_hda_mixer_amp_switch_get(struct snd_kcontrol *kcontrol, 1347int snd_hda_mixer_amp_switch_get(struct snd_kcontrol *kcontrol,
1348 struct snd_ctl_elem_value *ucontrol) 1348 struct snd_ctl_elem_value *ucontrol)
@@ -1362,7 +1362,7 @@ int snd_hda_mixer_amp_switch_get(struct snd_kcontrol *kcontrol,
1362 HDA_AMP_MUTE) ? 0 : 1; 1362 HDA_AMP_MUTE) ? 0 : 1;
1363 return 0; 1363 return 0;
1364} 1364}
1365EXPORT_SYMBOL_GPL(snd_hda_mixer_amp_switch_get); 1365EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_switch_get);
1366 1366
1367int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol, 1367int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol,
1368 struct snd_ctl_elem_value *ucontrol) 1368 struct snd_ctl_elem_value *ucontrol)
@@ -1393,7 +1393,7 @@ int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol,
1393 snd_hda_power_down(codec); 1393 snd_hda_power_down(codec);
1394 return change; 1394 return change;
1395} 1395}
1396EXPORT_SYMBOL_GPL(snd_hda_mixer_amp_switch_put); 1396EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_switch_put);
1397 1397
1398/* 1398/*
1399 * bound volume controls 1399 * bound volume controls
@@ -1419,7 +1419,7 @@ int snd_hda_mixer_bind_switch_get(struct snd_kcontrol *kcontrol,
1419 mutex_unlock(&codec->spdif_mutex); 1419 mutex_unlock(&codec->spdif_mutex);
1420 return err; 1420 return err;
1421} 1421}
1422EXPORT_SYMBOL_GPL(snd_hda_mixer_bind_switch_get); 1422EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_switch_get);
1423 1423
1424int snd_hda_mixer_bind_switch_put(struct snd_kcontrol *kcontrol, 1424int snd_hda_mixer_bind_switch_put(struct snd_kcontrol *kcontrol,
1425 struct snd_ctl_elem_value *ucontrol) 1425 struct snd_ctl_elem_value *ucontrol)
@@ -1443,7 +1443,7 @@ int snd_hda_mixer_bind_switch_put(struct snd_kcontrol *kcontrol,
1443 mutex_unlock(&codec->spdif_mutex); 1443 mutex_unlock(&codec->spdif_mutex);
1444 return err < 0 ? err : change; 1444 return err < 0 ? err : change;
1445} 1445}
1446EXPORT_SYMBOL_GPL(snd_hda_mixer_bind_switch_put); 1446EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_switch_put);
1447 1447
1448/* 1448/*
1449 * generic bound volume/swtich controls 1449 * generic bound volume/swtich controls
@@ -1463,7 +1463,7 @@ int snd_hda_mixer_bind_ctls_info(struct snd_kcontrol *kcontrol,
1463 mutex_unlock(&codec->spdif_mutex); 1463 mutex_unlock(&codec->spdif_mutex);
1464 return err; 1464 return err;
1465} 1465}
1466EXPORT_SYMBOL_GPL(snd_hda_mixer_bind_ctls_info); 1466EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_ctls_info);
1467 1467
1468int snd_hda_mixer_bind_ctls_get(struct snd_kcontrol *kcontrol, 1468int snd_hda_mixer_bind_ctls_get(struct snd_kcontrol *kcontrol,
1469 struct snd_ctl_elem_value *ucontrol) 1469 struct snd_ctl_elem_value *ucontrol)
@@ -1480,7 +1480,7 @@ int snd_hda_mixer_bind_ctls_get(struct snd_kcontrol *kcontrol,
1480 mutex_unlock(&codec->spdif_mutex); 1480 mutex_unlock(&codec->spdif_mutex);
1481 return err; 1481 return err;
1482} 1482}
1483EXPORT_SYMBOL_GPL(snd_hda_mixer_bind_ctls_get); 1483EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_ctls_get);
1484 1484
1485int snd_hda_mixer_bind_ctls_put(struct snd_kcontrol *kcontrol, 1485int snd_hda_mixer_bind_ctls_put(struct snd_kcontrol *kcontrol,
1486 struct snd_ctl_elem_value *ucontrol) 1486 struct snd_ctl_elem_value *ucontrol)
@@ -1503,7 +1503,7 @@ int snd_hda_mixer_bind_ctls_put(struct snd_kcontrol *kcontrol,
1503 mutex_unlock(&codec->spdif_mutex); 1503 mutex_unlock(&codec->spdif_mutex);
1504 return err < 0 ? err : change; 1504 return err < 0 ? err : change;
1505} 1505}
1506EXPORT_SYMBOL_GPL(snd_hda_mixer_bind_ctls_put); 1506EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_ctls_put);
1507 1507
1508int snd_hda_mixer_bind_tlv(struct snd_kcontrol *kcontrol, int op_flag, 1508int snd_hda_mixer_bind_tlv(struct snd_kcontrol *kcontrol, int op_flag,
1509 unsigned int size, unsigned int __user *tlv) 1509 unsigned int size, unsigned int __user *tlv)
@@ -1520,7 +1520,7 @@ int snd_hda_mixer_bind_tlv(struct snd_kcontrol *kcontrol, int op_flag,
1520 mutex_unlock(&codec->spdif_mutex); 1520 mutex_unlock(&codec->spdif_mutex);
1521 return err; 1521 return err;
1522} 1522}
1523EXPORT_SYMBOL_GPL(snd_hda_mixer_bind_tlv); 1523EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_tlv);
1524 1524
1525struct hda_ctl_ops snd_hda_bind_vol = { 1525struct hda_ctl_ops snd_hda_bind_vol = {
1526 .info = snd_hda_mixer_amp_volume_info, 1526 .info = snd_hda_mixer_amp_volume_info,
@@ -1528,7 +1528,7 @@ struct hda_ctl_ops snd_hda_bind_vol = {
1528 .put = snd_hda_mixer_amp_volume_put, 1528 .put = snd_hda_mixer_amp_volume_put,
1529 .tlv = snd_hda_mixer_amp_tlv 1529 .tlv = snd_hda_mixer_amp_tlv
1530}; 1530};
1531EXPORT_SYMBOL_GPL(snd_hda_bind_vol); 1531EXPORT_SYMBOL_HDA(snd_hda_bind_vol);
1532 1532
1533struct hda_ctl_ops snd_hda_bind_sw = { 1533struct hda_ctl_ops snd_hda_bind_sw = {
1534 .info = snd_hda_mixer_amp_switch_info, 1534 .info = snd_hda_mixer_amp_switch_info,
@@ -1536,7 +1536,7 @@ struct hda_ctl_ops snd_hda_bind_sw = {
1536 .put = snd_hda_mixer_amp_switch_put, 1536 .put = snd_hda_mixer_amp_switch_put,
1537 .tlv = snd_hda_mixer_amp_tlv 1537 .tlv = snd_hda_mixer_amp_tlv
1538}; 1538};
1539EXPORT_SYMBOL_GPL(snd_hda_bind_sw); 1539EXPORT_SYMBOL_HDA(snd_hda_bind_sw);
1540 1540
1541/* 1541/*
1542 * SPDIF out controls 1542 * SPDIF out controls
@@ -1798,7 +1798,7 @@ int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, hda_nid_t nid)
1798 codec->spdif_status = convert_to_spdif_status(codec->spdif_ctls); 1798 codec->spdif_status = convert_to_spdif_status(codec->spdif_ctls);
1799 return 0; 1799 return 0;
1800} 1800}
1801EXPORT_SYMBOL_GPL(snd_hda_create_spdif_out_ctls); 1801EXPORT_SYMBOL_HDA(snd_hda_create_spdif_out_ctls);
1802 1802
1803/* 1803/*
1804 * SPDIF sharing with analog output 1804 * SPDIF sharing with analog output
@@ -1836,7 +1836,7 @@ int snd_hda_create_spdif_share_sw(struct hda_codec *codec,
1836 return snd_hda_ctl_add(codec, 1836 return snd_hda_ctl_add(codec,
1837 snd_ctl_new1(&spdif_share_sw, mout)); 1837 snd_ctl_new1(&spdif_share_sw, mout));
1838} 1838}
1839EXPORT_SYMBOL_GPL(snd_hda_create_spdif_share_sw); 1839EXPORT_SYMBOL_HDA(snd_hda_create_spdif_share_sw);
1840 1840
1841/* 1841/*
1842 * SPDIF input 1842 * SPDIF input
@@ -1946,7 +1946,7 @@ int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid)
1946 AC_DIG1_ENABLE; 1946 AC_DIG1_ENABLE;
1947 return 0; 1947 return 0;
1948} 1948}
1949EXPORT_SYMBOL_GPL(snd_hda_create_spdif_in_ctls); 1949EXPORT_SYMBOL_HDA(snd_hda_create_spdif_in_ctls);
1950 1950
1951#ifdef SND_HDA_NEEDS_RESUME 1951#ifdef SND_HDA_NEEDS_RESUME
1952/* 1952/*
@@ -1992,7 +1992,7 @@ int snd_hda_codec_write_cache(struct hda_codec *codec, hda_nid_t nid,
1992 snd_hda_power_down(codec); 1992 snd_hda_power_down(codec);
1993 return err; 1993 return err;
1994} 1994}
1995EXPORT_SYMBOL_GPL(snd_hda_codec_write_cache); 1995EXPORT_SYMBOL_HDA(snd_hda_codec_write_cache);
1996 1996
1997/* resume the all commands from the cache */ 1997/* resume the all commands from the cache */
1998void snd_hda_codec_resume_cache(struct hda_codec *codec) 1998void snd_hda_codec_resume_cache(struct hda_codec *codec)
@@ -2008,7 +2008,7 @@ void snd_hda_codec_resume_cache(struct hda_codec *codec)
2008 get_cmd_cache_cmd(key), buffer->val); 2008 get_cmd_cache_cmd(key), buffer->val);
2009 } 2009 }
2010} 2010}
2011EXPORT_SYMBOL_GPL(snd_hda_codec_resume_cache); 2011EXPORT_SYMBOL_HDA(snd_hda_codec_resume_cache);
2012 2012
2013/** 2013/**
2014 * snd_hda_sequence_write_cache - sequence writes with caching 2014 * snd_hda_sequence_write_cache - sequence writes with caching
@@ -2026,7 +2026,7 @@ void snd_hda_sequence_write_cache(struct hda_codec *codec,
2026 snd_hda_codec_write_cache(codec, seq->nid, 0, seq->verb, 2026 snd_hda_codec_write_cache(codec, seq->nid, 0, seq->verb,
2027 seq->param); 2027 seq->param);
2028} 2028}
2029EXPORT_SYMBOL_GPL(snd_hda_sequence_write_cache); 2029EXPORT_SYMBOL_HDA(snd_hda_sequence_write_cache);
2030#endif /* SND_HDA_NEEDS_RESUME */ 2030#endif /* SND_HDA_NEEDS_RESUME */
2031 2031
2032/* 2032/*
@@ -2156,7 +2156,7 @@ int /*__devinit*/ snd_hda_build_controls(struct hda_bus *bus)
2156 } 2156 }
2157 return 0; 2157 return 0;
2158} 2158}
2159EXPORT_SYMBOL_GPL(snd_hda_build_controls); 2159EXPORT_SYMBOL_HDA(snd_hda_build_controls);
2160 2160
2161int snd_hda_codec_build_controls(struct hda_codec *codec) 2161int snd_hda_codec_build_controls(struct hda_codec *codec)
2162{ 2162{
@@ -2268,7 +2268,7 @@ unsigned int snd_hda_calc_stream_format(unsigned int rate,
2268 2268
2269 return val; 2269 return val;
2270} 2270}
2271EXPORT_SYMBOL_GPL(snd_hda_calc_stream_format); 2271EXPORT_SYMBOL_HDA(snd_hda_calc_stream_format);
2272 2272
2273/** 2273/**
2274 * snd_hda_query_supported_pcm - query the supported PCM rates and formats 2274 * snd_hda_query_supported_pcm - query the supported PCM rates and formats
@@ -2448,7 +2448,7 @@ int snd_hda_is_supported_format(struct hda_codec *codec, hda_nid_t nid,
2448 2448
2449 return 1; 2449 return 1;
2450} 2450}
2451EXPORT_SYMBOL_GPL(snd_hda_is_supported_format); 2451EXPORT_SYMBOL_HDA(snd_hda_is_supported_format);
2452 2452
2453/* 2453/*
2454 * PCM stuff 2454 * PCM stuff
@@ -2646,7 +2646,7 @@ int __devinit snd_hda_build_pcms(struct hda_bus *bus)
2646 } 2646 }
2647 return 0; 2647 return 0;
2648} 2648}
2649EXPORT_SYMBOL_GPL(snd_hda_build_pcms); 2649EXPORT_SYMBOL_HDA(snd_hda_build_pcms);
2650 2650
2651/** 2651/**
2652 * snd_hda_check_board_config - compare the current codec with the config table 2652 * snd_hda_check_board_config - compare the current codec with the config table
@@ -2702,7 +2702,7 @@ int snd_hda_check_board_config(struct hda_codec *codec,
2702 } 2702 }
2703 return -1; 2703 return -1;
2704} 2704}
2705EXPORT_SYMBOL_GPL(snd_hda_check_board_config); 2705EXPORT_SYMBOL_HDA(snd_hda_check_board_config);
2706 2706
2707/** 2707/**
2708 * snd_hda_add_new_ctls - create controls from the array 2708 * snd_hda_add_new_ctls - create controls from the array
@@ -2738,7 +2738,7 @@ int snd_hda_add_new_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew)
2738 } 2738 }
2739 return 0; 2739 return 0;
2740} 2740}
2741EXPORT_SYMBOL_GPL(snd_hda_add_new_ctls); 2741EXPORT_SYMBOL_HDA(snd_hda_add_new_ctls);
2742 2742
2743#ifdef CONFIG_SND_HDA_POWER_SAVE 2743#ifdef CONFIG_SND_HDA_POWER_SAVE
2744static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg, 2744static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg,
@@ -2781,7 +2781,7 @@ void snd_hda_power_up(struct hda_codec *codec)
2781 cancel_delayed_work(&codec->power_work); 2781 cancel_delayed_work(&codec->power_work);
2782 codec->power_transition = 0; 2782 codec->power_transition = 0;
2783} 2783}
2784EXPORT_SYMBOL_GPL(snd_hda_power_up); 2784EXPORT_SYMBOL_HDA(snd_hda_power_up);
2785 2785
2786#define power_save(codec) \ 2786#define power_save(codec) \
2787 ((codec)->bus->power_save ? *(codec)->bus->power_save : 0) 2787 ((codec)->bus->power_save ? *(codec)->bus->power_save : 0)
@@ -2800,7 +2800,7 @@ void snd_hda_power_down(struct hda_codec *codec)
2800 msecs_to_jiffies(power_save(codec) * 1000)); 2800 msecs_to_jiffies(power_save(codec) * 1000));
2801 } 2801 }
2802} 2802}
2803EXPORT_SYMBOL_GPL(snd_hda_power_down); 2803EXPORT_SYMBOL_HDA(snd_hda_power_down);
2804 2804
2805int snd_hda_check_amp_list_power(struct hda_codec *codec, 2805int snd_hda_check_amp_list_power(struct hda_codec *codec,
2806 struct hda_loopback_check *check, 2806 struct hda_loopback_check *check,
@@ -2837,7 +2837,7 @@ int snd_hda_check_amp_list_power(struct hda_codec *codec,
2837 } 2837 }
2838 return 0; 2838 return 0;
2839} 2839}
2840EXPORT_SYMBOL_GPL(snd_hda_check_amp_list_power); 2840EXPORT_SYMBOL_HDA(snd_hda_check_amp_list_power);
2841#endif 2841#endif
2842 2842
2843/* 2843/*
@@ -2857,7 +2857,7 @@ int snd_hda_ch_mode_info(struct hda_codec *codec,
2857 chmode[uinfo->value.enumerated.item].channels); 2857 chmode[uinfo->value.enumerated.item].channels);
2858 return 0; 2858 return 0;
2859} 2859}
2860EXPORT_SYMBOL_GPL(snd_hda_ch_mode_info); 2860EXPORT_SYMBOL_HDA(snd_hda_ch_mode_info);
2861 2861
2862int snd_hda_ch_mode_get(struct hda_codec *codec, 2862int snd_hda_ch_mode_get(struct hda_codec *codec,
2863 struct snd_ctl_elem_value *ucontrol, 2863 struct snd_ctl_elem_value *ucontrol,
@@ -2875,7 +2875,7 @@ int snd_hda_ch_mode_get(struct hda_codec *codec,
2875 } 2875 }
2876 return 0; 2876 return 0;
2877} 2877}
2878EXPORT_SYMBOL_GPL(snd_hda_ch_mode_get); 2878EXPORT_SYMBOL_HDA(snd_hda_ch_mode_get);
2879 2879
2880int snd_hda_ch_mode_put(struct hda_codec *codec, 2880int snd_hda_ch_mode_put(struct hda_codec *codec,
2881 struct snd_ctl_elem_value *ucontrol, 2881 struct snd_ctl_elem_value *ucontrol,
@@ -2896,7 +2896,7 @@ int snd_hda_ch_mode_put(struct hda_codec *codec,
2896 snd_hda_sequence_write_cache(codec, chmode[mode].sequence); 2896 snd_hda_sequence_write_cache(codec, chmode[mode].sequence);
2897 return 1; 2897 return 1;
2898} 2898}
2899EXPORT_SYMBOL_GPL(snd_hda_ch_mode_put); 2899EXPORT_SYMBOL_HDA(snd_hda_ch_mode_put);
2900 2900
2901/* 2901/*
2902 * input MUX helper 2902 * input MUX helper
@@ -2917,7 +2917,7 @@ int snd_hda_input_mux_info(const struct hda_input_mux *imux,
2917 strcpy(uinfo->value.enumerated.name, imux->items[index].label); 2917 strcpy(uinfo->value.enumerated.name, imux->items[index].label);
2918 return 0; 2918 return 0;
2919} 2919}
2920EXPORT_SYMBOL_GPL(snd_hda_input_mux_info); 2920EXPORT_SYMBOL_HDA(snd_hda_input_mux_info);
2921 2921
2922int snd_hda_input_mux_put(struct hda_codec *codec, 2922int snd_hda_input_mux_put(struct hda_codec *codec,
2923 const struct hda_input_mux *imux, 2923 const struct hda_input_mux *imux,
@@ -2939,7 +2939,7 @@ int snd_hda_input_mux_put(struct hda_codec *codec,
2939 *cur_val = idx; 2939 *cur_val = idx;
2940 return 1; 2940 return 1;
2941} 2941}
2942EXPORT_SYMBOL_GPL(snd_hda_input_mux_put); 2942EXPORT_SYMBOL_HDA(snd_hda_input_mux_put);
2943 2943
2944 2944
2945/* 2945/*
@@ -2992,7 +2992,7 @@ int snd_hda_multi_out_dig_open(struct hda_codec *codec,
2992 mutex_unlock(&codec->spdif_mutex); 2992 mutex_unlock(&codec->spdif_mutex);
2993 return 0; 2993 return 0;
2994} 2994}
2995EXPORT_SYMBOL_GPL(snd_hda_multi_out_dig_open); 2995EXPORT_SYMBOL_HDA(snd_hda_multi_out_dig_open);
2996 2996
2997int snd_hda_multi_out_dig_prepare(struct hda_codec *codec, 2997int snd_hda_multi_out_dig_prepare(struct hda_codec *codec,
2998 struct hda_multi_out *mout, 2998 struct hda_multi_out *mout,
@@ -3005,7 +3005,7 @@ int snd_hda_multi_out_dig_prepare(struct hda_codec *codec,
3005 mutex_unlock(&codec->spdif_mutex); 3005 mutex_unlock(&codec->spdif_mutex);
3006 return 0; 3006 return 0;
3007} 3007}
3008EXPORT_SYMBOL_GPL(snd_hda_multi_out_dig_prepare); 3008EXPORT_SYMBOL_HDA(snd_hda_multi_out_dig_prepare);
3009 3009
3010/* 3010/*
3011 * release the digital out 3011 * release the digital out
@@ -3018,7 +3018,7 @@ int snd_hda_multi_out_dig_close(struct hda_codec *codec,
3018 mutex_unlock(&codec->spdif_mutex); 3018 mutex_unlock(&codec->spdif_mutex);
3019 return 0; 3019 return 0;
3020} 3020}
3021EXPORT_SYMBOL_GPL(snd_hda_multi_out_dig_close); 3021EXPORT_SYMBOL_HDA(snd_hda_multi_out_dig_close);
3022 3022
3023/* 3023/*
3024 * set up more restrictions for analog out 3024 * set up more restrictions for analog out
@@ -3058,7 +3058,7 @@ int snd_hda_multi_out_analog_open(struct hda_codec *codec,
3058 return snd_pcm_hw_constraint_step(substream->runtime, 0, 3058 return snd_pcm_hw_constraint_step(substream->runtime, 0,
3059 SNDRV_PCM_HW_PARAM_CHANNELS, 2); 3059 SNDRV_PCM_HW_PARAM_CHANNELS, 2);
3060} 3060}
3061EXPORT_SYMBOL_GPL(snd_hda_multi_out_analog_open); 3061EXPORT_SYMBOL_HDA(snd_hda_multi_out_analog_open);
3062 3062
3063/* 3063/*
3064 * set up the i/o for analog out 3064 * set up the i/o for analog out
@@ -3117,7 +3117,7 @@ int snd_hda_multi_out_analog_prepare(struct hda_codec *codec,
3117 } 3117 }
3118 return 0; 3118 return 0;
3119} 3119}
3120EXPORT_SYMBOL_GPL(snd_hda_multi_out_analog_prepare); 3120EXPORT_SYMBOL_HDA(snd_hda_multi_out_analog_prepare);
3121 3121
3122/* 3122/*
3123 * clean up the setting for analog out 3123 * clean up the setting for analog out
@@ -3144,7 +3144,7 @@ int snd_hda_multi_out_analog_cleanup(struct hda_codec *codec,
3144 mutex_unlock(&codec->spdif_mutex); 3144 mutex_unlock(&codec->spdif_mutex);
3145 return 0; 3145 return 0;
3146} 3146}
3147EXPORT_SYMBOL_GPL(snd_hda_multi_out_analog_cleanup); 3147EXPORT_SYMBOL_HDA(snd_hda_multi_out_analog_cleanup);
3148 3148
3149/* 3149/*
3150 * Helper for automatic pin configuration 3150 * Helper for automatic pin configuration
@@ -3430,13 +3430,13 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec,
3430 3430
3431 return 0; 3431 return 0;
3432} 3432}
3433EXPORT_SYMBOL_GPL(snd_hda_parse_pin_def_config); 3433EXPORT_SYMBOL_HDA(snd_hda_parse_pin_def_config);
3434 3434
3435/* labels for input pins */ 3435/* labels for input pins */
3436const char *auto_pin_cfg_labels[AUTO_PIN_LAST] = { 3436const char *auto_pin_cfg_labels[AUTO_PIN_LAST] = {
3437 "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" 3437 "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux"
3438}; 3438};
3439EXPORT_SYMBOL_GPL(auto_pin_cfg_labels); 3439EXPORT_SYMBOL_HDA(auto_pin_cfg_labels);
3440 3440
3441 3441
3442#ifdef CONFIG_PM 3442#ifdef CONFIG_PM
@@ -3464,7 +3464,7 @@ int snd_hda_suspend(struct hda_bus *bus, pm_message_t state)
3464 } 3464 }
3465 return 0; 3465 return 0;
3466} 3466}
3467EXPORT_SYMBOL_GPL(snd_hda_suspend); 3467EXPORT_SYMBOL_HDA(snd_hda_suspend);
3468 3468
3469/** 3469/**
3470 * snd_hda_resume - resume the codecs 3470 * snd_hda_resume - resume the codecs
@@ -3485,7 +3485,7 @@ int snd_hda_resume(struct hda_bus *bus)
3485 } 3485 }
3486 return 0; 3486 return 0;
3487} 3487}
3488EXPORT_SYMBOL_GPL(snd_hda_resume); 3488EXPORT_SYMBOL_HDA(snd_hda_resume);
3489#endif /* CONFIG_PM */ 3489#endif /* CONFIG_PM */
3490 3490
3491/* 3491/*
@@ -3515,7 +3515,7 @@ void *snd_array_new(struct snd_array *array)
3515 } 3515 }
3516 return snd_array_elem(array, array->used++); 3516 return snd_array_elem(array, array->used++);
3517} 3517}
3518EXPORT_SYMBOL_GPL(snd_array_new); 3518EXPORT_SYMBOL_HDA(snd_array_new);
3519 3519
3520/* free the given array elements */ 3520/* free the given array elements */
3521void snd_array_free(struct snd_array *array) 3521void snd_array_free(struct snd_array *array)
@@ -3525,7 +3525,7 @@ void snd_array_free(struct snd_array *array)
3525 array->alloced = 0; 3525 array->alloced = 0;
3526 array->list = NULL; 3526 array->list = NULL;
3527} 3527}
3528EXPORT_SYMBOL_GPL(snd_array_free); 3528EXPORT_SYMBOL_HDA(snd_array_free);
3529 3529
3530/* 3530/*
3531 * used by hda_proc.c and hda_eld.c 3531 * used by hda_proc.c and hda_eld.c
@@ -3544,7 +3544,7 @@ void snd_print_pcm_rates(int pcm, char *buf, int buflen)
3544 3544
3545 buf[j] = '\0'; /* necessary when j == 0 */ 3545 buf[j] = '\0'; /* necessary when j == 0 */
3546} 3546}
3547EXPORT_SYMBOL_GPL(snd_print_pcm_rates); 3547EXPORT_SYMBOL_HDA(snd_print_pcm_rates);
3548 3548
3549void snd_print_pcm_bits(int pcm, char *buf, int buflen) 3549void snd_print_pcm_bits(int pcm, char *buf, int buflen)
3550{ 3550{
@@ -3557,7 +3557,7 @@ void snd_print_pcm_bits(int pcm, char *buf, int buflen)
3557 3557
3558 buf[j] = '\0'; /* necessary when j == 0 */ 3558 buf[j] = '\0'; /* necessary when j == 0 */
3559} 3559}
3560EXPORT_SYMBOL_GPL(snd_print_pcm_bits); 3560EXPORT_SYMBOL_HDA(snd_print_pcm_bits);
3561 3561
3562MODULE_DESCRIPTION("HDA codec core"); 3562MODULE_DESCRIPTION("HDA codec core");
3563MODULE_LICENSE("GPL"); 3563MODULE_LICENSE("GPL");
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
index 586ea08b340b..6612d0f20bc6 100644
--- a/sound/pci/hda/hda_codec.h
+++ b/sound/pci/hda/hda_codec.h
@@ -905,4 +905,19 @@ static inline void snd_hda_power_down(struct hda_codec *codec) {}
905#define snd_hda_codec_needs_resume(codec) 1 905#define snd_hda_codec_needs_resume(codec) 1
906#endif 906#endif
907 907
908/*
909 * Codec modularization
910 */
911
912/* Export symbols only for communication with codec drivers;
913 * When built in kernel, all HD-audio drivers are supposed to be statically
914 * linked to the kernel. Thus, the symbols don't have to (or shouldn't) be
915 * exported unless it's built as a module.
916 */
917#ifdef MODULE
918#define EXPORT_SYMBOL_HDA(sym) EXPORT_SYMBOL_GPL(sym)
919#else
920#define EXPORT_SYMBOL_HDA(sym)
921#endif
922
908#endif /* __SOUND_HDA_CODEC_H */ 923#endif /* __SOUND_HDA_CODEC_H */