aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorMichael Buesch <mb@bu3sch.de>2008-02-19 10:22:50 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-02-20 20:11:49 -0500
commit53521d8c90d366191b6c134f88a8ebe83de60614 (patch)
tree2d4b8bed0db743927586389ab035aab816d22f36 /include/linux
parentc2bcbe65fc88d61f9a806367ff6eab76c9eabb3a (diff)
ssb: Make the GPIO API reentrancy safe
This fixes the GPIO API to be reentrancy safe. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ssb/ssb.h5
-rw-r--r--include/linux/ssb/ssb_embedded.h8
2 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index 9d5da8b2ccf9..d14c03685717 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -283,6 +283,11 @@ struct ssb_bus {
283 /* Contents of the SPROM. */ 283 /* Contents of the SPROM. */
284 struct ssb_sprom sprom; 284 struct ssb_sprom sprom;
285 285
286#ifdef CONFIG_SSB_EMBEDDED
287 /* Lock for GPIO register access. */
288 spinlock_t gpio_lock;
289#endif /* EMBEDDED */
290
286 /* Internal-only stuff follows. Do not touch. */ 291 /* Internal-only stuff follows. Do not touch. */
287 struct list_head list; 292 struct list_head list;
288#ifdef CONFIG_SSB_DEBUG 293#ifdef CONFIG_SSB_DEBUG
diff --git a/include/linux/ssb/ssb_embedded.h b/include/linux/ssb/ssb_embedded.h
index 80bd58496450..8d8dedff059d 100644
--- a/include/linux/ssb/ssb_embedded.h
+++ b/include/linux/ssb/ssb_embedded.h
@@ -7,4 +7,12 @@
7 7
8extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks); 8extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks);
9 9
10/* Generic GPIO API */
11u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask);
12u32 ssb_gpio_out(struct ssb_bus *bus, u32 mask, u32 value);
13u32 ssb_gpio_outen(struct ssb_bus *bus, u32 mask, u32 value);
14u32 ssb_gpio_control(struct ssb_bus *bus, u32 mask, u32 value);
15u32 ssb_gpio_intmask(struct ssb_bus *bus, u32 mask, u32 value);
16u32 ssb_gpio_polarity(struct ssb_bus *bus, u32 mask, u32 value);
17
10#endif /* LINUX_SSB_EMBEDDED_H_ */ 18#endif /* LINUX_SSB_EMBEDDED_H_ */