All of lore.kernel.org
 help / color / mirror / Atom feed
* DMA buffer alignment
@ 2014-12-04 15:54 Carlo Caione
  2014-12-04 16:20 ` Clemens Ladisch
  2014-12-05  2:23 ` Raymond Yau
  0 siblings, 2 replies; 5+ messages in thread
From: Carlo Caione @ 2014-12-04 15:54 UTC (permalink / raw)
  To: alsa-devel

Hi,
I'm working with a SoC sound hw that requires that all the data
written into the DMA memory is aligned a 64 byte boundary. Actually
the alignment is required since the format of the data into the DMA
memory is (for a 2 channel 16bit audio): 16 samples for the left
channel followed by 16 samples for the right channel. If I try to
write anything that is not aligned to the 64 bytes I got audio
corruption (high pitched noise).
Several user-space programs (like aplay) work well with my hw, since
the buffer sent from the user-space is always (padded) of period-size
bytes, that is aligned to my 64 bytes boundary. Others (like
speaker-test) are not working because sometimes they snd_pcm_writei()
a buffer that is not multiple of 64 bytes. In general every time I
write into the DMA area a buffer that is not aligned, my hw pointer is
not aligned anymore with the 64 bytes and the noise starts.

IIUC it is not possible to force the user-space programs to send
buffers with a fixed size so the problem should be solved in
kernel-space (am I wrong on this point?).
Any suggestion on how to tackle this problem?

Thanks,

-- 
Carlo Caione

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-12-05 11:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-04 15:54 DMA buffer alignment Carlo Caione
2014-12-04 16:20 ` Clemens Ladisch
2014-12-05  1:04   ` Carlo Caione
2014-12-05 11:34     ` Clemens Ladisch
2014-12-05  2:23 ` Raymond Yau

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.