| From 3a9236e97207f2469254b4098995159b80174d95 Mon Sep 17 00:00:00 2001 |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| Date: Mon, 16 Sep 2019 19:18:51 +0900 |
| Subject: ALSA: dice: fix wrong packet parameter for Alesis iO26 |
| |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| |
| commit 3a9236e97207f2469254b4098995159b80174d95 upstream. |
| |
| At higher sampling rate (e.g. 192.0 kHz), Alesis iO26 transfers 4 data |
| channels per data block in CIP. |
| |
| Both iO14 and iO26 have the same contents in their configuration ROM. |
| For this reason, ALSA Dice driver attempts to distinguish them according |
| to the value of TX0_AUDIO register at probe callback. Although the way is |
| valid at lower and middle sampling rate, it's lastly invalid at higher |
| sampling rate because because the two models returns the same value for |
| read transaction to the register. |
| |
| In the most cases, users just plug-in the device and ALSA dice driver |
| detects it. In the case, the device runs at lower sampling rate and |
| the driver detects expectedly. For this reason, this commit leaves the |
| way to detect as is. |
| |
| Fixes: 28b208f600a3 ("ALSA: dice: add parameters of stream formats for models produced by Alesis") |
| Cc: <stable@vger.kernel.org> # v4.18+ |
| Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| Link: https://lore.kernel.org/r/20190916101851.30409-1-o-takashi@sakamocchi.jp |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/firewire/dice/dice-alesis.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/sound/firewire/dice/dice-alesis.c |
| +++ b/sound/firewire/dice/dice-alesis.c |
| @@ -15,7 +15,7 @@ alesis_io14_tx_pcm_chs[MAX_STREAMS][SND_ |
| |
| static const unsigned int |
| alesis_io26_tx_pcm_chs[MAX_STREAMS][SND_DICE_RATE_MODE_COUNT] = { |
| - {10, 10, 8}, /* Tx0 = Analog + S/PDIF. */ |
| + {10, 10, 4}, /* Tx0 = Analog + S/PDIF. */ |
| {16, 8, 0}, /* Tx1 = ADAT1 + ADAT2. */ |
| }; |
| |