ALSA: bebob: add SYT-Match support

In previous commits, this driver can detect the source of clock as mush
as possible. SYT-Match mode is also available.

This commit purge the restriction.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Sakamoto 2015-06-14 12:49:32 +09:00 committed by Takashi Iwai
parent 554d8983a0
commit 0577379271
2 changed files with 18 additions and 7 deletions

View File

@ -171,11 +171,6 @@ pcm_open(struct snd_pcm_substream *substream)
err = snd_bebob_stream_get_clock_src(bebob, &src);
if (err < 0)
goto err_locked;
/* SYT-Match is not supported. */
if (src == SND_BEBOB_CLOCK_TYPE_SYT) {
err = -EBUSY;
goto err_locked;
}
/*
* When source of clock is internal or any PCM stream are running,

View File

@ -474,8 +474,24 @@ destroy_both_connections(struct snd_bebob *bebob)
static int
get_sync_mode(struct snd_bebob *bebob, enum cip_flags *sync_mode)
{
/* currently this module doesn't support SYT-Match mode */
*sync_mode = CIP_SYNC_TO_DEVICE;
enum snd_bebob_clock_type src;
int err;
err = snd_bebob_stream_get_clock_src(bebob, &src);
if (err < 0)
return err;
switch (src) {
case SND_BEBOB_CLOCK_TYPE_INTERNAL:
case SND_BEBOB_CLOCK_TYPE_EXTERNAL:
*sync_mode = CIP_SYNC_TO_DEVICE;
break;
default:
case SND_BEBOB_CLOCK_TYPE_SYT:
*sync_mode = 0;
break;
}
return 0;
}