On Sun, Mar 12, 2000 at 06:54:22PM +0100, Christoph Hellwig wrote:
> > Can you decide whether you want to wrap this in some magical #ifdef's
> > and send it on to Linus?
> You can send it to Linus, the changes seem ok.

This is a better patch.  It now unloads cleanly too.

Linus, please apply this to your tree.  It fixes mpu401.c for the
Ensoniq SoundScape.

-- 
Simon  [ [EMAIL PROTECTED] ] *\                "Cockroaches!  They're  \**
****** ]-+-+-+-+-+-+-+-+-[ **\            everywhere...uuugghh...I'm  \*
****** [  Htag.pl 0.0.4  ] ***\                 surrounded!" - Mulder  \
--- mpu401.c.old        Sun Mar 12 14:17:11 2000
+++ mpu401.c    Mon Mar 13 17:13:13 2000
@@ -1726,25 +1726,24 @@
 {
        /* Can be loaded either for module use or to provide functions
           to others */
-       cfg.irq = irq;
-       cfg.io_base = io;
-       
-       if (cfg.io_base != -1 && cfg.irq != -1) {
-               printk(KERN_WARNING "mpu401: need io and irq !");
-               return -ENODEV;
+       if (io != -1 && irq != -1) {
+               cfg.irq = irq;
+               cfg.io_base = io;
+               if (probe_mpu401(&cfg) == 0)
+                       return -ENODEV;
+               attach_mpu401(&cfg);
        }
        
-       if (probe_mpu401(&cfg) == 0)
-               return -ENODEV;
-       attach_mpu401(&cfg);
-
        SOUND_LOCK;
        return 0;
 }
 
 void cleanup_mpu401(void)
 {
-       unload_mpu401(&cfg);
+       if (io != -1 && irq != -1) {
+               /* Check for use by, for example, sscape driver */
+               unload_mpu401(&cfg);
+       }
        SOUND_LOCK_END;
 }
 

Reply via email to