]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/i386/kernel/scx200.c
[PATCH] lockdep: improve debug output
[linux-2.6-omap-h63xx.git] / arch / i386 / kernel / scx200.c
index 27be55349c65f88911d9484baadb77e9d58d10cd..c7d3df23f589422b9753266f9de8617415650531 100644 (file)
@@ -4,11 +4,11 @@
 
    National Semiconductor SCx200 support. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/mutex.h>
 #include <linux/pci.h>
 
 #include <linux/scx200.h>
@@ -45,7 +45,7 @@ static struct pci_driver scx200_pci_driver = {
        .probe = scx200_probe,
 };
 
-static DEFINE_SPINLOCK(scx200_gpio_config_lock);
+static DEFINE_MUTEX(scx200_gpio_config_lock);
 
 static void __devinit scx200_init_shadow(void)
 {
@@ -95,9 +95,8 @@ static int __devinit scx200_probe(struct pci_dev *pdev, const struct pci_device_
 u32 scx200_gpio_configure(unsigned index, u32 mask, u32 bits)
 {
        u32 config, new_config;
-       unsigned long flags;
 
-       spin_lock_irqsave(&scx200_gpio_config_lock, flags);
+       mutex_lock(&scx200_gpio_config_lock);
 
        outl(index, scx200_gpio_base + 0x20);
        config = inl(scx200_gpio_base + 0x24);
@@ -105,26 +104,11 @@ u32 scx200_gpio_configure(unsigned index, u32 mask, u32 bits)
        new_config = (config & mask) | bits;
        outl(new_config, scx200_gpio_base + 0x24);
 
-       spin_unlock_irqrestore(&scx200_gpio_config_lock, flags);
+       mutex_unlock(&scx200_gpio_config_lock);
 
        return config;
 }
 
-void scx200_gpio_dump(unsigned index)
-{
-        u32 config = scx200_gpio_configure(index, ~0, 0);
-
-        printk(KERN_INFO NAME ": GPIO-%02u: 0x%08lx %s %s %s %s %s %s %s\n",
-               index, (unsigned long) config,
-               (config & 1) ? "OE"      : "TS",                /* output enabled / tristate */
-               (config & 2) ? "PP"      : "OD",                /* push pull / open drain */
-               (config & 4) ? "PUE"     : "PUD",       /* pull up enabled/disabled */
-               (config & 8) ? "LOCKED"  : "",          /* locked / unlocked */
-               (config & 16) ? "LEVEL"  : "EDGE",      /* level/edge input */
-               (config & 32) ? "HI"     : "LO",                /* trigger on rising/falling edge */
-               (config & 64) ? "DEBOUNCE" : "");       /* debounce */
-}
-
 static int __init scx200_init(void)
 {
        printk(KERN_INFO NAME ": NatSemi SCx200 Driver\n");
@@ -144,5 +128,4 @@ module_exit(scx200_cleanup);
 EXPORT_SYMBOL(scx200_gpio_base);
 EXPORT_SYMBOL(scx200_gpio_shadow);
 EXPORT_SYMBOL(scx200_gpio_configure);
-EXPORT_SYMBOL(scx200_gpio_dump);
 EXPORT_SYMBOL(scx200_cb_base);