On 10/06/17 01:19, Jan Lübbe wrote: >> + >> + if (edac_op_state == EDAC_OPSTATE_INT) { >> + /* acquire interrupt that reports errors */ >> + pdata->irq = platform_get_irq(pdev, 0); >> + res = devm_request_irq(&pdev->dev, >> + pdata->irq, >> + mvebu_mc_isr, >> + 0, >> + "[EDAC] MC err", >> + mci); > Which IRQ do you use? The current DT doesn't configure interrupts. Also > it seems that the events are passed through additional layers of > mask/status registers which are not yet represented in the Armada-XP IRQ > hierarchy. So my driver currently uses polling.
Yes I'd been forcing polling too. To get this working properly I think we'd need to add another irqchip driver for the SoC Err interrupts. Which is kind of where I'd got stuck, the datasheet is a little confusing in that area. I think I'd figured out that the root interrupt comes through INT 4 which could be cascaded to the as yet unwritten SoC Err irqchip.