diff options
author | Daniel Lezcano <daniel.lezcano@linaro.org> | 2012-02-28 22:46:06 +0100 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2012-03-06 18:46:55 +0100 |
commit | cc9a0f68d1f8b9bfd9c0c2ada13db64d63f63db3 (patch) | |
tree | 5adff8293ddbf9ff83b778988b0b22fd22bc1711 /include/linux/mfd | |
parent | 801448e0672008acec050fbef3b8a7df7c5edcc1 (diff) | |
download | blackbird-op-linux-cc9a0f68d1f8b9bfd9c0c2ada13db64d63f63db3.tar.gz blackbird-op-linux-cc9a0f68d1f8b9bfd9c0c2ada13db64d63f63db3.zip |
mfd : Check if there are pending irq on the db8500 gic
This patch introduces a routine to check if there are some
irqs pending on the gic. Usually this check is not relevant because
it appears racy (an irq can arrive right after this check), but in
the ux500 it makes sense because the prcmu decouples the gic from
the A9 cores.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'include/linux/mfd')
-rw-r--r-- | include/linux/mfd/db8500-prcmu.h | 1 | ||||
-rw-r--r-- | include/linux/mfd/dbx500-prcmu.h | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/mfd/db8500-prcmu.h b/include/linux/mfd/db8500-prcmu.h index cf48aa76acc3..92dac13b9ee5 100644 --- a/include/linux/mfd/db8500-prcmu.h +++ b/include/linux/mfd/db8500-prcmu.h @@ -582,6 +582,7 @@ int db8500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll); u8 db8500_prcmu_get_power_state_result(void); int db8500_prcmu_gic_decouple(void); int db8500_prcmu_gic_recouple(void); +bool db8500_prcmu_gic_pending_irq(void); void db8500_prcmu_enable_wakeups(u32 wakeups); int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state); int db8500_prcmu_request_clock(u8 clock, bool enable); diff --git a/include/linux/mfd/dbx500-prcmu.h b/include/linux/mfd/dbx500-prcmu.h index 5bf5c4f0132c..16418747dad1 100644 --- a/include/linux/mfd/dbx500-prcmu.h +++ b/include/linux/mfd/dbx500-prcmu.h @@ -297,6 +297,14 @@ static inline int prcmu_gic_recouple(void) return db8500_prcmu_gic_recouple(); } +static inline bool prcmu_gic_pending_irq(void) +{ + if (cpu_is_u5500()) + return -EINVAL; + else + return db8500_prcmu_gic_pending_irq(); +} + static inline int prcmu_set_epod(u16 epod_id, u8 epod_state) { if (cpu_is_u5500()) |