]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
[PATCH 3/6] ads7846: replace spin_lock_irqsave
authorImre Deak <imre.deak@nokia.com>
Mon, 15 May 2006 07:35:25 +0000 (00:35 -0700)
committerTony Lindgren <tony@atomide.com>
Mon, 15 May 2006 07:35:25 +0000 (00:35 -0700)
Replace spin_lock_irqsave's with spin_lock_irq where possible, fix
a related bug in ads7846_disable() where we spin_unlock_irqrestore'd
from an uninitialized flags.

Signed-off-by: Imre Deak <imre.deak@nokia.com>
drivers/input/touchscreen/ads7846.c

index d9c9e0cb8a74356d67e31b42c8b91d986b78fba6..8200a03ee2d7f7927be9b4c3ff70abeeec30a73f 100644 (file)
@@ -335,19 +335,18 @@ static ssize_t ads7846_disable_store(struct device *dev,
                                     const char *buf, size_t count)
 {
        struct ads7846 *ts = dev_get_drvdata(dev);
-       unsigned long flags;
        char *endp;
        int i;
 
        i = simple_strtoul(buf, &endp, 10);
-       spin_lock_irqsave(&ts->lock, flags);
+       spin_lock_irq(&ts->lock);
 
        if (i)
                ads7846_disable(ts);
        else
                ads7846_enable(ts);
 
-       spin_unlock_irqrestore(&ts->lock, flags);
+       spin_unlock_irq(&ts->lock);
 
        return count;
 }
@@ -532,8 +531,6 @@ static void ads7846_disable(struct ads7846 *ts)
                        disable_irq(ts->spi->irq);
                }
        } else {
-               unsigned long flags;
-
                /* polling; force a final SPI completion;
                 * that will clean things up neatly
                 */
@@ -541,9 +538,9 @@ static void ads7846_disable(struct ads7846 *ts)
                        mod_timer(&ts->timer, jiffies);
 
                while (ts->pendown || ts->pending) {
-                       spin_unlock_irqrestore(&ts->lock, flags);
+                       spin_unlock_irq(&ts->lock);
                        msleep(1);
-                       spin_lock_irqsave(&ts->lock, flags);
+                       spin_lock_irq(&ts->lock);
                }
        }
 
@@ -568,14 +565,13 @@ static void ads7846_enable(struct ads7846 *ts)
 static int ads7846_suspend(struct spi_device *spi, pm_message_t message)
 {
        struct ads7846 *ts = dev_get_drvdata(&spi->dev);
-       unsigned long   flags;
 
-       spin_lock_irqsave(&ts->lock, flags);
+       spin_lock_irq(&ts->lock);
 
        spi->dev.power.power_state = message;
        ads7846_disable(ts);
 
-       spin_unlock_irqrestore(&ts->lock, flags);
+       spin_unlock_irq(&ts->lock);
 
        return 0;
 
@@ -584,14 +580,13 @@ static int ads7846_suspend(struct spi_device *spi, pm_message_t message)
 static int ads7846_resume(struct spi_device *spi)
 {
        struct ads7846 *ts = dev_get_drvdata(&spi->dev);
-       unsigned long flags;
 
-       spin_lock_irqsave(&ts->lock, flags);
+       spin_lock_irq(&ts->lock);
 
        spi->dev.power.power_state = PMSG_ON;
        ads7846_enable(ts);
 
-       spin_unlock_irqrestore(&ts->lock, flags);
+       spin_unlock_irq(&ts->lock);
 
        return 0;
 }