On Wed, May 30, 2018 at 12:58 AM, Ray Jui <ray.jui@xxxxxxxxxxxx> wrote: > Add PCIe legacy interrupt INTx support to the iProc PCIe driver by > modeling it with its own IRQ domain. All 4 interrupts INTA, INTB, INTC, > INTD share the same interrupt line connected to the GIC in the system, > while the status of each INTx can be obtained through the INTX CSR > register > + while ((status = iproc_pcie_read_reg(pcie, IPROC_PCIE_INTX_CSR) & > + SYS_RC_INTX_MASK) != 0) { > + for_each_set_bit(bit, &status, PCI_NUM_INTX) { > + virq = irq_find_mapping(pcie->irq_domain, bit + 1); > + if (virq) > + generic_handle_irq(virq); > + else > + dev_err(dev, "unexpected INTx%u\n", bit); > + } > + } do { status = ...; for_each_set_bit() { ... } } while (status); would look slightly better for my opinion. -- With Best Regards, Andy Shevchenko