https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/sound/pci/rme9652/hdsp.c

static struct snd_pcm_hardware snd_hdsp_capture_subinfo =
{
        .info =                 (SNDRV_PCM_INFO_MMAP |
                                 SNDRV_PCM_INFO_MMAP_VALID |
                                 SNDRV_PCM_INFO_NONINTERLEAVED |
                                 SNDRV_PCM_INFO_SYNC_START),
#ifdef SNDRV_BIG_ENDIAN
        .formats =              SNDRV_PCM_FMTBIT_S32_BE,
#else
        .formats =              SNDRV_PCM_FMTBIT_S32_LE,
#endif
        .rates =                (SNDRV_PCM_RATE_32000 |
                                 SNDRV_PCM_RATE_44100 |
                                 SNDRV_PCM_RATE_48000 |
                                 SNDRV_PCM_RATE_64000 |
                                 SNDRV_PCM_RATE_88200 |
                                 SNDRV_PCM_RATE_96000),
        .rate_min =             32000,
        .rate_max =             96000,
        .channels_min =         5,
        .channels_max =         HDSP_MAX_CHANNELS,
        .buffer_bytes_max =     HDSP_CHANNEL_BUFFER_BYTES * HDSP_MAX_CHANNELS,
        .period_bytes_min =     (64 * 4) * 10,
        .period_bytes_max =     (8192 * 4) * HDSP_MAX_CHANNELS,
        .periods_min =          2,
        .periods_max =          2,
        .fifo_size =            0
};


only support 2 periods and non-interleaved access mode

pulseaudio cannot use 4 fragments

this mean one period of channel 1 , follow by one period of channel 2
,..., one period of channel n

seem has flag to control the precision of hw pointer


static snd_pcm_uframes_t hdsp_hw_pointer(struct hdsp *hdsp)
{
        int position;

        position = hdsp_read(hdsp, HDSP_statusRegister);

        if (!hdsp->precise_ptr)
                return (position & HDSP_BufferID) ? (hdsp->period_bytes / 4) : 
0;

        position &= HDSP_BufferPositionMask;
        position /= 4;
        position &= (hdsp->period_bytes/2) - 1;
        return position;
}

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1390474

Title:
  "Volume element PCM has 6 channels. That's too much!" - PA doesn't
  support elements with more than two channels

To manage notifications about this bug go to:
https://bugs.launchpad.net/pulseaudio/+bug/1390474/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to