return err;
 }
 
+/* macro for simplified cast */
+#define PARAM_MASK_BIT(b)      (1U << (__force int)(b))
+
 static bool hw_support_mmap(struct snd_pcm_substream *substream)
 {
        if (!(substream->runtime->hw.info & SNDRV_PCM_INFO_MMAP))
                        return -EINVAL;
 
                /* This parameter is not requested to change by a caller. */
-               if (!(params->rmask & (1 << k)))
+               if (!(params->rmask & PARAM_MASK_BIT(k)))
                        continue;
 
                if (trace_hw_mask_param_enabled())
 
                /* Set corresponding flag so that the caller gets it. */
                trace_hw_mask_param(substream, k, 0, &old_mask, m);
-               params->cmask |= 1 << k;
+               params->cmask |= PARAM_MASK_BIT(k);
        }
 
        return 0;
                        return -EINVAL;
 
                /* This parameter is not requested to change by a caller. */
-               if (!(params->rmask & (1 << k)))
+               if (!(params->rmask & PARAM_MASK_BIT(k)))
                        continue;
 
                if (trace_hw_interval_param_enabled())
 
                /* Set corresponding flag so that the caller gets it. */
                trace_hw_interval_param(substream, k, 0, &old_interval, i);
-               params->cmask |= 1 << k;
+               params->cmask |= PARAM_MASK_BIT(k);
        }
 
        return 0;
         * have 0 so that the parameters are never changed anymore.
         */
        for (k = 0; k <= SNDRV_PCM_HW_PARAM_LAST_INTERVAL; k++)
-               vstamps[k] = (params->rmask & (1 << k)) ? 1 : 0;
+               vstamps[k] = (params->rmask & PARAM_MASK_BIT(k)) ? 1 : 0;
 
        /* Due to the above design, actual sequence number starts at 2. */
        stamp = 2;
                                        hw_param_interval(params, r->var));
                        }
 
-                       params->cmask |= (1 << r->var);
+                       params->cmask |= PARAM_MASK_BIT(r->var);
                        vstamps[r->var] = stamp;
                        again = true;
                }
 
        params->info = 0;
        params->fifo_size = 0;
-       if (params->rmask & (1 << SNDRV_PCM_HW_PARAM_SAMPLE_BITS))
+       if (params->rmask & PARAM_MASK_BIT(SNDRV_PCM_HW_PARAM_SAMPLE_BITS))
                params->msbits = 0;
-       if (params->rmask & (1 << SNDRV_PCM_HW_PARAM_RATE)) {
+       if (params->rmask & PARAM_MASK_BIT(SNDRV_PCM_HW_PARAM_RATE)) {
                params->rate_num = 0;
                params->rate_den = 0;
        }
        unsigned int mask = 0;
 
         if (hw->info & SNDRV_PCM_INFO_INTERLEAVED)
-               mask |= 1 << SNDRV_PCM_ACCESS_RW_INTERLEAVED;
+               mask |= PARAM_MASK_BIT(SNDRV_PCM_ACCESS_RW_INTERLEAVED);
         if (hw->info & SNDRV_PCM_INFO_NONINTERLEAVED)
-               mask |= 1 << SNDRV_PCM_ACCESS_RW_NONINTERLEAVED;
+               mask |= PARAM_MASK_BIT(SNDRV_PCM_ACCESS_RW_NONINTERLEAVED);
        if (hw_support_mmap(substream)) {
                if (hw->info & SNDRV_PCM_INFO_INTERLEAVED)
-                       mask |= 1 << SNDRV_PCM_ACCESS_MMAP_INTERLEAVED;
+                       mask |= PARAM_MASK_BIT(SNDRV_PCM_ACCESS_MMAP_INTERLEAVED);
                if (hw->info & SNDRV_PCM_INFO_NONINTERLEAVED)
-                       mask |= 1 << SNDRV_PCM_ACCESS_MMAP_NONINTERLEAVED;
+                       mask |= PARAM_MASK_BIT(SNDRV_PCM_ACCESS_MMAP_NONINTERLEAVED);
                if (hw->info & SNDRV_PCM_INFO_COMPLEX)
-                       mask |= 1 << SNDRV_PCM_ACCESS_MMAP_COMPLEX;
+                       mask |= PARAM_MASK_BIT(SNDRV_PCM_ACCESS_MMAP_COMPLEX);
        }
        err = snd_pcm_hw_constraint_mask(runtime, SNDRV_PCM_HW_PARAM_ACCESS, mask);
        if (err < 0)
        if (err < 0)
                return err;
 
-       err = snd_pcm_hw_constraint_mask(runtime, SNDRV_PCM_HW_PARAM_SUBFORMAT, 1 << SNDRV_PCM_SUBFORMAT_STD);
+       err = snd_pcm_hw_constraint_mask(runtime, SNDRV_PCM_HW_PARAM_SUBFORMAT,
+                                        PARAM_MASK_BIT(SNDRV_PCM_SUBFORMAT_STD));
        if (err < 0)
                return err;