From: Gabriel Jacob Perin Date: Tue, 21 Apr 2026 19:31:13 +0000 (-0300) Subject: ASoC: atmel: Change manual bitfield manipulation to use FIELD_PREP() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae93afff9818ae59e6434d1a202d3ed2540fa46d;p=thirdparty%2Flinux.git ASoC: atmel: Change manual bitfield manipulation to use FIELD_PREP() Co-developed-by: Carlos Alberto Marques Rabelo Signed-off-by: Carlos Alberto Marques Rabelo Signed-off-by: Gabriel Jacob Perin Link: https://patch.msgid.link/20260421193113.1060213-1-gabrieljp@usp.br Signed-off-by: Mark Brown --- diff --git a/sound/soc/atmel/atmel-classd.c b/sound/soc/atmel/atmel-classd.c index 1f8c60d2de823..6693bdcbb8f58 100644 --- a/sound/soc/atmel/atmel-classd.c +++ b/sound/soc/atmel/atmel-classd.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -236,34 +237,34 @@ static int atmel_classd_component_probe(struct snd_soc_component *component) u32 mask, val; mask = CLASSD_MR_PWMTYP_MASK; - val = pdata->pwm_type << CLASSD_MR_PWMTYP_SHIFT; + val = FIELD_PREP(CLASSD_MR_PWMTYP_MASK, pdata->pwm_type); mask |= CLASSD_MR_NON_OVERLAP_MASK; if (pdata->non_overlap_enable) { - val |= (CLASSD_MR_NON_OVERLAP_EN - << CLASSD_MR_NON_OVERLAP_SHIFT); + val |= FIELD_PREP(CLASSD_MR_NON_OVERLAP_MASK, + CLASSD_MR_NON_OVERLAP_EN); mask |= CLASSD_MR_NOVR_VAL_MASK; switch (pdata->non_overlap_time) { case 5: - val |= (CLASSD_MR_NOVR_VAL_5NS - << CLASSD_MR_NOVR_VAL_SHIFT); + val |= FIELD_PREP(CLASSD_MR_NOVR_VAL_MASK, + CLASSD_MR_NOVR_VAL_5NS); break; case 10: - val |= (CLASSD_MR_NOVR_VAL_10NS - << CLASSD_MR_NOVR_VAL_SHIFT); + val |= FIELD_PREP(CLASSD_MR_NOVR_VAL_MASK, + CLASSD_MR_NOVR_VAL_10NS); break; case 15: - val |= (CLASSD_MR_NOVR_VAL_15NS - << CLASSD_MR_NOVR_VAL_SHIFT); + val |= FIELD_PREP(CLASSD_MR_NOVR_VAL_MASK, + CLASSD_MR_NOVR_VAL_15NS); break; case 20: - val |= (CLASSD_MR_NOVR_VAL_20NS - << CLASSD_MR_NOVR_VAL_SHIFT); + val |= FIELD_PREP(CLASSD_MR_NOVR_VAL_MASK, + CLASSD_MR_NOVR_VAL_20NS); break; default: - val |= (CLASSD_MR_NOVR_VAL_10NS - << CLASSD_MR_NOVR_VAL_SHIFT); + val |= FIELD_PREP(CLASSD_MR_NOVR_VAL_MASK, + CLASSD_MR_NOVR_VAL_10NS); dev_warn(component->dev, "non-overlapping value %d is invalid, the default value 10 is specified\n", pdata->non_overlap_time); @@ -370,8 +371,10 @@ atmel_classd_cpu_dai_hw_params(struct snd_pcm_substream *substream, return ret; mask = CLASSD_INTPMR_DSP_CLK_FREQ_MASK | CLASSD_INTPMR_FRAME_MASK; - val = (sample_rates[best].dsp_clk << CLASSD_INTPMR_DSP_CLK_FREQ_SHIFT) - | (sample_rates[best].sample_rate << CLASSD_INTPMR_FRAME_SHIFT); + val = FIELD_PREP(CLASSD_INTPMR_DSP_CLK_FREQ_MASK, + sample_rates[best].dsp_clk) | + FIELD_PREP(CLASSD_INTPMR_FRAME_MASK, + sample_rates[best].sample_rate); snd_soc_component_update_bits(component, CLASSD_INTPMR, mask, val); @@ -395,8 +398,8 @@ static int atmel_classd_cpu_dai_prepare(struct snd_pcm_substream *substream, snd_soc_component_update_bits(component, CLASSD_MR, CLASSD_MR_LEN_MASK | CLASSD_MR_REN_MASK, - (CLASSD_MR_LEN_DIS << CLASSD_MR_LEN_SHIFT) - |(CLASSD_MR_REN_DIS << CLASSD_MR_REN_SHIFT)); + FIELD_PREP(CLASSD_MR_LEN_MASK, CLASSD_MR_LEN_DIS) | + FIELD_PREP(CLASSD_MR_REN_MASK, CLASSD_MR_REN_DIS)); return 0; } @@ -418,8 +421,8 @@ static int atmel_classd_cpu_dai_trigger(struct snd_pcm_substream *substream, case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: - val = (CLASSD_MR_LEN_DIS << CLASSD_MR_LEN_SHIFT) - | (CLASSD_MR_REN_DIS << CLASSD_MR_REN_SHIFT); + val = FIELD_PREP(CLASSD_MR_LEN_MASK, CLASSD_MR_LEN_DIS) | + FIELD_PREP(CLASSD_MR_REN_MASK, CLASSD_MR_REN_DIS); break; default: return -EINVAL;