summaryrefslogtreecommitdiff
path: root/sound/firewire/dice/dice-stream.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2017-02-20 10:52:50 +0300
committerTakashi Iwai <tiwai@suse.de>2017-02-20 10:52:50 +0300
commitfc0e23fad33198fc7d74227dba7bbc3a5d7755aa (patch)
tree669319e33fb63a456986b6ac41cf3b584f583caf /sound/firewire/dice/dice-stream.c
parentaf677166cf63c179dc2485053166e02c4aea01eb (diff)
parent3bb9eca913025ed05c0510de831c67b7bef652c5 (diff)
downloadlinux-fc0e23fad33198fc7d74227dba7bbc3a5d7755aa.tar.xz
Merge branch 'for-next' into for-linus
Diffstat (limited to 'sound/firewire/dice/dice-stream.c')
-rw-r--r--sound/firewire/dice/dice-stream.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sound/firewire/dice/dice-stream.c b/sound/firewire/dice/dice-stream.c
index ec4db3a514fc..8573289c381e 100644
--- a/sound/firewire/dice/dice-stream.c
+++ b/sound/firewire/dice/dice-stream.c
@@ -195,6 +195,7 @@ static int start_streams(struct snd_dice *dice, enum amdtp_stream_direction dir,
unsigned int i, pcm_chs, midi_ports;
struct amdtp_stream *streams;
struct fw_iso_resources *resources;
+ struct fw_device *fw_dev = fw_parent_device(dice->unit);
int err = 0;
if (dir == AMDTP_IN_STREAM) {
@@ -237,8 +238,17 @@ static int start_streams(struct snd_dice *dice, enum amdtp_stream_direction dir,
if (err < 0)
return err;
+ if (dir == AMDTP_IN_STREAM) {
+ reg[0] = cpu_to_be32(fw_dev->max_speed);
+ err = snd_dice_transaction_write_tx(dice,
+ params->size * i + TX_SPEED,
+ reg, sizeof(reg[0]));
+ if (err < 0)
+ return err;
+ }
+
err = amdtp_stream_start(&streams[i], resources[i].channel,
- fw_parent_device(dice->unit)->max_speed);
+ fw_dev->max_speed);
if (err < 0)
return err;
}