<p></p>
<p>><br>
> Without patch, with a latency of 48 ms </p>
<p>What is the meaning of 48ms at 44100Hz? <br><br></p>
<p>> With the patch, I get the same assertion failed as Peter ("frames > 0").<br>
> With Peter's change, I get this: <a href="http://pastebin.com/dWx6fiwT">http://pastebin.com/dWx6fiwT</a>, even with<br>
> no client connected. The reported delay is -5 * default-fragments *<br>
> default-fragment-size-msec.<br>
></p>
<p>Hwptr of usb audio is calculated from a variable subs->hwptr_done which update periodically when the  controller submit urbs</p>
<p>This mean this value won't change until next submit</p>
<p>/*<br>
 * return the current pcm pointer.  just based on the hwptr_done value.<br>
 */<br>
static snd_pcm_uframes_t snd_usb_pcm_pointer(struct snd_pcm_substream *substream)<br>
{<br>
        struct snd_usb_substream *subs;<br>
        unsigned int hwptr_done;</p>
<p>       subs = (struct snd_usb_substream *)substream->runtime->private_data;<br>
        if (subs->stream->chip->shutdown)<br>
                return SNDRV_PCM_POS_XRUN;<br>
        spin_lock(&subs->lock);<br>
        hwptr_done = subs->hwptr_done;<br>
        substream->runtime->delay = snd_usb_pcm_delay(subs,<br>
                                                substream->runtime->rate);<br>
        spin_unlock(&subs->lock);<br>
        return hwptr_done / (substream->runtime->frame_bits >> 3);<br>
}<br>
</p>