obrigado pela sua resposta.
Colocará a pergunta no stackoverflow.
Se você puder ajudar mais, aqui está o que você pediu.
defina DEFAULT_PERIOD_SIZE (4096)
defina DEFAULT_NO_OF_PERIODS (1024)
static struct snd_pcm_hardware xxx_playback =
{
.info = SNDRV_PCM_INFO_MMAP |
SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_MMAP_VALID |
SNDRV_PCM_INFO_SYNC_START,
.formats = SNDRV_PCM_FMTBIT_S16_LE,
.rates = (SNDRV_PCM_RATE_8000 | \
SNDRV_PCM_RATE_16000 | \
SNDRV_PCM_RATE_48000 | \
SNDRV_PCM_RATE_96000),
.rate_min = 8000,
.rate_max = 96000,
.channels_min = 1,
.channels_max = 1,
.buffer_bytes_max = (DEFAULT_PERIOD_SIZE * DEFAULT_NO_OF_PERIODS),
.period_bytes_min = DEFAULT_PERIOD_SIZE,
.period_bytes_max = DEFAULT_PERIOD_SIZE,
.periods_min = DEFAULT_NO_OF_PERIODS,
.periods_max = DEFAULT_NO_OF_PERIODS,
};
Valores semelhantes para a estrutura snd_pcm_hardware do lado das capturas.
Por favor, note que os seguintes valores abaixo serão substituídos no ponto de entrada de abertura da reprodução, com base na configuração atual do teste de áudio: (o usuário fornece o formato de áudio, a taxa de áudio, a contagem de canais através dos parâmetros do módulo como entradas para o driver, que são recarregados na estrutura snd_pcm_hardware)
xxx_playback.formats,
xxx_playback.rates,
xxx_playback.rate_min, xxx_playback.rate_max,
xxx_playback.channels_min, xxx_playback.channels_max
(Similarmente valores substituídos na estrutura snd_pcm_hardware no lado da captura)