[PATCH 0/5] irqchip/qcom-pdc: Assorted cleanups and fixes

Marc Zyngier
2022-02-24T10:12:58Z

I recently noticed the following message at boot time on my Lenovo
c630 laptop (SDM845, if I'm not mistaken):

<quote>
[ 1.449499] debugfs: File ':soc@0:interrupt-controller@b220000' in directory 'domains' already present!
</quote>

which is usually the sign of something being amiss (multiple irqdomain
using the same fwnode and not being tagged properly).

Looking closer at the qcom-pdc driver (which is the one triggering the
above warning), I realised that this driver could do with some
cleanups:

- Pseudo hwirq indicating the lack of parent. Not completely wrong,
but could be done in a more elegant way.

- Two irq domains, which provide the exact same service to the same
IRQ space. Only the context is different, and the difference is not
significant.

- Broken locking. You just need the right timing and a driver that
disables its interrupt.

- A couple of open coded constructs that duplicate stuff the kernel
already implements.

I've tested this series on the above HW, and nothing broke (suspend
works, interrupts get delivered). If nobody shouts, I'll plan to take
this into 5.18.

Marc Zyngier (5):
irqchip/qcom-pdc: Kill PDC_NO_PARENT_IRQ
irqchip/qcom-pdc: Kill non-wakeup irqdomain
irqchip/qcom-pdc: Kill qcom_pdc_translate helper
irqchip/qcom-pdc: Fix broken locking
irqchip/qcom-pdc: Drop open coded version of __assign_bit()

drivers/irqchip/qcom-pdc.c | 137 ++++++++-----------------------------
1 file changed, 28 insertions(+), 109 deletions(-)

--
2.30.2