Blame view
sound/firewire/bebob/bebob_terratec.c
1.29 KB
326b9cacf ALSA: bebob: Add ... |
1 2 3 4 5 6 7 8 9 |
/* * bebob_terratec.c - a part of driver for BeBoB based devices * * Copyright (c) 2013-2014 Takashi Sakamoto * * Licensed under the terms of the GNU General Public License, version 2. */ #include "./bebob.h" |
ba5177131 ALSA: bebob: prep... |
10 11 12 13 14 |
static enum snd_bebob_clock_type phase88_rack_clk_src_types[] = { SND_BEBOB_CLOCK_TYPE_INTERNAL, SND_BEBOB_CLOCK_TYPE_EXTERNAL, /* S/PDIF */ SND_BEBOB_CLOCK_TYPE_EXTERNAL, /* Word Clock */ }; |
326b9cacf ALSA: bebob: Add ... |
15 16 17 18 19 |
static int phase88_rack_clk_src_get(struct snd_bebob *bebob, unsigned int *id) { unsigned int enable_ext, enable_word; int err; |
3f4032861 ALSA: bebob: Fix ... |
20 |
err = avc_audio_get_selector(bebob->unit, 0, 9, &enable_ext); |
326b9cacf ALSA: bebob: Add ... |
21 22 |
if (err < 0) goto end; |
3f4032861 ALSA: bebob: Fix ... |
23 |
err = avc_audio_get_selector(bebob->unit, 0, 8, &enable_word); |
326b9cacf ALSA: bebob: Add ... |
24 25 |
if (err < 0) goto end; |
7ce5c9268 ALSA: bebob: fix ... |
26 27 28 29 30 31 |
if (enable_ext == 0) *id = 0; else if (enable_word == 0) *id = 1; else *id = 2; |
326b9cacf ALSA: bebob: Add ... |
32 33 34 |
end: return err; } |
6b9866c89 ALSA: bebob: cons... |
35 |
static const struct snd_bebob_rate_spec phase_series_rate_spec = { |
326b9cacf ALSA: bebob: Add ... |
36 37 38 39 40 |
.get = &snd_bebob_stream_get_rate, .set = &snd_bebob_stream_set_rate, }; /* PHASE 88 Rack FW */ |
6b9866c89 ALSA: bebob: cons... |
41 |
static const struct snd_bebob_clock_spec phase88_rack_clk = { |
ba5177131 ALSA: bebob: prep... |
42 |
.num = ARRAY_SIZE(phase88_rack_clk_src_types), |
ba5177131 ALSA: bebob: prep... |
43 |
.types = phase88_rack_clk_src_types, |
326b9cacf ALSA: bebob: Add ... |
44 45 |
.get = &phase88_rack_clk_src_get, }; |
6b9866c89 ALSA: bebob: cons... |
46 |
const struct snd_bebob_spec phase88_rack_spec = { |
326b9cacf ALSA: bebob: Add ... |
47 48 49 50 |
.clock = &phase88_rack_clk, .rate = &phase_series_rate_spec, .meter = NULL }; |