<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>