OSDN Git Service

ASoC: codecs: msm8916: fix invalid cast to bool type
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 2 May 2017 13:33:01 +0000 (22:33 +0900)
committerMark Brown <broonie@kernel.org>
Sun, 14 May 2017 09:58:03 +0000 (18:58 +0900)
A function snd_soc_update_bits() is an application of
regmap_update_bits_base(). This function takes some arguments for bitmask
and new value, thus the arguments should be a type which has width.
However bool is used to variable for the argument. This brings truncation
and results in invalid operation.

This commit fixes this bug by using unsigned int type, instead of bool.
This bug is detected by sparse:

smsm8916-wcd-analog.c:809:43: warning: odd constant _Bool cast (40 becomes 1)
smsm8916-wcd-analog.c:814:43: warning: odd constant _Bool cast (40 becomes 1)

Fixes: 585e881e5b9e ("ASoC: codecs: Add msm8916-wcd analog codec")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/msm8916-wcd-analog.c

index d8e8590..a788029 100644 (file)
@@ -223,8 +223,8 @@ struct pm8916_wcd_analog_priv {
        u16 codec_version;
        struct clk *mclk;
        struct regulator_bulk_data supplies[ARRAY_SIZE(supply_names)];
-       bool micbias1_cap_mode;
-       bool micbias2_cap_mode;
+       unsigned int micbias1_cap_mode;
+       unsigned int micbias2_cap_mode;
 };
 
 static const char *const adc2_mux_text[] = { "ZERO", "INP2", "INP3" };
@@ -285,7 +285,7 @@ static void pm8916_wcd_analog_micbias_enable(struct snd_soc_codec *codec)
 
 static int pm8916_wcd_analog_enable_micbias_ext(struct snd_soc_codec
                                                 *codec, int event,
-                                                int reg, u32 cap_mode)
+                                                int reg, unsigned int cap_mode)
 {
        switch (event) {
        case SND_SOC_DAPM_POST_PMU: