Commit 67d634c0 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Fix build errors with CONFIG_SND_HDA_INPUT_BEEP=n

Disable beep-related codes when CONFIG_SND_HDA_INPUT_BEEP isn't set.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 9bb1fe39
...@@ -1959,6 +1959,7 @@ int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol, ...@@ -1959,6 +1959,7 @@ int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol,
} }
EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_switch_put); EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_switch_put);
#ifdef CONFIG_SND_HDA_INPUT_BEEP
/** /**
* snd_hda_mixer_amp_switch_put_beep - Put callback for a beep AMP switch * snd_hda_mixer_amp_switch_put_beep - Put callback for a beep AMP switch
* *
...@@ -1975,6 +1976,7 @@ int snd_hda_mixer_amp_switch_put_beep(struct snd_kcontrol *kcontrol, ...@@ -1975,6 +1976,7 @@ int snd_hda_mixer_amp_switch_put_beep(struct snd_kcontrol *kcontrol,
return snd_hda_mixer_amp_switch_put(kcontrol, ucontrol); return snd_hda_mixer_amp_switch_put(kcontrol, ucontrol);
} }
EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_switch_put_beep); EXPORT_SYMBOL_HDA(snd_hda_mixer_amp_switch_put_beep);
#endif /* CONFIG_SND_HDA_INPUT_BEEP */
/* /*
* bound volume controls * bound volume controls
......
...@@ -77,6 +77,7 @@ ...@@ -77,6 +77,7 @@
/* stereo mute switch */ /* stereo mute switch */
#define HDA_CODEC_MUTE(xname, nid, xindex, direction) \ #define HDA_CODEC_MUTE(xname, nid, xindex, direction) \
HDA_CODEC_MUTE_MONO(xname, nid, 3, xindex, direction) HDA_CODEC_MUTE_MONO(xname, nid, 3, xindex, direction)
#ifdef CONFIG_SND_HDA_INPUT_BEEP
/* special beep mono mute switch with index (index=0,1,...) (channel=1,2) */ /* special beep mono mute switch with index (index=0,1,...) (channel=1,2) */
#define HDA_CODEC_MUTE_BEEP_MONO_IDX(xname, xcidx, nid, channel, xindex, direction) \ #define HDA_CODEC_MUTE_BEEP_MONO_IDX(xname, xcidx, nid, channel, xindex, direction) \
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xcidx, \ { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xcidx, \
...@@ -85,6 +86,11 @@ ...@@ -85,6 +86,11 @@
.get = snd_hda_mixer_amp_switch_get, \ .get = snd_hda_mixer_amp_switch_get, \
.put = snd_hda_mixer_amp_switch_put_beep, \ .put = snd_hda_mixer_amp_switch_put_beep, \
.private_value = HDA_COMPOSE_AMP_VAL(nid, channel, xindex, direction) } .private_value = HDA_COMPOSE_AMP_VAL(nid, channel, xindex, direction) }
#else
/* no digital beep - just the standard one */
#define HDA_CODEC_MUTE_BEEP_MONO_IDX(xname, xcidx, nid, ch, xidx, dir) \
HDA_CODEC_MUTE_MONO_IDX(xname, xcidx, nid, ch, xidx, dir)
#endif /* CONFIG_SND_HDA_INPUT_BEEP */
/* special beep mono mute switch */ /* special beep mono mute switch */
#define HDA_CODEC_MUTE_BEEP_MONO(xname, nid, channel, xindex, direction) \ #define HDA_CODEC_MUTE_BEEP_MONO(xname, nid, channel, xindex, direction) \
HDA_CODEC_MUTE_BEEP_MONO_IDX(xname, 0, nid, channel, xindex, direction) HDA_CODEC_MUTE_BEEP_MONO_IDX(xname, 0, nid, channel, xindex, direction)
...@@ -108,8 +114,10 @@ int snd_hda_mixer_amp_switch_get(struct snd_kcontrol *kcontrol, ...@@ -108,8 +114,10 @@ int snd_hda_mixer_amp_switch_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol); struct snd_ctl_elem_value *ucontrol);
int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol, int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol); struct snd_ctl_elem_value *ucontrol);
#ifdef CONFIG_SND_HDA_INPUT_BEEP
int snd_hda_mixer_amp_switch_put_beep(struct snd_kcontrol *kcontrol, int snd_hda_mixer_amp_switch_put_beep(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol); struct snd_ctl_elem_value *ucontrol);
#endif
/* lowlevel accessor with caching; use carefully */ /* lowlevel accessor with caching; use carefully */
int snd_hda_codec_amp_read(struct hda_codec *codec, hda_nid_t nid, int ch, int snd_hda_codec_amp_read(struct hda_codec *codec, hda_nid_t nid, int ch,
int direction, int index); int direction, int index);
......
...@@ -156,6 +156,7 @@ static const char *ad_slave_sws[] = { ...@@ -156,6 +156,7 @@ static const char *ad_slave_sws[] = {
static void ad198x_free_kctls(struct hda_codec *codec); static void ad198x_free_kctls(struct hda_codec *codec);
#ifdef CONFIG_SND_HDA_INPUT_BEEP
/* additional beep mixers; the actual parameters are overwritten at build */ /* additional beep mixers; the actual parameters are overwritten at build */
static struct snd_kcontrol_new ad_beep_mixer[] = { static struct snd_kcontrol_new ad_beep_mixer[] = {
HDA_CODEC_VOLUME("Beep Playback Volume", 0, 0, HDA_OUTPUT), HDA_CODEC_VOLUME("Beep Playback Volume", 0, 0, HDA_OUTPUT),
...@@ -165,6 +166,9 @@ static struct snd_kcontrol_new ad_beep_mixer[] = { ...@@ -165,6 +166,9 @@ static struct snd_kcontrol_new ad_beep_mixer[] = {
#define set_beep_amp(spec, nid, idx, dir) \ #define set_beep_amp(spec, nid, idx, dir) \
((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 1, idx, dir)) /* mono */ ((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 1, idx, dir)) /* mono */
#else
#define set_beep_amp(spec, nid, idx, dir) /* NOP */
#endif
static int ad198x_build_controls(struct hda_codec *codec) static int ad198x_build_controls(struct hda_codec *codec)
{ {
...@@ -194,6 +198,7 @@ static int ad198x_build_controls(struct hda_codec *codec) ...@@ -194,6 +198,7 @@ static int ad198x_build_controls(struct hda_codec *codec)
} }
/* create beep controls if needed */ /* create beep controls if needed */
#ifdef CONFIG_SND_HDA_INPUT_BEEP
if (spec->beep_amp) { if (spec->beep_amp) {
struct snd_kcontrol_new *knew; struct snd_kcontrol_new *knew;
for (knew = ad_beep_mixer; knew->name; knew++) { for (knew = ad_beep_mixer; knew->name; knew++) {
...@@ -209,6 +214,7 @@ static int ad198x_build_controls(struct hda_codec *codec) ...@@ -209,6 +214,7 @@ static int ad198x_build_controls(struct hda_codec *codec)
return err; return err;
} }
} }
#endif
/* if we have no master control, let's create it */ /* if we have no master control, let's create it */
if (!snd_hda_find_mixer_ctl(codec, "Master Playback Volume")) { if (!snd_hda_find_mixer_ctl(codec, "Master Playback Volume")) {
......
...@@ -2410,12 +2410,14 @@ static const char *alc_slave_sws[] = { ...@@ -2410,12 +2410,14 @@ static const char *alc_slave_sws[] = {
static void alc_free_kctls(struct hda_codec *codec); static void alc_free_kctls(struct hda_codec *codec);
#ifdef CONFIG_SND_HDA_INPUT_BEEP
/* additional beep mixers; the actual parameters are overwritten at build */ /* additional beep mixers; the actual parameters are overwritten at build */
static struct snd_kcontrol_new alc_beep_mixer[] = { static struct snd_kcontrol_new alc_beep_mixer[] = {
HDA_CODEC_VOLUME("Beep Playback Volume", 0, 0, HDA_INPUT), HDA_CODEC_VOLUME("Beep Playback Volume", 0, 0, HDA_INPUT),
HDA_CODEC_MUTE_BEEP("Beep Playback Switch", 0, 0, HDA_INPUT), HDA_CODEC_MUTE_BEEP("Beep Playback Switch", 0, 0, HDA_INPUT),
{ } /* end */ { } /* end */
}; };
#endif
static int alc_build_controls(struct hda_codec *codec) static int alc_build_controls(struct hda_codec *codec)
{ {
...@@ -2452,6 +2454,7 @@ static int alc_build_controls(struct hda_codec *codec) ...@@ -2452,6 +2454,7 @@ static int alc_build_controls(struct hda_codec *codec)
return err; return err;
} }
#ifdef CONFIG_SND_HDA_INPUT_BEEP
/* create beep controls if needed */ /* create beep controls if needed */
if (spec->beep_amp) { if (spec->beep_amp) {
struct snd_kcontrol_new *knew; struct snd_kcontrol_new *knew;
...@@ -2467,6 +2470,7 @@ static int alc_build_controls(struct hda_codec *codec) ...@@ -2467,6 +2470,7 @@ static int alc_build_controls(struct hda_codec *codec)
return err; return err;
} }
} }
#endif
/* if we have no master control, let's create it */ /* if we have no master control, let's create it */
if (!spec->no_analog && if (!spec->no_analog &&
...@@ -4780,8 +4784,12 @@ static void set_capture_mixer(struct hda_codec *codec) ...@@ -4780,8 +4784,12 @@ static void set_capture_mixer(struct hda_codec *codec)
} }
} }
#ifdef CONFIG_SND_HDA_INPUT_BEEP
#define set_beep_amp(spec, nid, idx, dir) \ #define set_beep_amp(spec, nid, idx, dir) \
((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 3, idx, dir)) ((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 3, idx, dir))
#else
#define set_beep_amp(spec, nid, idx, dir) /* NOP */
#endif
/* /*
* OK, here we have finally the patch for ALC880 * OK, here we have finally the patch for ALC880
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment