|
@@ -413,7 +413,6 @@ static int snd_pcm_hw_params(struct snd_pcm_substream *substream,
|
|
runtime->period_size = params_period_size(params);
|
|
runtime->period_size = params_period_size(params);
|
|
runtime->periods = params_periods(params);
|
|
runtime->periods = params_periods(params);
|
|
runtime->buffer_size = params_buffer_size(params);
|
|
runtime->buffer_size = params_buffer_size(params);
|
|
- runtime->tick_time = params_tick_time(params);
|
|
|
|
runtime->info = params->info;
|
|
runtime->info = params->info;
|
|
runtime->rate_num = params->rate_num;
|
|
runtime->rate_num = params->rate_num;
|
|
runtime->rate_den = params->rate_den;
|
|
runtime->rate_den = params->rate_den;
|
|
@@ -433,7 +432,6 @@ static int snd_pcm_hw_params(struct snd_pcm_substream *substream,
|
|
/* Default sw params */
|
|
/* Default sw params */
|
|
runtime->tstamp_mode = SNDRV_PCM_TSTAMP_NONE;
|
|
runtime->tstamp_mode = SNDRV_PCM_TSTAMP_NONE;
|
|
runtime->period_step = 1;
|
|
runtime->period_step = 1;
|
|
- runtime->sleep_min = 0;
|
|
|
|
runtime->control->avail_min = runtime->period_size;
|
|
runtime->control->avail_min = runtime->period_size;
|
|
runtime->start_threshold = 1;
|
|
runtime->start_threshold = 1;
|
|
runtime->stop_threshold = runtime->buffer_size;
|
|
runtime->stop_threshold = runtime->buffer_size;
|
|
@@ -542,7 +540,6 @@ static int snd_pcm_sw_params(struct snd_pcm_substream *substream,
|
|
}
|
|
}
|
|
snd_pcm_stream_lock_irq(substream);
|
|
snd_pcm_stream_lock_irq(substream);
|
|
runtime->tstamp_mode = params->tstamp_mode;
|
|
runtime->tstamp_mode = params->tstamp_mode;
|
|
- runtime->sleep_min = params->sleep_min;
|
|
|
|
runtime->period_step = params->period_step;
|
|
runtime->period_step = params->period_step;
|
|
runtime->control->avail_min = params->avail_min;
|
|
runtime->control->avail_min = params->avail_min;
|
|
runtime->start_threshold = params->start_threshold;
|
|
runtime->start_threshold = params->start_threshold;
|
|
@@ -551,10 +548,6 @@ static int snd_pcm_sw_params(struct snd_pcm_substream *substream,
|
|
runtime->silence_size = params->silence_size;
|
|
runtime->silence_size = params->silence_size;
|
|
params->boundary = runtime->boundary;
|
|
params->boundary = runtime->boundary;
|
|
if (snd_pcm_running(substream)) {
|
|
if (snd_pcm_running(substream)) {
|
|
- if (runtime->sleep_min)
|
|
|
|
- snd_pcm_tick_prepare(substream);
|
|
|
|
- else
|
|
|
|
- snd_pcm_tick_set(substream, 0);
|
|
|
|
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
|
|
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
|
|
runtime->silence_size > 0)
|
|
runtime->silence_size > 0)
|
|
snd_pcm_playback_silence(substream, ULONG_MAX);
|
|
snd_pcm_playback_silence(substream, ULONG_MAX);
|
|
@@ -865,8 +858,6 @@ static void snd_pcm_post_start(struct snd_pcm_substream *substream, int state)
|
|
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
|
|
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
|
|
runtime->silence_size > 0)
|
|
runtime->silence_size > 0)
|
|
snd_pcm_playback_silence(substream, ULONG_MAX);
|
|
snd_pcm_playback_silence(substream, ULONG_MAX);
|
|
- if (runtime->sleep_min)
|
|
|
|
- snd_pcm_tick_prepare(substream);
|
|
|
|
if (substream->timer)
|
|
if (substream->timer)
|
|
snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSTART,
|
|
snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSTART,
|
|
&runtime->trigger_tstamp);
|
|
&runtime->trigger_tstamp);
|
|
@@ -920,7 +911,6 @@ static void snd_pcm_post_stop(struct snd_pcm_substream *substream, int state)
|
|
snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSTOP,
|
|
snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSTOP,
|
|
&runtime->trigger_tstamp);
|
|
&runtime->trigger_tstamp);
|
|
runtime->status->state = state;
|
|
runtime->status->state = state;
|
|
- snd_pcm_tick_set(substream, 0);
|
|
|
|
}
|
|
}
|
|
wake_up(&runtime->sleep);
|
|
wake_up(&runtime->sleep);
|
|
}
|
|
}
|
|
@@ -1004,12 +994,9 @@ static void snd_pcm_post_pause(struct snd_pcm_substream *substream, int push)
|
|
snd_timer_notify(substream->timer,
|
|
snd_timer_notify(substream->timer,
|
|
SNDRV_TIMER_EVENT_MPAUSE,
|
|
SNDRV_TIMER_EVENT_MPAUSE,
|
|
&runtime->trigger_tstamp);
|
|
&runtime->trigger_tstamp);
|
|
- snd_pcm_tick_set(substream, 0);
|
|
|
|
wake_up(&runtime->sleep);
|
|
wake_up(&runtime->sleep);
|
|
} else {
|
|
} else {
|
|
runtime->status->state = SNDRV_PCM_STATE_RUNNING;
|
|
runtime->status->state = SNDRV_PCM_STATE_RUNNING;
|
|
- if (runtime->sleep_min)
|
|
|
|
- snd_pcm_tick_prepare(substream);
|
|
|
|
if (substream->timer)
|
|
if (substream->timer)
|
|
snd_timer_notify(substream->timer,
|
|
snd_timer_notify(substream->timer,
|
|
SNDRV_TIMER_EVENT_MCONTINUE,
|
|
SNDRV_TIMER_EVENT_MCONTINUE,
|
|
@@ -1064,7 +1051,6 @@ static void snd_pcm_post_suspend(struct snd_pcm_substream *substream, int state)
|
|
&runtime->trigger_tstamp);
|
|
&runtime->trigger_tstamp);
|
|
runtime->status->suspended_state = runtime->status->state;
|
|
runtime->status->suspended_state = runtime->status->state;
|
|
runtime->status->state = SNDRV_PCM_STATE_SUSPENDED;
|
|
runtime->status->state = SNDRV_PCM_STATE_SUSPENDED;
|
|
- snd_pcm_tick_set(substream, 0);
|
|
|
|
wake_up(&runtime->sleep);
|
|
wake_up(&runtime->sleep);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1167,8 +1153,6 @@ static void snd_pcm_post_resume(struct snd_pcm_substream *substream, int state)
|
|
snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MRESUME,
|
|
snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MRESUME,
|
|
&runtime->trigger_tstamp);
|
|
&runtime->trigger_tstamp);
|
|
runtime->status->state = runtime->status->suspended_state;
|
|
runtime->status->state = runtime->status->suspended_state;
|
|
- if (runtime->sleep_min)
|
|
|
|
- snd_pcm_tick_prepare(substream);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static struct action_ops snd_pcm_action_resume = {
|
|
static struct action_ops snd_pcm_action_resume = {
|
|
@@ -1997,8 +1981,6 @@ int snd_pcm_hw_constraints_complete(struct snd_pcm_substream *substream)
|
|
}
|
|
}
|
|
|
|
|
|
/* FIXME: this belong to lowlevel */
|
|
/* FIXME: this belong to lowlevel */
|
|
- snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_TICK_TIME,
|
|
|
|
- 1000000 / HZ, 1000000 / HZ);
|
|
|
|
snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE);
|
|
snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
@@ -2238,9 +2220,6 @@ static snd_pcm_sframes_t snd_pcm_playback_rewind(struct snd_pcm_substream *subst
|
|
if (appl_ptr < 0)
|
|
if (appl_ptr < 0)
|
|
appl_ptr += runtime->boundary;
|
|
appl_ptr += runtime->boundary;
|
|
runtime->control->appl_ptr = appl_ptr;
|
|
runtime->control->appl_ptr = appl_ptr;
|
|
- if (runtime->status->state == SNDRV_PCM_STATE_RUNNING &&
|
|
|
|
- runtime->sleep_min)
|
|
|
|
- snd_pcm_tick_prepare(substream);
|
|
|
|
ret = frames;
|
|
ret = frames;
|
|
__end:
|
|
__end:
|
|
snd_pcm_stream_unlock_irq(substream);
|
|
snd_pcm_stream_unlock_irq(substream);
|
|
@@ -2286,9 +2265,6 @@ static snd_pcm_sframes_t snd_pcm_capture_rewind(struct snd_pcm_substream *substr
|
|
if (appl_ptr < 0)
|
|
if (appl_ptr < 0)
|
|
appl_ptr += runtime->boundary;
|
|
appl_ptr += runtime->boundary;
|
|
runtime->control->appl_ptr = appl_ptr;
|
|
runtime->control->appl_ptr = appl_ptr;
|
|
- if (runtime->status->state == SNDRV_PCM_STATE_RUNNING &&
|
|
|
|
- runtime->sleep_min)
|
|
|
|
- snd_pcm_tick_prepare(substream);
|
|
|
|
ret = frames;
|
|
ret = frames;
|
|
__end:
|
|
__end:
|
|
snd_pcm_stream_unlock_irq(substream);
|
|
snd_pcm_stream_unlock_irq(substream);
|
|
@@ -2335,9 +2311,6 @@ static snd_pcm_sframes_t snd_pcm_playback_forward(struct snd_pcm_substream *subs
|
|
if (appl_ptr >= (snd_pcm_sframes_t)runtime->boundary)
|
|
if (appl_ptr >= (snd_pcm_sframes_t)runtime->boundary)
|
|
appl_ptr -= runtime->boundary;
|
|
appl_ptr -= runtime->boundary;
|
|
runtime->control->appl_ptr = appl_ptr;
|
|
runtime->control->appl_ptr = appl_ptr;
|
|
- if (runtime->status->state == SNDRV_PCM_STATE_RUNNING &&
|
|
|
|
- runtime->sleep_min)
|
|
|
|
- snd_pcm_tick_prepare(substream);
|
|
|
|
ret = frames;
|
|
ret = frames;
|
|
__end:
|
|
__end:
|
|
snd_pcm_stream_unlock_irq(substream);
|
|
snd_pcm_stream_unlock_irq(substream);
|
|
@@ -2384,9 +2357,6 @@ static snd_pcm_sframes_t snd_pcm_capture_forward(struct snd_pcm_substream *subst
|
|
if (appl_ptr >= (snd_pcm_sframes_t)runtime->boundary)
|
|
if (appl_ptr >= (snd_pcm_sframes_t)runtime->boundary)
|
|
appl_ptr -= runtime->boundary;
|
|
appl_ptr -= runtime->boundary;
|
|
runtime->control->appl_ptr = appl_ptr;
|
|
runtime->control->appl_ptr = appl_ptr;
|
|
- if (runtime->status->state == SNDRV_PCM_STATE_RUNNING &&
|
|
|
|
- runtime->sleep_min)
|
|
|
|
- snd_pcm_tick_prepare(substream);
|
|
|
|
ret = frames;
|
|
ret = frames;
|
|
__end:
|
|
__end:
|
|
snd_pcm_stream_unlock_irq(substream);
|
|
snd_pcm_stream_unlock_irq(substream);
|