| /kernel/linux/linux-6.6/drivers/irqchip/ |
| D | irq-sp7021-intc.c | 81 static void sp_intc_assign_bit(u32 hwirq, void __iomem *base, bool value) in sp_intc_assign_bit() argument 87 offset = (hwirq / 32) * 4; in sp_intc_assign_bit() 93 mask |= BIT(hwirq % 32); in sp_intc_assign_bit() 95 mask &= ~BIT(hwirq % 32); in sp_intc_assign_bit() 102 u32 hwirq = d->hwirq; in sp_intc_ack_irq() local 104 if (unlikely(IS_GPIO_INT(hwirq) && TEST_STATE(hwirq, _IS_EDGE))) { // WORKAROUND in sp_intc_ack_irq() 105 sp_intc_assign_bit(hwirq, REG_INTR_POLARITY, !TEST_STATE(hwirq, _IS_LOW)); in sp_intc_ack_irq() 106 ASSIGN_STATE(hwirq, _IS_ACTIVE, true); in sp_intc_ack_irq() 109 sp_intc_assign_bit(hwirq, REG_INTR_CLEAR, 1); in sp_intc_ack_irq() 114 sp_intc_assign_bit(d->hwirq, REG_INTR_MASK, 0); in sp_intc_mask_irq() [all …]
|
| D | irq-mchp-eic.c | 51 tmp = readl_relaxed(eic->base + MCHP_EIC_SCFG(d->hwirq)); in mchp_eic_irq_mask() 53 writel_relaxed(tmp, eic->base + MCHP_EIC_SCFG(d->hwirq)); in mchp_eic_irq_mask() 62 tmp = readl_relaxed(eic->base + MCHP_EIC_SCFG(d->hwirq)); in mchp_eic_irq_unmask() 64 writel_relaxed(tmp, eic->base + MCHP_EIC_SCFG(d->hwirq)); in mchp_eic_irq_unmask() 74 tmp = readl_relaxed(eic->base + MCHP_EIC_SCFG(d->hwirq)); in mchp_eic_irq_set_type() 96 writel_relaxed(tmp, eic->base + MCHP_EIC_SCFG(d->hwirq)); in mchp_eic_irq_set_type() 103 irq_set_irq_wake(eic->irqs[d->hwirq], on); in mchp_eic_irq_set_wake() 105 eic->wakeup_source |= BIT(d->hwirq); in mchp_eic_irq_set_wake() 107 eic->wakeup_source &= ~BIT(d->hwirq); in mchp_eic_irq_set_wake() 114 unsigned int hwirq; in mchp_eic_irq_suspend() local [all …]
|
| D | irq-mmp.c | 71 int hwirq; in icu_mask_ack_irq() local 74 hwirq = d->irq - data->virq_base; in icu_mask_ack_irq() 76 r = readl_relaxed(mmp_icu_base + (hwirq << 2)); in icu_mask_ack_irq() 79 writel_relaxed(r, mmp_icu_base + (hwirq << 2)); in icu_mask_ack_irq() 83 && (hwirq == data->clr_mfp_hwirq)) in icu_mask_ack_irq() 86 r = readl_relaxed(data->reg_mask) | (1 << hwirq); in icu_mask_ack_irq() 95 int hwirq; in icu_mask_irq() local 98 hwirq = d->irq - data->virq_base; in icu_mask_irq() 100 r = readl_relaxed(mmp_icu_base + (hwirq << 2)); in icu_mask_irq() 103 writel_relaxed(r, mmp_icu_base + (hwirq << 2)); in icu_mask_irq() [all …]
|
| D | irq-mvebu-sei.c | 59 u32 reg_idx = SEI_IRQ_REG_IDX(d->hwirq); in mvebu_sei_ack_irq() 61 writel_relaxed(BIT(SEI_IRQ_REG_BIT(d->hwirq)), in mvebu_sei_ack_irq() 68 u32 reg, reg_idx = SEI_IRQ_REG_IDX(d->hwirq); in mvebu_sei_mask_irq() 74 reg |= BIT(SEI_IRQ_REG_BIT(d->hwirq)); in mvebu_sei_mask_irq() 82 u32 reg, reg_idx = SEI_IRQ_REG_IDX(d->hwirq); in mvebu_sei_unmask_irq() 88 reg &= ~BIT(SEI_IRQ_REG_BIT(d->hwirq)); in mvebu_sei_unmask_irq() 144 msg->data = data->hwirq + sei->caps->cp_range.first; in mvebu_sei_cp_compose_msi_msg() 199 unsigned long *hwirq, in mvebu_sei_ap_translate() argument 202 *hwirq = fwspec->param[0]; in mvebu_sei_ap_translate() 213 unsigned long hwirq; in mvebu_sei_ap_alloc() local [all …]
|
| D | irq-sifive-plic.c | 93 static void __plic_toggle(void __iomem *enable_base, int hwirq, int enable) in __plic_toggle() argument 95 u32 __iomem *reg = enable_base + (hwirq / 32) * sizeof(u32); in __plic_toggle() 96 u32 hwirq_mask = 1 << (hwirq % 32); in __plic_toggle() 104 static void plic_toggle(struct plic_handler *handler, int hwirq, int enable) in plic_toggle() argument 107 __plic_toggle(handler->enable_base, hwirq, enable); in plic_toggle() 119 plic_toggle(handler, d->hwirq, enable); in plic_irq_toggle() 127 writel(1, priv->regs + PRIORITY_BASE + d->hwirq * PRIORITY_PER_ID); in plic_irq_unmask() 134 writel(0, priv->regs + PRIORITY_BASE + d->hwirq * PRIORITY_PER_ID); in plic_irq_mask() 153 plic_toggle(handler, d->hwirq, 1); in plic_irq_eoi() 154 writel(d->hwirq, handler->hart_base + CONTEXT_CLAIM); in plic_irq_eoi() [all …]
|
| D | irq-pruss-intc.c | 173 * @hwirq: the system event number 178 static void pruss_intc_map(struct pruss_intc *intc, unsigned long hwirq) in pruss_intc_map() argument 186 intc->event_channel[hwirq].ref_count++; in pruss_intc_map() 188 ch = intc->event_channel[hwirq].value; in pruss_intc_map() 191 pruss_intc_update_cmr(intc, hwirq, ch); in pruss_intc_map() 193 reg_idx = hwirq / 32; in pruss_intc_map() 194 val = BIT(hwirq % 32); in pruss_intc_map() 208 hwirq, ch, host); in pruss_intc_map() 216 * @hwirq: the system event number 222 static void pruss_intc_unmap(struct pruss_intc *intc, unsigned long hwirq) in pruss_intc_unmap() argument [all …]
|
| D | irq-partition-percpu.c | 26 unsigned int cpu, unsigned int hwirq) in partition_check_cpu() argument 28 return cpumask_test_cpu(cpu, &part->parts[hwirq].mask); in partition_check_cpu() 37 if (partition_check_cpu(part, smp_processor_id(), d->hwirq) && in partition_irq_mask() 48 if (partition_check_cpu(part, smp_processor_id(), d->hwirq) && in partition_irq_unmask() 61 if (partition_check_cpu(part, smp_processor_id(), d->hwirq) && in partition_irq_set_irqchip_state() 76 if (partition_check_cpu(part, smp_processor_id(), d->hwirq) && in partition_irq_get_irqchip_state() 101 seq_printf(p, " %5s-%lu", chip->name, data->hwirq); in partition_irq_print_chip() 118 int hwirq; in partition_handle_irq() local 122 for_each_set_bit(hwirq, part->bitmap, part->nr_parts) { in partition_handle_irq() 123 if (partition_check_cpu(part, cpu, hwirq)) in partition_handle_irq() [all …]
|
| D | irq-ls-extirq.c | 57 irq_hw_number_t hwirq = data->hwirq; in ls_extirq_set_type() local 61 mask = 1U << (31 - hwirq); in ls_extirq_set_type() 63 mask = 1U << hwirq; in ls_extirq_set_type() 104 irq_hw_number_t hwirq; in ls_extirq_domain_alloc() local 109 hwirq = fwspec->param[0]; in ls_extirq_domain_alloc() 110 if (hwirq >= priv->nirq) in ls_extirq_domain_alloc() 113 irq_domain_set_hwirq_and_chip(domain, virq, hwirq, &ls_extirq_chip, in ls_extirq_domain_alloc() 116 return irq_domain_alloc_irqs_parent(domain, virq, 1, &priv->map[hwirq]); in ls_extirq_domain_alloc() 141 u32 hwirq, intsize, j; in ls_extirq_parse_map() local 145 hwirq = be32_to_cpup(map); in ls_extirq_parse_map() [all …]
|
| /kernel/linux/linux-5.10/arch/powerpc/sysdev/ |
| D | mpic_u3msi.c | 61 static u64 find_ht_magic_addr(struct pci_dev *pdev, unsigned int hwirq) in find_ht_magic_addr() argument 75 static u64 find_u4_magic_addr(struct pci_dev *pdev, unsigned int hwirq) in find_u4_magic_addr() argument 97 return 0xf8004000 | (hwirq << 4); in find_u4_magic_addr() 105 irq_hw_number_t hwirq; in u3msi_teardown_msi_irqs() local 111 hwirq = virq_to_hw(entry->irq); in u3msi_teardown_msi_irqs() 114 msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, hwirq, 1); in u3msi_teardown_msi_irqs() 126 int hwirq; in u3msi_setup_msi_irqs() local 140 hwirq = msi_bitmap_alloc_hwirqs(&msi_mpic->msi_bitmap, 1); in u3msi_setup_msi_irqs() 141 if (hwirq < 0) { in u3msi_setup_msi_irqs() 142 pr_debug("u3msi: failed allocating hwirq\n"); in u3msi_setup_msi_irqs() [all …]
|
| /kernel/linux/linux-6.6/arch/powerpc/sysdev/ |
| D | mpic_u3msi.c | 61 static u64 find_ht_magic_addr(struct pci_dev *pdev, unsigned int hwirq) in find_ht_magic_addr() argument 75 static u64 find_u4_magic_addr(struct pci_dev *pdev, unsigned int hwirq) in find_u4_magic_addr() argument 97 return 0xf8004000 | (hwirq << 4); in find_u4_magic_addr() 105 irq_hw_number_t hwirq; in u3msi_teardown_msi_irqs() local 108 hwirq = virq_to_hw(entry->irq); in u3msi_teardown_msi_irqs() 112 msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, hwirq, 1); in u3msi_teardown_msi_irqs() 122 int hwirq; in u3msi_setup_msi_irqs() local 136 hwirq = msi_bitmap_alloc_hwirqs(&msi_mpic->msi_bitmap, 1); in u3msi_setup_msi_irqs() 137 if (hwirq < 0) { in u3msi_setup_msi_irqs() 138 pr_debug("u3msi: failed allocating hwirq\n"); in u3msi_setup_msi_irqs() [all …]
|
| /kernel/linux/linux-5.10/drivers/irqchip/ |
| D | irq-mvebu-sei.c | 59 u32 reg_idx = SEI_IRQ_REG_IDX(d->hwirq); in mvebu_sei_ack_irq() 61 writel_relaxed(BIT(SEI_IRQ_REG_BIT(d->hwirq)), in mvebu_sei_ack_irq() 68 u32 reg, reg_idx = SEI_IRQ_REG_IDX(d->hwirq); in mvebu_sei_mask_irq() 74 reg |= BIT(SEI_IRQ_REG_BIT(d->hwirq)); in mvebu_sei_mask_irq() 82 u32 reg, reg_idx = SEI_IRQ_REG_IDX(d->hwirq); in mvebu_sei_unmask_irq() 88 reg &= ~BIT(SEI_IRQ_REG_BIT(d->hwirq)); in mvebu_sei_unmask_irq() 144 msg->data = data->hwirq + sei->caps->cp_range.first; in mvebu_sei_cp_compose_msi_msg() 199 unsigned long *hwirq, in mvebu_sei_ap_translate() argument 202 *hwirq = fwspec->param[0]; in mvebu_sei_ap_translate() 213 unsigned long hwirq; in mvebu_sei_ap_alloc() local [all …]
|
| D | irq-ls-extirq.c | 30 irq_hw_number_t hwirq = data->hwirq; in ls_extirq_set_type() local 34 mask = 1U << (31 - hwirq); in ls_extirq_set_type() 36 mask = 1U << hwirq; in ls_extirq_set_type() 76 irq_hw_number_t hwirq; in ls_extirq_domain_alloc() local 81 hwirq = fwspec->param[0]; in ls_extirq_domain_alloc() 82 if (hwirq >= priv->nirq) in ls_extirq_domain_alloc() 85 irq_domain_set_hwirq_and_chip(domain, virq, hwirq, &ls_extirq_chip, in ls_extirq_domain_alloc() 88 return irq_domain_alloc_irqs_parent(domain, virq, 1, &priv->map[hwirq]); in ls_extirq_domain_alloc() 113 u32 hwirq, intsize, j; in ls_extirq_parse_map() local 117 hwirq = be32_to_cpup(map); in ls_extirq_parse_map() [all …]
|
| D | irq-pruss-intc.c | 173 * @hwirq: the system event number 178 static void pruss_intc_map(struct pruss_intc *intc, unsigned long hwirq) in pruss_intc_map() argument 186 intc->event_channel[hwirq].ref_count++; in pruss_intc_map() 188 ch = intc->event_channel[hwirq].value; in pruss_intc_map() 191 pruss_intc_update_cmr(intc, hwirq, ch); in pruss_intc_map() 193 reg_idx = hwirq / 32; in pruss_intc_map() 194 val = BIT(hwirq % 32); in pruss_intc_map() 208 hwirq, ch, host); in pruss_intc_map() 216 * @hwirq: the system event number 222 static void pruss_intc_unmap(struct pruss_intc *intc, unsigned long hwirq) in pruss_intc_unmap() argument [all …]
|
| D | irq-xilinx-intc.c | 65 unsigned long mask = BIT(d->hwirq); in intc_enable_or_unmask() 67 pr_debug("irq-xilinx: enable_or_unmask: %ld\n", d->hwirq); in intc_enable_or_unmask() 83 pr_debug("irq-xilinx: disable: %ld\n", d->hwirq); in intc_disable_or_mask() 84 xintc_write(irqc, CIE, BIT(d->hwirq)); in intc_disable_or_mask() 91 pr_debug("irq-xilinx: ack: %ld\n", d->hwirq); in intc_ack() 92 xintc_write(irqc, IAR, BIT(d->hwirq)); in intc_ack() 98 unsigned long mask = BIT(d->hwirq); in intc_mask_ack() 100 pr_debug("irq-xilinx: disable_and_ack: %ld\n", d->hwirq); in intc_mask_ack() 116 u32 hwirq; in xintc_get_irq_local() local 118 hwirq = xintc_read(irqc, IVR); in xintc_get_irq_local() [all …]
|
| D | irq-ativic32.c | 17 __nds32__mtsr_dsb(BIT(data->hwirq), NDS32_SR_INT_PEND2); in ativic32_ack_irq() 23 __nds32__mtsr_dsb(int_mask2 & (~(BIT(data->hwirq))), NDS32_SR_INT_MASK2); in ativic32_mask_irq() 29 __nds32__mtsr_dsb(int_mask2 | (BIT(data->hwirq)), NDS32_SR_INT_MASK2); in ativic32_unmask_irq() 36 u32 bit = 1 << data->hwirq; in nointc_set_wake() 40 __assign_bit(data->hwirq, &irq_orig_bit, true); in nointc_set_wake() 42 __assign_bit(data->hwirq, &irq_orig_bit, false); in nointc_set_wake() 44 __assign_bit(data->hwirq, &int_mask, true); in nointc_set_wake() 45 __assign_bit(data->hwirq, &wake_mask, true); in nointc_set_wake() 49 __assign_bit(data->hwirq, &int_mask, false); in nointc_set_wake() 51 __assign_bit(data->hwirq, &wake_mask, false); in nointc_set_wake() [all …]
|
| D | irq-partition-percpu.c | 26 unsigned int cpu, unsigned int hwirq) in partition_check_cpu() argument 28 return cpumask_test_cpu(cpu, &part->parts[hwirq].mask); in partition_check_cpu() 37 if (partition_check_cpu(part, smp_processor_id(), d->hwirq) && in partition_irq_mask() 48 if (partition_check_cpu(part, smp_processor_id(), d->hwirq) && in partition_irq_unmask() 61 if (partition_check_cpu(part, smp_processor_id(), d->hwirq) && in partition_irq_set_irqchip_state() 76 if (partition_check_cpu(part, smp_processor_id(), d->hwirq) && in partition_irq_get_irqchip_state() 101 seq_printf(p, " %5s-%lu", chip->name, data->hwirq); in partition_irq_print_chip() 118 int hwirq; in partition_handle_irq() local 122 for_each_set_bit(hwirq, part->bitmap, part->nr_parts) { in partition_handle_irq() 123 if (partition_check_cpu(part, cpu, hwirq)) in partition_handle_irq() [all …]
|
| /kernel/linux/linux-6.6/arch/powerpc/platforms/85xx/ |
| D | socrates_fpga_pic.c | 108 unsigned int irq_line, hwirq = irqd_to_hwirq(d); in socrates_fpga_pic_ack() local 111 irq_line = fpga_irqs[hwirq].irq_line; in socrates_fpga_pic_ack() 115 mask |= (1 << (hwirq + 16)); in socrates_fpga_pic_ack() 123 unsigned int hwirq = irqd_to_hwirq(d); in socrates_fpga_pic_mask() local 127 irq_line = fpga_irqs[hwirq].irq_line; in socrates_fpga_pic_mask() 131 mask &= ~(1 << hwirq); in socrates_fpga_pic_mask() 139 unsigned int hwirq = irqd_to_hwirq(d); in socrates_fpga_pic_mask_ack() local 143 irq_line = fpga_irqs[hwirq].irq_line; in socrates_fpga_pic_mask_ack() 147 mask &= ~(1 << hwirq); in socrates_fpga_pic_mask_ack() 148 mask |= (1 << (hwirq + 16)); in socrates_fpga_pic_mask_ack() [all …]
|
| /kernel/linux/linux-6.6/arch/powerpc/platforms/powernv/ |
| D | pci-cxl.c | 43 int hwirq = msi_bitmap_alloc_hwirqs(&phb->msi_bmp, num); in pnv_cxl_alloc_hwirqs() local 45 if (hwirq < 0) { in pnv_cxl_alloc_hwirqs() 50 return phb->msi_base + hwirq; in pnv_cxl_alloc_hwirqs() 54 void pnv_cxl_release_hwirqs(struct pci_dev *dev, int hwirq, int num) in pnv_cxl_release_hwirqs() argument 59 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq - phb->msi_base, num); in pnv_cxl_release_hwirqs() 68 int i, hwirq; in pnv_cxl_release_hwirq_ranges() local 76 hwirq = irqs->offset[i] - phb->msi_base; in pnv_cxl_release_hwirq_ranges() 77 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, in pnv_cxl_release_hwirq_ranges() 88 int i, hwirq, try; in pnv_cxl_alloc_hwirq_ranges() local 96 hwirq = msi_bitmap_alloc_hwirqs(&phb->msi_bmp, try); in pnv_cxl_alloc_hwirq_ranges() [all …]
|
| /kernel/linux/linux-5.10/arch/powerpc/platforms/powernv/ |
| D | pci-cxl.c | 42 int hwirq = msi_bitmap_alloc_hwirqs(&phb->msi_bmp, num); in pnv_cxl_alloc_hwirqs() local 44 if (hwirq < 0) { in pnv_cxl_alloc_hwirqs() 49 return phb->msi_base + hwirq; in pnv_cxl_alloc_hwirqs() 53 void pnv_cxl_release_hwirqs(struct pci_dev *dev, int hwirq, int num) in pnv_cxl_release_hwirqs() argument 58 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq - phb->msi_base, num); in pnv_cxl_release_hwirqs() 67 int i, hwirq; in pnv_cxl_release_hwirq_ranges() local 75 hwirq = irqs->offset[i] - phb->msi_base; in pnv_cxl_release_hwirq_ranges() 76 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, in pnv_cxl_release_hwirq_ranges() 87 int i, hwirq, try; in pnv_cxl_alloc_hwirq_ranges() local 95 hwirq = msi_bitmap_alloc_hwirqs(&phb->msi_bmp, try); in pnv_cxl_alloc_hwirq_ranges() [all …]
|
| /kernel/linux/linux-5.10/arch/powerpc/platforms/85xx/ |
| D | socrates_fpga_pic.c | 109 unsigned int irq_line, hwirq = irqd_to_hwirq(d); in socrates_fpga_pic_ack() local 112 irq_line = fpga_irqs[hwirq].irq_line; in socrates_fpga_pic_ack() 116 mask |= (1 << (hwirq + 16)); in socrates_fpga_pic_ack() 124 unsigned int hwirq = irqd_to_hwirq(d); in socrates_fpga_pic_mask() local 128 irq_line = fpga_irqs[hwirq].irq_line; in socrates_fpga_pic_mask() 132 mask &= ~(1 << hwirq); in socrates_fpga_pic_mask() 140 unsigned int hwirq = irqd_to_hwirq(d); in socrates_fpga_pic_mask_ack() local 144 irq_line = fpga_irqs[hwirq].irq_line; in socrates_fpga_pic_mask_ack() 148 mask &= ~(1 << hwirq); in socrates_fpga_pic_mask_ack() 149 mask |= (1 << (hwirq + 16)); in socrates_fpga_pic_mask_ack() [all …]
|
| /kernel/linux/linux-5.10/Documentation/core-api/irq/ |
| D | irq-domain.rst | 29 the controller-local IRQ (hwirq) number into the Linux IRQ number 32 The irq_domain library adds mapping between hwirq and IRQ numbers on 38 structure to hwirq numbers (Device Tree and ACPI GSI so far), and can 51 between hwirq and IRQ numbers. Mappings are added to the irq_domain 53 hwirq number as arguments. If a mapping for the hwirq doesn't already 55 the hwirq, and call the .map() callback so the driver can perform any 59 be used to find the Linux IRQ number from the hwirq number. 66 needs to know the associated hwirq number (such as in the irq_chip 67 callbacks) then it can be directly obtained from irq_data->hwirq. 72 There are several mechanisms available for reverse mapping from hwirq [all …]
|
| /kernel/linux/linux-6.6/Documentation/core-api/irq/ |
| D | irq-domain.rst | 29 the controller-local IRQ (hwirq) number into the Linux IRQ number 32 The irq_domain library adds mapping between hwirq and IRQ numbers on 38 structure to hwirq numbers (Device Tree and ACPI GSI so far), and can 51 between hwirq and IRQ numbers. Mappings are added to the irq_domain 53 hwirq number as arguments. If a mapping for the hwirq doesn't already 55 the hwirq, and call the .map() callback so the driver can perform any 62 for a given domain and hwirq number, and NULL if there was no 65 hwirq number, and 0 if there was no mapping 69 domain and a hwirq number 79 needs to know the associated hwirq number (such as in the irq_chip [all …]
|
| /kernel/linux/linux-6.6/arch/powerpc/platforms/pasemi/ |
| D | msi.c | 61 irq_hw_number_t hwirq; in pasemi_msi_teardown_msi_irqs() local 66 hwirq = virq_to_hw(entry->irq); in pasemi_msi_teardown_msi_irqs() 70 msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, hwirq, ALLOC_CHUNK); in pasemi_msi_teardown_msi_irqs() 79 int hwirq; in pasemi_msi_setup_msi_irqs() local 95 hwirq = msi_bitmap_alloc_hwirqs(&msi_mpic->msi_bitmap, in pasemi_msi_setup_msi_irqs() 97 if (hwirq < 0) { in pasemi_msi_setup_msi_irqs() 98 pr_debug("pasemi_msi: failed allocating hwirq\n"); in pasemi_msi_setup_msi_irqs() 99 return hwirq; in pasemi_msi_setup_msi_irqs() 102 virq = irq_create_mapping(msi_mpic->irqhost, hwirq); in pasemi_msi_setup_msi_irqs() 104 pr_debug("pasemi_msi: failed mapping hwirq 0x%x\n", in pasemi_msi_setup_msi_irqs() [all …]
|
| /kernel/linux/linux-5.10/arch/powerpc/platforms/pasemi/ |
| D | msi.c | 61 irq_hw_number_t hwirq; in pasemi_msi_teardown_msi_irqs() local 69 hwirq = virq_to_hw(entry->irq); in pasemi_msi_teardown_msi_irqs() 72 msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, hwirq, ALLOC_CHUNK); in pasemi_msi_teardown_msi_irqs() 83 int hwirq; in pasemi_msi_setup_msi_irqs() local 99 hwirq = msi_bitmap_alloc_hwirqs(&msi_mpic->msi_bitmap, in pasemi_msi_setup_msi_irqs() 101 if (hwirq < 0) { in pasemi_msi_setup_msi_irqs() 102 pr_debug("pasemi_msi: failed allocating hwirq\n"); in pasemi_msi_setup_msi_irqs() 103 return hwirq; in pasemi_msi_setup_msi_irqs() 106 virq = irq_create_mapping(msi_mpic->irqhost, hwirq); in pasemi_msi_setup_msi_irqs() 108 pr_debug("pasemi_msi: failed mapping hwirq 0x%x\n", in pasemi_msi_setup_msi_irqs() [all …]
|
| /kernel/linux/linux-5.10/drivers/pinctrl/mediatek/ |
| D | mtk-eint.c | 85 static int mtk_eint_flip_edge(struct mtk_eint *eint, int hwirq) in mtk_eint_flip_edge() argument 89 u32 mask = BIT(hwirq & 0x1f); in mtk_eint_flip_edge() 90 u32 port = (hwirq >> 5) & eint->hw->port_mask; in mtk_eint_flip_edge() 93 curr_level = eint->gpio_xlate->get_gpio_state(eint->pctl, hwirq); in mtk_eint_flip_edge() 104 hwirq); in mtk_eint_flip_edge() 113 u32 mask = BIT(d->hwirq & 0x1f); in mtk_eint_mask() 114 void __iomem *reg = mtk_eint_get_offset(eint, d->hwirq, in mtk_eint_mask() 117 eint->cur_mask[d->hwirq >> 5] &= ~mask; in mtk_eint_mask() 125 u32 mask = BIT(d->hwirq & 0x1f); in mtk_eint_unmask() 126 void __iomem *reg = mtk_eint_get_offset(eint, d->hwirq, in mtk_eint_unmask() [all …]
|