ALSA: wss_lib: snd_wss_calibrate_mute improvement
authorKrzysztof Helt <krzysztof.h1@wp.pl>
Sun, 17 Aug 2008 20:38:27 +0000 (22:38 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 25 Aug 2008 07:57:06 +0000 (09:57 +0200)
Mute sound by setting mute bit without
setting volume to 0. It makes both source code
and binary shorter.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
sound/isa/wss/wss_lib.c

index c5beec6..2a5defa 100644 (file)
@@ -574,7 +574,7 @@ static void snd_wss_calibrate_mute(struct snd_wss *chip, int mute)
 {
        unsigned long flags;
 
-       mute = mute ? 1 : 0;
+       mute = mute ? 0x80 : 0;
        spin_lock_irqsave(&chip->reg_lock, flags);
        if (chip->calibrate_mute == mute) {
                spin_unlock_irqrestore(&chip->reg_lock, flags);
@@ -589,34 +589,34 @@ static void snd_wss_calibrate_mute(struct snd_wss *chip, int mute)
                             chip->image[CS4231_LOOPBACK]);
        }
        snd_wss_dout(chip, CS4231_AUX1_LEFT_INPUT,
-                    mute ? 0x80 : chip->image[CS4231_AUX1_LEFT_INPUT]);
+                    mute | chip->image[CS4231_AUX1_LEFT_INPUT]);
        snd_wss_dout(chip, CS4231_AUX1_RIGHT_INPUT,
-                    mute ? 0x80 : chip->image[CS4231_AUX1_RIGHT_INPUT]);
+                    mute | chip->image[CS4231_AUX1_RIGHT_INPUT]);
        snd_wss_dout(chip, CS4231_AUX2_LEFT_INPUT,
-                    mute ? 0x80 : chip->image[CS4231_AUX2_LEFT_INPUT]);
+                    mute | chip->image[CS4231_AUX2_LEFT_INPUT]);
        snd_wss_dout(chip, CS4231_AUX2_RIGHT_INPUT,
-                    mute ? 0x80 : chip->image[CS4231_AUX2_RIGHT_INPUT]);
+                    mute | chip->image[CS4231_AUX2_RIGHT_INPUT]);
        snd_wss_dout(chip, CS4231_LEFT_OUTPUT,
-                    mute ? 0x80 : chip->image[CS4231_LEFT_OUTPUT]);
+                    mute | chip->image[CS4231_LEFT_OUTPUT]);
        snd_wss_dout(chip, CS4231_RIGHT_OUTPUT,
-                    mute ? 0x80 : chip->image[CS4231_RIGHT_OUTPUT]);
+                    mute | chip->image[CS4231_RIGHT_OUTPUT]);
        if (!(chip->hardware & WSS_HW_AD1848_MASK)) {
                snd_wss_dout(chip, CS4231_LEFT_LINE_IN,
-                            mute ? 0x80 : chip->image[CS4231_LEFT_LINE_IN]);
+                            mute | chip->image[CS4231_LEFT_LINE_IN]);
                snd_wss_dout(chip, CS4231_RIGHT_LINE_IN,
-                            mute ? 0x80 : chip->image[CS4231_RIGHT_LINE_IN]);
+                            mute | chip->image[CS4231_RIGHT_LINE_IN]);
                snd_wss_dout(chip, CS4231_MONO_CTRL,
                             mute ? 0xc0 : chip->image[CS4231_MONO_CTRL]);
        }
        if (chip->hardware == WSS_HW_INTERWAVE) {
                snd_wss_dout(chip, CS4231_LEFT_MIC_INPUT,
-                            mute ? 0x80 : chip->image[CS4231_LEFT_MIC_INPUT]);
+                            mute | chip->image[CS4231_LEFT_MIC_INPUT]);
                snd_wss_dout(chip, CS4231_RIGHT_MIC_INPUT,
-                            mute ? 0x80 : chip->image[CS4231_RIGHT_MIC_INPUT]);
+                            mute | chip->image[CS4231_RIGHT_MIC_INPUT]);
                snd_wss_dout(chip, CS4231_LINE_LEFT_OUTPUT,
-                       mute ? 0x80 : chip->image[CS4231_LINE_LEFT_OUTPUT]);
+                            mute | chip->image[CS4231_LINE_LEFT_OUTPUT]);
                snd_wss_dout(chip, CS4231_LINE_RIGHT_OUTPUT,
-                       mute ? 0x80 : chip->image[CS4231_LINE_RIGHT_OUTPUT]);
+                            mute | chip->image[CS4231_LINE_RIGHT_OUTPUT]);
        }
        chip->calibrate_mute = mute;
        spin_unlock_irqrestore(&chip->reg_lock, flags);