ALSA: emu10k1: factor out snd_emu10k1_compose_audigy_sendamounts()
authorOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Tue, 16 May 2023 09:36:12 +0000 (11:36 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 17 May 2023 15:04:36 +0000 (17:04 +0200)
Saves a bit of code duplication.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230516093612.3536451-7-oswald.buddenhagen@gmx.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/emu10k1.h
sound/pci/emu10k1/emumixer.c
sound/pci/emu10k1/emupcm.c

index 5c1e5b1..456af84 100644 (file)
@@ -1501,6 +1501,9 @@ struct snd_emu10k1_pcm_mixer {
 #define snd_emu10k1_compose_audigy_fxrt2(route) \
 ((unsigned int)route[4] | ((unsigned int)route[5] << 8) | ((unsigned int)route[6] << 16) | ((unsigned int)route[7] << 24))
 
+#define snd_emu10k1_compose_audigy_sendamounts(vol) \
+(((unsigned int)vol[4] << 24) | ((unsigned int)vol[5] << 16) | ((unsigned int)vol[6] << 8) | (unsigned int)vol[7])
+
 struct snd_emu10k1_memblk {
        struct snd_util_memblk mem;
        /* private part */
index e067a40..1ebf161 100644 (file)
@@ -1196,11 +1196,8 @@ static void update_emu10k1_send_volume(struct snd_emu10k1 *emu, int voice, unsig
        snd_emu10k1_ptr_write(emu, PSST_FXSENDAMOUNT_C, voice, volume[2]);
        snd_emu10k1_ptr_write(emu, DSL_FXSENDAMOUNT_D, voice, volume[3]);
        if (emu->audigy) {
-               unsigned int val = ((unsigned int)volume[4] << 24) |
-                       ((unsigned int)volume[5] << 16) |
-                       ((unsigned int)volume[6] << 8) |
-                       (unsigned int)volume[7];
-               snd_emu10k1_ptr_write(emu, A_SENDAMOUNTS, voice, val);
+               snd_emu10k1_ptr_write(emu, A_SENDAMOUNTS, voice,
+                                     snd_emu10k1_compose_audigy_sendamounts(volume));
        }
 }
 
index 4ade0ef..d669f93 100644 (file)
@@ -316,10 +316,7 @@ static void snd_emu10k1_pcm_init_voice(struct snd_emu10k1 *emu,
                snd_emu10k1_ptr_write(emu, A_FXRT2, voice,
                                      snd_emu10k1_compose_audigy_fxrt2(send_routing));
                snd_emu10k1_ptr_write(emu, A_SENDAMOUNTS, voice,
-                                     ((unsigned int)send_amount[4] << 24) |
-                                     ((unsigned int)send_amount[5] << 16) |
-                                     ((unsigned int)send_amount[6] << 8) |
-                                     (unsigned int)send_amount[7]);
+                                     snd_emu10k1_compose_audigy_sendamounts(send_amount));
        } else
                snd_emu10k1_ptr_write(emu, FXRT, voice,
                                      snd_emu10k1_compose_send_routing(send_routing));