aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/firewire/dice.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sound/firewire/dice.c b/sound/firewire/dice.c
index a9a30c0161f1..4cf8eb704045 100644
--- a/sound/firewire/dice.c
+++ b/sound/firewire/dice.c
@@ -579,11 +579,6 @@ static int dice_hw_params(struct snd_pcm_substream *substream,
579 return err; 579 return err;
580 } 580 }
581 581
582 for (i = 0; i < channels; i++) {
583 dice->stream.pcm_positions[i * 2] = i;
584 dice->stream.pcm_positions[i * 2 + 1] = i + channels;
585 }
586
587 rate /= 2; 582 rate /= 2;
588 channels *= 2; 583 channels *= 2;
589 } 584 }
@@ -591,6 +586,15 @@ static int dice_hw_params(struct snd_pcm_substream *substream,
591 mode = rate_index_to_mode(rate_index); 586 mode = rate_index_to_mode(rate_index);
592 amdtp_stream_set_parameters(&dice->stream, rate, channels, 587 amdtp_stream_set_parameters(&dice->stream, rate, channels,
593 dice->rx_midi_ports[mode]); 588 dice->rx_midi_ports[mode]);
589 if (rate_index > 4) {
590 channels /= 2;
591
592 for (i = 0; i < channels; i++) {
593 dice->stream.pcm_positions[i] = i * 2;
594 dice->stream.pcm_positions[i + channels] = i * 2 + 1;
595 }
596 }
597
594 amdtp_stream_set_pcm_format(&dice->stream, 598 amdtp_stream_set_pcm_format(&dice->stream,
595 params_format(hw_params)); 599 params_format(hw_params));
596 600