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>
This commit is contained in:
committed by
John W. Linville
parent
c2bcbe65fc
commit
53521d8c90
@@ -283,6 +283,11 @@ struct ssb_bus {
|
||||
/* Contents of the SPROM. */
|
||||
struct ssb_sprom sprom;
|
||||
|
||||
#ifdef CONFIG_SSB_EMBEDDED
|
||||
/* Lock for GPIO register access. */
|
||||
spinlock_t gpio_lock;
|
||||
#endif /* EMBEDDED */
|
||||
|
||||
/* Internal-only stuff follows. Do not touch. */
|
||||
struct list_head list;
|
||||
#ifdef CONFIG_SSB_DEBUG
|
||||
|
@@ -7,4 +7,12 @@
|
||||
|
||||
extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks);
|
||||
|
||||
/* Generic GPIO API */
|
||||
u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask);
|
||||
u32 ssb_gpio_out(struct ssb_bus *bus, u32 mask, u32 value);
|
||||
u32 ssb_gpio_outen(struct ssb_bus *bus, u32 mask, u32 value);
|
||||
u32 ssb_gpio_control(struct ssb_bus *bus, u32 mask, u32 value);
|
||||
u32 ssb_gpio_intmask(struct ssb_bus *bus, u32 mask, u32 value);
|
||||
u32 ssb_gpio_polarity(struct ssb_bus *bus, u32 mask, u32 value);
|
||||
|
||||
#endif /* LINUX_SSB_EMBEDDED_H_ */
|
||||
|
Reference in New Issue
Block a user