]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ASoC: amd: use do_div rather than 64 bit division to fix 32 bit builds
authorGuenter Roeck <groeck@chromium.org>
Wed, 8 Nov 2017 21:34:54 +0000 (16:34 -0500)
committerMark Brown <broonie@kernel.org>
Wed, 8 Nov 2017 21:42:17 +0000 (21:42 +0000)
ERROR: "__aeabi_uldivmod" [sound/soc/amd/snd-soc-acp-pcm.ko] undefined!

64-bit divides require special operations to avoid build errors on 32-bit
systems.

[Reword the commit message to make it clearer - Alex]

fixes: 61add8147942 (ASoC: amd: Report accurate hw_ptr during dma)
Signed-off-by: Guenter Roeck <groeck@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/678919
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/681618
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/acp-pcm-dma.c

index 13d040a4d26f6aa747db48c9b661e823e8e9737e..ef7e98ad960c0c7e5a1011c686de956bd0e2a671 100644 (file)
@@ -856,12 +856,11 @@ static snd_pcm_uframes_t acp_dma_pointer(struct snd_pcm_substream *substream)
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
                if (bytescount > rtd->renderbytescount)
                        bytescount = bytescount - rtd->renderbytescount;
-               pos =  bytescount % buffersize;
        } else {
                if (bytescount > rtd->capturebytescount)
                        bytescount = bytescount - rtd->capturebytescount;
-               pos = bytescount % buffersize;
        }
+       pos = do_div(bytescount, buffersize);
        return bytes_to_frames(runtime, pos);
 }