mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
ALSA: dice: loosen stream format check for MIDI conformant data channel
ALSA dice driver expects devices to multiplex MIDI messages into first port of isochronous communication. Actually devices perform for it. However, check of stream format is invalid for second port of isochronous communication. As a result, when the device supports two ports for isochronous communication and the stream format is hard-coded, ALSA dice driver fails to start packet streaming. This commit loosens stream format check for MIDI conformant data channel. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Link: https://lore.kernel.org/r/20200113084630.14305-3-o-takashi@sakamocchi.jp Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
41dbc79279
commit
a9f47fcb5e
@ -224,7 +224,6 @@ static int keep_dual_resources(struct snd_dice *dice, unsigned int rate,
|
||||
struct amdtp_stream *stream;
|
||||
struct fw_iso_resources *resources;
|
||||
unsigned int pcm_cache;
|
||||
unsigned int midi_cache;
|
||||
unsigned int pcm_chs;
|
||||
unsigned int midi_ports;
|
||||
|
||||
@ -233,7 +232,6 @@ static int keep_dual_resources(struct snd_dice *dice, unsigned int rate,
|
||||
resources = &dice->tx_resources[i];
|
||||
|
||||
pcm_cache = dice->tx_pcm_chs[i][mode];
|
||||
midi_cache = dice->tx_midi_ports[i];
|
||||
err = snd_dice_transaction_read_tx(dice,
|
||||
params->size * i + TX_NUMBER_AUDIO,
|
||||
reg, sizeof(reg));
|
||||
@ -242,7 +240,6 @@ static int keep_dual_resources(struct snd_dice *dice, unsigned int rate,
|
||||
resources = &dice->rx_resources[i];
|
||||
|
||||
pcm_cache = dice->rx_pcm_chs[i][mode];
|
||||
midi_cache = dice->rx_midi_ports[i];
|
||||
err = snd_dice_transaction_read_rx(dice,
|
||||
params->size * i + RX_NUMBER_AUDIO,
|
||||
reg, sizeof(reg));
|
||||
@ -253,10 +250,10 @@ static int keep_dual_resources(struct snd_dice *dice, unsigned int rate,
|
||||
midi_ports = be32_to_cpu(reg[1]);
|
||||
|
||||
// These are important for developer of this driver.
|
||||
if (pcm_chs != pcm_cache || midi_ports != midi_cache) {
|
||||
if (pcm_chs != pcm_cache) {
|
||||
dev_info(&dice->unit->device,
|
||||
"cache mismatch: pcm: %u:%u, midi: %u:%u\n",
|
||||
pcm_chs, pcm_cache, midi_ports, midi_cache);
|
||||
"cache mismatch: pcm: %u:%u, midi: %u\n",
|
||||
pcm_chs, pcm_cache, midi_ports);
|
||||
return -EPROTO;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user