diff options
| author | James Morris <jmorris@macbook.(none)> | 2009-12-03 12:03:40 +0530 |
|---|---|---|
| committer | James Morris <jmorris@macbook.(none)> | 2009-12-03 12:03:40 +0530 |
| commit | c84d6efd363a3948eb32ec40d46bab6338580454 (patch) | |
| tree | 3ba7ac46e6626fe8ac843834588609eb6ccee5c6 /arch/powerpc/platforms/pseries/xics.c | |
| parent | 7539cf4b92be4aecc573ea962135f246a7a33401 (diff) | |
| parent | 22763c5cf3690a681551162c15d34d935308c8d7 (diff) | |
| download | kernel_samsung_smdk4412-c84d6efd363a3948eb32ec40d46bab6338580454.tar.gz kernel_samsung_smdk4412-c84d6efd363a3948eb32ec40d46bab6338580454.tar.bz2 kernel_samsung_smdk4412-c84d6efd363a3948eb32ec40d46bab6338580454.zip | |
Merge branch 'master' into next
Diffstat (limited to 'arch/powerpc/platforms/pseries/xics.c')
| -rw-r--r-- | arch/powerpc/platforms/pseries/xics.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index 419f8a637ff..b9bf0eedccf 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c @@ -18,6 +18,7 @@ #include <linux/init.h> #include <linux/radix-tree.h> #include <linux/cpu.h> +#include <linux/msi.h> #include <linux/of.h> #include <asm/firmware.h> @@ -219,6 +220,14 @@ static void xics_unmask_irq(unsigned int virq) static unsigned int xics_startup(unsigned int virq) { + /* + * The generic MSI code returns with the interrupt disabled on the + * card, using the MSI mask bits. Firmware doesn't appear to unmask + * at that level, so we do it here by hand. + */ + if (irq_to_desc(virq)->msi_desc) + unmask_msi_irq(virq); + /* unmask it */ xics_unmask_irq(virq); return 0; |
