diff options
| -rw-r--r-- | sound/firewire/dice.c | 14 |
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 | ||
