| Message ID | 20260508080031.4064272-1-arnd@kernel.org |
|---|---|
| State | Handled Elsewhere |
| Headers | show |
| Series | ASoC: tegra: fix build regression 32 bit kernels | expand |
On Fri, May 08, 2026 at 10:00:25AM +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Compile-testing this driver for 32-bit causes a build failure: > > x86_64-linux-ld: sound/soc/tegra/tegra210_mixer.o: in function `tegra210_mixer_configure_gain': > tegra210_mixer.c:(.text+0x709): undefined reference to `__udivdi3' > > As the driver is only actually used on 64-bit Tegra210, rework the > division to use the div_u64() helper that avoids the libgcc call. To be pedantic: the driver is also used on subsequent generations, but your argument of it only ever being used on 64-bit systems is correct, so: Acked-by: Thierry Reding <treding@nvidia.com>
On Fri, May 08, 2026 at 10:00:25AM +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Compile-testing this driver for 32-bit causes a build failure: > > x86_64-linux-ld: sound/soc/tegra/tegra210_mixer.o: in function `tegra210_mixer_configure_gain': > tegra210_mixer.c:(.text+0x709): undefined reference to `__udivdi3' Someone already sent this.
On Fri, May 08, 2026 at 09:51:27PM +0900, Mark Brown wrote: > On Fri, May 08, 2026 at 10:00:25AM +0200, Arnd Bergmann wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > > > Compile-testing this driver for 32-bit causes a build failure: > > > > x86_64-linux-ld: sound/soc/tegra/tegra210_mixer.o: in function `tegra210_mixer_configure_gain': > > tegra210_mixer.c:(.text+0x709): undefined reference to `__udivdi3' > > Someone already sent this. Indeed. Acked that one too. Thierry
diff --git a/sound/soc/tegra/tegra210_mixer.c b/sound/soc/tegra/tegra210_mixer.c index f05617b5f433..d21f55dad0e3 100644 --- a/sound/soc/tegra/tegra210_mixer.c +++ b/sound/soc/tegra/tegra210_mixer.c @@ -157,8 +157,8 @@ static int tegra210_mixer_configure_gain(struct snd_soc_component *cmpnt, if (i == DURATION_N3_ID) val = mixer->duration[id]; else if (i == DURATION_INV_N3_ID) - val = (u32)(BIT_ULL(31 + TEGRA210_MIXER_PRESCALAR) / - mixer->duration[id]); + val = div_u64(BIT_ULL(31 + TEGRA210_MIXER_PRESCALAR), + mixer->duration[id]); else val = gain_params.duration[i]; }