ALSA: hda - Combine snd_hda_codec_flush_*_cache() to a single function
Since both snd_hda_codec_flush_amp_cache() and snd_hda_codec_flush_cmd_cache() are called usually at the same time, we can simply combine them to a single function, snd_hda_codec_flush_cache(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
a836dbf685
commit
dc870f38e9
5 changed files with 16 additions and 13 deletions
|
@ -3637,6 +3637,17 @@ void snd_hda_sequence_write_cache(struct hda_codec *codec,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_HDA(snd_hda_sequence_write_cache);
|
EXPORT_SYMBOL_HDA(snd_hda_sequence_write_cache);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* snd_hda_codec_flush_cache - Execute all pending (cached) amps / verbs
|
||||||
|
* @codec: HD-audio codec
|
||||||
|
*/
|
||||||
|
void snd_hda_codec_flush_cache(struct hda_codec *codec)
|
||||||
|
{
|
||||||
|
snd_hda_codec_resume_amp(codec);
|
||||||
|
snd_hda_codec_resume_cache(codec);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_HDA(snd_hda_codec_flush_cache);
|
||||||
|
|
||||||
void snd_hda_codec_set_power_to_all(struct hda_codec *codec, hda_nid_t fg,
|
void snd_hda_codec_set_power_to_all(struct hda_codec *codec, hda_nid_t fg,
|
||||||
unsigned int power_state,
|
unsigned int power_state,
|
||||||
bool eapd_workaround)
|
bool eapd_workaround)
|
||||||
|
|
|
@ -974,10 +974,8 @@ void snd_hda_sequence_write_cache(struct hda_codec *codec,
|
||||||
int snd_hda_codec_update_cache(struct hda_codec *codec, hda_nid_t nid,
|
int snd_hda_codec_update_cache(struct hda_codec *codec, hda_nid_t nid,
|
||||||
int direct, unsigned int verb, unsigned int parm);
|
int direct, unsigned int verb, unsigned int parm);
|
||||||
void snd_hda_codec_resume_cache(struct hda_codec *codec);
|
void snd_hda_codec_resume_cache(struct hda_codec *codec);
|
||||||
|
/* both for cmd & amp caches */
|
||||||
/* it's alias but a bit clearer meaning */
|
void snd_hda_codec_flush_cache(struct hda_codec *codec);
|
||||||
#define snd_hda_codec_flush_cmd_cache(codec) \
|
|
||||||
snd_hda_codec_resume_cache(codec)
|
|
||||||
|
|
||||||
/* the struct for codec->pin_configs */
|
/* the struct for codec->pin_configs */
|
||||||
struct hda_pincfg {
|
struct hda_pincfg {
|
||||||
|
|
|
@ -2839,8 +2839,7 @@ static int cap_put_caller(struct snd_kcontrol *kcontrol,
|
||||||
error:
|
error:
|
||||||
codec->cached_write = 0;
|
codec->cached_write = 0;
|
||||||
mutex_unlock(&codec->control_mutex);
|
mutex_unlock(&codec->control_mutex);
|
||||||
snd_hda_codec_flush_amp_cache(codec); /* flush the updates */
|
snd_hda_codec_flush_cache(codec); /* flush the updates */
|
||||||
snd_hda_codec_flush_cmd_cache(codec);
|
|
||||||
if (err >= 0 && spec->cap_sync_hook)
|
if (err >= 0 && spec->cap_sync_hook)
|
||||||
spec->cap_sync_hook(codec, ucontrol);
|
spec->cap_sync_hook(codec, ucontrol);
|
||||||
return err;
|
return err;
|
||||||
|
@ -4773,8 +4772,7 @@ int snd_hda_gen_init(struct hda_codec *codec)
|
||||||
/* call init functions of standard auto-mute helpers */
|
/* call init functions of standard auto-mute helpers */
|
||||||
update_automute_all(codec);
|
update_automute_all(codec);
|
||||||
|
|
||||||
snd_hda_codec_flush_amp_cache(codec);
|
snd_hda_codec_flush_cache(codec);
|
||||||
snd_hda_codec_flush_cmd_cache(codec);
|
|
||||||
|
|
||||||
if (spec->vmaster_mute.sw_kctl && spec->vmaster_mute.hook)
|
if (spec->vmaster_mute.sw_kctl && spec->vmaster_mute.hook)
|
||||||
snd_hda_sync_vmaster_hook(&spec->vmaster_mute);
|
snd_hda_sync_vmaster_hook(&spec->vmaster_mute);
|
||||||
|
|
|
@ -139,10 +139,6 @@ int snd_hda_codec_amp_init_stereo(struct hda_codec *codec, hda_nid_t nid,
|
||||||
int dir, int idx, int mask, int val);
|
int dir, int idx, int mask, int val);
|
||||||
void snd_hda_codec_resume_amp(struct hda_codec *codec);
|
void snd_hda_codec_resume_amp(struct hda_codec *codec);
|
||||||
|
|
||||||
/* it's alias but a bit clearer meaning */
|
|
||||||
#define snd_hda_codec_flush_amp_cache(codec) \
|
|
||||||
snd_hda_codec_resume_amp(codec)
|
|
||||||
|
|
||||||
void snd_hda_set_vmaster_tlv(struct hda_codec *codec, hda_nid_t nid, int dir,
|
void snd_hda_set_vmaster_tlv(struct hda_codec *codec, hda_nid_t nid, int dir,
|
||||||
unsigned int *tlv);
|
unsigned int *tlv);
|
||||||
struct snd_kcontrol *snd_hda_find_mixer_ctl(struct hda_codec *codec,
|
struct snd_kcontrol *snd_hda_find_mixer_ctl(struct hda_codec *codec,
|
||||||
|
|
|
@ -621,7 +621,7 @@ static void alc_inv_dmic_sync_adc(struct hda_codec *codec, int adc_idx)
|
||||||
(dir == HDA_OUTPUT ? AC_AMP_SET_OUTPUT : AC_AMP_SET_INPUT);
|
(dir == HDA_OUTPUT ? AC_AMP_SET_OUTPUT : AC_AMP_SET_INPUT);
|
||||||
|
|
||||||
/* flush all cached amps at first */
|
/* flush all cached amps at first */
|
||||||
snd_hda_codec_flush_amp_cache(codec);
|
snd_hda_codec_flush_cache(codec);
|
||||||
|
|
||||||
/* we care only right channel */
|
/* we care only right channel */
|
||||||
val = snd_hda_codec_amp_read(codec, nid, 1, dir, 0);
|
val = snd_hda_codec_amp_read(codec, nid, 1, dir, 0);
|
||||||
|
|
Loading…
Add table
Reference in a new issue