Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'pci/irq'

- Convert irq_find_mapping() + generic_handle_irq() to
generic_handle_domain_irq() (Marc Zyngier)

* pci/irq:
PCI: Bulk conversion to generic_handle_domain_irq()

+76 -128
+6 -10
drivers/pci/controller/dwc/pci-dra7xx.c
··· 204 204 { 205 205 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); 206 206 unsigned long val; 207 - int pos, irq; 207 + int pos; 208 208 209 209 val = dw_pcie_readl_dbi(pci, PCIE_MSI_INTR0_STATUS + 210 210 (index * MSI_REG_CTRL_BLOCK_SIZE)); ··· 213 213 214 214 pos = find_next_bit(&val, MAX_MSI_IRQS_PER_CTRL, 0); 215 215 while (pos != MAX_MSI_IRQS_PER_CTRL) { 216 - irq = irq_find_mapping(pp->irq_domain, 217 - (index * MAX_MSI_IRQS_PER_CTRL) + pos); 218 - generic_handle_irq(irq); 216 + generic_handle_domain_irq(pp->irq_domain, 217 + (index * MAX_MSI_IRQS_PER_CTRL) + pos); 219 218 pos++; 220 219 pos = find_next_bit(&val, MAX_MSI_IRQS_PER_CTRL, pos); 221 220 } ··· 256 257 struct dw_pcie *pci; 257 258 struct pcie_port *pp; 258 259 unsigned long reg; 259 - u32 virq, bit; 260 + u32 bit; 260 261 261 262 chained_irq_enter(chip, desc); 262 263 ··· 275 276 case INTB: 276 277 case INTC: 277 278 case INTD: 278 - for_each_set_bit(bit, &reg, PCI_NUM_INTX) { 279 - virq = irq_find_mapping(dra7xx->irq_domain, bit); 280 - if (virq) 281 - generic_handle_irq(virq); 282 - } 279 + for_each_set_bit(bit, &reg, PCI_NUM_INTX) 280 + generic_handle_domain_irq(dra7xx->irq_domain, bit); 283 281 break; 284 282 } 285 283
+5 -9
drivers/pci/controller/dwc/pci-keystone.c
··· 259 259 struct dw_pcie *pci = ks_pcie->pci; 260 260 struct device *dev = pci->dev; 261 261 u32 pending; 262 - int virq; 263 262 264 263 pending = ks_pcie_app_readl(ks_pcie, IRQ_STATUS(offset)); 265 264 266 265 if (BIT(0) & pending) { 267 - virq = irq_linear_revmap(ks_pcie->legacy_irq_domain, offset); 268 - dev_dbg(dev, ": irq: irq_offset %d, virq %d\n", offset, virq); 269 - generic_handle_irq(virq); 266 + dev_dbg(dev, ": irq: irq_offset %d", offset); 267 + generic_handle_domain_irq(ks_pcie->legacy_irq_domain, offset); 270 268 } 271 269 272 270 /* EOI the INTx interrupt */ ··· 577 579 struct pcie_port *pp = &pci->pp; 578 580 struct device *dev = pci->dev; 579 581 struct irq_chip *chip = irq_desc_get_chip(desc); 580 - u32 vector, virq, reg, pos; 582 + u32 vector, reg, pos; 581 583 582 584 dev_dbg(dev, "%s, irq %d\n", __func__, irq); 583 585 ··· 598 600 continue; 599 601 600 602 vector = offset + (pos << 3); 601 - virq = irq_linear_revmap(pp->irq_domain, vector); 602 - dev_dbg(dev, "irq: bit %d, vector %d, virq %d\n", pos, vector, 603 - virq); 604 - generic_handle_irq(virq); 603 + dev_dbg(dev, "irq: bit %d, vector %d\n", pos, vector); 604 + generic_handle_domain_irq(pp->irq_domain, vector); 605 605 } 606 606 607 607 chained_irq_exit(chip, desc);
+4 -5
drivers/pci/controller/dwc/pcie-designware-host.c
··· 55 55 /* MSI int handler */ 56 56 irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) 57 57 { 58 - int i, pos, irq; 58 + int i, pos; 59 59 unsigned long val; 60 60 u32 status, num_ctrls; 61 61 irqreturn_t ret = IRQ_NONE; ··· 74 74 pos = 0; 75 75 while ((pos = find_next_bit(&val, MAX_MSI_IRQS_PER_CTRL, 76 76 pos)) != MAX_MSI_IRQS_PER_CTRL) { 77 - irq = irq_find_mapping(pp->irq_domain, 78 - (i * MAX_MSI_IRQS_PER_CTRL) + 79 - pos); 80 - generic_handle_irq(irq); 77 + generic_handle_domain_irq(pp->irq_domain, 78 + (i * MAX_MSI_IRQS_PER_CTRL) + 79 + pos); 81 80 pos++; 82 81 } 83 82 }
+3 -5
drivers/pci/controller/dwc/pcie-uniphier.c
··· 235 235 struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci); 236 236 struct irq_chip *chip = irq_desc_get_chip(desc); 237 237 unsigned long reg; 238 - u32 val, bit, virq; 238 + u32 val, bit; 239 239 240 240 /* INT for debug */ 241 241 val = readl(priv->base + PCL_RCV_INT); ··· 257 257 val = readl(priv->base + PCL_RCV_INTX); 258 258 reg = FIELD_GET(PCL_RCV_INTX_ALL_STATUS, val); 259 259 260 - for_each_set_bit(bit, &reg, PCI_NUM_INTX) { 261 - virq = irq_linear_revmap(priv->legacy_irq_domain, bit); 262 - generic_handle_irq(virq); 263 - } 260 + for_each_set_bit(bit, &reg, PCI_NUM_INTX) 261 + generic_handle_domain_irq(priv->legacy_irq_domain, bit); 264 262 265 263 chained_irq_exit(chip, desc); 266 264 }
+6 -9
drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
··· 92 92 u32 msi_data, msi_addr_lo, msi_addr_hi; 93 93 u32 intr_status, msi_status; 94 94 unsigned long shifted_status; 95 - u32 bit, virq, val, mask; 95 + u32 bit, val, mask; 96 96 97 97 /* 98 98 * The core provides a single interrupt for both INTx/MSI messages. ··· 114 114 shifted_status >>= PAB_INTX_START; 115 115 do { 116 116 for_each_set_bit(bit, &shifted_status, PCI_NUM_INTX) { 117 - virq = irq_find_mapping(rp->intx_domain, 118 - bit + 1); 119 - if (virq) 120 - generic_handle_irq(virq); 121 - else 117 + int ret; 118 + ret = generic_handle_domain_irq(rp->intx_domain, 119 + bit + 1); 120 + if (ret) 122 121 dev_err_ratelimited(dev, "unexpected IRQ, INT%d\n", 123 122 bit); 124 123 ··· 154 155 dev_dbg(dev, "MSI registers, data: %08x, addr: %08x:%08x\n", 155 156 msi_data, msi_addr_hi, msi_addr_lo); 156 157 157 - virq = irq_find_mapping(msi->dev_domain, msi_data); 158 - if (virq) 159 - generic_handle_irq(virq); 158 + generic_handle_domain_irq(msi->dev_domain, msi_data); 160 159 161 160 msi_status = readl_relaxed(pcie->apb_csr_base + 162 161 MSI_STATUS_OFFSET);
+2 -3
drivers/pci/controller/pci-aardvark.c
··· 1049 1049 { 1050 1050 u32 isr0_val, isr0_mask, isr0_status; 1051 1051 u32 isr1_val, isr1_mask, isr1_status; 1052 - int i, virq; 1052 + int i; 1053 1053 1054 1054 isr0_val = advk_readl(pcie, PCIE_ISR0_REG); 1055 1055 isr0_mask = advk_readl(pcie, PCIE_ISR0_MASK_REG); ··· 1077 1077 advk_writel(pcie, PCIE_ISR1_INTX_ASSERT(i), 1078 1078 PCIE_ISR1_REG); 1079 1079 1080 - virq = irq_find_mapping(pcie->irq_domain, i); 1081 - generic_handle_irq(virq); 1080 + generic_handle_domain_irq(pcie->irq_domain, i); 1082 1081 } 1083 1082 } 1084 1083
+1 -1
drivers/pci/controller/pci-ftpci100.c
··· 314 314 for (i = 0; i < 4; i++) { 315 315 if ((irq_stat & BIT(i)) == 0) 316 316 continue; 317 - generic_handle_irq(irq_find_mapping(p->irqdomain, i)); 317 + generic_handle_domain_irq(p->irqdomain, i); 318 318 } 319 319 320 320 chained_irq_exit(irqchip, desc);
+3 -5
drivers/pci/controller/pci-tegra.c
··· 1553 1553 while (reg) { 1554 1554 unsigned int offset = find_first_bit(&reg, 32); 1555 1555 unsigned int index = i * 32 + offset; 1556 - unsigned int irq; 1556 + int ret; 1557 1557 1558 - irq = irq_find_mapping(msi->domain->parent, index); 1559 - if (irq) { 1560 - generic_handle_irq(irq); 1561 - } else { 1558 + ret = generic_handle_domain_irq(msi->domain->parent, index); 1559 + if (ret) { 1562 1560 /* 1563 1561 * that's weird who triggered this? 1564 1562 * just clear it
+3 -6
drivers/pci/controller/pci-xgene-msi.c
··· 291 291 struct irq_chip *chip = irq_desc_get_chip(desc); 292 292 struct xgene_msi_group *msi_groups; 293 293 struct xgene_msi *xgene_msi; 294 - unsigned int virq; 295 - int msir_index, msir_val, hw_irq; 294 + int msir_index, msir_val, hw_irq, ret; 296 295 u32 intr_index, grp_select, msi_grp; 297 296 298 297 chained_irq_enter(chip, desc); ··· 329 330 * CPU0 330 331 */ 331 332 hw_irq = hwirq_to_canonical_hwirq(hw_irq); 332 - virq = irq_find_mapping(xgene_msi->inner_domain, hw_irq); 333 - WARN_ON(!virq); 334 - if (virq != 0) 335 - generic_handle_irq(virq); 333 + ret = generic_handle_domain_irq(xgene_msi->inner_domain, hw_irq); 334 + WARN_ON_ONCE(ret); 336 335 msir_val &= ~(1 << intr_index); 337 336 } 338 337 grp_select &= ~(1 << msir_index);
+4 -6
drivers/pci/controller/pcie-altera-msi.c
··· 55 55 struct altera_msi *msi; 56 56 unsigned long status; 57 57 u32 bit; 58 - u32 virq; 58 + int ret; 59 59 60 60 chained_irq_enter(chip, desc); 61 61 msi = irq_desc_get_handler_data(desc); ··· 65 65 /* Dummy read from vector to clear the interrupt */ 66 66 readl_relaxed(msi->vector_base + (bit * sizeof(u32))); 67 67 68 - virq = irq_find_mapping(msi->inner_domain, bit); 69 - if (virq) 70 - generic_handle_irq(virq); 71 - else 72 - dev_err(&msi->pdev->dev, "unexpected MSI\n"); 68 + ret = generic_handle_domain_irq(msi->inner_domain, bit); 69 + if (ret) 70 + dev_err_ratelimited(&msi->pdev->dev, "unexpected MSI\n"); 73 71 } 74 72 } 75 73
+4 -6
drivers/pci/controller/pcie-altera.c
··· 646 646 struct device *dev; 647 647 unsigned long status; 648 648 u32 bit; 649 - u32 virq; 649 + int ret; 650 650 651 651 chained_irq_enter(chip, desc); 652 652 pcie = irq_desc_get_handler_data(desc); ··· 658 658 /* clear interrupts */ 659 659 cra_writel(pcie, 1 << bit, P2A_INT_STATUS); 660 660 661 - virq = irq_find_mapping(pcie->irq_domain, bit); 662 - if (virq) 663 - generic_handle_irq(virq); 664 - else 665 - dev_err(dev, "unexpected IRQ, INT%d\n", bit); 661 + ret = generic_handle_domain_irq(pcie->irq_domain, bit); 662 + if (ret) 663 + dev_err_ratelimited(dev, "unexpected IRQ, INT%d\n", bit); 666 664 } 667 665 } 668 666
+4 -5
drivers/pci/controller/pcie-brcmstb.c
··· 476 476 static void brcm_pcie_msi_isr(struct irq_desc *desc) 477 477 { 478 478 struct irq_chip *chip = irq_desc_get_chip(desc); 479 - unsigned long status, virq; 479 + unsigned long status; 480 480 struct brcm_msi *msi; 481 481 struct device *dev; 482 482 u32 bit; ··· 489 489 status >>= msi->legacy_shift; 490 490 491 491 for_each_set_bit(bit, &status, msi->nr) { 492 - virq = irq_find_mapping(msi->inner_domain, bit); 493 - if (virq) 494 - generic_handle_irq(virq); 495 - else 492 + int ret; 493 + ret = generic_handle_domain_irq(msi->inner_domain, bit); 494 + if (ret) 496 495 dev_dbg(dev, "unexpected MSI\n"); 497 496 } 498 497
+1 -3
drivers/pci/controller/pcie-iproc-msi.c
··· 326 326 struct iproc_msi *msi; 327 327 u32 eq, head, tail, nr_events; 328 328 unsigned long hwirq; 329 - int virq; 330 329 331 330 chained_irq_enter(chip, desc); 332 331 ··· 361 362 /* process all outstanding events */ 362 363 while (nr_events--) { 363 364 hwirq = decode_msi_hwirq(msi, eq, head); 364 - virq = irq_find_mapping(msi->inner_domain, hwirq); 365 - generic_handle_irq(virq); 365 + generic_handle_domain_irq(msi->inner_domain, hwirq); 366 366 367 367 head++; 368 368 head %= EQ_LEN;
+4 -9
drivers/pci/controller/pcie-mediatek-gen3.c
··· 645 645 { 646 646 struct mtk_msi_set *msi_set = &port->msi_sets[set_idx]; 647 647 unsigned long msi_enable, msi_status; 648 - unsigned int virq; 649 648 irq_hw_number_t bit, hwirq; 650 649 651 650 msi_enable = readl_relaxed(msi_set->base + PCIE_MSI_SET_ENABLE_OFFSET); ··· 658 659 659 660 for_each_set_bit(bit, &msi_status, PCIE_MSI_IRQS_PER_SET) { 660 661 hwirq = bit + set_idx * PCIE_MSI_IRQS_PER_SET; 661 - virq = irq_find_mapping(port->msi_bottom_domain, hwirq); 662 - generic_handle_irq(virq); 662 + generic_handle_domain_irq(port->msi_bottom_domain, hwirq); 663 663 } 664 664 } while (true); 665 665 } ··· 668 670 struct mtk_pcie_port *port = irq_desc_get_handler_data(desc); 669 671 struct irq_chip *irqchip = irq_desc_get_chip(desc); 670 672 unsigned long status; 671 - unsigned int virq; 672 673 irq_hw_number_t irq_bit = PCIE_INTX_SHIFT; 673 674 674 675 chained_irq_enter(irqchip, desc); 675 676 676 677 status = readl_relaxed(port->base + PCIE_INT_STATUS_REG); 677 678 for_each_set_bit_from(irq_bit, &status, PCI_NUM_INTX + 678 - PCIE_INTX_SHIFT) { 679 - virq = irq_find_mapping(port->intx_domain, 680 - irq_bit - PCIE_INTX_SHIFT); 681 - generic_handle_irq(virq); 682 - } 679 + PCIE_INTX_SHIFT) 680 + generic_handle_domain_irq(port->intx_domain, 681 + irq_bit - PCIE_INTX_SHIFT); 683 682 684 683 irq_bit = PCIE_MSI_SHIFT; 685 684 for_each_set_bit_from(irq_bit, &status, PCIE_MSI_SET_NUM +
+4 -8
drivers/pci/controller/pcie-mediatek.c
··· 602 602 struct mtk_pcie_port *port = irq_desc_get_handler_data(desc); 603 603 struct irq_chip *irqchip = irq_desc_get_chip(desc); 604 604 unsigned long status; 605 - u32 virq; 606 605 u32 bit = INTX_SHIFT; 607 606 608 607 chained_irq_enter(irqchip, desc); ··· 611 612 for_each_set_bit_from(bit, &status, PCI_NUM_INTX + INTX_SHIFT) { 612 613 /* Clear the INTx */ 613 614 writel(1 << bit, port->base + PCIE_INT_STATUS); 614 - virq = irq_find_mapping(port->irq_domain, 615 - bit - INTX_SHIFT); 616 - generic_handle_irq(virq); 615 + generic_handle_domain_irq(port->irq_domain, 616 + bit - INTX_SHIFT); 617 617 } 618 618 } 619 619 ··· 621 623 unsigned long imsi_status; 622 624 623 625 while ((imsi_status = readl(port->base + PCIE_IMSI_STATUS))) { 624 - for_each_set_bit(bit, &imsi_status, MTK_MSI_IRQS_NUM) { 625 - virq = irq_find_mapping(port->inner_domain, bit); 626 - generic_handle_irq(virq); 627 - } 626 + for_each_set_bit(bit, &imsi_status, MTK_MSI_IRQS_NUM) 627 + generic_handle_domain_irq(port->inner_domain, bit); 628 628 } 629 629 /* Clear MSI interrupt status */ 630 630 writel(MSI_STATUS, port->base + PCIE_INT_STATUS);
+7 -11
drivers/pci/controller/pcie-microchip-host.c
··· 412 412 port->axi_base_addr + MC_PCIE_BRIDGE_ADDR; 413 413 unsigned long status; 414 414 u32 bit; 415 - u32 virq; 415 + int ret; 416 416 417 417 status = readl_relaxed(bridge_base_addr + ISTATUS_LOCAL); 418 418 if (status & PM_MSI_INT_MSI_MASK) { 419 419 status = readl_relaxed(bridge_base_addr + ISTATUS_MSI); 420 420 for_each_set_bit(bit, &status, msi->num_vectors) { 421 - virq = irq_find_mapping(msi->dev_domain, bit); 422 - if (virq) 423 - generic_handle_irq(virq); 424 - else 421 + ret = generic_handle_domain_irq(msi->dev_domain, bit); 422 + if (ret) 425 423 dev_err_ratelimited(dev, "bad MSI IRQ %d\n", 426 424 bit); 427 425 } ··· 568 570 port->axi_base_addr + MC_PCIE_BRIDGE_ADDR; 569 571 unsigned long status; 570 572 u32 bit; 571 - u32 virq; 573 + int ret; 572 574 573 575 status = readl_relaxed(bridge_base_addr + ISTATUS_LOCAL); 574 576 if (status & PM_MSI_INT_INTX_MASK) { 575 577 status &= PM_MSI_INT_INTX_MASK; 576 578 status >>= PM_MSI_INT_INTX_SHIFT; 577 579 for_each_set_bit(bit, &status, PCI_NUM_INTX) { 578 - virq = irq_find_mapping(port->intx_domain, bit); 579 - if (virq) 580 - generic_handle_irq(virq); 581 - else 580 + ret = generic_handle_domain_irq(port->intx_domain, bit); 581 + if (ret) 582 582 dev_err_ratelimited(dev, "bad INTx IRQ %d\n", 583 583 bit); 584 584 } ··· 741 745 events = get_events(port); 742 746 743 747 for_each_set_bit(bit, &events, NUM_EVENTS) 744 - generic_handle_irq(irq_find_mapping(port->event_domain, bit)); 748 + generic_handle_domain_irq(port->event_domain, bit); 745 749 746 750 chained_irq_exit(chip, desc); 747 751 }
+3 -5
drivers/pci/controller/pcie-rcar-host.c
··· 486 486 487 487 while (reg) { 488 488 unsigned int index = find_first_bit(&reg, 32); 489 - unsigned int msi_irq; 489 + int ret; 490 490 491 - msi_irq = irq_find_mapping(msi->domain->parent, index); 492 - if (msi_irq) { 493 - generic_handle_irq(msi_irq); 494 - } else { 491 + ret = generic_handle_domain_irq(msi->domain->parent, index); 492 + if (ret) { 495 493 /* Unknown MSI, just clear it */ 496 494 dev_dbg(dev, "unexpected MSI\n"); 497 495 rcar_pci_write_reg(pcie, BIT(index), PCIEMSIFR);
+3 -5
drivers/pci/controller/pcie-rockchip-host.c
··· 517 517 struct device *dev = rockchip->dev; 518 518 u32 reg; 519 519 u32 hwirq; 520 - u32 virq; 520 + int ret; 521 521 522 522 chained_irq_enter(chip, desc); 523 523 ··· 528 528 hwirq = ffs(reg) - 1; 529 529 reg &= ~BIT(hwirq); 530 530 531 - virq = irq_find_mapping(rockchip->irq_domain, hwirq); 532 - if (virq) 533 - generic_handle_irq(virq); 534 - else 531 + ret = generic_handle_domain_irq(rockchip->irq_domain, hwirq); 532 + if (ret) 535 533 dev_err(dev, "unexpected IRQ, INT%d\n", hwirq); 536 534 } 537 535
+2 -2
drivers/pci/controller/pcie-xilinx-cpm.c
··· 222 222 pcie_read(port, XILINX_CPM_PCIE_REG_IDRN)); 223 223 224 224 for_each_set_bit(i, &val, PCI_NUM_INTX) 225 - generic_handle_irq(irq_find_mapping(port->intx_domain, i)); 225 + generic_handle_domain_irq(port->intx_domain, i); 226 226 227 227 chained_irq_exit(chip, desc); 228 228 } ··· 282 282 val = pcie_read(port, XILINX_CPM_PCIE_REG_IDR); 283 283 val &= pcie_read(port, XILINX_CPM_PCIE_REG_IMR); 284 284 for_each_set_bit(i, &val, 32) 285 - generic_handle_irq(irq_find_mapping(port->cpm_domain, i)); 285 + generic_handle_domain_irq(port->cpm_domain, i); 286 286 pcie_write(port, val, XILINX_CPM_PCIE_REG_IDR); 287 287 288 288 /*
+3 -10
drivers/pci/controller/pcie-xilinx-nwl.c
··· 318 318 struct nwl_pcie *pcie; 319 319 unsigned long status; 320 320 u32 bit; 321 - u32 virq; 322 321 323 322 chained_irq_enter(chip, desc); 324 323 pcie = irq_desc_get_handler_data(desc); 325 324 326 325 while ((status = nwl_bridge_readl(pcie, MSGF_LEG_STATUS) & 327 326 MSGF_LEG_SR_MASKALL) != 0) { 328 - for_each_set_bit(bit, &status, PCI_NUM_INTX) { 329 - virq = irq_find_mapping(pcie->legacy_irq_domain, bit); 330 - if (virq) 331 - generic_handle_irq(virq); 332 - } 327 + for_each_set_bit(bit, &status, PCI_NUM_INTX) 328 + generic_handle_domain_irq(pcie->legacy_irq_domain, bit); 333 329 } 334 330 335 331 chained_irq_exit(chip, desc); ··· 336 340 struct nwl_msi *msi; 337 341 unsigned long status; 338 342 u32 bit; 339 - u32 virq; 340 343 341 344 msi = &pcie->msi; 342 345 343 346 while ((status = nwl_bridge_readl(pcie, status_reg)) != 0) { 344 347 for_each_set_bit(bit, &status, 32) { 345 348 nwl_bridge_writel(pcie, 1 << bit, status_reg); 346 - virq = irq_find_mapping(msi->dev_domain, bit); 347 - if (virq) 348 - generic_handle_irq(virq); 349 + generic_handle_domain_irq(msi->dev_domain, bit); 349 350 } 350 351 } 351 352 }
+4 -5
drivers/pci/controller/pcie-xilinx.c
··· 385 385 } 386 386 387 387 if (status & (XILINX_PCIE_INTR_INTX | XILINX_PCIE_INTR_MSI)) { 388 - unsigned int irq; 388 + struct irq_domain *domain; 389 389 390 390 val = pcie_read(port, XILINX_PCIE_REG_RPIFR1); 391 391 ··· 399 399 if (val & XILINX_PCIE_RPIFR1_MSI_INTR) { 400 400 val = pcie_read(port, XILINX_PCIE_REG_RPIFR2) & 401 401 XILINX_PCIE_RPIFR2_MSG_DATA; 402 - irq = irq_find_mapping(port->msi_domain->parent, val); 402 + domain = port->msi_domain->parent; 403 403 } else { 404 404 val = (val & XILINX_PCIE_RPIFR1_INTR_MASK) >> 405 405 XILINX_PCIE_RPIFR1_INTR_SHIFT; 406 - irq = irq_find_mapping(port->leg_domain, val); 406 + domain = port->leg_domain; 407 407 } 408 408 409 409 /* Clear interrupt FIFO register 1 */ 410 410 pcie_write(port, XILINX_PCIE_RPIFR1_ALL_MASK, 411 411 XILINX_PCIE_REG_RPIFR1); 412 412 413 - if (irq) 414 - generic_handle_irq(irq); 413 + generic_handle_domain_irq(domain, val); 415 414 } 416 415 417 416 if (status & XILINX_PCIE_INTR_SLV_UNSUPP)