diff options
-rw-r--r-- | sound/drivers/pcsp/pcsp.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/sound/drivers/pcsp/pcsp.c b/sound/drivers/pcsp/pcsp.c index 264d2a56dcd2..547005cb0942 100644 --- a/sound/drivers/pcsp/pcsp.c +++ b/sound/drivers/pcsp/pcsp.c @@ -31,7 +31,7 @@ MODULE_PARM_DESC(index, "Index value for pcsp soundcard."); module_param(id, charp, 0444); MODULE_PARM_DESC(id, "ID string for pcsp soundcard."); module_param(enable, bool, 0444); -MODULE_PARM_DESC(enable, "dummy"); +MODULE_PARM_DESC(enable, "Enable PC-Speaker sound."); struct snd_pcsp pcsp_chip; @@ -136,7 +136,13 @@ static int __devinit snd_card_pcsp_probe(int devnum, struct device *dev) static int __devinit alsa_card_pcsp_init(struct device *dev) { - int devnum = 0, cards = 0; + int err; + + err = snd_card_pcsp_probe(0, dev); + if (err) { + printk(KERN_ERR "PC-Speaker initialization failed.\n"); + return err; + } #ifdef CONFIG_DEBUG_PAGEALLOC /* Well, CONFIG_DEBUG_PAGEALLOC makes the sound horrible. Lets alert */ @@ -148,15 +154,6 @@ static int __devinit alsa_card_pcsp_init(struct device *dev) "and crackling noise.\n"); #endif - if (enable) { - if (snd_card_pcsp_probe(devnum, dev) >= 0) - cards++; - if (!cards) { - printk(KERN_ERR "PC-Speaker initialization failed.\n"); - return -ENODEV; - } - } - return 0; } @@ -168,6 +165,7 @@ static void __devexit alsa_card_pcsp_exit(struct snd_pcsp *chip) static int __devinit pcsp_probe(struct platform_device *dev) { int err; + err = pcspkr_input_init(&pcsp_chip.input_dev, &dev->dev); if (err < 0) return err; @@ -227,6 +225,8 @@ static struct platform_driver pcsp_platform_driver = { static int __init pcsp_init(void) { + if (!enable) + return -ENODEV; return platform_driver_register(&pcsp_platform_driver); } |