]> git.hungrycats.org Git - linux/commitdiff
[PATCH] opl3 cleanup and check_region() removal
authorAlexander Viro <viro@www.linux.org.uk>
Fri, 27 Aug 2004 12:12:07 +0000 (05:12 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 27 Aug 2004 12:12:07 +0000 (05:12 -0700)
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
sound/oss/opl3sa.c

index 079e5fc5da6133371eecd6ba984198d1a85ec882..b8de4a4499c4913fcb788e872917ee18d58ceb67 100644 (file)
 static int sb_initialized;
 #endif
 
-static int kilroy_was_here;    /* Don't detect twice */
-static int mpu_initialized;
 static spinlock_t lock=SPIN_LOCK_UNLOCKED;
-static int *opl3sa_osp;
 
 static unsigned char opl3sa_read(int addr)
 {
@@ -108,11 +105,8 @@ static int __init opl3sa_detect(void)
 
 static int __init probe_opl3sa_wss(struct address_info *hw_config)
 {
-       int ret;
        unsigned char tmp = 0x24;       /* WSS enable */
 
-       if (check_region(0xf86, 2))     /* Control port is busy */
-               return 0;
        /*
         * Check if the IO port returns valid signature. The original MS Sound
         * system returns 0x04 while some cards (OPL3-SA for example)
@@ -124,7 +118,6 @@ static int __init probe_opl3sa_wss(struct address_info *hw_config)
                printk(KERN_ERR "OPL3-SA: MSS I/O port conflict (%x)\n", hw_config->io_base);
                return 0;
        }
-       opl3sa_osp = hw_config->osp;
 
        if (!opl3sa_detect())
        {
@@ -152,13 +145,8 @@ static int __init probe_opl3sa_wss(struct address_info *hw_config)
        }
 
        opl3sa_write(0x01, tmp);        /* WSS setup register */
-       kilroy_was_here = 1;
-
-       ret = probe_ms_sound(hw_config);
-       if (ret)
-               request_region(0xf86, 2, "OPL3-SA");
 
-       return ret;
+       return probe_ms_sound(hw_config);
 }
 
 static void __init attach_opl3sa_wss(struct address_info *hw_config)
@@ -183,14 +171,6 @@ static int __init probe_opl3sa_mpu(struct address_info *hw_config)
                -1, -1, -1, -1, -1, 1, -1, 2, -1, 3, 4
        };
 
-       if (!kilroy_was_here)
-               return 0;       /* OPL3-SA has not been detected earlier */
-
-       if (mpu_initialized)
-       {
-               DDB(printk("OPL3-SA: MPU mode already initialized\n"));
-               return 0;
-       }
        if (hw_config->irq > 10)
        {
                printk(KERN_ERR "OPL3-SA: Bad MPU IRQ %d\n", hw_config->irq);
@@ -224,7 +204,6 @@ static int __init probe_opl3sa_mpu(struct address_info *hw_config)
 
        opl3sa_write(0x03, conf);
 
-       mpu_initialized = 1;
        hw_config->name = "OPL3-SA (MPU401)";
 
        return probe_uart401(hw_config, THIS_MODULE);
@@ -294,8 +273,13 @@ static int __init init_opl3sa(void)
        cfg_mpu.io_base = mpu_io;
        cfg_mpu.irq = mpu_irq;
 
-       if (probe_opl3sa_wss(&cfg) == 0)
+       if (!request_region(0xf86, 2, "OPL3-SA"))/* Control port is busy */
+               return 0;
+
+       if (probe_opl3sa_wss(&cfg) == 0) {
+               release_region(0xf86, 2);
                return -ENODEV;
+       }
 
        found_mpu=probe_opl3sa_mpu(&cfg_mpu);