diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2012-11-20 22:24:32 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2012-11-21 21:55:52 +0100 |
commit | 394bc7e38be79987ed15de203920c3cddb724cc1 (patch) | |
tree | 64cb52592aab0fb2f392560fb99d8d61caa81f4a /include/linux/ssb | |
parent | da22f22e91f0d14d996c7258101575a5a06ddf85 (diff) | |
download | op-kernel-dev-394bc7e38be79987ed15de203920c3cddb724cc1.zip op-kernel-dev-394bc7e38be79987ed15de203920c3cddb724cc1.tar.gz |
ssb: add locking around gpio register accesses
The GPIOs are access through some registers in the chip common core or
over extif. We need locking around these GPIO accesses, all GPIOs are
accessed through the same registers and parallel writes will cause
problems.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Patchwork: http://patchwork.linux-mips.org/patch/4590
Acked-by: Florian Fainelli <florian@openwrt.org>
Diffstat (limited to 'include/linux/ssb')
-rw-r--r-- | include/linux/ssb/ssb_driver_chipcommon.h | 1 | ||||
-rw-r--r-- | include/linux/ssb/ssb_driver_extif.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/ssb/ssb_driver_chipcommon.h b/include/linux/ssb/ssb_driver_chipcommon.h index c8d07c9..30b6943 100644 --- a/include/linux/ssb/ssb_driver_chipcommon.h +++ b/include/linux/ssb/ssb_driver_chipcommon.h @@ -590,6 +590,7 @@ struct ssb_chipcommon { u32 status; /* Fast Powerup Delay constant */ u16 fast_pwrup_delay; + spinlock_t gpio_lock; struct ssb_chipcommon_pmu pmu; }; diff --git a/include/linux/ssb/ssb_driver_extif.h b/include/linux/ssb/ssb_driver_extif.h index 91161f0..bd23068 100644 --- a/include/linux/ssb/ssb_driver_extif.h +++ b/include/linux/ssb/ssb_driver_extif.h @@ -158,6 +158,7 @@ struct ssb_extif { struct ssb_device *dev; + spinlock_t gpio_lock; }; static inline bool ssb_extif_available(struct ssb_extif *extif) |