static irqreturn_t pm8xxx_irq_handler(int irq, void *data) { struct pm_irq_chip *chip = data; u8 root; int i, ret, masters = 0; ret = pm8xxx_read_root_irq(chip, &root); if (ret) { pr_err("Can't read root status ret=%d\n", ret); return IRQ_HANDLED; } /* on pm8xxx series masters start from bit 1 of the root */ masters = root >> 1; /* Read allowed masters for blocks. */ for (i = 0; i < chip->num_masters; i++) if (masters & (1 << i)) pm8xxx_irq_master_handler(chip, i); return IRQ_HANDLED; }
static irqreturn_t pm8xxx_irq_handler(int irq, void *data) { struct pm_irq_chip *chip = data; u8 root; int i, ret, masters = 0; ret = pm8xxx_read_root_irq(chip, &root); if (ret) { pr_err("Can't read root status ret=%d\n", ret); return IRQ_HANDLED; } masters = root >> 1; for (i = 0; i < chip->num_masters; i++) if (masters & (1 << i)) pm8xxx_irq_master_handler(chip, i); return IRQ_HANDLED; }
static void pm8xxx_irq_handler(unsigned int irq, struct irq_desc *desc) { struct pm_irq_chip *chip = irq_desc_get_handler_data(desc); struct irq_chip *irq_chip = irq_desc_get_chip(desc); u8 root; int i, ret, masters = 0; ret = pm8xxx_read_root_irq(chip, &root); if (ret) { pr_err("Can't read root status ret=%d\n", ret); return; } /* on pm8xxx series masters start from bit 1 of the root */ masters = root >> 1; /* Read allowed masters for blocks. */ for (i = 0; i < chip->num_masters; i++) if (masters & (1 << i)) pm8xxx_irq_master_handler(chip, i); irq_chip->irq_ack(&desc->irq_data); }