diff options
Diffstat (limited to 'pcm.c')
-rw-r--r-- | pcm.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -547,10 +547,13 @@ struct pcm *pcm_open(unsigned int card, unsigned int device, | |||
547 | sparams.tstamp_mode = SNDRV_PCM_TSTAMP_ENABLE; | 547 | sparams.tstamp_mode = SNDRV_PCM_TSTAMP_ENABLE; |
548 | sparams.period_step = 1; | 548 | sparams.period_step = 1; |
549 | 549 | ||
550 | if (!config->start_threshold) | 550 | if (!config->start_threshold) { |
551 | pcm->config.start_threshold = sparams.start_threshold = | 551 | if (pcm->flags & PCM_IN) |
552 | config->period_count * config->period_size / 2; | 552 | pcm->config.start_threshold = sparams.start_threshold = 1; |
553 | else | 553 | else |
554 | pcm->config.start_threshold = sparams.start_threshold = | ||
555 | config->period_count * config->period_size / 2; | ||
556 | } else | ||
554 | sparams.start_threshold = config->start_threshold; | 557 | sparams.start_threshold = config->start_threshold; |
555 | 558 | ||
556 | /* pick a high stop threshold - todo: does this need further tuning */ | 559 | /* pick a high stop threshold - todo: does this need further tuning */ |