This patch series aims to fix the spurious IRQ as per the precaution mentioned in section "8.8.3 Precaution when Changing Interrupt Settings" of the latest RZ/G2L hardware manual. As per this masking of the interrupts need to be done before setting the interrupt detection method. Then set the TINT interrupt detection method followed by clearing the status register for fixing spurious IRQ. Patch#1 in this series flushes the posted write patch#2 and #3 simplifies the code and reused the same in patch#3 patch#4 fixes spurious irq patch#5 drops removing/adding tint source during disable()/enable() Before fix: Spurious TINT IRQ's during boot root@smarc-rzg2l:~# cat /proc/interrupts | grep pinctrl 67: 1 0 11030000.pinctrl 344 Edge rtc-isl1208 68: 0 0 11030000.pinctrl 378 Edge SW3 81: 1 0 11030000.pinctrl 17 Edge 1-003d root@smarc-rzg2l:~# After the fix: root@smarc-rzg2l:~# cat /proc/interrupts | grep pinctrl 67: 0 0 11030000.pinctrl 344 Edge rtc-isl1208 68: 0 0 11030000.pinctrl 378 Edge SW3 81: 0 0 11030000.pinctrl 17 Edge 1-003d root@smarc-rzg2l:~# v1->v2: * Dropped pinctrl dependency as it hits next. * Updated commit header and description for patch#1. * Extended the flushing of posted write to IRQ interrupt as well. * Updated patch#2 commit description *_tint_eoi()->*_clear_tint_int(). * Added Rb tag from Geert for patch#2. * Added Patch#3 is for replacing rzg2l_irq_eoi()->rzg2l_clear_irq_int(). * Updated commit header and description for patch#4. * Extended spurious IRQ fix for TINT to IRQ as well. * Updated the logic for rzg2l_disable_tint_and_set_tint_source() and rzg2l_tint_set_edge(). * Merged patch#4 and #5 and updated commit description. Biju Das (5): irqchip/renesas-rzg2l: Flush posted write irqchip/renesas-rzg2l: Rename rzg2l_tint_eoi() irqchip/renesas-rzg2l: Rename rzg2l_irq_eoi() irqchip/renesas-rzg2l: Fix spurious IRQ irqchip/renesas-rzg2l: Use TIEN for enable/disable drivers/irqchip/irq-renesas-rzg2l.c | 101 ++++++++++++++++++---------- 1 file changed, 66 insertions(+), 35 deletions(-) -- 2.25.1