ALSA: pcm: use helper function to refer parameter as read-only
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 16 May 2017 23:48:20 +0000 (08:48 +0900)
committerTakashi Iwai <tiwai@suse.de>
Wed, 17 May 2017 05:24:39 +0000 (07:24 +0200)
ALSA pcm core has hw_param_interval_c() to pick up parameter with const
qualifier for safe programming.

This commit applies it to the cases.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/oss/pcm_oss.c
sound/core/pcm_drm_eld.c
sound/core/pcm_lib.c
sound/core/pcm_native.c

index 36baf962f9b081649c07902a16abfee6932d79ad..2a473513bd54bf54d2f98b2610870dda2f259598 100644 (file)
@@ -799,7 +799,7 @@ static int snd_pcm_oss_period_size(struct snd_pcm_substream *substream,
 static int choose_rate(struct snd_pcm_substream *substream,
                       struct snd_pcm_hw_params *params, unsigned int best_rate)
 {
-       struct snd_interval *it;
+       const struct snd_interval *it;
        struct snd_pcm_hw_params *save;
        unsigned int rate, prev;
 
@@ -807,7 +807,7 @@ static int choose_rate(struct snd_pcm_substream *substream,
        if (save == NULL)
                return -ENOMEM;
        *save = *params;
-       it = hw_param_interval(save, SNDRV_PCM_HW_PARAM_RATE);
+       it = hw_param_interval_c(save, SNDRV_PCM_HW_PARAM_RATE);
 
        /* try multiples of the best rate */
        rate = best_rate;
index e70379fb63d01802a6112e6e932a57b41b23ddfa..9881d087756f520b33285e85ba12ebfefce82672 100644 (file)
@@ -29,13 +29,13 @@ static int eld_limit_rates(struct snd_pcm_hw_params *params,
                           struct snd_pcm_hw_rule *rule)
 {
        struct snd_interval *r = hw_param_interval(params, rule->var);
-       struct snd_interval *c;
+       const struct snd_interval *c;
        unsigned int rate_mask = 7, i;
        const u8 *sad, *eld = rule->private;
 
        sad = drm_eld_sad(eld);
        if (sad) {
-               c = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS);
+               c = hw_param_interval_c(params, SNDRV_PCM_HW_PARAM_CHANNELS);
 
                for (i = drm_eld_sad_count(eld); i > 0; i--, sad += 3) {
                        unsigned max_channels = sad_max_channels(sad);
@@ -57,7 +57,7 @@ static int eld_limit_channels(struct snd_pcm_hw_params *params,
                              struct snd_pcm_hw_rule *rule)
 {
        struct snd_interval *c = hw_param_interval(params, rule->var);
-       struct snd_interval *r;
+       const struct snd_interval *r;
        struct snd_interval t = { .min = 1, .max = 2, .integer = 1, };
        unsigned int i;
        const u8 *sad, *eld = rule->private;
@@ -67,7 +67,7 @@ static int eld_limit_channels(struct snd_pcm_hw_params *params,
                unsigned int rate_mask = 0;
 
                /* Convert the rate interval to a mask */
-               r = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE);
+               r = hw_param_interval_c(params, SNDRV_PCM_HW_PARAM_RATE);
                for (i = 0; i < ARRAY_SIZE(eld_rates); i++)
                        if (r->min <= eld_rates[i] && r->max >= eld_rates[i])
                                rate_mask |= BIT(i);
index 5088d4b8db2222e28a71baaa4db7c70a30997e48..af439e5554b6612c068b6d7f04104ef4cf0b519b 100644 (file)
@@ -1415,7 +1415,8 @@ static int snd_pcm_hw_rule_msbits(struct snd_pcm_hw_params *params,
        unsigned int l = (unsigned long) rule->private;
        int width = l & 0xffff;
        unsigned int msbits = l >> 16;
-       struct snd_interval *i = hw_param_interval(params, SNDRV_PCM_HW_PARAM_SAMPLE_BITS);
+       const struct snd_interval *i =
+               hw_param_interval_c(params, SNDRV_PCM_HW_PARAM_SAMPLE_BITS);
 
        if (!snd_interval_single(i))
                return 0;
index d5a967b57bb443ee479b7ce1bb1c6a039bd099aa..f3a3580eb44caa0402069d1f54f0e4637edb742e 100644 (file)
@@ -1940,7 +1940,8 @@ static int snd_pcm_hw_rule_format(struct snd_pcm_hw_params *params,
                                  struct snd_pcm_hw_rule *rule)
 {
        unsigned int k;
-       struct snd_interval *i = hw_param_interval(params, rule->deps[0]);
+       const struct snd_interval *i =
+                               hw_param_interval_c(params, rule->deps[0]);
        struct snd_mask m;
        struct snd_mask *mask = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT);
        snd_mask_any(&m);