Loading drivers/spmi/spmi-pmic-arb.c +13 −6 Original line number Diff line number Diff line Loading @@ -686,18 +686,25 @@ static int qpnpint_irq_set_type(struct irq_data *d, unsigned int flow_type) type.type |= bit_mask_irq; if (flow_type & IRQF_TRIGGER_RISING) type.polarity_high |= bit_mask_irq; else type.polarity_high &= ~bit_mask_irq; if (flow_type & IRQF_TRIGGER_FALLING) type.polarity_low |= bit_mask_irq; else type.polarity_low &= ~bit_mask_irq; } else { if ((flow_type & (IRQF_TRIGGER_HIGH)) && (flow_type & (IRQF_TRIGGER_LOW))) return -EINVAL; type.type &= ~bit_mask_irq; /* level trig */ if (flow_type & IRQF_TRIGGER_HIGH) if (flow_type & IRQF_TRIGGER_HIGH) { type.polarity_high |= bit_mask_irq; else type.polarity_low &= ~bit_mask_irq; } else { type.polarity_low |= bit_mask_irq; type.polarity_high &= ~bit_mask_irq; } } qpnpint_spmi_write(d, QPNPINT_REG_SET_TYPE, &type, sizeof(type)); Loading Loading
drivers/spmi/spmi-pmic-arb.c +13 −6 Original line number Diff line number Diff line Loading @@ -686,18 +686,25 @@ static int qpnpint_irq_set_type(struct irq_data *d, unsigned int flow_type) type.type |= bit_mask_irq; if (flow_type & IRQF_TRIGGER_RISING) type.polarity_high |= bit_mask_irq; else type.polarity_high &= ~bit_mask_irq; if (flow_type & IRQF_TRIGGER_FALLING) type.polarity_low |= bit_mask_irq; else type.polarity_low &= ~bit_mask_irq; } else { if ((flow_type & (IRQF_TRIGGER_HIGH)) && (flow_type & (IRQF_TRIGGER_LOW))) return -EINVAL; type.type &= ~bit_mask_irq; /* level trig */ if (flow_type & IRQF_TRIGGER_HIGH) if (flow_type & IRQF_TRIGGER_HIGH) { type.polarity_high |= bit_mask_irq; else type.polarity_low &= ~bit_mask_irq; } else { type.polarity_low |= bit_mask_irq; type.polarity_high &= ~bit_mask_irq; } } qpnpint_spmi_write(d, QPNPINT_REG_SET_TYPE, &type, sizeof(type)); Loading