Revert "ALSA: hda/generic: Add a helper to mute speakers at suspend/shutdown"
This reverts commit 3b7b13e567
.
This commit is contained in:
parent
02ad062f6b
commit
01722965aa
2 changed files with 0 additions and 64 deletions
|
@ -5067,69 +5067,6 @@ void snd_hda_gen_stream_pm(struct hda_codec *codec, hda_nid_t nid, bool on)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(snd_hda_gen_stream_pm);
|
EXPORT_SYMBOL_GPL(snd_hda_gen_stream_pm);
|
||||||
|
|
||||||
/* forcibly mute the speaker output without caching; return true if updated */
|
|
||||||
static bool force_mute_output_path(struct hda_codec *codec, hda_nid_t nid)
|
|
||||||
{
|
|
||||||
if (!nid)
|
|
||||||
return false;
|
|
||||||
if (!nid_has_mute(codec, nid, HDA_OUTPUT))
|
|
||||||
return false; /* no mute, skip */
|
|
||||||
if (snd_hda_codec_amp_read(codec, nid, 0, HDA_OUTPUT, 0) &
|
|
||||||
snd_hda_codec_amp_read(codec, nid, 1, HDA_OUTPUT, 0) &
|
|
||||||
HDA_AMP_MUTE)
|
|
||||||
return false; /* both channels already muted, skip */
|
|
||||||
|
|
||||||
/* direct amp update without caching */
|
|
||||||
snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE,
|
|
||||||
AC_AMP_SET_OUTPUT | AC_AMP_SET_LEFT |
|
|
||||||
AC_AMP_SET_RIGHT | HDA_AMP_MUTE);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* snd_hda_gen_shutup_speakers - Forcibly mute the speaker outputs
|
|
||||||
* @codec: the HDA codec
|
|
||||||
*
|
|
||||||
* Forcibly mute the speaker outputs, to be called at suspend or shutdown.
|
|
||||||
*
|
|
||||||
* The mute state done by this function isn't cached, hence the original state
|
|
||||||
* will be restored at resume.
|
|
||||||
*
|
|
||||||
* Return true if the mute state has been changed.
|
|
||||||
*/
|
|
||||||
bool snd_hda_gen_shutup_speakers(struct hda_codec *codec)
|
|
||||||
{
|
|
||||||
struct hda_gen_spec *spec = codec->spec;
|
|
||||||
const int *paths;
|
|
||||||
const struct nid_path *path;
|
|
||||||
int i, p, num_paths;
|
|
||||||
bool updated = false;
|
|
||||||
|
|
||||||
/* if already powered off, do nothing */
|
|
||||||
if (!snd_hdac_is_power_on(&codec->core))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (spec->autocfg.line_out_type == AUTO_PIN_SPEAKER_OUT) {
|
|
||||||
paths = spec->out_paths;
|
|
||||||
num_paths = spec->autocfg.line_outs;
|
|
||||||
} else {
|
|
||||||
paths = spec->speaker_paths;
|
|
||||||
num_paths = spec->autocfg.speaker_outs;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < num_paths; i++) {
|
|
||||||
path = snd_hda_get_path_from_idx(codec, paths[i]);
|
|
||||||
if (!path)
|
|
||||||
continue;
|
|
||||||
for (p = 0; p < path->depth; p++)
|
|
||||||
if (force_mute_output_path(codec, path->path[p]))
|
|
||||||
updated = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return updated;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(snd_hda_gen_shutup_speakers);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* snd_hda_gen_parse_auto_config - Parse the given BIOS configuration and
|
* snd_hda_gen_parse_auto_config - Parse the given BIOS configuration and
|
||||||
* set up the hda_gen_spec
|
* set up the hda_gen_spec
|
||||||
|
|
|
@ -364,6 +364,5 @@ int snd_hda_gen_add_mute_led_cdev(struct hda_codec *codec,
|
||||||
int snd_hda_gen_add_micmute_led_cdev(struct hda_codec *codec,
|
int snd_hda_gen_add_micmute_led_cdev(struct hda_codec *codec,
|
||||||
int (*callback)(struct led_classdev *,
|
int (*callback)(struct led_classdev *,
|
||||||
enum led_brightness));
|
enum led_brightness));
|
||||||
bool snd_hda_gen_shutup_speakers(struct hda_codec *codec);
|
|
||||||
|
|
||||||
#endif /* __SOUND_HDA_GENERIC_H */
|
#endif /* __SOUND_HDA_GENERIC_H */
|
||||||
|
|
Loading…
Reference in a new issue