linux/arch/powerpc/platforms/85xx
Anton Vorontsov fa644298eb powerpc/85xx: Fix oops during MSI driver probe on MPC85xxMDS boards
MPC85xx chips report the wrong value in feature reporting register,
and that causes the following oops:

 Unable to handle kernel paging request for data at address 0x00000c00
 Faulting instruction address: 0xc0019294
 Oops: Kernel access of bad area, sig: 11 [#1]
 MPC8569 MDS
 Modules linked in:
 [...]
 NIP [c0019294] mpic_set_irq_type+0x2f0/0x368
 LR [c0019124] mpic_set_irq_type+0x180/0x368
 Call Trace:
 [ef851d60] [c0019124] mpic_set_irq_type+0x180/0x368 (unreliable)
 [ef851d90] [c007958c] __irq_set_trigger+0x44/0xd4
 [ef851db0] [c007b550] set_irq_type+0x40/0x7c
 [ef851dc0] [c0004a60] irq_create_of_mapping+0xb4/0x114
 [ef851df0] [c0004af0] irq_of_parse_and_map+0x30/0x40
 [ef851e20] [c0405678] fsl_of_msi_probe+0x1a0/0x328
 [ef851e60] [c02e6438] of_platform_device_probe+0x5c/0x84
 [...]

This is because mpic_alloc() assigns wrong values to
mpic->isu_{size,shift,mask}, and things eventually break when
_mpic_irq_read() is trying to use them.

This patch fixes the issue by enabling MPIC_BROKEN_FRR_NIRQS quirk.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2010-02-13 14:23:22 -06:00
..
corenet_ds.c powerpc/p4080: Add basic support for p4080ds platform 2009-11-20 16:45:38 -06:00
corenet_ds.h powerpc/p4080: Add basic support for p4080ds platform 2009-11-20 16:45:38 -06:00
Kconfig powerpc/p4080: Add basic support for p4080ds platform 2009-11-20 16:45:38 -06:00
ksi8560.c powerpc/85xx: Move gianfar mdio nodes under the ethernet nodes 2009-03-24 08:35:13 -05:00
Makefile powerpc/p4080: Add basic support for p4080ds platform 2009-11-20 16:45:38 -06:00
mpc85xx_ads.c powerpc/85xx: Move gianfar mdio nodes under the ethernet nodes 2009-03-24 08:35:13 -05:00
mpc85xx_cds.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask 2009-03-30 18:00:26 -07:00
mpc85xx_ds.c powerpc: Remove swiotlb_pci_dma_ops 2009-08-28 14:24:09 +10:00
mpc85xx_mds.c powerpc/85xx: Fix oops during MSI driver probe on MPC85xxMDS boards 2010-02-13 14:23:22 -06:00
mpc85xx_rdb.c powerpc/85xx: Added P1020RDB Platform support. 2009-11-11 21:43:16 -06:00
mpc8536_ds.c powerpc: Remove swiotlb_pci_dma_ops 2009-08-28 14:24:09 +10:00
p4080_ds.c powerpc/p4080: Add basic support for p4080ds platform 2009-11-20 16:45:38 -06:00
sbc8548.c powerpc/85xx: Move gianfar mdio nodes under the ethernet nodes 2009-03-24 08:35:13 -05:00
sbc8560.c powerpc/85xx: sbc8560 - Fix warm reboot with board specific reset function 2009-08-24 20:48:12 -05:00
smp.c powerpc/85xx: Fix SMP compile error and allow NULL for smp_ops 2009-09-11 11:27:57 +10:00
socrates_fpga_pic.c powerpc: Make "intspec" pointers in irq_host->xlate() const 2009-12-09 17:10:37 +11:00
socrates_fpga_pic.h powerpc/85xx: Add support for the "socrates" board (MPC8544). 2009-03-27 06:42:08 -05:00
socrates.c powerpc/85xx: Stop using ppc_md.init on socrates 2009-06-23 08:09:55 -05:00
stx_gp3.c powerpc/85xx: Move gianfar mdio nodes under the ethernet nodes 2009-03-24 08:35:13 -05:00
tqm85xx.c powerpc/85xx: Move gianfar mdio nodes under the ethernet nodes 2009-03-24 08:35:13 -05:00
xes_mpc85xx.c powerpc/85xx: remove duplicated #include 2009-06-23 08:09:59 -05:00