<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - protocol-native: I get endless underruns when I playback when alsa buffer size is small"
href="https://bugs.freedesktop.org/show_bug.cgi?id=84878#c6">Comment # 6</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - protocol-native: I get endless underruns when I playback when alsa buffer size is small"
href="https://bugs.freedesktop.org/show_bug.cgi?id=84878">bug 84878</a>
from <span class="vcard"><a class="email" href="mailto:prahal@yahoo.com" title="Alban Browaeys <prahal@yahoo.com>"> <span class="fn">Alban Browaeys</span></a>
</span></b>
<pre>(In reply to Raymond from <a href="show_bug.cgi?id=84878#c1">comment #1</a>)
<span class="quote">> seem your sound card support DMA_RESIDUE_GRANULARITY_SEGMENT if the residue
> Residue is updated after each successfully completed segment of the transfer
>
> as your sound card does not have hardware register to count the number of
> dma transfer
>
> <a href="https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/include/">https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/include/</a>
> linux/dmaengine.h
>
>
> @DMA_RESIDUE_GRANULARITY_SEGMENT: Residue is updated after each successfully
> * completed segment of the transfer (For cyclic transfers this is after
> each
> * period). This is typically implemented by having the hardware generate an
> * interrupt after each transferred segment and then the drivers updates the
> * outstanding residue by the size of the segment. Another possibility is if
> * the hardware supports scatter-gather and the segment descriptor has a
> field
> * which gets set after the segment has been completed. The driver then
> counts
> * the number of segments without the flag set to compute the residue.
> * @DMA_RESIDUE_GRANULARITY_BURST: Residue is updated after each transferred
> * burst. This is typically only supported if the hardware has a progress
> * register of some sort (E.g. a register with the current read/write
> address
> * or a register with the amount of bursts/beats/bytes that have been
> * transferred or still need to be transferred).</span >
As of now my only clue regarding this is printk output. (In reply to Raymond
from <a href="show_bug.cgi?id=84878#c3">comment #3</a>)
<span class="quote">> if your sound card can report DMA_RESIDUE_GRANULARITY_BRUST
>
>
> <a href="http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081501">http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081501</a>.
> html
>
> what is the DMA brust size?</span >
I am still looking for this. Sorry for the lag.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>