X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Fsound_core.c;h=6f849720aef35fa08552dc1bc8e16fc84383e0aa;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=62d4d0c812611e22227e064cfd43eb36583f70a4;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/sound/sound_core.c b/sound/sound_core.c index 62d4d0c81..6f849720a 100644 --- a/sound/sound_core.c +++ b/sound/sound_core.c @@ -34,6 +34,7 @@ * locking at some point in 2.3.x. */ +#include #include #include #include @@ -43,6 +44,7 @@ #include #include #include +#include #include #define SOUND_STEP 16 @@ -170,6 +172,8 @@ static int sound_insert_unit(struct sound_unit **list, const struct file_operati else sprintf(s->name, "sound/%s%d", name, r / SOUND_STEP); + devfs_mk_cdev(MKDEV(SOUND_MAJOR, s->unit_minor), + S_IFCHR | mode, s->name); class_device_create(sound_class, NULL, MKDEV(SOUND_MAJOR, s->unit_minor), dev, s->name+6); return r; @@ -193,6 +197,7 @@ static void sound_remove_unit(struct sound_unit **list, int unit) p = __sound_remove_unit(list, unit); spin_unlock(&sound_loader_lock); if (p) { + devfs_remove(p->name); class_device_destroy(sound_class, MKDEV(SOUND_MAJOR, p->unit_minor)); kfree(p); } @@ -565,6 +570,7 @@ static void __exit cleanup_soundcore(void) /* We have nothing to really do here - we know the lists must be empty */ unregister_chrdev(SOUND_MAJOR, "sound"); + devfs_remove("sound"); class_destroy(sound_class); } @@ -574,6 +580,7 @@ static int __init init_soundcore(void) printk(KERN_ERR "soundcore: sound device already in use.\n"); return -EBUSY; } + devfs_mk_dir ("sound"); sound_class = class_create(THIS_MODULE, "sound"); if (IS_ERR(sound_class)) return PTR_ERR(sound_class);