ALSA: bebob: configure sampling transfer frequency in pcm.hw_params callback
This commit is a part of preparation to perform allocation/release of isochronous resources in pcm.hw_params/hw_free callbacks. At present, several operations are done in pcm.prepare callback. To reduce load of the callback, This commit splits out an operation to set sampling transfer frequency in pcm.hw_params callback. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:

committed by
Takashi Iwai

parent
c7e68a697c
commit
ac2888b958
@@ -15,15 +15,18 @@ static int midi_capture_open(struct snd_rawmidi_substream *substream)
|
||||
|
||||
err = snd_bebob_stream_lock_try(bebob);
|
||||
if (err < 0)
|
||||
goto end;
|
||||
return err;
|
||||
|
||||
mutex_lock(&bebob->mutex);
|
||||
bebob->substreams_counter++;
|
||||
err = snd_bebob_stream_start_duplex(bebob, 0);
|
||||
err = snd_bebob_stream_reserve_duplex(bebob, 0);
|
||||
if (err >= 0) {
|
||||
++bebob->substreams_counter;
|
||||
err = snd_bebob_stream_start_duplex(bebob);
|
||||
}
|
||||
mutex_unlock(&bebob->mutex);
|
||||
if (err < 0)
|
||||
snd_bebob_stream_lock_release(bebob);
|
||||
end:
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -34,15 +37,18 @@ static int midi_playback_open(struct snd_rawmidi_substream *substream)
|
||||
|
||||
err = snd_bebob_stream_lock_try(bebob);
|
||||
if (err < 0)
|
||||
goto end;
|
||||
return err;
|
||||
|
||||
mutex_lock(&bebob->mutex);
|
||||
bebob->substreams_counter++;
|
||||
err = snd_bebob_stream_start_duplex(bebob, 0);
|
||||
err = snd_bebob_stream_reserve_duplex(bebob, 0);
|
||||
if (err >= 0) {
|
||||
++bebob->substreams_counter;
|
||||
err = snd_bebob_stream_start_duplex(bebob);
|
||||
}
|
||||
mutex_unlock(&bebob->mutex);
|
||||
if (err < 0)
|
||||
snd_bebob_stream_lock_release(bebob);
|
||||
end:
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user