+ if ((rg->rising | rg->falling) & mask)
+ return 0;
+
-+ type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_RISING;
++ type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING;
+ }
+
+ if (type & IRQ_TYPE_EDGE_RISING)
+ else
+ rg->rising &= mask;
+
-+ if (type & IRQ_TYPE_EDGE_RISING)
++ if (type & IRQ_TYPE_EDGE_FALLING)
+ rg->falling |= mask;
+ else
+ rg->falling &= mask;