ALSA: hda - Combine snd_hda_codec_flush_*_cache() to a single function
authorTakashi Iwai <tiwai@suse.de>
Tue, 22 Jan 2013 14:24:30 +0000 (15:24 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 22 Jan 2013 14:25:25 +0000 (15:25 +0100)
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>
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_codec.h
sound/pci/hda/hda_generic.c
sound/pci/hda/hda_local.h
sound/pci/hda/patch_realtek.c

index e6cdad713734dc9a1af62a31511ca81440775848..77ddd34fffedc045115c274e8bf301d996dcfa48 100644 (file)
@@ -3637,6 +3637,17 @@ void snd_hda_sequence_write_cache(struct hda_codec *codec,
 }
 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,
                                    unsigned int power_state,
                                    bool eapd_workaround)
index 61085b311059bf03ac12c571b264d5509f59694d..cc73287341dec72ff670986fcd52d8faa2b855b9 100644 (file)
@@ -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 direct, unsigned int verb, unsigned int parm);
 void snd_hda_codec_resume_cache(struct hda_codec *codec);
-
-/* it's alias but a bit clearer meaning */
-#define snd_hda_codec_flush_cmd_cache(codec) \
-       snd_hda_codec_resume_cache(codec)
+/* both for cmd & amp caches */
+void snd_hda_codec_flush_cache(struct hda_codec *codec);
 
 /* the struct for codec->pin_configs */
 struct hda_pincfg {
index b301952dc081077fda49a38d3addcda10f434483..758dcc1a07b0d634e1dd93f1502f6bde6390f6fe 100644 (file)
@@ -2839,8 +2839,7 @@ static int cap_put_caller(struct snd_kcontrol *kcontrol,
  error:
        codec->cached_write = 0;
        mutex_unlock(&codec->control_mutex);
-       snd_hda_codec_flush_amp_cache(codec); /* flush the updates */
-       snd_hda_codec_flush_cmd_cache(codec);
+       snd_hda_codec_flush_cache(codec); /* flush the updates */
        if (err >= 0 && spec->cap_sync_hook)
                spec->cap_sync_hook(codec, ucontrol);
        return err;
@@ -4773,8 +4772,7 @@ int snd_hda_gen_init(struct hda_codec *codec)
        /* call init functions of standard auto-mute helpers */
        update_automute_all(codec);
 
-       snd_hda_codec_flush_amp_cache(codec);
-       snd_hda_codec_flush_cmd_cache(codec);
+       snd_hda_codec_flush_cache(codec);
 
        if (spec->vmaster_mute.sw_kctl && spec->vmaster_mute.hook)
                snd_hda_sync_vmaster_hook(&spec->vmaster_mute);
index 9e6353aafb1a46197b6a57263423037689d24c1a..f92979c6b023d91679c3a553599010c5d9433c70 100644 (file)
@@ -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);
 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,
                             unsigned int *tlv);
 struct snd_kcontrol *snd_hda_find_mixer_ctl(struct hda_codec *codec,
index 6eb9551e97236e1eaebf237ebb31df152d609e98..feb8cef341e0f60eeb87a1dbb5873425c085bc1b 100644 (file)
@@ -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);
 
        /* flush all cached amps at first */
-       snd_hda_codec_flush_amp_cache(codec);
+       snd_hda_codec_flush_cache(codec);
 
        /* we care only right channel */
        val = snd_hda_codec_amp_read(codec, nid, 1, dir, 0);