aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/include
diff options
context:
space:
mode:
authorCyril Chemparathy <cyril@ti.com>2010-05-01 18:37:55 -0400
committerKevin Hilman <khilman@deeprootsystems.com>2010-05-06 15:02:09 -0700
commitb27b6d03f245e5eaf6473da58a2612077fb7cfe7 (patch)
treeb6ed359c8b604edcaed5025aa83c57d77daec1a9 /arch/arm/mach-davinci/include
parentDavinci: gpio - controller type support (diff)
downloadlinux-dev-b27b6d03f245e5eaf6473da58a2612077fb7cfe7.tar.xz
linux-dev-b27b6d03f245e5eaf6473da58a2612077fb7cfe7.zip
Davinci: gpio - fine grained locking
This patch eliminates the global gpio_lock, and implements a per-controller lock instead. This also switches to irqsave/irqrestore locks in case gpios are manipulated in isr. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Tested-by: Sandeep Paulraj <s-paulraj@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-davinci/include')
-rw-r--r--arch/arm/mach-davinci/include/mach/gpio.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/include/mach/gpio.h b/arch/arm/mach-davinci/include/mach/gpio.h
index 9a71a26eb77f..504cc180a60b 100644
--- a/arch/arm/mach-davinci/include/mach/gpio.h
+++ b/arch/arm/mach-davinci/include/mach/gpio.h
@@ -14,6 +14,8 @@
#define __DAVINCI_GPIO_H
#include <linux/io.h>
+#include <linux/spinlock.h>
+
#include <asm-generic/gpio.h>
#include <mach/irqs.h>
@@ -52,6 +54,7 @@ enum davinci_gpio_type {
struct davinci_gpio_controller {
struct gpio_chip chip;
int irq_base;
+ spinlock_t lock;
void __iomem *regs;
void __iomem *set_data;
void __iomem *clr_data;