mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 09:19:51 +00:00
ALSA: firewire-motu: add a flag for chunks for main 1/2 out
This driver explicitly assumes that all of supported models have main data chunk separated from chunk for analog ports. However, MOTU Traveler doesn't support the separated main data chunk. This commit adds a flag for the separated main data chunk. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
6c1549c4cc
commit
81720c6d49
4 changed files with 22 additions and 10 deletions
|
@ -149,11 +149,15 @@ static void calculate_fixed_part(struct snd_motu_packet_format *formats,
|
|||
pcm_chunks[1] += 2;
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* Packets to v2 units transfer main-out-1/2 and phone-out-1/2.
|
||||
*/
|
||||
pcm_chunks[0] += 4;
|
||||
pcm_chunks[1] += 4;
|
||||
if (flags & SND_MOTU_SPEC_RX_SEPARETED_MAIN) {
|
||||
pcm_chunks[0] += 2;
|
||||
pcm_chunks[1] += 2;
|
||||
}
|
||||
|
||||
// Packets to v2 units include 2 chunks for phone 1/2, except
|
||||
// for 176.4/192.0 kHz.
|
||||
pcm_chunks[0] += 2;
|
||||
pcm_chunks[1] += 2;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -188,11 +188,15 @@ static void calculate_fixed_part(struct snd_motu_packet_format *formats,
|
|||
pcm_chunks[1] += 2;
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* Packets to v2 units transfer main-out-1/2 and phone-out-1/2.
|
||||
*/
|
||||
pcm_chunks[0] += 4;
|
||||
pcm_chunks[1] += 4;
|
||||
if (flags & SND_MOTU_SPEC_RX_SEPARETED_MAIN) {
|
||||
pcm_chunks[0] += 2;
|
||||
pcm_chunks[1] += 2;
|
||||
}
|
||||
|
||||
// Packets to v3 units include 2 chunks for phone 1/2, except
|
||||
// for 176.4/192.0 kHz.
|
||||
pcm_chunks[0] += 2;
|
||||
pcm_chunks[1] += 2;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -200,6 +200,7 @@ static const struct snd_motu_spec motu_828mk2 = {
|
|||
.flags = SND_MOTU_SPEC_SUPPORT_CLOCK_X2 |
|
||||
SND_MOTU_SPEC_TX_MICINST_CHUNK |
|
||||
SND_MOTU_SPEC_TX_RETURN_CHUNK |
|
||||
SND_MOTU_SPEC_RX_SEPARETED_MAIN |
|
||||
SND_MOTU_SPEC_HAS_OPT_IFACE_A |
|
||||
SND_MOTU_SPEC_RX_MIDI_2ND_Q |
|
||||
SND_MOTU_SPEC_TX_MIDI_2ND_Q,
|
||||
|
@ -216,6 +217,7 @@ static const struct snd_motu_spec motu_828mk3 = {
|
|||
SND_MOTU_SPEC_TX_MICINST_CHUNK |
|
||||
SND_MOTU_SPEC_TX_RETURN_CHUNK |
|
||||
SND_MOTU_SPEC_TX_REVERB_CHUNK |
|
||||
SND_MOTU_SPEC_RX_SEPARETED_MAIN |
|
||||
SND_MOTU_SPEC_HAS_OPT_IFACE_A |
|
||||
SND_MOTU_SPEC_HAS_OPT_IFACE_B |
|
||||
SND_MOTU_SPEC_RX_MIDI_3RD_Q |
|
||||
|
@ -231,6 +233,7 @@ static const struct snd_motu_spec motu_audio_express = {
|
|||
.flags = SND_MOTU_SPEC_SUPPORT_CLOCK_X2 |
|
||||
SND_MOTU_SPEC_TX_MICINST_CHUNK |
|
||||
SND_MOTU_SPEC_TX_RETURN_CHUNK |
|
||||
SND_MOTU_SPEC_RX_SEPARETED_MAIN |
|
||||
SND_MOTU_SPEC_RX_MIDI_2ND_Q |
|
||||
SND_MOTU_SPEC_TX_MIDI_3RD_Q,
|
||||
.analog_in_ports = 2,
|
||||
|
|
|
@ -86,6 +86,7 @@ enum snd_motu_spec_flags {
|
|||
SND_MOTU_SPEC_RX_MIDI_3RD_Q = 0x0200,
|
||||
SND_MOTU_SPEC_TX_MIDI_2ND_Q = 0x0400,
|
||||
SND_MOTU_SPEC_TX_MIDI_3RD_Q = 0x0800,
|
||||
SND_MOTU_SPEC_RX_SEPARETED_MAIN = 0x1000,
|
||||
};
|
||||
|
||||
#define SND_MOTU_CLOCK_RATE_COUNT 6
|
||||
|
|
Loading…
Reference in a new issue