aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/core/info.c1
-rw-r--r--sound/core/sound.c24
-rw-r--r--sound/oss/soundcard.c16
-rw-r--r--sound/sound_core.c6
4 files changed, 2 insertions, 45 deletions
diff --git a/sound/core/info.c b/sound/core/info.c
index 10c1772bf3ea..340332c6d973 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -29,7 +29,6 @@
29#include <sound/info.h> 29#include <sound/info.h>
30#include <sound/version.h> 30#include <sound/version.h>
31#include <linux/proc_fs.h> 31#include <linux/proc_fs.h>
32#include <linux/devfs_fs_kernel.h>
33#include <linux/mutex.h> 32#include <linux/mutex.h>
34#include <stdarg.h> 33#include <stdarg.h>
35 34
diff --git a/sound/core/sound.c b/sound/core/sound.c
index cd862728346c..264f2efd1af8 100644
--- a/sound/core/sound.c
+++ b/sound/core/sound.c
@@ -32,7 +32,6 @@
32#include <sound/control.h> 32#include <sound/control.h>
33#include <sound/initval.h> 33#include <sound/initval.h>
34#include <linux/kmod.h> 34#include <linux/kmod.h>
35#include <linux/devfs_fs_kernel.h>
36#include <linux/mutex.h> 35#include <linux/mutex.h>
37 36
38#define SNDRV_OS_MINORS 256 37#define SNDRV_OS_MINORS 256
@@ -42,7 +41,6 @@ int snd_major;
42EXPORT_SYMBOL(snd_major); 41EXPORT_SYMBOL(snd_major);
43 42
44static int cards_limit = 1; 43static int cards_limit = 1;
45static int device_mode = S_IFCHR | S_IRUGO | S_IWUGO;
46 44
47MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>"); 45MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
48MODULE_DESCRIPTION("Advanced Linux Sound Architecture driver for soundcards."); 46MODULE_DESCRIPTION("Advanced Linux Sound Architecture driver for soundcards.");
@@ -51,10 +49,6 @@ module_param(major, int, 0444);
51MODULE_PARM_DESC(major, "Major # for sound driver."); 49MODULE_PARM_DESC(major, "Major # for sound driver.");
52module_param(cards_limit, int, 0444); 50module_param(cards_limit, int, 0444);
53MODULE_PARM_DESC(cards_limit, "Count of auto-loadable soundcards."); 51MODULE_PARM_DESC(cards_limit, "Count of auto-loadable soundcards.");
54#ifdef CONFIG_DEVFS_FS
55module_param(device_mode, int, 0444);
56MODULE_PARM_DESC(device_mode, "Device file permission mask for devfs.");
57#endif
58MODULE_ALIAS_CHARDEV_MAJOR(CONFIG_SND_MAJOR); 52MODULE_ALIAS_CHARDEV_MAJOR(CONFIG_SND_MAJOR);
59 53
60/* this one holds the actual max. card number currently available. 54/* this one holds the actual max. card number currently available.
@@ -273,8 +267,6 @@ int snd_register_device(int type, struct snd_card *card, int dev,
273 return minor; 267 return minor;
274 } 268 }
275 snd_minors[minor] = preg; 269 snd_minors[minor] = preg;
276 if (type != SNDRV_DEVICE_TYPE_CONTROL || preg->card >= cards_limit)
277 devfs_mk_cdev(MKDEV(major, minor), S_IFCHR | device_mode, "snd/%s", name);
278 if (card) 270 if (card)
279 device = card->dev; 271 device = card->dev;
280 class_device_create(sound_class, NULL, MKDEV(major, minor), device, "%s", name); 272 class_device_create(sound_class, NULL, MKDEV(major, minor), device, "%s", name);
@@ -314,9 +306,6 @@ int snd_unregister_device(int type, struct snd_card *card, int dev)
314 return -EINVAL; 306 return -EINVAL;
315 } 307 }
316 308
317 if (mptr->type != SNDRV_DEVICE_TYPE_CONTROL ||
318 mptr->card >= cards_limit) /* created in sound.c */
319 devfs_remove("snd/%s", mptr->name);
320 class_device_destroy(sound_class, MKDEV(major, minor)); 309 class_device_destroy(sound_class, MKDEV(major, minor));
321 310
322 snd_minors[minor] = NULL; 311 snd_minors[minor] = NULL;
@@ -411,24 +400,17 @@ int __exit snd_minor_info_done(void)
411 400
412static int __init alsa_sound_init(void) 401static int __init alsa_sound_init(void)
413{ 402{
414 short controlnum;
415
416 snd_major = major; 403 snd_major = major;
417 snd_ecards_limit = cards_limit; 404 snd_ecards_limit = cards_limit;
418 devfs_mk_dir("snd");
419 if (register_chrdev(major, "alsa", &snd_fops)) { 405 if (register_chrdev(major, "alsa", &snd_fops)) {
420 snd_printk(KERN_ERR "unable to register native major device number %d\n", major); 406 snd_printk(KERN_ERR "unable to register native major device number %d\n", major);
421 devfs_remove("snd");
422 return -EIO; 407 return -EIO;
423 } 408 }
424 if (snd_info_init() < 0) { 409 if (snd_info_init() < 0) {
425 unregister_chrdev(major, "alsa"); 410 unregister_chrdev(major, "alsa");
426 devfs_remove("snd");
427 return -ENOMEM; 411 return -ENOMEM;
428 } 412 }
429 snd_info_minor_register(); 413 snd_info_minor_register();
430 for (controlnum = 0; controlnum < cards_limit; controlnum++)
431 devfs_mk_cdev(MKDEV(major, controlnum<<5), S_IFCHR | device_mode, "snd/controlC%d", controlnum);
432#ifndef MODULE 414#ifndef MODULE
433 printk(KERN_INFO "Advanced Linux Sound Architecture Driver Version " CONFIG_SND_VERSION CONFIG_SND_DATE ".\n"); 415 printk(KERN_INFO "Advanced Linux Sound Architecture Driver Version " CONFIG_SND_VERSION CONFIG_SND_DATE ".\n");
434#endif 416#endif
@@ -437,16 +419,10 @@ static int __init alsa_sound_init(void)
437 419
438static void __exit alsa_sound_exit(void) 420static void __exit alsa_sound_exit(void)
439{ 421{
440 short controlnum;
441
442 for (controlnum = 0; controlnum < cards_limit; controlnum++)
443 devfs_remove("snd/controlC%d", controlnum);
444
445 snd_info_minor_unregister(); 422 snd_info_minor_unregister();
446 snd_info_done(); 423 snd_info_done();
447 if (unregister_chrdev(major, "alsa") != 0) 424 if (unregister_chrdev(major, "alsa") != 0)
448 snd_printk(KERN_ERR "unable to unregister major device number %d\n", major); 425 snd_printk(KERN_ERR "unable to unregister major device number %d\n", major);
449 devfs_remove("snd");
450} 426}
451 427
452module_init(alsa_sound_init) 428module_init(alsa_sound_init)
diff --git a/sound/oss/soundcard.c b/sound/oss/soundcard.c
index d33bb464f70e..a33289948902 100644
--- a/sound/oss/soundcard.c
+++ b/sound/oss/soundcard.c
@@ -38,7 +38,6 @@
38#include <linux/wait.h> 38#include <linux/wait.h>
39#include <linux/slab.h> 39#include <linux/slab.h>
40#include <linux/ioport.h> 40#include <linux/ioport.h>
41#include <linux/devfs_fs_kernel.h>
42#include <linux/major.h> 41#include <linux/major.h>
43#include <linux/delay.h> 42#include <linux/delay.h>
44#include <linux/proc_fs.h> 43#include <linux/proc_fs.h>
@@ -564,9 +563,6 @@ static int __init oss_init(void)
564 sound_dmap_flag = (dmabuf > 0 ? 1 : 0); 563 sound_dmap_flag = (dmabuf > 0 ? 1 : 0);
565 564
566 for (i = 0; i < sizeof (dev_list) / sizeof *dev_list; i++) { 565 for (i = 0; i < sizeof (dev_list) / sizeof *dev_list; i++) {
567 devfs_mk_cdev(MKDEV(SOUND_MAJOR, dev_list[i].minor),
568 S_IFCHR | dev_list[i].mode,
569 "sound/%s", dev_list[i].name);
570 class_device_create(sound_class, NULL, 566 class_device_create(sound_class, NULL,
571 MKDEV(SOUND_MAJOR, dev_list[i].minor), 567 MKDEV(SOUND_MAJOR, dev_list[i].minor),
572 NULL, "%s", dev_list[i].name); 568 NULL, "%s", dev_list[i].name);
@@ -574,15 +570,10 @@ static int __init oss_init(void)
574 if (!dev_list[i].num) 570 if (!dev_list[i].num)
575 continue; 571 continue;
576 572
577 for (j = 1; j < *dev_list[i].num; j++) { 573 for (j = 1; j < *dev_list[i].num; j++)
578 devfs_mk_cdev(MKDEV(SOUND_MAJOR,
579 dev_list[i].minor + (j*0x10)),
580 S_IFCHR | dev_list[i].mode,
581 "sound/%s%d", dev_list[i].name, j);
582 class_device_create(sound_class, NULL, 574 class_device_create(sound_class, NULL,
583 MKDEV(SOUND_MAJOR, dev_list[i].minor + (j*0x10)), 575 MKDEV(SOUND_MAJOR, dev_list[i].minor + (j*0x10)),
584 NULL, "%s%d", dev_list[i].name, j); 576 NULL, "%s%d", dev_list[i].name, j);
585 }
586 } 577 }
587 578
588 if (sound_nblocks >= 1024) 579 if (sound_nblocks >= 1024)
@@ -596,14 +587,11 @@ static void __exit oss_cleanup(void)
596 int i, j; 587 int i, j;
597 588
598 for (i = 0; i < sizeof (dev_list) / sizeof *dev_list; i++) { 589 for (i = 0; i < sizeof (dev_list) / sizeof *dev_list; i++) {
599 devfs_remove("sound/%s", dev_list[i].name);
600 class_device_destroy(sound_class, MKDEV(SOUND_MAJOR, dev_list[i].minor)); 590 class_device_destroy(sound_class, MKDEV(SOUND_MAJOR, dev_list[i].minor));
601 if (!dev_list[i].num) 591 if (!dev_list[i].num)
602 continue; 592 continue;
603 for (j = 1; j < *dev_list[i].num; j++) { 593 for (j = 1; j < *dev_list[i].num; j++)
604 devfs_remove("sound/%s%d", dev_list[i].name, j);
605 class_device_destroy(sound_class, MKDEV(SOUND_MAJOR, dev_list[i].minor + (j*0x10))); 594 class_device_destroy(sound_class, MKDEV(SOUND_MAJOR, dev_list[i].minor + (j*0x10)));
606 }
607 } 595 }
608 596
609 unregister_sound_special(1); 597 unregister_sound_special(1);
diff --git a/sound/sound_core.c b/sound/sound_core.c
index 6f849720aef3..7535ec821dcf 100644
--- a/sound/sound_core.c
+++ b/sound/sound_core.c
@@ -44,7 +44,6 @@
44#include <linux/sound.h> 44#include <linux/sound.h>
45#include <linux/major.h> 45#include <linux/major.h>
46#include <linux/kmod.h> 46#include <linux/kmod.h>
47#include <linux/devfs_fs_kernel.h>
48#include <linux/device.h> 47#include <linux/device.h>
49 48
50#define SOUND_STEP 16 49#define SOUND_STEP 16
@@ -172,8 +171,6 @@ static int sound_insert_unit(struct sound_unit **list, const struct file_operati
172 else 171 else
173 sprintf(s->name, "sound/%s%d", name, r / SOUND_STEP); 172 sprintf(s->name, "sound/%s%d", name, r / SOUND_STEP);
174 173
175 devfs_mk_cdev(MKDEV(SOUND_MAJOR, s->unit_minor),
176 S_IFCHR | mode, s->name);
177 class_device_create(sound_class, NULL, MKDEV(SOUND_MAJOR, s->unit_minor), 174 class_device_create(sound_class, NULL, MKDEV(SOUND_MAJOR, s->unit_minor),
178 dev, s->name+6); 175 dev, s->name+6);
179 return r; 176 return r;
@@ -197,7 +194,6 @@ static void sound_remove_unit(struct sound_unit **list, int unit)
197 p = __sound_remove_unit(list, unit); 194 p = __sound_remove_unit(list, unit);
198 spin_unlock(&sound_loader_lock); 195 spin_unlock(&sound_loader_lock);
199 if (p) { 196 if (p) {
200 devfs_remove(p->name);
201 class_device_destroy(sound_class, MKDEV(SOUND_MAJOR, p->unit_minor)); 197 class_device_destroy(sound_class, MKDEV(SOUND_MAJOR, p->unit_minor));
202 kfree(p); 198 kfree(p);
203 } 199 }
@@ -570,7 +566,6 @@ static void __exit cleanup_soundcore(void)
570 /* We have nothing to really do here - we know the lists must be 566 /* We have nothing to really do here - we know the lists must be
571 empty */ 567 empty */
572 unregister_chrdev(SOUND_MAJOR, "sound"); 568 unregister_chrdev(SOUND_MAJOR, "sound");
573 devfs_remove("sound");
574 class_destroy(sound_class); 569 class_destroy(sound_class);
575} 570}
576 571
@@ -580,7 +575,6 @@ static int __init init_soundcore(void)
580 printk(KERN_ERR "soundcore: sound device already in use.\n"); 575 printk(KERN_ERR "soundcore: sound device already in use.\n");
581 return -EBUSY; 576 return -EBUSY;
582 } 577 }
583 devfs_mk_dir ("sound");
584 sound_class = class_create(THIS_MODULE, "sound"); 578 sound_class = class_create(THIS_MODULE, "sound");
585 if (IS_ERR(sound_class)) 579 if (IS_ERR(sound_class))
586 return PTR_ERR(sound_class); 580 return PTR_ERR(sound_class);