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 Desktop
Packages, which is subscribed to pulseaudio in 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

Status in PulseAudio:
  Unknown
Status in pulseaudio package in Ubuntu:
  Fix Released

Bug description:
  When connecting the Terratec PHASE26 in 16/48 mode (6 channels) I get the 
error "Volume element PCM has 6 channels. That's too much! I can't handle 
that!"  and the card fails to show up in Sound Settings.
  Everything is fine with 24/48 mode (2 channels).

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

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to