Revert "Input: gpio_input: disable_irq -> disable_irq_nosync"
author黄涛 <huangtao@rock-chips.com>
Sat, 30 Jul 2011 14:56:06 +0000 (22:56 +0800)
committer黄涛 <huangtao@rock-chips.com>
Sat, 30 Jul 2011 14:56:06 +0000 (22:56 +0800)
This reverts commit 22c233c3439e9b6bf86b0bb9d952d9d9b676d590.

drivers/input/misc/gpio_input.c
drivers/input/misc/gpio_matrix.c

index 7e66f8cbd75583a320a6eb9eb278e21465f7fdc5..0d5c5bdbe14a863df2c146991a1b488f6b34d86d 100644 (file)
@@ -181,7 +181,7 @@ static irqreturn_t gpio_event_input_irq_handler(int irq, void *dev_id)
                                        ds->info->type, key_entry->code,
                                        keymap_index, key_entry->gpio);
                } else {
-                       disable_irq_nosync(irq);
+                       disable_irq(irq);
                        ks->debounce = DEBOUNCE_UNSTABLE;
                }
                spin_unlock_irqrestore(&ds->irq_lock, irqflags);
@@ -244,9 +244,11 @@ int gpio_event_input_func(struct gpio_event_input_devs *input_devs,
        di = container_of(info, struct gpio_event_input_info, info);
 
        if (func == GPIO_EVENT_FUNC_SUSPEND) {
+               spin_lock_irqsave(&ds->irq_lock, irqflags);
                if (ds->use_irq)
                        for (i = 0; i < di->keymap_size; i++)
                                disable_irq(gpio_to_irq(di->keymap[i].gpio));
+               spin_unlock_irqrestore(&ds->irq_lock, irqflags);
                hrtimer_cancel(&ds->timer);
                return 0;
        }
index 90866c4dcc69f2e3093aa3f575f9b5c13379ce7a..6d1c1a7ff67db6b0ee8b755130faf90415728ea9 100644 (file)
@@ -219,7 +219,7 @@ static irqreturn_t gpio_keypad_irq_handler(int irq_in, void *dev_id)
                return IRQ_HANDLED;
 
        for (i = 0; i < mi->ninputs; i++)
-               disable_irq_nosync(gpio_to_irq(mi->input_gpios[i]));
+               disable_irq(gpio_to_irq(mi->input_gpios[i]));
        for (i = 0; i < mi->noutputs; i++) {
                if (gpio_keypad_flags & GPIOKPF_DRIVE_INACTIVE)
                        gpio_set_value(mi->output_gpios[i],