[BUG] bcm2711: bad_chained_irq in brcmstb_l2_intc_irq_handle

Maxime Ripard maxime at cerno.tech
Thu Jan 20 07:54:05 PST 2022


Hi Florian,

On Sun, Jan 16, 2022 at 08:59:15PM -0800, Florian Fainelli wrote:
> > >   12:     130322      26028      27670     135225     GICv2  30 Level
> > > arch_timer
> > >   13:          0          0          0          0     GICv2  27 Level
> > > kvm guest vtimer
> > >   19:          0          0          0          0     GICv2 107 Level
> > > fe004000.txp
> > >   20:       7450          0          0          0     GICv2  65 Level
> > > fe00b880.mailbox
> > >   25:       6525          0          0          0     GICv2 153 Level
> > > uart-pl011
> > >   26:          0          0          0          0     GICv2 149 Level
> > > fe205000.i2c, fe804000.i2c
> > >   27:          9          0          0          0     GICv2 125 Level
> > > ttyS1
> > >   28:      36999          0          0          0     GICv2 158 Level
> > > mmc0, mmc1
> > >   29:          1          0          0          0     GICv2 129 Level
> > > vc4 hvs
> > >   30:          0          0          0          0     GICv2 105 Level
> > > fe980000.usb, fe980000.usb
> > >   31:          0          0          0          0     GICv2 112 Level
> > > DMA IRQ
> > >   33:          0          0          0          0     GICv2 114 Level
> > > DMA IRQ
> > >   40:          0          0          0          0     GICv2 141 Level
> > > vc4 crtc
> > >   41:          0          0          0          0     GICv2 142 Level
> > > vc4 crtc, vc4 crtc
> > >   42:         10          0          0          0     GICv2 133 Level
> > > vc4 crtc
> > >   43:          1          0          0          0
> > > interrupt-controller at 7ef00100   0 Edge      vc4 hdmi cec tx
> > >   44:          0          0          0          0
> > > interrupt-controller at 7ef00100   1 Edge      vc4 hdmi cec rx
> > >   47:          0          0          0          0
> > > interrupt-controller at 7ef00100   4 Edge      vc4 hdmi hpd connected
> > >   48:          1          0          0          0
> > > interrupt-controller at 7ef00100   5 Edge      vc4 hdmi hpd disconnected
> > >   49:          0          0          0          0
> > > interrupt-controller at 7ef00100   8 Edge      vc4 hdmi cec tx
> > >   50:          0          0          0          0
> > > interrupt-controller at 7ef00100   7 Edge      vc4 hdmi cec rx
> > >   53:          0          0          0          0
> > > interrupt-controller at 7ef00100  10 Edge      vc4 hdmi hpd connected
> > >   54:          0          0          0          0
> > > interrupt-controller at 7ef00100  11 Edge      vc4 hdmi hpd disconnected
> > >   55:          7          0          0          0     GICv2  66 Level
> > > VCHIQ doorbell
> > >   56:          0          0          0          0     GICv2  48 Level
> > > arm-pmu
> > >   57:          0          0          0          0     GICv2  49 Level
> > > arm-pmu
> > >   58:          0          0          0          0     GICv2  50 Level
> > > arm-pmu
> > >   59:          0          0          0          0     GICv2  51 Level
> > > arm-pmu
> > >   62:      47599          0          0          0     GICv2 189 Level
> > > eth0
> > >   63:       4681          0          0          0     GICv2 190 Level
> > > eth0
> > >   64:          0          0          0          0     GICv2 175 Level
> > > PCIe PME, aerdrv
> > >   65:        326          0          0          0  BRCM STB PCIe MSI
> > > 524288 Edge      xhci_hcd
> > > IPI0:      2442       5185       7195      18290       Rescheduling
> > > interrupts
> > > IPI1:       481        383        518        533       Function call
> > > interrupts
> > > IPI2:         0          0          0          0       CPU stop
> > > interrupts
> > > IPI3:         0          0          0          0       CPU stop (for
> > > crash dump) interrupts
> > > IPI4:         0          0          0          0       Timer broadcast
> > > interrupts
> > > IPI5:         1          0          0          0       IRQ work
> > > interrupts
> > > IPI6:         0          0          0          0       CPU wake-up
> > > interrupts
> > > Err:          1
> > > 
> > > Comparing the vendor & mainline DTS, i noticed differences at hdmi0/1.
> > > The vendor DTS has an additional register to access the same space as
> > > aon_intr (interrupt parent), which looks ugly [2].
> > 
> > OK, so while I do see how we set external_irq_controller to let the
> > interrupt be managed externally from vc4_hdmi.c else do it internally, I
> > don't see the code that tries to map the "intr2" register space, let
> > alone fetch its resource, do you know where that is?
> 
> Downstream appears to be setting the 'aon_intr' Device Tree node with a
> status = disabled property, still leaves me wondering whether the "intr2"
> register space is used.

It's not used, its last (and only) user was reverted in:
https://github.com/raspberrypi/linux/commit/07170fdd6daffb3fb276a9dc814d6d02d82b055f

> I think it would be prudent to change the hpd_con, hpd_rm variables in
> vc4_hdmi.c to be signed integers instead of unsigned integers, if nothing
> else such that -EPROBE_DEFER might be returned.

Yeah, that would make sense.

Maxime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20220120/16ebd7eb/attachment-0001.sig>


More information about the linux-arm-kernel mailing list