summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTejun Heo <teheo@suse.de>2009-08-06 13:13:58 +0400
committerTakashi Iwai <tiwai@suse.de>2009-08-10 15:59:26 +0400
commit0a848680a82e47854347cdfecbe9adf8842719e6 (patch)
tree228ab8937e348d4f8100fef73485a77f13b2d1da
parent1905b1bfc0de6f69a61dc03cac0d86a04b3216bd (diff)
downloadlinux-0a848680a82e47854347cdfecbe9adf8842719e6.tar.xz
sound: request char-major-* module aliases for missing OSS devices
Till now missing OSS devices emitted sound-slot/service-* module alises instead of the standard char-major-* if a missing device number is opened if soundcore is loaded. The custom module aliases don't have any inherent benefit than backward compatibility. sound-slot/service-* module aliases is scheduled to be removed and to help the transition this patch makes soundcore emit the standard module alises along with the custom ones. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/sound_core.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sound/sound_core.c b/sound/sound_core.c
index a41f8b127f49..786067c49b01 100644
--- a/sound/sound_core.c
+++ b/sound/sound_core.c
@@ -541,6 +541,7 @@ static int soundcore_open(struct inode *inode, struct file *file)
new_fops = fops_get(s->unit_fops);
if (!new_fops) {
spin_unlock(&sound_loader_lock);
+
/*
* Please, don't change this order or code.
* For ALSA slot means soundcard and OSS emulation code
@@ -550,6 +551,17 @@ static int soundcore_open(struct inode *inode, struct file *file)
*/
request_module("sound-slot-%i", unit>>4);
request_module("sound-service-%i-%i", unit>>4, chain);
+
+ /*
+ * sound-slot/service-* module aliases are scheduled
+ * for removal in favor of the standard char-major-*
+ * module aliases. For the time being, generate both
+ * the legacy and standard module aliases to ease
+ * transition.
+ */
+ if (request_module("char-major-%d-%d", SOUND_MAJOR, unit) > 0)
+ request_module("char-major-%d", SOUND_MAJOR);
+
spin_lock(&sound_loader_lock);
s = __look_for_unit(chain, unit);
if (s)