/* arch/arm/plat-samsung/wakeup-mask.c * * Copyright 2010 Ben Dooks <ben-linux@fluff.org> * * Support for wakeup mask interrupts on newer SoCs * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include <linux/kernel.h> #include <linux/spinlock.h> #include <linux/device.h> #include <linux/types.h> #include <linux/irq.h> #include <linux/io.h> #include <plat/wakeup-mask.h> #include <plat/pm.h>
void samsung_sync_wakemask(void __iomem *reg, const struct samsung_wakeup_mask *mask, int nr_mask) { struct irq_data *data; u32 val; val = __raw_readl(reg); for (; nr_mask > 0; nr_mask--, mask++) { if (mask->irq == NO_WAKEUP_IRQ) { val |= mask->bit; continue; } data = irq_get_irq_data(mask->irq); /* bit of a liberty to read this directly from irq_data. */ if (irqd_is_wakeup_set(data)) val &= ~mask->bit; else val |= mask->bit; } printk(KERN_INFO "wakemask %08x => %08x\n", __raw_readl(reg), val); __raw_writel(val, reg); }Contributors
Person | Tokens | Prop | Commits | CommitProp |
Ben Dooks | 107 | 91.45% | 1 | 33.33% |
Thomas Gleixner | 9 | 7.69% | 1 | 33.33% |
Krzysztof Kozlowski | 1 | 0.85% | 1 | 33.33% |
Total | 117 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Ben Dooks | 131 | 92.25% | 1 | 25.00% |
Thomas Gleixner | 9 | 6.34% | 1 | 25.00% |
Kay Sievers | 1 | 0.70% | 1 | 25.00% |
Krzysztof Kozlowski | 1 | 0.70% | 1 | 25.00% |
Total | 142 | 100.00% | 4 | 100.00% |