| From 225db5762dc1a35b26850477ffa06e5cd0097243 Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Mon, 5 Oct 2015 16:55:09 +0200 |
| Subject: ALSA: synth: Fix conflicting OSS device registration on AWE32 |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| commit 225db5762dc1a35b26850477ffa06e5cd0097243 upstream. |
| |
| When OSS emulation is loaded on ISA SB AWE32 chip, we get now kernel |
| warnings like: |
| WARNING: CPU: 0 PID: 2791 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x51/0x80() |
| sysfs: cannot create duplicate filename '/devices/isa/sbawe.0/sound/card0/seq-oss-0-0' |
| |
| It's because both emux synth and opl3 drivers try to register their |
| OSS device object with the same static index number 0. This hasn't |
| been a big problem until the recent rewrite of device management code |
| (that exposes sysfs at the same time), but it's been an obvious bug. |
| |
| This patch works around it just by using a different index number of |
| emux synth object. There can be a more elegant way to fix, but it's |
| enough for now, as this code won't be touched so often, in anyway. |
| |
| Reported-and-tested-by: Michael Shell <list1@michaelshell.org> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/synth/emux/emux_oss.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/sound/synth/emux/emux_oss.c |
| +++ b/sound/synth/emux/emux_oss.c |
| @@ -69,7 +69,8 @@ snd_emux_init_seq_oss(struct snd_emux *e |
| struct snd_seq_oss_reg *arg; |
| struct snd_seq_device *dev; |
| |
| - if (snd_seq_device_new(emu->card, 0, SNDRV_SEQ_DEV_ID_OSS, |
| + /* using device#1 here for avoiding conflicts with OPL3 */ |
| + if (snd_seq_device_new(emu->card, 1, SNDRV_SEQ_DEV_ID_OSS, |
| sizeof(struct snd_seq_oss_reg), &dev) < 0) |
| return; |
| |