| /kernel/linux/linux-4.19/drivers/infiniband/hw/mlx5/ |
| D | gsi.c | 72 /* Call with gsi->lock locked */ 73 static void generate_completions(struct mlx5_ib_gsi_qp *gsi) in generate_completions() argument 75 struct ib_cq *gsi_cq = gsi->ibqp.send_cq; in generate_completions() 79 for (index = gsi->outstanding_ci; index != gsi->outstanding_pi; in generate_completions() 81 wr = &gsi->outstanding_wrs[index % gsi->cap.max_send_wr]; in generate_completions() 86 if (gsi->sq_sig_type == IB_SIGNAL_ALL_WR || in generate_completions() 93 gsi->outstanding_ci = index; in generate_completions() 98 struct mlx5_ib_gsi_qp *gsi = cq->cq_context; in handle_single_completion() local 104 spin_lock_irqsave(&gsi->lock, flags); in handle_single_completion() 109 wr->wc.qp = &gsi->ibqp; in handle_single_completion() [all …]
|
| /kernel/linux/linux-5.10/drivers/infiniband/hw/mlx5/ |
| D | gsi.c | 46 /* Call with gsi->lock locked */ 49 struct mlx5_ib_gsi_qp *gsi = &mqp->gsi; in generate_completions() local 54 for (index = gsi->outstanding_ci; index != gsi->outstanding_pi; in generate_completions() 56 wr = &gsi->outstanding_wrs[index % gsi->cap.max_send_wr]; in generate_completions() 65 gsi->outstanding_ci = index; in generate_completions() 70 struct mlx5_ib_gsi_qp *gsi = cq->cq_context; in handle_single_completion() local 73 struct mlx5_ib_qp *mqp = container_of(gsi, struct mlx5_ib_qp, gsi); in handle_single_completion() 77 spin_lock_irqsave(&gsi->lock, flags); in handle_single_completion() 85 spin_unlock_irqrestore(&gsi->lock, flags); in handle_single_completion() 92 struct mlx5_ib_gsi_qp *gsi; in mlx5_ib_create_gsi() local [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ipa/ |
| D | gsi.c | 18 #include "gsi.h" 28 * The generic software interface (GSI) is an integral component of the IPA, 30 * and the IPA core. The modem uses the GSI layer as well. 40 * | GSI | 51 * Each EE uses a set of unidirectional GSI "channels," which allow transfer 63 * Each channel has a GSI "event ring" associated with it. An event ring 67 * The GSI then writes its doorbell for the event ring, causing the target 83 * Note that all GSI registers are little-endian, which is the assumed 229 return channel - &channel->gsi->channel[0]; in gsi_channel_id() 232 static void gsi_irq_ieob_enable(struct gsi *gsi, u32 evt_ring_id) in gsi_irq_ieob_enable() argument [all …]
|
| D | gsi.h | 27 struct gsi; 107 struct gsi *gsi; member 148 struct gsi { struct 165 * gsi_setup() - Set up the GSI subsystem 166 * @gsi: Address of GSI structure embedded in an IPA structure argument 171 * Performs initialization that must wait until the GSI hardware is 174 int gsi_setup(struct gsi *gsi, bool legacy); 177 * gsi_teardown() - Tear down GSI subsystem 178 * @gsi: GSI address previously passed to a successful gsi_setup() call 180 void gsi_teardown(struct gsi *gsi); [all …]
|
| D | ipa_gsi.h | 11 struct gsi; 16 * ipa_gsi_trans_complete() - GSI transaction completion callback 19 * This called from the GSI layer to notify the IPA layer that a 25 * ipa_gsi_trans_release() - GSI transaction release callback 28 * This called from the GSI layer to notify the IPA layer that a 35 * ipa_gsi_channel_tx_queued() - GSI queued to hardware notification 36 * @gsi: GSI pointer 41 * This called from the GSI layer to notify the IPA layer that some 44 void ipa_gsi_channel_tx_queued(struct gsi *gsi, u32 channel_id, u32 count, 48 * ipa_gsi_channel_tx_completed() - GSI transaction completion callback [all …]
|
| D | gsi_trans.h | 20 struct gsi; 25 * struct gsi_trans - a GSI transaction 29 * @gsi: GSI pointer 50 struct gsi *gsi; member 73 * @gsi: GSI pointer 131 * gsi_channel_trans_alloc() - Allocate a GSI transaction on a channel 132 * @gsi: GSI pointer 137 * Return: A GSI transaction structure, or a null pointer if all 140 struct gsi_trans *gsi_channel_trans_alloc(struct gsi *gsi, u32 channel_id, 145 * gsi_trans_free() - Free a previously-allocated GSI transaction [all …]
|
| D | ipa_gsi.c | 17 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_gsi_trans_complete() 24 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_gsi_trans_release() 29 void ipa_gsi_channel_tx_queued(struct gsi *gsi, u32 channel_id, u32 count, in ipa_gsi_channel_tx_queued() argument 32 struct ipa *ipa = container_of(gsi, struct ipa, gsi); in ipa_gsi_channel_tx_queued() 40 void ipa_gsi_channel_tx_completed(struct gsi *gsi, u32 channel_id, u32 count, in ipa_gsi_channel_tx_completed() argument 43 struct ipa *ipa = container_of(gsi, struct ipa, gsi); in ipa_gsi_channel_tx_completed()
|
| D | ipa_data.h | 16 * DOC: IPA/GSI Configuration Data 19 * IPA and GSI resources to use for a given platform. This data is supplied 29 * GSI channels. A channel is a GSI construct, and represents a single 33 * the only GSI channels of concern to this driver belong to the AP 39 * added. IPA endpoint and GSI channel configuration data are defined 43 * are common to IPA and GSI (EE ID, channel ID, endpoint ID, and direction); 44 * properties associated with the GSI channel; and properties associated with 53 * struct gsi_channel_data - GSI channel configuration data 58 * A GSI channel is a unidirectional means of transferring data to or 59 * from (and through) the IPA. A GSI channel has a ring buffer made [all …]
|
| D | gsi_trans.c | 14 #include "gsi.h" 22 * DOC: GSI Transactions 24 * A GSI transaction abstracts the behavior of a GSI channel by representing 27 * command.) Most details of interaction with the GSI hardware are managed 28 * by the GSI transaction core, allowing users to simply describe commands 33 * To perform a command (or set of them), a user of the GSI transaction 52 * Committing transfers ownership of the entire transaction to the GSI 53 * transaction core. The GSI transaction code formats the content of 58 * GSI hardware has completed it. Because transfers described by TREs are 64 * GSI code into the IPA layer, allowing it to perform any final cleanup [all …]
|
| D | gsi_private.h | 9 /* === Only "gsi.c" and "gsi_trans.c" should include this file === */ 23 * gsi_trans_move_complete() - Mark a GSI transaction completed 35 * gsi_trans_complete() - Complete a GSI transaction 47 * Return: The GSI transaction pointer associated with the TRE index 75 * gsi_channel_trans_init() - Initialize a channel's GSI transaction info 76 * @gsi: GSI pointer 83 int gsi_channel_trans_init(struct gsi *gsi, u32 channel_id); 95 * Rings a channel's doorbell to inform the GSI hardware that new
|
| D | ipa.h | 15 #include "gsi.h" 42 * @gsi: Embedded GSI structure 75 * @channel_map: Mapping of GSI channel to IPA endpoint 83 struct gsi gsi; member 147 * to IPA registers. The setup stage is performed only after the GSI 154 * In order for the GSI hardware to be functional it needs firmware to be 156 * GSI initialization can be done either by Trust Zone on the AP or by the 159 * If it's done by Trust Zone, the AP loads the GSI firmware and supplies 161 * verification was successful, the GSI layer is ready and ipa_setup() 164 * If the modem performs early GSI initialization, the AP needs to know
|
| /kernel/linux/linux-4.19/arch/x86/pci/ |
| D | xen.c | 3 * initial domain support. We also handle the DSDT _PRT callbacks for GSI's 36 u8 gsi; in xen_pcifront_enable_irq() local 38 rc = pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &gsi); in xen_pcifront_enable_irq() 45 pirq = gsi; in xen_pcifront_enable_irq() 47 if (gsi < nr_legacy_irqs()) in xen_pcifront_enable_irq() 50 rc = xen_bind_pirq_gsi_to_irq(gsi, pirq, share, "pcifront"); in xen_pcifront_enable_irq() 52 dev_warn(&dev->dev, "Xen PCI: failed to bind GSI%d (PIRQ%d) to IRQ: %d\n", in xen_pcifront_enable_irq() 53 gsi, pirq, rc); in xen_pcifront_enable_irq() 58 dev_info(&dev->dev, "Xen PCI mapped GSI%d to IRQ%d\n", gsi, dev->irq); in xen_pcifront_enable_irq() 63 static int xen_register_pirq(u32 gsi, int gsi_override, int triggering, in xen_register_pirq() argument [all …]
|
| /kernel/linux/linux-4.19/drivers/acpi/ |
| D | irq.c | 2 * ACPI GSI IRQ layer 21 * acpi_gsi_to_irq() - Retrieve the linux irq number for a given GSI 22 * @gsi: GSI IRQ number to map 30 int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) in acpi_gsi_to_irq() argument 35 *irq = irq_find_mapping(d, gsi); in acpi_gsi_to_irq() 45 * acpi_register_gsi() - Map a GSI to a linux IRQ number 47 * @gsi: GSI IRQ number 48 * @trigger: trigger type of the GSI number to be mapped 49 * @polarity: polarity of the GSI to be mapped 54 int acpi_register_gsi(struct device *dev, u32 gsi, int trigger, in acpi_register_gsi() argument [all …]
|
| D | evged.c | 60 unsigned int gsi; member 70 acpi_ret = acpi_execute_simple_method(event->handle, NULL, event->gsi); in acpi_ged_irq_handler() 82 unsigned int gsi; in acpi_ged_request_interrupt() local 102 gsi = p->interrupts[0]; in acpi_ged_request_interrupt() 105 gsi = pext->interrupts[0]; in acpi_ged_request_interrupt() 111 switch (gsi) { in acpi_ged_request_interrupt() 114 trigger == ACPI_EDGE_SENSITIVE ? 'E' : 'L', gsi); in acpi_ged_request_interrupt() 131 event->gsi = gsi; in acpi_ged_request_interrupt() 145 dev_dbg(dev, "GED listening GSI %u @ IRQ %u\n", gsi, irq); in acpi_ged_request_interrupt() 180 dev_dbg(geddev->dev, "GED releasing GSI %u @ IRQ %u\n", in ged_shutdown() [all …]
|
| /kernel/linux/linux-5.10/drivers/acpi/ |
| D | irq.c | 3 * ACPI GSI IRQ layer 18 * acpi_gsi_to_irq() - Retrieve the linux irq number for a given GSI 19 * @gsi: GSI IRQ number to map 27 int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) in acpi_gsi_to_irq() argument 32 *irq = irq_find_mapping(d, gsi); in acpi_gsi_to_irq() 42 * acpi_register_gsi() - Map a GSI to a linux IRQ number 44 * @gsi: GSI IRQ number 45 * @trigger: trigger type of the GSI number to be mapped 46 * @polarity: polarity of the GSI to be mapped 51 int acpi_register_gsi(struct device *dev, u32 gsi, int trigger, in acpi_register_gsi() argument [all …]
|
| D | evged.c | 51 unsigned int gsi; member 61 acpi_ret = acpi_execute_simple_method(event->handle, NULL, event->gsi); in acpi_ged_irq_handler() 73 unsigned int gsi; in acpi_ged_request_interrupt() local 93 gsi = p->interrupts[0]; in acpi_ged_request_interrupt() 96 gsi = pext->interrupts[0]; in acpi_ged_request_interrupt() 102 switch (gsi) { in acpi_ged_request_interrupt() 105 trigger == ACPI_EDGE_SENSITIVE ? 'E' : 'L', gsi); in acpi_ged_request_interrupt() 122 event->gsi = gsi; in acpi_ged_request_interrupt() 136 dev_dbg(dev, "GED listening GSI %u @ IRQ %u\n", gsi, irq); in acpi_ged_request_interrupt() 171 dev_dbg(geddev->dev, "GED releasing GSI %u @ IRQ %u\n", in ged_shutdown() [all …]
|
| /kernel/linux/linux-4.19/arch/ia64/kernel/ |
| D | iosapic.c | 58 * Each interrupt line has a unique Global System Interrupt (GSI) number 59 * which can be calculated as the sum of the controller's base GSI number 77 * PCI pin -> global system interrupt (GSI) -> IA-64 vector <-> IRQ 122 unsigned int gsi_base; /* GSI base */ 164 * Find an IOSAPIC associated with a GSI 167 find_iosapic (unsigned int gsi) in find_iosapic() argument 172 if ((unsigned) (gsi - iosapic_lists[i].gsi_base) < in find_iosapic() 180 static inline int __gsi_to_irq(unsigned int gsi) in __gsi_to_irq() argument 189 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in __gsi_to_irq() 196 gsi_to_irq (unsigned int gsi) in gsi_to_irq() argument [all …]
|
| /kernel/linux/linux-5.10/arch/ia64/kernel/ |
| D | iosapic.c | 58 * Each interrupt line has a unique Global System Interrupt (GSI) number 59 * which can be calculated as the sum of the controller's base GSI number 74 * PCI pin -> global system interrupt (GSI) -> IA-64 vector <-> IRQ 119 unsigned int gsi_base; /* GSI base */ 161 * Find an IOSAPIC associated with a GSI 164 find_iosapic (unsigned int gsi) in find_iosapic() argument 169 if ((unsigned) (gsi - iosapic_lists[i].gsi_base) < in find_iosapic() 177 static inline int __gsi_to_irq(unsigned int gsi) in __gsi_to_irq() argument 186 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in __gsi_to_irq() 193 gsi_to_irq (unsigned int gsi) in gsi_to_irq() argument [all …]
|
| /kernel/linux/linux-5.10/arch/x86/pci/ |
| D | xen.c | 4 * initial domain support. We also handle the DSDT _PRT callbacks for GSI's 37 u8 gsi; in xen_pcifront_enable_irq() local 39 rc = pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &gsi); in xen_pcifront_enable_irq() 46 pirq = gsi; in xen_pcifront_enable_irq() 48 if (gsi < nr_legacy_irqs()) in xen_pcifront_enable_irq() 51 rc = xen_bind_pirq_gsi_to_irq(gsi, pirq, share, "pcifront"); in xen_pcifront_enable_irq() 53 dev_warn(&dev->dev, "Xen PCI: failed to bind GSI%d (PIRQ%d) to IRQ: %d\n", in xen_pcifront_enable_irq() 54 gsi, pirq, rc); in xen_pcifront_enable_irq() 59 dev_info(&dev->dev, "Xen PCI mapped GSI%d to IRQ%d\n", gsi, dev->irq); in xen_pcifront_enable_irq() 64 static int xen_register_pirq(u32 gsi, int triggering, bool set_pirq) in xen_register_pirq() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/perf/ |
| D | arm_pmu_acpi.c | 24 int gsi, trigger; in arm_pmu_acpi_register_irq() local 28 gsi = gicc->performance_interrupt; in arm_pmu_acpi_register_irq() 32 * have an interrupt. QEMU advertises this by using a GSI of zero, in arm_pmu_acpi_register_irq() 35 * GSI of zero for now. in arm_pmu_acpi_register_irq() 37 if (!gsi) in arm_pmu_acpi_register_irq() 56 return acpi_register_gsi(NULL, gsi, trigger, ACPI_ACTIVE_HIGH); in arm_pmu_acpi_register_irq() 62 int gsi; in arm_pmu_acpi_unregister_irq() local 66 gsi = gicc->performance_interrupt; in arm_pmu_acpi_unregister_irq() 67 if (gsi) in arm_pmu_acpi_unregister_irq() 68 acpi_unregister_gsi(gsi); in arm_pmu_acpi_unregister_irq() [all …]
|
| /kernel/linux/linux-5.10/virt/kvm/ |
| D | irqchip.c | 23 struct kvm_kernel_irq_routing_entry *entries, int gsi) in kvm_irq_map_gsi() argument 31 if (irq_rt && gsi < irq_rt->nr_rt_entries) { in kvm_irq_map_gsi() 32 hlist_for_each_entry(e, &irq_rt->map[gsi], link) { in kvm_irq_map_gsi() 135 u32 gsi = array_index_nospec(ue->gsi, KVM_MAX_IRQ_ROUTES); in setup_routing_entry() local 138 * Do not allow GSI to be mapped to the same irqchip more than once. in setup_routing_entry() 139 * Allow only one to one mapping between GSI and non-irqchip routing. in setup_routing_entry() 141 hlist_for_each_entry(ei, &rt->map[gsi], link) in setup_routing_entry() 147 e->gsi = gsi; in setup_routing_entry() 153 rt->chip[e->irqchip.irqchip][e->irqchip.pin] = e->gsi; in setup_routing_entry() 155 hlist_add_head(&e->link, &rt->map[e->gsi]); in setup_routing_entry() [all …]
|
| /kernel/linux/linux-4.19/arch/ia64/include/asm/ |
| D | iosapic.h | 89 extern int gsi_to_irq (unsigned int gsi); 90 extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity, 93 extern void iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, 97 unsigned int gsi, 110 #define iosapic_register_intr(gsi,polarity,trigger) (gsi) argument 112 #define iosapic_override_isa_irq(isa_irq,gsi,polarity,trigger) do { } while (0) argument 113 #define iosapic_register_platform_intr(type,gsi,pmi,eid,id, \ argument 114 polarity,trigger) (gsi)
|
| /kernel/linux/linux-4.19/virt/kvm/ |
| D | irqchip.c | 35 struct kvm_kernel_irq_routing_entry *entries, int gsi) in kvm_irq_map_gsi() argument 43 if (irq_rt && gsi < irq_rt->nr_rt_entries) { in kvm_irq_map_gsi() 44 hlist_for_each_entry(e, &irq_rt->map[gsi], link) { in kvm_irq_map_gsi() 147 u32 gsi = array_index_nospec(ue->gsi, KVM_MAX_IRQ_ROUTES); in setup_routing_entry() local 150 * Do not allow GSI to be mapped to the same irqchip more than once. in setup_routing_entry() 151 * Allow only one to one mapping between GSI and non-irqchip routing. in setup_routing_entry() 153 hlist_for_each_entry(ei, &rt->map[gsi], link) in setup_routing_entry() 159 e->gsi = gsi; in setup_routing_entry() 165 rt->chip[e->irqchip.irqchip][e->irqchip.pin] = e->gsi; in setup_routing_entry() 167 hlist_add_head(&e->link, &rt->map[e->gsi]); in setup_routing_entry() [all …]
|
| /kernel/linux/linux-5.10/arch/x86/kernel/acpi/ |
| D | boot.c | 96 * any gsi as specified by an interrupt source override. 338 u8 trigger, u32 gsi); 341 u32 gsi) in mp_override_legacy_irq() argument 359 if (mp_register_ioapic_irq(bus_irq, polarity, trigger, gsi) < 0) in mp_override_legacy_irq() 362 * Reset default identity mapping if gsi is also an legacy IRQ, in mp_override_legacy_irq() 363 * otherwise there will be more than one entry with the same GSI in mp_override_legacy_irq() 366 if (gsi < nr_legacy_irqs() && isa_irq_to_gsi[gsi] == gsi) in mp_override_legacy_irq() 367 isa_irq_to_gsi[gsi] = INVALID_ACPI_IRQ; in mp_override_legacy_irq() 368 isa_irq_to_gsi[bus_irq] = gsi; in mp_override_legacy_irq() 371 static int mp_config_acpi_gsi(struct device *dev, u32 gsi, int trigger, in mp_config_acpi_gsi() argument [all …]
|
| /kernel/linux/linux-4.19/arch/x86/kernel/acpi/ |
| D | boot.c | 111 * any gsi as specified by an interrupt source override. 353 u8 trigger, u32 gsi); 356 u32 gsi) in mp_override_legacy_irq() argument 374 if (mp_register_ioapic_irq(bus_irq, polarity, trigger, gsi) < 0) in mp_override_legacy_irq() 377 * Reset default identity mapping if gsi is also an legacy IRQ, in mp_override_legacy_irq() 378 * otherwise there will be more than one entry with the same GSI in mp_override_legacy_irq() 381 if (gsi < nr_legacy_irqs() && isa_irq_to_gsi[gsi] == gsi) in mp_override_legacy_irq() 382 isa_irq_to_gsi[gsi] = INVALID_ACPI_IRQ; in mp_override_legacy_irq() 383 isa_irq_to_gsi[bus_irq] = gsi; in mp_override_legacy_irq() 386 static int mp_config_acpi_gsi(struct device *dev, u32 gsi, int trigger, in mp_config_acpi_gsi() argument [all …]
|