Home
last modified time | relevance | path

Searched full:gsi (Results 1 – 25 of 82) sorted by relevance

1234

/linux/drivers/infiniband/hw/mlx5/
H A Dgsi.c46 /* 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 …]
/linux/drivers/net/ipa/
H A Dgsi.h26 struct gsi;
100 struct gsi *gsi; member
136 struct gsi { struct
147 u32 type_enabled_bitmap; /* GSI IRQ types enabled */
150 struct completion completion; /* Signals GSI command completion */
158 * gsi_setup() - Set up the GSI subsystem
159 * @gsi: Address of GSI structure embedded in an IPA structure argument
163 * Performs initialization that must wait until the GSI hardware is
166 int gsi_setup(struct gsi *gsi);
169 * gsi_teardown() - Tear down GSI subsystem
[all …]
H A Dipa_gsi.h11 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 …]
H A Dgsi_trans.h21 struct gsi;
28 * struct gsi_trans - a GSI transaction
31 * @gsi: GSI pointer
51 struct gsi *gsi; member
76 * @pool: GSI transaction pool pointer
136 * @gsi: GSI pointer
142 bool gsi_channel_trans_idle(struct gsi *gsi, u32 channel_id);
145 * gsi_channel_trans_alloc() - Allocate a GSI transaction on a channel
146 * @gsi: GSI pointer
151 * Return: A GSI transaction structure, or a null pointer if all
[all …]
H A Dgsi_reg.h9 /* === Only "gsi.c" and "gsi_reg.c" should include this file === */
15 struct gsi;
18 * DOC: GSI Registers
20 * GSI registers are located within the "gsi" address space defined by Device
22 * symbols defined below. The GSI address space is mapped to virtual memory
23 * space in gsi_init(). All GSI registers are 32 bits wide.
26 * For example, each GSI channel has its own set of registers defining its
45 /* enum gsi_reg_id - GSI register IDs */
262 * enum gsi_irq_type_id: GSI IRQ types
282 /** enum gsi_global_irq_id: Global GSI interrupt events */
[all …]
H A Dipa_gsi.c18 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_gsi_trans_complete()
25 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_gsi_trans_release()
30 void ipa_gsi_channel_tx_queued(struct gsi *gsi, u32 channel_id, u32 count, in ipa_gsi_channel_tx_queued() argument
33 struct ipa *ipa = container_of(gsi, struct ipa, gsi); in ipa_gsi_channel_tx_queued()
41 void ipa_gsi_channel_tx_completed(struct gsi *gsi, u32 channel_id, u32 count, in ipa_gsi_channel_tx_completed() argument
44 struct ipa *ipa = container_of(gsi, struct ipa, gsi); in ipa_gsi_channel_tx_completed()
H A Dgsi_trans.c14 #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 operations
33 * To perform an operation (or set of them), a user of the GSI transaction
52 * transaction to the GSI transaction core. The GSI transaction code
57 * GSI hardware has completed it. Because transfers described by TREs are
63 * GSI code into the IPA layer, allowing it to perform any final cleanup
221 struct gsi_channel *channel = &trans->gsi->channel[trans->channel_id]; in gsi_trans_map()
[all …]
H A Dgsi_private.h9 /* === Only "gsi.c" and "gsi_trans.c" should include this file === */
13 struct gsi;
21 * gsi_trans_move_complete() - Mark a GSI transaction completed
33 * gsi_trans_complete() - Complete a GSI transaction
45 * Return: The GSI transaction pointer associated with the TRE index
73 * gsi_channel_trans_init() - Initialize a channel's GSI transaction info
74 * @gsi: GSI pointer
81 int gsi_channel_trans_init(struct gsi *gsi, u32 channel_id);
93 * Rings a channel's doorbell to inform the GSI hardware that new
H A Dipa.h12 #include "gsi.h"
26 * @gsi: Embedded GSI structure
66 * @channel_map: Mapping of GSI channel to IPA endpoint
74 struct gsi gsi; member
144 * The setup stage is performed only after the GSI hardware is ready
151 * In order for the GSI hardware to be functional it needs firmware to be
153 * GSI initialization can be done either by Trust Zone on the AP or by the
156 * If it's done by Trust Zone, the AP loads the GSI firmware and supplies
158 * verification was successful, the GSI layer is ready and ipa_setup()
161 * If the modem performs early GSI initialization, the AP needs to know
H A Dipa_cmd.c13 #include "gsi.h"
29 * Immediate commands are represented by GSI transactions just like other
30 * transfer requests, and use a single GSI TRE. Each immediate command
329 struct device *dev = channel->gsi->dev; in ipa_cmd_pool_init()
343 struct device *dev = channel->gsi->dev; in ipa_cmd_pool_exit()
355 trans_info = &ipa->gsi.channel[endpoint->channel_id].trans_info; in ipa_cmd_payload_alloc()
366 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_cmd_table_init_add()
404 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_cmd_hdr_init_local_add()
433 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_cmd_register_write_add()
490 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_cmd_ip_packet_init_add()
[all …]
H A Dipa_cmd.h58 * @channel: AP->IPA command TX GSI channel pointer
67 * @channel: AP->IPA command TX GSI channel pointer
73 * @trans: GSI transaction
91 * @trans: GSI transaction
103 * @trans: GSI transaction
114 * @trans: GSI transaction
125 * @trans: GSI transaction
148 * Return: A GSI transaction structure, or a null pointer if all
H A Dipa_endpoint.c14 #include "gsi.h"
436 struct gsi *gsi = &endpoint->ipa->gsi; in ipa_endpoint_trans_alloc() local
442 return gsi_channel_trans_alloc(gsi, channel_id, tre_count, direction); in ipa_endpoint_trans_alloc()
575 * used for TX endpoints; starting with IPA v4.2 we use GSI channel flow
593 gsi_modem_channel_flow_control(&ipa->gsi, in ipa_endpoint_modem_pause_all()
1375 if (gsi_channel_trans_idle(&endpoint->ipa->gsi, endpoint->channel_id)) in ipa_endpoint_replenish()
1385 if (gsi_channel_trans_idle(&endpoint->ipa->gsi, endpoint->channel_id)) in ipa_endpoint_replenish_enable()
1665 * on its underlying GSI channel, a special sequence of actions must be
1674 struct gsi *gsi = &ipa->gsi; in ipa_endpoint_reset_rx_aggr() local
1700 gsi_channel_reset(gsi, endpoint->channel_id, false); in ipa_endpoint_reset_rx_aggr()
[all …]
/linux/drivers/acpi/
H A Dirq.c3 * ACPI GSI IRQ layer
17 static u32 (*acpi_gsi_to_irq_fallback)(u32 gsi);
20 * acpi_gsi_to_irq() - Retrieve the linux irq number for a given GSI
21 * @gsi: GSI IRQ number to map
29 int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) in acpi_gsi_to_irq() argument
33 d = irq_find_matching_fwnode(acpi_get_gsi_domain_id(gsi), in acpi_gsi_to_irq()
35 *irq = irq_find_mapping(d, gsi); in acpi_gsi_to_irq()
41 *irq = acpi_gsi_to_irq_fallback(gsi); in acpi_gsi_to_irq()
48 * acpi_register_gsi() - Map a GSI to a linux IRQ number
50 * @gsi: GSI IRQ number
[all …]
H A Dpci_irq.c31 u32 index; /* GSI, or link _CRS index */
328 dev_dbg(&dev->dev, "Derived GSI INT %c from %s\n", in acpi_pci_irq_lookup()
351 dev_warn(&dev->dev, "PCI INT %c: no GSI - using ISA IRQ %d\n", in acpi_isa_register_gsi()
387 u32 gsi; in acpi_pci_irq_enable() local
432 &link, &gsi); in acpi_pci_irq_enable()
434 gsi = entry->index; in acpi_pci_irq_enable()
450 dev_warn(&dev->dev, "PCI INT %c: no GSI\n", in acpi_pci_irq_enable()
457 rc = acpi_register_gsi(&dev->dev, gsi, triggering, polarity); in acpi_pci_irq_enable()
459 dev_warn(&dev->dev, "PCI INT %c: failed to register GSI\n", in acpi_pci_irq_enable()
472 dev_dbg(&dev->dev, "PCI INT %c%s -> GSI %u (%s, %s) -> IRQ %d\n", in acpi_pci_irq_enable()
[all …]
/linux/virt/kvm/
H A Dirqchip.c22 struct kvm_kernel_irq_routing_entry *entries, int gsi) in kvm_irq_map_gsi() argument
30 if (irq_rt && gsi < irq_rt->nr_rt_entries) { in kvm_irq_map_gsi()
31 hlist_for_each_entry(e, &irq_rt->map[gsi], link) { in kvm_irq_map_gsi()
134 u32 gsi = array_index_nospec(ue->gsi, KVM_MAX_IRQ_ROUTES); in setup_routing_entry() local
137 * Do not allow GSI to be mapped to the same irqchip more than once. in setup_routing_entry()
138 * Allow only one to one mapping between GSI and non-irqchip routing. in setup_routing_entry()
140 hlist_for_each_entry(ei, &rt->map[gsi], link) in setup_routing_entry()
146 e->gsi = gsi; in setup_routing_entry()
152 rt->chip[e->irqchip.irqchip][e->irqchip.pin] = e->gsi; in setup_routing_entry()
154 hlist_add_head(&e->link, &rt->map[e->gsi]); in setup_routing_entry()
[all …]
H A Deventfd.c50 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1, in irqfd_inject()
52 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0, in irqfd_inject()
56 irqfd->gsi, 1, false); in irqfd_inject()
70 * then notify all of the resampler irqfds using this GSI. We can't
85 resampler->notifier.gsi, 0, false); in irqfd_resampler_ack()
110 resampler->notifier.gsi, 0, false); in irqfd_resampler_shutdown()
281 n_entries = kvm_irq_map_gsi(kvm, entries, irqfd->gsi); in irqfd_update()
391 irqfd->gsi = args->gsi; in kvm_irqfd_assign()
427 if (resampler->notifier.gsi == irqfd->gsi) { in kvm_irqfd_assign()
443 resampler->notifier.gsi = irqfd->gsi; in kvm_irqfd_assign()
[all …]
/linux/scripts/gcc-plugins/
H A Dlatent_entropy_plugin.c342 gimple_stmt_iterator gsi; in perturb_local_entropy() local
349 gsi = gsi_after_labels(bb); in perturb_local_entropy()
350 gsi_insert_before(&gsi, assign, GSI_NEW_STMT); in perturb_local_entropy()
354 static void __perturb_latent_entropy(gimple_stmt_iterator *gsi, in __perturb_latent_entropy() argument
368 gsi_insert_before(gsi, assign, GSI_NEW_STMT); in __perturb_latent_entropy()
374 gsi_insert_after(gsi, assign, GSI_NEW_STMT); in __perturb_latent_entropy()
379 gsi_insert_after(gsi, assign, GSI_NEW_STMT); in __perturb_latent_entropy()
385 gimple_stmt_iterator gsi; in handle_tail_calls() local
387 for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) { in handle_tail_calls()
389 gimple stmt = gsi_stmt(gsi); in handle_tail_calls()
[all …]
H A Dstackleak_plugin.c54 static void add_stack_tracking_gcall(gimple_stmt_iterator *gsi, bool after) in add_stack_tracking_gcall() argument
65 gsi_insert_after(gsi, gimple_call, GSI_CONTINUE_LINKING); in add_stack_tracking_gcall()
67 gsi_insert_before(gsi, gimple_call, GSI_SAME_STMT); in add_stack_tracking_gcall()
113 static void add_stack_tracking_gasm(gimple_stmt_iterator *gsi, bool after) in add_stack_tracking_gasm() argument
134 add_stack_tracking_gcall(gsi, after); in add_stack_tracking_gasm()
144 gsi_insert_after(gsi, asm_call, GSI_CONTINUE_LINKING); in add_stack_tracking_gasm()
146 gsi_insert_before(gsi, asm_call, GSI_SAME_STMT); in add_stack_tracking_gasm()
150 static void add_stack_tracking(gimple_stmt_iterator *gsi, bool after) in add_stack_tracking() argument
161 add_stack_tracking_gasm(gsi, after); in add_stack_tracking()
163 add_stack_tracking_gcall(gsi, after); in add_stack_tracking()
[all …]
/linux/arch/x86/xen/
H A Denlighten_pvh.c35 int xen_pvh_setup_gsi(int gsi, int trigger, int polarity) in xen_pvh_setup_gsi() argument
40 setup_gsi.gsi = gsi; in xen_pvh_setup_gsi()
46 xen_raw_printk("Already setup the GSI :%d\n", gsi); in xen_pvh_setup_gsi()
49 xen_raw_printk("Fail to setup GSI (%d)!\n", gsi); in xen_pvh_setup_gsi()
/linux/drivers/platform/x86/
H A Dintel_scu_wdt.c31 int gsi = TANGIER_EXT_TIMER0_MSI; in tangier_probe() local
37 /* IOAPIC builds identity mapping between GSI and IRQ on MID */ in tangier_probe()
39 irq = mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC, &info); in tangier_probe()
41 dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n", gsi); in tangier_probe()
/linux/arch/x86/include/asm/
H A Dio_apic.h144 extern int mp_find_ioapic(u32 gsi);
145 extern int mp_find_ioapic_pin(int ioapic, u32 gsi);
146 extern int mp_map_gsi_to_irq(u32 gsi, unsigned int flags,
186 static inline int mp_find_ioapic(u32 gsi) { return 0; } in mp_find_ioapic() argument
187 static inline int mp_map_gsi_to_irq(u32 gsi, unsigned int flags, in mp_map_gsi_to_irq() argument
190 return gsi; in mp_map_gsi_to_irq()
/linux/drivers/hv/
H A Dmshv_irq.c30 if (ue[i].gsi >= MSHV_MAX_GUEST_IRQS) in mshv_update_routing_table()
36 nr_rt_entries = max(nr_rt_entries, ue[i].gsi); in mshv_update_routing_table()
49 girq = &new->mshv_girq_info_tbl[ue[i].gsi]; in mshv_update_routing_table()
52 * Allow only one to one mapping between GSI and MSI routing. in mshv_update_routing_table()
59 girq->guest_irq_num = ue[i].gsi; in mshv_update_routing_table()
/linux/drivers/infiniband/hw/qedr/
H A Dqedr_roce_cm.c158 " create gsi qp: failed. max_recv_sge is larger the max %d>%d\n", in qedr_check_gsi_qp_attrs()
165 " create gsi qp: failed. max_recv_wr is too large %d>%d\n", in qedr_check_gsi_qp_attrs()
172 " create gsi qp: failed. max_send_wr is too large %d>%d\n", in qedr_check_gsi_qp_attrs()
333 DP_ERR(dev, "create gsi qp: failed on ll2 start. rc=%d\n", rc); in qedr_create_gsi_qp()
352 /* the GSI CQ is handled by the driver so remove it from the FW */ in qedr_create_gsi_qp()
356 DP_DEBUG(dev, QEDR_MSG_GSI, "created GSI QP %p\n", qp); in qedr_create_gsi_qp()
365 DP_ERR(dev, "create gsi qp: failed destroy on create\n"); in qedr_create_gsi_qp()
428 DP_ERR(dev, "gsi post send: failed to init header\n"); in qedr_gsi_build_header()
551 "gsi post recv: failed to post rx buffer. state is %d and not QED_ROCE_QP_STATE_RTS\n", in qedr_gsi_post_send()
557 DP_ERR(dev, "gsi post send: num_sge is too large (%d>%d)\n", in qedr_gsi_post_send()
[all …]
/linux/include/linux/
H A Dkvm_irqfd.h19 * resamplefd. All resamplers on the same gsi are de-asserted
26 * List of resampling struct _irqfd objects sharing this gsi.
33 * resamplers among irqfds on the same gsi.
47 int gsi; member
/linux/drivers/xen/
H A Dacpi.c92 u32 gsi; in xen_acpi_get_gsi_info() local
113 NULL, &gsi); in xen_acpi_get_gsi_info()
115 gsi = entry->index; in xen_acpi_get_gsi_info()
122 *gsi_out = gsi; in xen_acpi_get_gsi_info()

1234