diff options
author | Tejun Heo <teheo@suse.de> | 2009-08-06 11:13:58 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-08-10 13:59:26 +0200 |
commit | 0a848680a82e47854347cdfecbe9adf8842719e6 (patch) | |
tree | 228ab8937e348d4f8100fef73485a77f13b2d1da | |
parent | chrdev: implement __[un]register_chrdev() (diff) | |
download | linux-0a848680a82e47854347cdfecbe9adf8842719e6.tar.xz linux-0a848680a82e47854347cdfecbe9adf8842719e6.zip |
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.c | 12 |
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) |