| From 3d016d57fdc5e6caa4cd67896f4b081bccad6e2c Mon Sep 17 00:00:00 2001 |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| Date: Mon, 3 Apr 2017 21:13:40 +0900 |
| Subject: ALSA: oxfw: fix regression to handle Stanton SCS.1m/1d |
| |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| |
| commit 3d016d57fdc5e6caa4cd67896f4b081bccad6e2c upstream. |
| |
| 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") |
| Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/firewire/oxfw/oxfw.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/sound/firewire/oxfw/oxfw.c |
| +++ b/sound/firewire/oxfw/oxfw.c |
| @@ -226,11 +226,11 @@ static void do_registration(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; |
| |