Re: [PATCH] [v2] ASoC: sophgo: fix 64-bit division build failure

Alexander Sverdlin <[email protected]>
Newsgroups dev.linux.lists.sophgo,org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound
Message-ID <[email protected]>
On Mon, 2026-02-02 at 22:59 +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
> 
> cv1800b_adc_setbclk_div() does four 64-bit divisions in a row, which
> is rather inefficient on 32-bit systems, and using the plain division
> causes a build failure as a result:
> 
> ERROR: modpost: "__aeabi_uldivmod" [sound/soc/sophgo/cv1800b-sound-adc.ko] undefined!
> 
> As the input value is actually a 32-bit integer, just change the type
> of the temporary value as well.
> 
> Fixes: 4cf8752a03e6 ("ASoC: sophgo: add CV1800B internal ADC codec driver")
> Suggested-by: Alexander Sverdlin <[email protected]>
> Signed-off-by: Arnd Bergmann <[email protected]>

Reviewed-by: Alexander Sverdlin <[email protected]>

> ---
>  sound/soc/sophgo/cv1800b-sound-adc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/sophgo/cv1800b-sound-adc.c b/sound/soc/sophgo/cv1800b-sound-adc.c
> index 794030b713e9..de1c77014c2f 100644
> --- a/sound/soc/sophgo/cv1800b-sound-adc.c
> +++ b/sound/soc/sophgo/cv1800b-sound-adc.c
> @@ -100,7 +100,7 @@ static int cv1800b_adc_setbclk_div(struct cv1800b_priv *priv, unsigned int rate)
>  {
>  	u32 val;
>  	u32 bclk_div;
> -	u64 tmp;
> +	u32 tmp;
>  
>  	if (!priv->mclk_rate || !rate)
>  		return -EINVAL;
> @@ -117,7 +117,7 @@ static int cv1800b_adc_setbclk_div(struct cv1800b_priv *priv, unsigned int rate)
>  	}
>  
>  	if (tmp > 256) {
> -		dev_err(priv->dev, "BCLK divider %llu out of range\n", tmp);
> +		dev_err(priv->dev, "BCLK divider %u out of range\n", tmp);
>  		return -EINVAL;
>  	}
>  

-- 
Alexander Sverdlin.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.