Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cdc5c53f authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela
Browse files

[ALSA] Fix compilation on 32bit arch



ALSA<-OSS emulation
Fix the division with int64 for 32bit architectures.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent a6c17ec8
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -129,7 +129,16 @@ static long snd_pcm_oss_bytes(snd_pcm_substream_t *substream, long frames)
	long bytes = frames_to_bytes(runtime, frames);
	if (buffer_size == runtime->oss.buffer_bytes)
		return bytes;
	return (long)(((int64_t)runtime->oss.buffer_bytes * (int64_t)bytes) / (int64_t)buffer_size);
#if BITS_PER_LONG >= 64
	return runtime->oss.buffer_bytes * bytes / buffer_size;
#else
	{
		u64 bsize = (u64)runtime->oss.buffer_bytes * (u64)bytes;
		u32 rem;
		div64_32(&bsize, buffer_size, &rem);
		return (long)bsize;
	}
#endif
}

static long snd_pcm_alsa_frames(snd_pcm_substream_t *substream, long bytes)