<p></p>
<p>><br>
><br>
> I have question something about selecting logic between timer-based and IRQ scheduling.<br>
><br>
> When I tried to load 'module-alsa-sink' with 'mmap=0 tsched=1' parameters, tsched(timer-based scheduling) becomes disabled by below codes.<br>
><br>
> It seems tsched is allowed only mmap supported ALSA devices. Why tsched disabled while use non-mmap driven ALSA?<br>
><br>
> So, I found able to use tsched with 'mmap=0' option with below workaround code.<br>
><br>
> I think it seems possible to use 'mmap=0 tsched=1' together. There are any reasons for that?<br>
></p>
<p>Do you mean your sound card does not support mmap but you want to try timer scheduling ?<br></p>
<p> } else if ((ret = snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0) {<br>
        pa_log_debug("snd_pcm_hw_params_set_access() failed: %s", pa_alsa_strerror(ret));<br>
        goto finish;<br>
    }</p>
<p>    if (!_use_mmap)<br>
        _use_tsched = false;</p>
<p>Seem pulseaudio disable timer scheduling when driver does not support SND_PCM_ACCESS_RW_INTERLEAVED (e.g. surround40 or surround51 of those creative sound cards emu10k1 and ca0106 use multi plugin but pulseaudio does not support SND_PCM_ACCESS_MMAP_COMPLEX‎ )<br></p>
<p>    if (!pa_alsa_pcm_is_hw(pcm_handle))<br>
        _use_tsched = false;</p>
<p>    /* The PCM pointer is only updated with period granularity */<br>
    if (snd_pcm_hw_params_is_batch(hwparams)) {<br>
        pa_log_info("Disabling tsched mode since BATCH flag is set");<br>
        _use_tsched = false;<br>
    }</p>