[alsa-devel] Follow Up: "Why my linux OS has only 8 sound cards ? How can I modify it ?"
Hi!
This issue has already been brought up by Chris Shen on Nov 8 2011. Quick reminder: I have 10 sound cards which need to have oss emulation enabled. However, I only see 8 devices (dsp-dsp7). Takashi suggested a patch to workaround this problem: http://mailman.alsa-project.org/pipermail/alsa-devel/2011-November/045764.ht... I've applied it to kernel 3.0.0 and the only result I get is message appearing in kernel logs: "unable to register OSS PCM device 8:0". I've done some debugging and the registration fails on these lines (sound/core/sound_oss.c): register1 = register_sound_special_device(f_ops, minor, carddev); if (register1 != minor) { snd_printk(KERN_ERR "OSS: 4, register1: %i, minor %i\n", register1, minor); goto __end; } the debug lines seem to be constant about the value of "register1" == -2. I would really appreciate any help with this problem and I will be glad to test any patches, that may solve the issue.
Maciej Paszta wrote:
Quick reminder: I have 10 sound cards which need to have oss emulation enabled. However, I only see 8 devices (dsp-dsp7). Takashi suggested a patch to workaround this problem: http://mailman.alsa-project.org/pipermail/alsa-devel/2011-November/045764.ht... I've applied it to kernel 3.0.0 and the only result I get is message appearing in kernel logs: "unable to register OSS PCM device 8:0". I've done some debugging and the registration fails on these lines (sound/core/sound_oss.c): register1 = register_sound_special_device(f_ops, minor, carddev);
Try replacing 128 with 256 in register_sound_special_device() in sound/sound_core.c.
Regards, Clemens
At Tue, 08 May 2012 15:02:33 +0200, Clemens Ladisch wrote:
Maciej Paszta wrote:
Quick reminder: I have 10 sound cards which need to have oss emulation enabled. However, I only see 8 devices (dsp-dsp7). Takashi suggested a patch to workaround this problem: http://mailman.alsa-project.org/pipermail/alsa-devel/2011-November/045764.ht... I've applied it to kernel 3.0.0 and the only result I get is message appearing in kernel logs: "unable to register OSS PCM device 8:0". I've done some debugging and the registration fails on these lines (sound/core/sound_oss.c): register1 = register_sound_special_device(f_ops, minor, carddev);
Try replacing 128 with 256 in register_sound_special_device() in sound/sound_core.c.
Actually it should be 256, instead of 256 + unit, like the patch below.
Takashi
--- diff --git a/sound/sound_core.c b/sound/sound_core.c index c6e81fb..fb9255c 100644 --- a/sound/sound_core.c +++ b/sound/sound_core.c @@ -361,7 +361,7 @@ int register_sound_special_device(const struct file_operations *fops, int unit, struct device *dev) { const int chain = unit % SOUND_STEP; - int max_unit = 128 + chain; + int max_unit = 256; const char *name; char _name[16];
Thanks!
Changing to 256 made all devices appear!
On 2012-05-08 15:32, Takashi Iwai wrote:
At Tue, 08 May 2012 15:02:33 +0200, Clemens Ladisch wrote:
Maciej Paszta wrote:
Quick reminder: I have 10 sound cards which need to have oss emulation enabled. However, I only see 8 devices (dsp-dsp7). Takashi suggested a patch to workaround this problem: http://mailman.alsa-project.org/pipermail/alsa-devel/2011-November/045764.ht... I've applied it to kernel 3.0.0 and the only result I get is message appearing in kernel logs: "unable to register OSS PCM device 8:0". I've done some debugging and the registration fails on these lines (sound/core/sound_oss.c): register1 = register_sound_special_device(f_ops, minor, carddev);
Try replacing 128 with 256 in register_sound_special_device() in sound/sound_core.c.
Actually it should be 256, instead of 256 + unit, like the patch below.
Takashi
diff --git a/sound/sound_core.c b/sound/sound_core.c index c6e81fb..fb9255c 100644 --- a/sound/sound_core.c +++ b/sound/sound_core.c @@ -361,7 +361,7 @@ int register_sound_special_device(const struct file_operations *fops, int unit, struct device *dev) { const int chain = unit % SOUND_STEP;
- int max_unit = 128 + chain;
- int max_unit = 256; const char *name; char _name[16];
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
At Tue, 08 May 2012 16:15:24 +0200, Maciej Paszta wrote:
Thanks!
Changing to 256 made all devices appear!
OK, I'll queue the fixes for 3.5 kernel.
thanks,
Takashi
On 2012-05-08 15:32, Takashi Iwai wrote:
At Tue, 08 May 2012 15:02:33 +0200, Clemens Ladisch wrote:
Maciej Paszta wrote:
Quick reminder: I have 10 sound cards which need to have oss emulation enabled. However, I only see 8 devices (dsp-dsp7). Takashi suggested a patch to workaround this problem: http://mailman.alsa-project.org/pipermail/alsa-devel/2011-November/045764.ht... I've applied it to kernel 3.0.0 and the only result I get is message appearing in kernel logs: "unable to register OSS PCM device 8:0". I've done some debugging and the registration fails on these lines (sound/core/sound_oss.c): register1 = register_sound_special_device(f_ops, minor, carddev);
Try replacing 128 with 256 in register_sound_special_device() in sound/sound_core.c.
Actually it should be 256, instead of 256 + unit, like the patch below.
Takashi
diff --git a/sound/sound_core.c b/sound/sound_core.c index c6e81fb..fb9255c 100644 --- a/sound/sound_core.c +++ b/sound/sound_core.c @@ -361,7 +361,7 @@ int register_sound_special_device(const struct file_operations *fops, int unit, struct device *dev) { const int chain = unit % SOUND_STEP;
- int max_unit = 128 + chain;
- int max_unit = 256; const char *name; char _name[16];
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
-- Maciej Paszta Mobile Systems Research Labs, Poznan University of Technology
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
participants (3)
-
Clemens Ladisch
-
Maciej Paszta
-
Takashi Iwai