]>
Commit | Line | Data |
---|---|---|
daf605eb GKH |
1 | From 3f4032861cfbff0b9134bf94c5c92e2146d1f068 Mon Sep 17 00:00:00 2001 |
2 | From: Takashi Sakamoto <o-takashi@sakamocchi.jp> | |
3 | Date: Fri, 10 Oct 2014 23:32:49 +0900 | |
4 | Subject: ALSA: bebob: Fix failure to detect source of clock for Terratec Phase 88 | |
5 | MIME-Version: 1.0 | |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ||
9 | From: Takashi Sakamoto <o-takashi@sakamocchi.jp> | |
10 | ||
11 | commit 3f4032861cfbff0b9134bf94c5c92e2146d1f068 upstream. | |
12 | ||
13 | This patch fixes a failure to open PCM device with -ENOSYS in | |
14 | Terratec Phase 88. | |
15 | ||
16 | Terratec Phase 88 has two Selector Function Blocks of AVC Audio subunit | |
17 | to switch source of clock. One is to switch internal/external for the | |
18 | source and another is to switch word/spdif for the external clock. | |
19 | ||
20 | The IDs for these Selector Function Blocks are 9 and 8. But in current | |
21 | implementation they're 0 and 0. | |
22 | ||
23 | Reported-by: András Murányi <muranyia@gmail.com> | |
24 | Tested-by: András Murányi <muranyia@gmail.com> | |
25 | Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> | |
26 | Signed-off-by: Takashi Iwai <tiwai@suse.de> | |
27 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
28 | ||
29 | --- | |
30 | sound/firewire/bebob/bebob_terratec.c | 4 ++-- | |
31 | 1 file changed, 2 insertions(+), 2 deletions(-) | |
32 | ||
33 | --- a/sound/firewire/bebob/bebob_terratec.c | |
34 | +++ b/sound/firewire/bebob/bebob_terratec.c | |
35 | @@ -17,10 +17,10 @@ phase88_rack_clk_src_get(struct snd_bebo | |
36 | unsigned int enable_ext, enable_word; | |
37 | int err; | |
38 | ||
39 | - err = avc_audio_get_selector(bebob->unit, 0, 0, &enable_ext); | |
40 | + err = avc_audio_get_selector(bebob->unit, 0, 9, &enable_ext); | |
41 | if (err < 0) | |
42 | goto end; | |
43 | - err = avc_audio_get_selector(bebob->unit, 0, 0, &enable_word); | |
44 | + err = avc_audio_get_selector(bebob->unit, 0, 8, &enable_word); | |
45 | if (err < 0) | |
46 | goto end; | |
47 |