File tree 1 file changed +13
-10
lines changed
1 file changed +13
-10
lines changed Original file line number Diff line number Diff line change @@ -2045,7 +2045,9 @@ static void rzg2l_gpio_irq_restore(struct rzg2l_pinctrl *pctrl)
2045
2045
2046
2046
for (unsigned int i = 0 ; i < RZG2L_TINT_MAX_INTERRUPT ; i ++ ) {
2047
2047
struct irq_data * data ;
2048
+ unsigned long flags ;
2048
2049
unsigned int virq ;
2050
+ int ret ;
2049
2051
2050
2052
if (!pctrl -> hwirq [i ])
2051
2053
continue ;
@@ -2063,17 +2065,18 @@ static void rzg2l_gpio_irq_restore(struct rzg2l_pinctrl *pctrl)
2063
2065
continue ;
2064
2066
}
2065
2067
2066
- if (!irqd_irq_disabled (data )) {
2067
- unsigned long flags ;
2068
-
2069
- /*
2070
- * This has to be atomically executed to protect against a concurrent
2071
- * interrupt.
2072
- */
2073
- raw_spin_lock_irqsave (& pctrl -> lock .rlock , flags );
2068
+ /*
2069
+ * This has to be atomically executed to protect against a concurrent
2070
+ * interrupt.
2071
+ */
2072
+ raw_spin_lock_irqsave (& pctrl -> lock .rlock , flags );
2073
+ ret = rzg2l_gpio_irq_set_type (data , irqd_get_trigger_type (data ));
2074
+ if (!ret && !irqd_irq_disabled (data ))
2074
2075
rzg2l_gpio_irq_enable (data );
2075
- raw_spin_unlock_irqrestore (& pctrl -> lock .rlock , flags );
2076
- }
2076
+ raw_spin_unlock_irqrestore (& pctrl -> lock .rlock , flags );
2077
+
2078
+ if (ret )
2079
+ dev_crit (pctrl -> dev , "Failed to set IRQ type for virq=%u\n" , virq );
2077
2080
}
2078
2081
}
2079
2082
You can’t perform that action at this time.
0 commit comments