summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2014-05-19 22:06:02 -0700
committerOlof Johansson <olof@lixom.net>2014-05-19 22:06:36 -0700
commit9e05f9f300828aecb84659cedc6399b7a76683ef (patch)
treec335cb4d73c1b6f222fa855756c7096b7f1308e3 /drivers/irqchip
parenta501fd37f77a703a8710af8f6964e0ae269df973 (diff)
parentc7cff54d5926e3f419c23eff2ebaf6f5e12da05d (diff)
downloadop-kernel-dev-9e05f9f300828aecb84659cedc6399b7a76683ef.zip
op-kernel-dev-9e05f9f300828aecb84659cedc6399b7a76683ef.tar.gz
Merge tag 'sirf-soc-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux into next/cleanup
Merge "ARM: sirf: machine update for 3.16" from Barry Song: Most of them fix some minor checkpatch issues according to key customers' requirement. And this patchset also cleanups the clk of clocksource: move to get clk by dts properity. * tag 'sirf-soc-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux: clocksource:sirf: remove the hardcode for the clk of timers irqchip: sirf: fix one minor checkpatch issue clocksource: prima2: fix some minor checkpatch issues ARM: prima2: rstc: fix some minor checkpatch issues + Linux 3.15-rc3 Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'drivers/irqchip')
-rw-r--r--drivers/irqchip/irq-gic.c8
-rw-r--r--drivers/irqchip/irq-sirfsoc.c3
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index 4300b66..57d165e 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -246,10 +246,14 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
bool force)
{
void __iomem *reg = gic_dist_base(d) + GIC_DIST_TARGET + (gic_irq(d) & ~3);
- unsigned int shift = (gic_irq(d) % 4) * 8;
- unsigned int cpu = cpumask_any_and(mask_val, cpu_online_mask);
+ unsigned int cpu, shift = (gic_irq(d) % 4) * 8;
u32 val, mask, bit;
+ if (!force)
+ cpu = cpumask_any_and(mask_val, cpu_online_mask);
+ else
+ cpu = cpumask_first(mask_val);
+
if (cpu >= NR_GIC_CPU_IF || cpu >= nr_cpu_ids)
return -EINVAL;
diff --git a/drivers/irqchip/irq-sirfsoc.c b/drivers/irqchip/irq-sirfsoc.c
index 581eefe..5e54f6d 100644
--- a/drivers/irqchip/irq-sirfsoc.c
+++ b/drivers/irqchip/irq-sirfsoc.c
@@ -58,7 +58,8 @@ static void __exception_irq_entry sirfsoc_handle_irq(struct pt_regs *regs)
handle_IRQ(irqnr, regs);
}
-static int __init sirfsoc_irq_init(struct device_node *np, struct device_node *parent)
+static int __init sirfsoc_irq_init(struct device_node *np,
+ struct device_node *parent)
{
void __iomem *base = of_iomap(np, 0);
if (!base)
OpenPOWER on IntegriCloud