mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
ASoC: atmel: Change manual bitfield manipulation to use FIELD_PREP()
Co-developed-by: Carlos Alberto Marques Rabelo <carlos.albmr@usp.br> Signed-off-by: Carlos Alberto Marques Rabelo <carlos.albmr@usp.br> Signed-off-by: Gabriel Jacob Perin <gabrieljp@usp.br> Link: https://patch.msgid.link/20260421193113.1060213-1-gabrieljp@usp.br Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
fc86d55e8b
commit
ae93afff98
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/string_choices.h>
|
||||
#include <sound/core.h>
|
||||
#include <sound/dmaengine_pcm.h>
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user