-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ALSA: bebob: Add support for Yamaha GO series
This commit allows this driver to support all of models which Yamaha produced with DM1000/BeBoB. They are: - GO44 - GO46 This commit adds Yamaha specific operations. To get source of clock, AV/C Audio Subunit command is used. I note that their appearances are similar to some models of TerraTec; 'Go44' is similar to 'PHASE 24 FW' and 'GO46' is similar to 'PHASE X24 FW'. But their combination of Audio/Music subunits is a bit different. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
- Loading branch information
Takashi Sakamoto
authored and
Takashi Iwai
committed
May 26, 2014
1 parent
326b9ca
commit 8ac98a3
Showing
5 changed files
with
59 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
snd-bebob-objs := bebob_command.o bebob_stream.o bebob_proc.o bebob_midi.o \ | ||
bebob_pcm.o bebob_hwdep.o bebob_terratec.o bebob.o | ||
bebob_pcm.o bebob_hwdep.o bebob_terratec.o bebob_yamaha.o \ | ||
bebob.o | ||
obj-m += snd-bebob.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
/* | ||
* bebob_yamaha.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" | ||
|
||
/* | ||
* NOTE: | ||
* Yamaha GO44 is not designed to be used as stand-alone mixer. So any streams | ||
* must be accompanied. If changing the state, a LED on the device starts to | ||
* blink and its sync status is false. In this state, the device sounds nothing | ||
* even if streaming. To start streaming at the current sampling rate is only | ||
* way to revocer this state. GO46 is better for stand-alone mixer. | ||
* | ||
* Both of them have a capability to change its sampling rate up to 192.0kHz. | ||
* At 192.0kHz, the device reports 4 PCM-in, 1 MIDI-in, 6 PCM-out, 1 MIDI-out. | ||
* But Yamaha's driver reduce 2 PCM-in, 1 MIDI-in, 2 PCM-out, 1 MIDI-out to use | ||
* 'Extended Stream Format Information Command - Single Request' in 'Additional | ||
* AVC commands' defined by BridgeCo. | ||
* This ALSA driver don't do this because a bit tiresome. Then isochronous | ||
* streaming with many asynchronous transactions brings sounds with noises. | ||
* Unfortunately current 'ffado-mixer' generated many asynchronous transaction | ||
* to observe device's state, mainly check cmp connection and signal format. I | ||
* reccomend users to close ffado-mixer at 192.0kHz if mixer is needless. | ||
*/ | ||
|
||
static char *const clk_src_labels[] = {SND_BEBOB_CLOCK_INTERNAL, "SPDIF"}; | ||
static int | ||
clk_src_get(struct snd_bebob *bebob, unsigned int *id) | ||
{ | ||
return avc_audio_get_selector(bebob->unit, 0, 4, id); | ||
} | ||
static struct snd_bebob_clock_spec clock_spec = { | ||
.num = ARRAY_SIZE(clk_src_labels), | ||
.labels = clk_src_labels, | ||
.get = &clk_src_get, | ||
}; | ||
static struct snd_bebob_rate_spec rate_spec = { | ||
.get = &snd_bebob_stream_get_rate, | ||
.set = &snd_bebob_stream_set_rate, | ||
}; | ||
struct snd_bebob_spec yamaha_go_spec = { | ||
.clock = &clock_spec, | ||
.rate = &rate_spec, | ||
.meter = NULL | ||
}; |