[alsa-devel] [PATCH] ALSA: oxfw: fix regression to handle Stanton SCS.1m/1d
At a commit 6c29230e2a5f ("ALSA: oxfw: delayed registration of sound card"), ALSA oxfw driver fails to handle SCS.1m/1d, due to -EBUSY at a call of snd_card_register(). The cause is that the driver manages to register two rawmidi instances with the same device number 0. This is a regression introduced since kernel 4.7.
This commit fixes the regression, by fixing up device property after discovering stream formats.
Fixes: 6c29230e2a5f ("ALSA: oxfw: delayed registration of sound card") Cc: stable@vger.kernel.org # 4.7+ Signed-off-by: Takashi Sakamoto o-takashi@sakamocchi.jp --- sound/firewire/oxfw/oxfw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/firewire/oxfw/oxfw.c b/sound/firewire/oxfw/oxfw.c index 74d7fb6..413ab63 100644 --- a/sound/firewire/oxfw/oxfw.c +++ b/sound/firewire/oxfw/oxfw.c @@ -227,11 +227,11 @@ static void do_registration(struct work_struct *work) if (err < 0) goto error;
- err = detect_quirks(oxfw); + err = snd_oxfw_stream_discover(oxfw); if (err < 0) goto error;
- err = snd_oxfw_stream_discover(oxfw); + err = detect_quirks(oxfw); if (err < 0) goto error;
On Mon, 03 Apr 2017 14:13:40 +0200, Takashi Sakamoto wrote:
At a commit 6c29230e2a5f ("ALSA: oxfw: delayed registration of sound card"), ALSA oxfw driver fails to handle SCS.1m/1d, due to -EBUSY at a call of snd_card_register(). The cause is that the driver manages to register two rawmidi instances with the same device number 0. This is a regression introduced since kernel 4.7.
This commit fixes the regression, by fixing up device property after discovering stream formats.
Fixes: 6c29230e2a5f ("ALSA: oxfw: delayed registration of sound card") Cc: stable@vger.kernel.org # 4.7+ Signed-off-by: Takashi Sakamoto o-takashi@sakamocchi.jp
Applied to for-linus branch. Thanks.
Takashi
sound/firewire/oxfw/oxfw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/firewire/oxfw/oxfw.c b/sound/firewire/oxfw/oxfw.c index 74d7fb6..413ab63 100644 --- a/sound/firewire/oxfw/oxfw.c +++ b/sound/firewire/oxfw/oxfw.c @@ -227,11 +227,11 @@ static void do_registration(struct work_struct *work) if (err < 0) goto error;
- err = detect_quirks(oxfw);
- err = snd_oxfw_stream_discover(oxfw); if (err < 0) goto error;
- err = snd_oxfw_stream_discover(oxfw);
- err = detect_quirks(oxfw); if (err < 0) goto error;
-- 2.9.3
participants (2)
-
Takashi Iwai
-
Takashi Sakamoto