arch/arm64/kvm/vgic/vgic-irqfd.c
154
entries[i].gsi = i;
arch/loongarch/kvm/intc/pch_pic.c
421
entries[i].gsi = i;
arch/powerpc/kvm/book3s.c
1037
return kvm_set_irq(kvm, irq_source_id, irq_entry->gsi,
arch/powerpc/kvm/book3s.c
1044
return kvm_set_irq(kvm, irq_source_id, e->gsi, level, line_status);
arch/powerpc/kvm/book3s.c
1048
struct kvm_kernel_irq_routing_entry *entries, int gsi)
arch/powerpc/kvm/book3s.c
1050
entries->gsi = gsi;
arch/powerpc/kvm/book3s.c
1054
entries->irqchip.pin = gsi;
arch/powerpc/kvm/book3s_hv.c
6116
ret = kvmppc_set_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi);
arch/powerpc/kvm/book3s_hv.c
6119
prod->irq, irqfd->gsi, ret);
arch/powerpc/kvm/book3s_hv.c
6138
ret = kvmppc_clr_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi);
arch/powerpc/kvm/book3s_hv.c
6141
prod->irq, irqfd->gsi, ret);
arch/riscv/include/asm/irq.h
40
struct fwnode_handle *riscv_acpi_get_gsi_domain_id(u32 gsi);
arch/riscv/kvm/vm.c
103
ents[i].gsi = i;
arch/x86/include/asm/acpi.h
46
extern int (*__acpi_register_gsi)(struct device *dev, u32 gsi,
arch/x86/include/asm/acpi.h
48
extern void (*__acpi_unregister_gsi)(u32 gsi);
arch/x86/include/asm/acpi.h
57
extern int acpi_gsi_to_irq(u32 gsi, unsigned int *irq);
arch/x86/include/asm/io_apic.h
144
extern int mp_find_ioapic(u32 gsi);
arch/x86/include/asm/io_apic.h
145
extern int mp_find_ioapic_pin(int ioapic, u32 gsi);
arch/x86/include/asm/io_apic.h
146
extern int mp_map_gsi_to_irq(u32 gsi, unsigned int flags,
arch/x86/include/asm/io_apic.h
186
static inline int mp_find_ioapic(u32 gsi) { return 0; }
arch/x86/include/asm/io_apic.h
187
static inline int mp_map_gsi_to_irq(u32 gsi, unsigned int flags,
arch/x86/include/asm/io_apic.h
190
return gsi;
arch/x86/kernel/acpi/boot.c
1135
u32 gsi;
arch/x86/kernel/acpi/boot.c
1138
if (acpi_isa_irq_to_gsi(i, &gsi))
arch/x86/kernel/acpi/boot.c
1144
ioapic = mp_find_ioapic(gsi);
arch/x86/kernel/acpi/boot.c
1147
pin = mp_find_ioapic_pin(ioapic, gsi);
arch/x86/kernel/acpi/boot.c
371
u8 trigger, u32 gsi);
arch/x86/kernel/acpi/boot.c
374
u32 gsi)
arch/x86/kernel/acpi/boot.c
392
if (mp_register_ioapic_irq(bus_irq, polarity, trigger, gsi) < 0)
arch/x86/kernel/acpi/boot.c
399
if (gsi < nr_legacy_irqs() && isa_irq_to_gsi[gsi] == gsi)
arch/x86/kernel/acpi/boot.c
400
isa_irq_to_gsi[gsi] = INVALID_ACPI_IRQ;
arch/x86/kernel/acpi/boot.c
401
isa_irq_to_gsi[bus_irq] = gsi;
arch/x86/kernel/acpi/boot.c
404
static void mp_config_acpi_gsi(struct device *dev, u32 gsi, int trigger,
arch/x86/kernel/acpi/boot.c
431
ioapic = mp_find_ioapic(gsi);
arch/x86/kernel/acpi/boot.c
433
mp_irq.dstirq = mp_find_ioapic_pin(ioapic, gsi);
arch/x86/kernel/acpi/boot.c
440
u8 trigger, u32 gsi)
arch/x86/kernel/acpi/boot.c
446
ioapic = mp_find_ioapic(gsi);
arch/x86/kernel/acpi/boot.c
448
pr_warn("Failed to find ioapic for gsi : %u\n", gsi);
arch/x86/kernel/acpi/boot.c
452
pin = mp_find_ioapic_pin(ioapic, gsi);
arch/x86/kernel/acpi/boot.c
496
static void __init acpi_sci_ioapic_setup(u8 bus_irq, u16 polarity, u16 trigger, u32 gsi)
arch/x86/kernel/acpi/boot.c
512
mp_override_legacy_irq(bus_irq, polarity, trigger, gsi);
arch/x86/kernel/acpi/boot.c
514
mp_register_ioapic_irq(bus_irq, polarity, trigger, gsi);
arch/x86/kernel/acpi/boot.c
522
acpi_sci_override_gsi = gsi;
arch/x86/kernel/acpi/boot.c
640
int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp)
arch/x86/kernel/acpi/boot.c
645
*irqp = gsi;
arch/x86/kernel/acpi/boot.c
649
rc = acpi_get_override_irq(gsi, &trigger, &polarity);
arch/x86/kernel/acpi/boot.c
655
irq = acpi_register_gsi(NULL, gsi, trigger, polarity);
arch/x86/kernel/acpi/boot.c
664
int acpi_isa_irq_to_gsi(unsigned isa_irq, u32 *gsi)
arch/x86/kernel/acpi/boot.c
668
*gsi = isa_irq_to_gsi[isa_irq];
arch/x86/kernel/acpi/boot.c
675
static int acpi_register_gsi_pic(struct device *dev, u32 gsi,
arch/x86/kernel/acpi/boot.c
683
elcr_set_level_irq(gsi);
arch/x86/kernel/acpi/boot.c
686
return gsi;
arch/x86/kernel/acpi/boot.c
690
static int acpi_register_gsi_ioapic(struct device *dev, u32 gsi,
arch/x86/kernel/acpi/boot.c
693
int irq = gsi;
arch/x86/kernel/acpi/boot.c
704
irq = mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC, &info);
arch/x86/kernel/acpi/boot.c
706
if (irq >= 0 && enable_update_mptable && gsi != acpi_gbl_FADT.sci_interrupt)
arch/x86/kernel/acpi/boot.c
707
mp_config_acpi_gsi(dev, gsi, trigger, polarity);
arch/x86/kernel/acpi/boot.c
714
static void acpi_unregister_gsi_ioapic(u32 gsi)
arch/x86/kernel/acpi/boot.c
720
irq = mp_map_gsi_to_irq(gsi, 0, NULL);
arch/x86/kernel/acpi/boot.c
728
int (*__acpi_register_gsi)(struct device *dev, u32 gsi,
arch/x86/kernel/acpi/boot.c
730
void (*__acpi_unregister_gsi)(u32 gsi) = NULL;
arch/x86/kernel/acpi/boot.c
742
int acpi_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity)
arch/x86/kernel/acpi/boot.c
744
return __acpi_register_gsi(dev, gsi, trigger, polarity);
arch/x86/kernel/acpi/boot.c
748
void acpi_unregister_gsi(u32 gsi)
arch/x86/kernel/acpi/boot.c
751
__acpi_unregister_gsi(gsi);
arch/x86/kernel/apic/io_apic.c
1006
u32 gsi = mp_pin_to_gsi(ioapic, pin);
arch/x86/kernel/apic/io_apic.c
1028
return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, NULL);
arch/x86/kernel/apic/io_apic.c
1031
int mp_map_gsi_to_irq(u32 gsi, unsigned int flags, struct irq_alloc_info *info)
arch/x86/kernel/apic/io_apic.c
1035
ioapic = mp_find_ioapic(gsi);
arch/x86/kernel/apic/io_apic.c
1039
pin = mp_find_ioapic_pin(ioapic, gsi);
arch/x86/kernel/apic/io_apic.c
1044
return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, info);
arch/x86/kernel/apic/io_apic.c
2604
int mp_find_ioapic(u32 gsi)
arch/x86/kernel/apic/io_apic.c
2615
if (gsi >= gsi_cfg->gsi_base && gsi <= gsi_cfg->gsi_end)
arch/x86/kernel/apic/io_apic.c
2619
pr_err("ERROR: Unable to locate IOAPIC for GSI %d\n", gsi);
arch/x86/kernel/apic/io_apic.c
2623
int mp_find_ioapic_pin(int ioapic, u32 gsi)
arch/x86/kernel/apic/io_apic.c
2631
if (WARN_ON(gsi > gsi_cfg->gsi_end))
arch/x86/kernel/apic/io_apic.c
2634
return gsi - gsi_cfg->gsi_base;
arch/x86/kernel/apic/io_apic.c
2782
u32 gsi = mp_pin_to_gsi(ioapic, pin);
arch/x86/kernel/apic/io_apic.c
2783
int irq = mp_map_gsi_to_irq(gsi, 0, NULL);
arch/x86/kernel/apic/io_apic.c
2818
static void mp_irqdomain_get_attr(u32 gsi, struct mp_chip_data *data,
arch/x86/kernel/apic/io_apic.c
2824
} else if (__acpi_get_override_irq(gsi, &data->is_level, &data->active_low) < 0) {
arch/x86/kernel/apic/io_apic.c
765
static int __acpi_get_override_irq(u32 gsi, bool *trigger, bool *polarity)
arch/x86/kernel/apic/io_apic.c
772
ioapic = mp_find_ioapic(gsi);
arch/x86/kernel/apic/io_apic.c
776
pin = mp_find_ioapic_pin(ioapic, gsi);
arch/x86/kernel/apic/io_apic.c
790
int acpi_get_override_irq(u32 gsi, int *is_level, int *active_low)
arch/x86/kernel/apic/io_apic.c
793
return __acpi_get_override_irq(gsi, (bool *)is_level,
arch/x86/kernel/apic/io_apic.c
811
u32 gsi, int ioapic_idx, int pin)
arch/x86/kernel/apic/io_apic.c
826
if (__acpi_get_override_irq(gsi, &level, &pol_low) >= 0) {
arch/x86/kernel/apic/io_apic.c
882
static int alloc_irq_from_domain(struct irq_domain *domain, int ioapic, u32 gsi,
arch/x86/kernel/apic/io_apic.c
895
if (!ioapic_initialized || gsi >= nr_legacy_irqs())
arch/x86/kernel/apic/io_apic.c
896
irq = gsi;
arch/x86/kernel/apic/io_apic.c
900
irq = gsi;
arch/x86/kernel/apic/io_apic.c
953
static int mp_map_pin_to_irq(u32 gsi, int idx, int ioapic, int pin,
arch/x86/kernel/apic/io_apic.c
988
ioapic_copy_alloc_attr(&tmp, info, gsi, ioapic, pin);
arch/x86/kernel/apic/io_apic.c
993
irq = alloc_irq_from_domain(domain, ioapic, gsi, &tmp);
arch/x86/kvm/hyperv.c
225
int gsi, idx;
arch/x86/kvm/hyperv.c
239
gsi = atomic_read(&synic->sint_to_gsi[sint]);
arch/x86/kvm/hyperv.c
240
if (gsi != -1)
arch/x86/kvm/hyperv.c
241
kvm_notify_acked_gsi(kvm, gsi);
arch/x86/kvm/hyperv.c
527
static int kvm_hv_set_sint_gsi(struct kvm *kvm, u32 vpidx, u32 sint, int gsi)
arch/x86/kvm/hyperv.c
538
atomic_set(&synic->sint_to_gsi[sint], gsi);
arch/x86/kvm/hyperv.c
546
u32 gsi;
arch/x86/kvm/hyperv.c
551
for (gsi = 0; gsi < irq_rt->nr_rt_entries; gsi++) {
arch/x86/kvm/hyperv.c
552
hlist_for_each_entry(e, &irq_rt->map[gsi], link) {
arch/x86/kvm/hyperv.c
555
e->hv_sint.sint, gsi);
arch/x86/kvm/i8254.c
764
pit_state->irq_ack_notifier.gsi = 0;
arch/x86/kvm/ioapic.c
319
int idx, gsi;
arch/x86/kvm/ioapic.c
322
gsi = kvm_irq_map_chip_pin(kvm, irqchip, pin);
arch/x86/kvm/ioapic.c
323
if (gsi != -1)
arch/x86/kvm/ioapic.c
326
if (kimn->irq == gsi)
arch/x86/kvm/irq.c
461
r = kvm_x86_call(pi_update_irte)(irqfd, irqfd->kvm, host_irq, irqfd->gsi,
arch/x86/kvm/irq.c
471
trace_kvm_pi_irte_update(host_irq, vcpu, irqfd->gsi, irq.vector, !!vcpu);
arch/x86/kvm/irq.c
551
{ .gsi = irq, .type = KVM_IRQ_ROUTING_IRQCHIP, \
arch/x86/kvm/irq.c
556
{ .gsi = irq, .type = KVM_IRQ_ROUTING_IRQCHIP, \
arch/x86/kvm/trace.h
1181
unsigned int gsi, unsigned int gvec, bool set),
arch/x86/kvm/trace.h
1182
TP_ARGS(host_irq, vcpu, gsi, gvec, set),
arch/x86/kvm/trace.h
1187
__field( unsigned int, gsi )
arch/x86/kvm/trace.h
1195
__entry->gsi = gsi;
arch/x86/kvm/trace.h
1204
__entry->gsi,
arch/x86/pci/intel_mid.c
230
u8 gsi;
arch/x86/pci/intel_mid.c
235
ret = pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &gsi);
arch/x86/pci/intel_mid.c
250
if (gsi == 0) {
arch/x86/pci/intel_mid.c
279
ret = mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC, &info);
arch/x86/pci/xen.c
103
printk(KERN_DEBUG "xen: --> pirq=%d -> irq=%d (gsi=%d)\n", map_irq.pirq, irq, gsi);
arch/x86/pci/xen.c
108
static int acpi_register_gsi_xen_hvm(struct device *dev, u32 gsi,
arch/x86/pci/xen.c
114
return xen_register_pirq(gsi, trigger,
arch/x86/pci/xen.c
119
static int xen_register_gsi(u32 gsi, int triggering, int polarity)
arch/x86/pci/xen.c
128
gsi, triggering, polarity);
arch/x86/pci/xen.c
130
irq = xen_register_pirq(gsi, triggering, true);
arch/x86/pci/xen.c
132
setup_gsi.gsi = gsi;
arch/x86/pci/xen.c
138
printk(KERN_INFO "Already setup the GSI :%d\n", gsi);
arch/x86/pci/xen.c
141
gsi, rc);
arch/x86/pci/xen.c
147
static int acpi_register_gsi_xen(struct device *dev, u32 gsi,
arch/x86/pci/xen.c
150
return xen_register_gsi(gsi, trigger, polarity);
arch/x86/pci/xen.c
39
u8 gsi;
arch/x86/pci/xen.c
41
rc = pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &gsi);
arch/x86/pci/xen.c
48
pirq = gsi;
arch/x86/pci/xen.c
50
if (gsi < nr_legacy_irqs())
arch/x86/pci/xen.c
53
rc = xen_bind_pirq_gsi_to_irq(gsi, pirq, share, "pcifront");
arch/x86/pci/xen.c
56
gsi, pirq, rc);
arch/x86/pci/xen.c
61
dev_info(&dev->dev, "Xen PCI mapped GSI%d to IRQ%d\n", gsi, dev->irq);
arch/x86/pci/xen.c
66
static int xen_register_pirq(u32 gsi, int triggering, bool set_pirq)
arch/x86/pci/xen.c
73
irq = xen_irq_from_gsi(gsi);
arch/x86/pci/xen.c
78
pirq = gsi;
arch/x86/pci/xen.c
82
map_irq.index = gsi;
arch/x86/pci/xen.c
99
irq = xen_bind_pirq_gsi_to_irq(gsi, map_irq.pirq, shareable, name);
arch/x86/xen/enlighten_pvh.c
35
int xen_pvh_setup_gsi(int gsi, int trigger, int polarity)
arch/x86/xen/enlighten_pvh.c
40
setup_gsi.gsi = gsi;
arch/x86/xen/enlighten_pvh.c
46
xen_raw_printk("Already setup the GSI :%d\n", gsi);
arch/x86/xen/enlighten_pvh.c
49
xen_raw_printk("Fail to setup GSI (%d)!\n", gsi);
drivers/acpi/evged.c
102
switch (gsi) {
drivers/acpi/evged.c
105
trigger == ACPI_EDGE_SENSITIVE ? 'E' : 'L', gsi);
drivers/acpi/evged.c
122
event->gsi = gsi;
drivers/acpi/evged.c
136
dev_dbg(dev, "GED listening GSI %u @ IRQ %u\n", gsi, irq);
drivers/acpi/evged.c
172
event->gsi, event->irq);
drivers/acpi/evged.c
51
unsigned int gsi;
drivers/acpi/evged.c
61
acpi_ret = acpi_execute_simple_method(event->handle, NULL, event->gsi);
drivers/acpi/evged.c
73
unsigned int gsi;
drivers/acpi/evged.c
93
gsi = p->interrupts[0];
drivers/acpi/evged.c
96
gsi = pext->interrupts[0];
drivers/acpi/irq.c
113
u32 gsi)
drivers/acpi/irq.c
121
return acpi_get_gsi_domain_id(gsi);
drivers/acpi/irq.c
16
static u32 (*acpi_gsi_to_irq_fallback)(u32 gsi);
drivers/acpi/irq.c
28
int acpi_gsi_to_irq(u32 gsi, unsigned int *irq)
drivers/acpi/irq.c
32
d = irq_find_matching_fwnode(acpi_get_gsi_domain_id(gsi),
drivers/acpi/irq.c
34
*irq = irq_find_mapping(d, gsi);
drivers/acpi/irq.c
40
*irq = acpi_gsi_to_irq_fallback(gsi);
drivers/acpi/irq.c
56
int acpi_register_gsi(struct device *dev, u32 gsi, int trigger,
drivers/acpi/irq.c
62
fwspec.fwnode = acpi_get_gsi_domain_id(gsi);
drivers/acpi/irq.c
68
fwspec.param[0] = gsi;
drivers/acpi/irq.c
84
void acpi_unregister_gsi(u32 gsi)
drivers/acpi/irq.c
89
if (WARN_ON(acpi_irq_model == ACPI_IRQ_MODEL_GIC && gsi < 16))
drivers/acpi/irq.c
92
d = irq_find_matching_fwnode(acpi_get_gsi_domain_id(gsi),
drivers/acpi/irq.c
94
irq = irq_find_mapping(d, gsi);
drivers/acpi/osl.c
563
acpi_os_install_interrupt_handler(u32 gsi, acpi_osd_handler handler,
drivers/acpi/osl.c
574
if (gsi != acpi_gbl_FADT.sci_interrupt)
drivers/acpi/osl.c
580
if (acpi_gsi_to_irq(gsi, &irq) < 0) {
drivers/acpi/osl.c
581
pr_err("SCI (ACPI GSI %d) not registered\n", gsi);
drivers/acpi/osl.c
598
acpi_status acpi_os_remove_interrupt_handler(u32 gsi, acpi_osd_handler handler)
drivers/acpi/osl.c
600
if (gsi != acpi_gbl_FADT.sci_interrupt || !acpi_sci_irq_valid())
drivers/acpi/pci_irq.c
387
u32 gsi;
drivers/acpi/pci_irq.c
432
&link, &gsi);
drivers/acpi/pci_irq.c
434
gsi = entry->index;
drivers/acpi/pci_irq.c
457
rc = acpi_register_gsi(&dev->dev, gsi, triggering, polarity);
drivers/acpi/pci_irq.c
473
pin_name(pin), link_desc, gsi,
drivers/acpi/pci_irq.c
484
int gsi;
drivers/acpi/pci_irq.c
504
gsi = acpi_pci_link_free_irq(entry->link);
drivers/acpi/pci_irq.c
506
gsi = entry->index;
drivers/acpi/pci_irq.c
516
if (gsi >= 0) {
drivers/acpi/pci_irq.c
517
acpi_unregister_gsi(gsi);
drivers/acpi/pci_link.c
614
int *polarity, char **name, u32 *gsi)
drivers/acpi/pci_link.c
657
*gsi = link->irq.active;
drivers/acpi/resource.c
720
static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
drivers/acpi/resource.c
728
if (entry->irq == gsi &&
drivers/acpi/resource.c
742
if (gsi != 1 && gsi != 12)
drivers/acpi/resource.c
746
if (acpi_int_src_ovr[gsi])
drivers/acpi/resource.c
761
static void acpi_dev_get_irqresource(struct resource *res, u32 gsi,
drivers/acpi/resource.c
767
if (!valid_IRQ(gsi)) {
drivers/acpi/resource.c
768
irqresource_disabled(res, gsi);
drivers/acpi/resource.c
783
acpi_dev_irq_override(gsi, triggering, polarity, shareable) &&
drivers/acpi/resource.c
784
!acpi_get_override_irq(gsi, &t, &p)) {
drivers/acpi/resource.c
789
pr_warn("ACPI: IRQ %d override to %s%s, %s%s\n", gsi,
drivers/acpi/resource.c
800
irq = acpi_register_gsi(NULL, gsi, triggering, polarity);
drivers/acpi/resource.c
805
irqresource_disabled(res, gsi);
drivers/acpi/riscv/irq.c
113
struct fwnode_handle *riscv_acpi_get_gsi_domain_id(u32 gsi)
drivers/acpi/riscv/irq.c
121
if (gsi >= ext_intc_element->gsi_base &&
drivers/acpi/riscv/irq.c
122
gsi < (ext_intc_element->gsi_base + ext_intc_element->nr_irqs)) {
drivers/acpi/riscv/irq.c
257
static acpi_handle riscv_acpi_get_gsi_handle(u32 gsi)
drivers/acpi/riscv/irq.c
264
if (gsi >= ext_intc_element->gsi_base &&
drivers/acpi/riscv/irq.c
265
gsi < (ext_intc_element->gsi_base + ext_intc_element->nr_irqs))
drivers/char/hpet.c
168
int irq, gsi;
drivers/char/hpet.c
205
gsi = acpi_register_gsi(NULL, irq, ACPI_LEVEL_SENSITIVE,
drivers/char/hpet.c
207
if (gsi > 0)
drivers/char/hpet.c
218
devp->hd_hdwirq = gsi;
drivers/hv/mshv_eventfd.c
409
irqfd->irqfd_irqnum = args->gsi;
drivers/hv/mshv_eventfd.c
47
bool mshv_notify_acked_gsi(struct mshv_partition *partition, int gsi)
drivers/hv/mshv_eventfd.c
55
if (mian->irq_ack_gsi == gsi) {
drivers/hv/mshv_eventfd.c
558
irqfd->irqfd_irqnum == args->gsi)
drivers/hv/mshv_eventfd.h
49
bool mshv_notify_acked_gsi(struct mshv_partition *partition, int gsi);
drivers/hv/mshv_irq.c
30
if (ue[i].gsi >= MSHV_MAX_GUEST_IRQS)
drivers/hv/mshv_irq.c
36
nr_rt_entries = max(nr_rt_entries, ue[i].gsi);
drivers/hv/mshv_irq.c
49
girq = &new->mshv_girq_info_tbl[ue[i].gsi];
drivers/hv/mshv_irq.c
59
girq->guest_irq_num = ue[i].gsi;
drivers/infiniband/hw/mlx5/gsi.c
106
gsi = &mqp->gsi;
drivers/infiniband/hw/mlx5/gsi.c
107
gsi->tx_qps = kzalloc_objs(*gsi->tx_qps, num_qps);
drivers/infiniband/hw/mlx5/gsi.c
108
if (!gsi->tx_qps)
drivers/infiniband/hw/mlx5/gsi.c
111
gsi->outstanding_wrs =
drivers/infiniband/hw/mlx5/gsi.c
112
kzalloc_objs(*gsi->outstanding_wrs, attr->cap.max_send_wr);
drivers/infiniband/hw/mlx5/gsi.c
113
if (!gsi->outstanding_wrs) {
drivers/infiniband/hw/mlx5/gsi.c
118
if (dev->devr.ports[port_num - 1].gsi) {
drivers/infiniband/hw/mlx5/gsi.c
124
gsi->num_qps = num_qps;
drivers/infiniband/hw/mlx5/gsi.c
125
spin_lock_init(&gsi->lock);
drivers/infiniband/hw/mlx5/gsi.c
127
gsi->cap = attr->cap;
drivers/infiniband/hw/mlx5/gsi.c
128
gsi->port_num = port_num;
drivers/infiniband/hw/mlx5/gsi.c
130
gsi->cq = ib_alloc_cq(pd->device, gsi, attr->cap.max_send_wr, 0,
drivers/infiniband/hw/mlx5/gsi.c
132
if (IS_ERR(gsi->cq)) {
drivers/infiniband/hw/mlx5/gsi.c
135
gsi->cq);
drivers/infiniband/hw/mlx5/gsi.c
136
ret = PTR_ERR(gsi->cq);
drivers/infiniband/hw/mlx5/gsi.c
141
hw_init_attr.send_cq = gsi->cq;
drivers/infiniband/hw/mlx5/gsi.c
148
gsi->rx_qp = ib_create_qp(pd, &hw_init_attr);
drivers/infiniband/hw/mlx5/gsi.c
149
if (IS_ERR(gsi->rx_qp)) {
drivers/infiniband/hw/mlx5/gsi.c
152
gsi->rx_qp);
drivers/infiniband/hw/mlx5/gsi.c
153
ret = PTR_ERR(gsi->rx_qp);
drivers/infiniband/hw/mlx5/gsi.c
157
dev->devr.ports[attr->port_num - 1].gsi = gsi;
drivers/infiniband/hw/mlx5/gsi.c
161
ib_free_cq(gsi->cq);
drivers/infiniband/hw/mlx5/gsi.c
163
kfree(gsi->outstanding_wrs);
drivers/infiniband/hw/mlx5/gsi.c
165
kfree(gsi->tx_qps);
drivers/infiniband/hw/mlx5/gsi.c
172
struct mlx5_ib_gsi_qp *gsi = &mqp->gsi;
drivers/infiniband/hw/mlx5/gsi.c
173
const int port_num = gsi->port_num;
drivers/infiniband/hw/mlx5/gsi.c
177
ret = ib_destroy_qp(gsi->rx_qp);
drivers/infiniband/hw/mlx5/gsi.c
183
dev->devr.ports[port_num - 1].gsi = NULL;
drivers/infiniband/hw/mlx5/gsi.c
184
gsi->rx_qp = NULL;
drivers/infiniband/hw/mlx5/gsi.c
186
for (qp_index = 0; qp_index < gsi->num_qps; ++qp_index) {
drivers/infiniband/hw/mlx5/gsi.c
187
if (!gsi->tx_qps[qp_index])
drivers/infiniband/hw/mlx5/gsi.c
189
WARN_ON_ONCE(ib_destroy_qp(gsi->tx_qps[qp_index]));
drivers/infiniband/hw/mlx5/gsi.c
190
gsi->tx_qps[qp_index] = NULL;
drivers/infiniband/hw/mlx5/gsi.c
193
ib_free_cq(gsi->cq);
drivers/infiniband/hw/mlx5/gsi.c
195
kfree(gsi->outstanding_wrs);
drivers/infiniband/hw/mlx5/gsi.c
196
kfree(gsi->tx_qps);
drivers/infiniband/hw/mlx5/gsi.c
200
static struct ib_qp *create_gsi_ud_qp(struct mlx5_ib_gsi_qp *gsi)
drivers/infiniband/hw/mlx5/gsi.c
202
struct ib_pd *pd = gsi->rx_qp->pd;
drivers/infiniband/hw/mlx5/gsi.c
204
.event_handler = gsi->rx_qp->event_handler,
drivers/infiniband/hw/mlx5/gsi.c
205
.qp_context = gsi->rx_qp->qp_context,
drivers/infiniband/hw/mlx5/gsi.c
206
.send_cq = gsi->cq,
drivers/infiniband/hw/mlx5/gsi.c
207
.recv_cq = gsi->rx_qp->recv_cq,
drivers/infiniband/hw/mlx5/gsi.c
209
.max_send_wr = gsi->cap.max_send_wr,
drivers/infiniband/hw/mlx5/gsi.c
210
.max_send_sge = gsi->cap.max_send_sge,
drivers/infiniband/hw/mlx5/gsi.c
211
.max_inline_data = gsi->cap.max_inline_data,
drivers/infiniband/hw/mlx5/gsi.c
220
static int modify_to_rts(struct mlx5_ib_gsi_qp *gsi, struct ib_qp *qp,
drivers/infiniband/hw/mlx5/gsi.c
232
attr.port_num = gsi->port_num;
drivers/infiniband/hw/mlx5/gsi.c
260
static void setup_qp(struct mlx5_ib_gsi_qp *gsi, u16 qp_index)
drivers/infiniband/hw/mlx5/gsi.c
262
struct ib_device *device = gsi->rx_qp->device;
drivers/infiniband/hw/mlx5/gsi.c
274
ret = ib_query_pkey(device, gsi->port_num, pkey_index, &pkey);
drivers/infiniband/hw/mlx5/gsi.c
277
gsi->port_num, qp_index);
drivers/infiniband/hw/mlx5/gsi.c
283
gsi->port_num, qp_index);
drivers/infiniband/hw/mlx5/gsi.c
287
spin_lock_irqsave(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
288
qp = gsi->tx_qps[qp_index];
drivers/infiniband/hw/mlx5/gsi.c
289
spin_unlock_irqrestore(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
292
gsi->port_num, qp_index);
drivers/infiniband/hw/mlx5/gsi.c
296
qp = create_gsi_ud_qp(gsi);
drivers/infiniband/hw/mlx5/gsi.c
307
ret = modify_to_rts(gsi, qp, pkey_index);
drivers/infiniband/hw/mlx5/gsi.c
311
spin_lock_irqsave(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
312
WARN_ON_ONCE(gsi->tx_qps[qp_index]);
drivers/infiniband/hw/mlx5/gsi.c
313
gsi->tx_qps[qp_index] = qp;
drivers/infiniband/hw/mlx5/gsi.c
314
spin_unlock_irqrestore(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
327
struct mlx5_ib_gsi_qp *gsi = &mqp->gsi;
drivers/infiniband/hw/mlx5/gsi.c
333
ret = ib_modify_qp(gsi->rx_qp, attr, attr_mask);
drivers/infiniband/hw/mlx5/gsi.c
339
if (to_mqp(gsi->rx_qp)->state != IB_QPS_RTS)
drivers/infiniband/hw/mlx5/gsi.c
342
for (qp_index = 0; qp_index < gsi->num_qps; ++qp_index)
drivers/infiniband/hw/mlx5/gsi.c
343
setup_qp(gsi, qp_index);
drivers/infiniband/hw/mlx5/gsi.c
352
struct mlx5_ib_gsi_qp *gsi = &mqp->gsi;
drivers/infiniband/hw/mlx5/gsi.c
355
ret = ib_query_qp(gsi->rx_qp, qp_attr, qp_attr_mask, qp_init_attr);
drivers/infiniband/hw/mlx5/gsi.c
356
qp_init_attr->cap = gsi->cap;
drivers/infiniband/hw/mlx5/gsi.c
364
struct mlx5_ib_gsi_qp *gsi = &mqp->gsi;
drivers/infiniband/hw/mlx5/gsi.c
365
struct mlx5_ib_dev *dev = to_mdev(gsi->rx_qp->device);
drivers/infiniband/hw/mlx5/gsi.c
368
if (gsi->outstanding_pi == gsi->outstanding_ci + gsi->cap.max_send_wr) {
drivers/infiniband/hw/mlx5/gsi.c
373
gsi_wr = &gsi->outstanding_wrs[gsi->outstanding_pi %
drivers/infiniband/hw/mlx5/gsi.c
374
gsi->cap.max_send_wr];
drivers/infiniband/hw/mlx5/gsi.c
375
gsi->outstanding_pi++;
drivers/infiniband/hw/mlx5/gsi.c
413
static struct ib_qp *get_tx_qp(struct mlx5_ib_gsi_qp *gsi, struct ib_ud_wr *wr)
drivers/infiniband/hw/mlx5/gsi.c
415
struct mlx5_ib_dev *dev = to_mdev(gsi->rx_qp->device);
drivers/infiniband/hw/mlx5/gsi.c
419
if (!gsi->num_qps)
drivers/infiniband/hw/mlx5/gsi.c
420
return gsi->rx_qp;
drivers/infiniband/hw/mlx5/gsi.c
425
if (qp_index >= gsi->num_qps)
drivers/infiniband/hw/mlx5/gsi.c
428
return gsi->tx_qps[qp_index];
drivers/infiniband/hw/mlx5/gsi.c
435
struct mlx5_ib_gsi_qp *gsi = &mqp->gsi;
drivers/infiniband/hw/mlx5/gsi.c
445
spin_lock_irqsave(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
446
tx_qp = get_tx_qp(gsi, &cur_wr);
drivers/infiniband/hw/mlx5/gsi.c
451
spin_unlock_irqrestore(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
462
gsi->outstanding_pi--;
drivers/infiniband/hw/mlx5/gsi.c
465
spin_unlock_irqrestore(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
471
spin_unlock_irqrestore(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
480
struct mlx5_ib_gsi_qp *gsi = &mqp->gsi;
drivers/infiniband/hw/mlx5/gsi.c
482
return ib_post_recv(gsi->rx_qp, wr, bad_wr);
drivers/infiniband/hw/mlx5/gsi.c
485
void mlx5_ib_gsi_pkey_change(struct mlx5_ib_gsi_qp *gsi)
drivers/infiniband/hw/mlx5/gsi.c
489
for (qp_index = 0; qp_index < gsi->num_qps; ++qp_index)
drivers/infiniband/hw/mlx5/gsi.c
49
struct mlx5_ib_gsi_qp *gsi = &mqp->gsi;
drivers/infiniband/hw/mlx5/gsi.c
490
setup_qp(gsi, qp_index);
drivers/infiniband/hw/mlx5/gsi.c
54
for (index = gsi->outstanding_ci; index != gsi->outstanding_pi;
drivers/infiniband/hw/mlx5/gsi.c
56
wr = &gsi->outstanding_wrs[index % gsi->cap.max_send_wr];
drivers/infiniband/hw/mlx5/gsi.c
65
gsi->outstanding_ci = index;
drivers/infiniband/hw/mlx5/gsi.c
70
struct mlx5_ib_gsi_qp *gsi = cq->cq_context;
drivers/infiniband/hw/mlx5/gsi.c
73
struct mlx5_ib_qp *mqp = container_of(gsi, struct mlx5_ib_qp, gsi);
drivers/infiniband/hw/mlx5/gsi.c
77
spin_lock_irqsave(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
85
spin_unlock_irqrestore(&gsi->lock, flags);
drivers/infiniband/hw/mlx5/gsi.c
92
struct mlx5_ib_gsi_qp *gsi;
drivers/infiniband/hw/mlx5/main.c
2959
if (!ports->gsi)
drivers/infiniband/hw/mlx5/main.c
2966
mlx5_ib_gsi_pkey_change(ports->gsi);
drivers/infiniband/hw/mlx5/mlx5_ib.h
1501
void mlx5_ib_gsi_pkey_change(struct mlx5_ib_gsi_qp *gsi);
drivers/infiniband/hw/mlx5/mlx5_ib.h
510
struct mlx5_ib_gsi_qp gsi;
drivers/infiniband/hw/mlx5/mlx5_ib.h
780
struct mlx5_ib_gsi_qp *gsi;
drivers/irqchip/irq-gic-v3.c
2539
static struct fwnode_handle *gic_v3_get_gsi_domain_id(u32 gsi)
drivers/irqchip/irq-gic-v5.c
1226
static struct fwnode_handle *gic_v5_get_gsi_domain_id(u32 gsi)
drivers/irqchip/irq-gic-v5.c
1228
if (FIELD_GET(GICV5_GSI_IC_TYPE, gsi) == GICV5_GSI_IWB_TYPE)
drivers/irqchip/irq-gic-v5.c
1229
return iort_iwb_handle(FIELD_GET(GICV5_GSI_IWB_FRAME_ID, gsi));
drivers/irqchip/irq-gic.c
1632
static struct fwnode_handle *gic_v2_get_gsi_domain_id(u32 gsi)
drivers/irqchip/irq-loongarch-cpu.c
21
static u32 lpic_gsi_to_irq(u32 gsi)
drivers/irqchip/irq-loongarch-cpu.c
26
if (gsi >= GSI_MIN_PCH_IRQ && gsi <= GSI_MAX_PCH_IRQ)
drivers/irqchip/irq-loongarch-cpu.c
27
irq = acpi_register_gsi(NULL, gsi, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_HIGH);
drivers/irqchip/irq-loongarch-cpu.c
32
static struct fwnode_handle *lpic_get_gsi_domain_id(u32 gsi)
drivers/irqchip/irq-loongarch-cpu.c
37
switch (gsi) {
drivers/irqchip/irq-loongarch-cpu.c
49
id = find_pch_pic(gsi);
drivers/irqchip/irq-loongson-pch-pic.c
411
int find_pch_pic(u32 gsi)
drivers/irqchip/irq-loongson-pch-pic.c
422
if (gsi >= priv->gsi_base && gsi < (priv->gsi_base + priv->vec_count))
drivers/irqchip/irq-loongson-pch-pic.c
426
pr_err("ERROR: Unable to locate PCH_PIC for GSI %d\n", gsi);
drivers/irqchip/irq-loongson.h
20
int find_pch_pic(u32 gsi);
drivers/net/ipa/gsi.c
1000
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
1008
gsi_irq_ieob_disable_one(gsi, channel->evt_ring_id);
drivers/net/ipa/gsi.c
1015
void gsi_channel_reset(struct gsi *gsi, u32 channel_id, bool doorbell)
drivers/net/ipa/gsi.c
1017
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
1019
mutex_lock(&gsi->mutex);
drivers/net/ipa/gsi.c
1023
if (gsi->version < IPA_VERSION_4_0 && !channel->toward_ipa)
drivers/net/ipa/gsi.c
1031
mutex_unlock(&gsi->mutex);
drivers/net/ipa/gsi.c
1035
int gsi_channel_suspend(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
1037
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
1051
int gsi_channel_resume(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
1053
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
1059
void gsi_suspend(struct gsi *gsi)
drivers/net/ipa/gsi.c
1061
disable_irq(gsi->irq);
drivers/net/ipa/gsi.c
1065
void gsi_resume(struct gsi *gsi)
drivers/net/ipa/gsi.c
1067
enable_irq(gsi->irq);
drivers/net/ipa/gsi.c
1072
struct gsi_channel *channel = &trans->gsi->channel[trans->channel_id];
drivers/net/ipa/gsi.c
1084
struct gsi *gsi = trans->gsi;
drivers/net/ipa/gsi.c
1089
channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
1096
ipa_gsi_channel_tx_queued(gsi, channel_id, trans_count, byte_count);
drivers/net/ipa/gsi.c
1117
struct gsi *gsi = trans->gsi;
drivers/net/ipa/gsi.c
1122
channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
1129
ipa_gsi_channel_tx_completed(gsi, channel_id, trans_count, byte_count);
drivers/net/ipa/gsi.c
1133
static void gsi_isr_chan_ctrl(struct gsi *gsi)
drivers/net/ipa/gsi.c
1138
reg = gsi_reg(gsi, CNTXT_SRC_CH_IRQ);
drivers/net/ipa/gsi.c
1139
channel_mask = ioread32(gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1141
reg = gsi_reg(gsi, CNTXT_SRC_CH_IRQ_CLR);
drivers/net/ipa/gsi.c
1142
iowrite32(channel_mask, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1149
complete(&gsi->completion);
drivers/net/ipa/gsi.c
1154
static void gsi_isr_evt_ctrl(struct gsi *gsi)
drivers/net/ipa/gsi.c
1159
reg = gsi_reg(gsi, CNTXT_SRC_EV_CH_IRQ);
drivers/net/ipa/gsi.c
1160
event_mask = ioread32(gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1162
reg = gsi_reg(gsi, CNTXT_SRC_EV_CH_IRQ_CLR);
drivers/net/ipa/gsi.c
1163
iowrite32(event_mask, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1170
complete(&gsi->completion);
drivers/net/ipa/gsi.c
1176
gsi_isr_glob_chan_err(struct gsi *gsi, u32 err_ee, u32 channel_id, u32 code)
drivers/net/ipa/gsi.c
1179
dev_err(gsi->dev, "channel %u out of resources\n", channel_id);
drivers/net/ipa/gsi.c
1180
complete(&gsi->completion);
drivers/net/ipa/gsi.c
1185
dev_err(gsi->dev, "channel %u global error ee 0x%08x code 0x%08x\n",
drivers/net/ipa/gsi.c
1191
gsi_isr_glob_evt_err(struct gsi *gsi, u32 err_ee, u32 evt_ring_id, u32 code)
drivers/net/ipa/gsi.c
1194
struct gsi_evt_ring *evt_ring = &gsi->evt_ring[evt_ring_id];
drivers/net/ipa/gsi.c
1197
complete(&gsi->completion);
drivers/net/ipa/gsi.c
1198
dev_err(gsi->dev, "evt_ring for channel %u out of resources\n",
drivers/net/ipa/gsi.c
1204
dev_err(gsi->dev, "event ring %u global error ee %u code 0x%08x\n",
drivers/net/ipa/gsi.c
1209
static void gsi_isr_glob_err(struct gsi *gsi)
drivers/net/ipa/gsi.c
1221
log_reg = gsi_reg(gsi, ERROR_LOG);
drivers/net/ipa/gsi.c
1223
val = ioread32(gsi->virt + offset);
drivers/net/ipa/gsi.c
1224
iowrite32(0, gsi->virt + offset);
drivers/net/ipa/gsi.c
1226
clr_reg = gsi_reg(gsi, ERROR_LOG_CLR);
drivers/net/ipa/gsi.c
1227
iowrite32(~0, gsi->virt + reg_offset(clr_reg));
drivers/net/ipa/gsi.c
1236
gsi_isr_glob_chan_err(gsi, ee, which, code);
drivers/net/ipa/gsi.c
1238
gsi_isr_glob_evt_err(gsi, ee, which, code);
drivers/net/ipa/gsi.c
1240
dev_err(gsi->dev, "unexpected global error 0x%08x\n", type);
drivers/net/ipa/gsi.c
1244
static void gsi_isr_gp_int1(struct gsi *gsi)
drivers/net/ipa/gsi.c
1269
reg = gsi_reg(gsi, CNTXT_SCRATCH_0);
drivers/net/ipa/gsi.c
1270
val = ioread32(gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1276
gsi->result = 0;
drivers/net/ipa/gsi.c
1280
gsi->result = -EAGAIN;
drivers/net/ipa/gsi.c
1284
dev_err(gsi->dev, "global INT1 generic result %u\n", result);
drivers/net/ipa/gsi.c
1285
gsi->result = -EIO;
drivers/net/ipa/gsi.c
1289
complete(&gsi->completion);
drivers/net/ipa/gsi.c
1293
static void gsi_isr_glob_ee(struct gsi *gsi)
drivers/net/ipa/gsi.c
1298
reg = gsi_reg(gsi, CNTXT_GLOB_IRQ_STTS);
drivers/net/ipa/gsi.c
1299
val = ioread32(gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1302
gsi_isr_glob_err(gsi);
drivers/net/ipa/gsi.c
1304
reg = gsi_reg(gsi, CNTXT_GLOB_IRQ_CLR);
drivers/net/ipa/gsi.c
1305
iowrite32(val, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1311
gsi_isr_gp_int1(gsi);
drivers/net/ipa/gsi.c
1315
dev_err(gsi->dev, "unexpected global interrupt 0x%08x\n", val);
drivers/net/ipa/gsi.c
1319
static void gsi_isr_ieob(struct gsi *gsi)
drivers/net/ipa/gsi.c
1324
reg = gsi_reg(gsi, CNTXT_SRC_IEOB_IRQ);
drivers/net/ipa/gsi.c
1325
event_mask = ioread32(gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1327
gsi_irq_ieob_disable(gsi, event_mask);
drivers/net/ipa/gsi.c
1329
reg = gsi_reg(gsi, CNTXT_SRC_IEOB_IRQ_CLR);
drivers/net/ipa/gsi.c
1330
iowrite32(event_mask, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1337
napi_schedule(&gsi->evt_ring[evt_ring_id].channel->napi);
drivers/net/ipa/gsi.c
1342
static void gsi_isr_general(struct gsi *gsi)
drivers/net/ipa/gsi.c
1344
struct device *dev = gsi->dev;
drivers/net/ipa/gsi.c
1348
reg = gsi_reg(gsi, CNTXT_GSI_IRQ_STTS);
drivers/net/ipa/gsi.c
1349
val = ioread32(gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1351
reg = gsi_reg(gsi, CNTXT_GSI_IRQ_CLR);
drivers/net/ipa/gsi.c
1352
iowrite32(val, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1367
struct gsi *gsi = dev_id;
drivers/net/ipa/gsi.c
1373
reg = gsi_reg(gsi, CNTXT_TYPE_IRQ);
drivers/net/ipa/gsi.c
1377
while ((intr_mask = ioread32(gsi->virt + offset))) {
drivers/net/ipa/gsi.c
1389
gsi_isr_chan_ctrl(gsi);
drivers/net/ipa/gsi.c
1392
gsi_isr_evt_ctrl(gsi);
drivers/net/ipa/gsi.c
1395
gsi_isr_glob_ee(gsi);
drivers/net/ipa/gsi.c
1398
gsi_isr_ieob(gsi);
drivers/net/ipa/gsi.c
1401
gsi_isr_general(gsi);
drivers/net/ipa/gsi.c
1404
dev_err(gsi->dev,
drivers/net/ipa/gsi.c
1412
dev_err(gsi->dev, "interrupt flood\n");
drivers/net/ipa/gsi.c
1421
static int gsi_irq_init(struct gsi *gsi, struct platform_device *pdev)
drivers/net/ipa/gsi.c
1429
gsi->irq = ret;
drivers/net/ipa/gsi.c
1436
gsi_event_trans(struct gsi *gsi, struct gsi_event *event)
drivers/net/ipa/gsi.c
1444
channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
1445
if (WARN(!channel->gsi, "event has bad channel %u\n", channel_id))
drivers/net/ipa/gsi.c
1484
static void gsi_evt_ring_update(struct gsi *gsi, u32 evt_ring_id, u32 index)
drivers/net/ipa/gsi.c
1486
struct gsi_evt_ring *evt_ring = &gsi->evt_ring[evt_ring_id];
drivers/net/ipa/gsi.c
1511
trans = gsi_event_trans(gsi, event);
drivers/net/ipa/gsi.c
1530
gsi_evt_ring_doorbell(gsi, evt_ring_id, index);
drivers/net/ipa/gsi.c
1534
static int gsi_ring_alloc(struct gsi *gsi, struct gsi_ring *ring, u32 count)
drivers/net/ipa/gsi.c
1537
struct device *dev = gsi->dev;
drivers/net/ipa/gsi.c
1556
static void gsi_ring_free(struct gsi *gsi, struct gsi_ring *ring)
drivers/net/ipa/gsi.c
1560
dma_free_coherent(gsi->dev, size, ring->virt, ring->addr);
drivers/net/ipa/gsi.c
1564
static int gsi_evt_ring_id_alloc(struct gsi *gsi)
drivers/net/ipa/gsi.c
1568
if (gsi->event_bitmap == ~0U) {
drivers/net/ipa/gsi.c
1569
dev_err(gsi->dev, "event rings exhausted\n");
drivers/net/ipa/gsi.c
1573
evt_ring_id = ffz(gsi->event_bitmap);
drivers/net/ipa/gsi.c
1574
gsi->event_bitmap |= BIT(evt_ring_id);
drivers/net/ipa/gsi.c
1580
static void gsi_evt_ring_id_free(struct gsi *gsi, u32 evt_ring_id)
drivers/net/ipa/gsi.c
1582
gsi->event_bitmap &= ~BIT(evt_ring_id);
drivers/net/ipa/gsi.c
1590
struct gsi *gsi = channel->gsi;
drivers/net/ipa/gsi.c
1594
reg = gsi_reg(gsi, CH_C_DOORBELL_0);
drivers/net/ipa/gsi.c
1597
iowrite32(val, gsi->virt + reg_n_offset(reg, channel_id));
drivers/net/ipa/gsi.c
1604
struct gsi *gsi = channel->gsi;
drivers/net/ipa/gsi.c
1612
evt_ring = &gsi->evt_ring[evt_ring_id];
drivers/net/ipa/gsi.c
1618
reg = gsi_reg(gsi, EV_CH_E_CNTXT_4);
drivers/net/ipa/gsi.c
1620
index = gsi_ring_index(ring, ioread32(gsi->virt + offset));
drivers/net/ipa/gsi.c
1625
trans = gsi_event_trans(gsi, gsi_ring_virt(ring, index - 1));
drivers/net/ipa/gsi.c
1634
gsi_evt_ring_update(gsi, evt_ring_id, index);
drivers/net/ipa/gsi.c
1689
gsi_irq_ieob_enable_one(channel->gsi, channel->evt_ring_id);
drivers/net/ipa/gsi.c
169
return channel - &channel->gsi->channel[0];
drivers/net/ipa/gsi.c
1709
static int gsi_channel_setup_one(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
1711
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
1718
ret = gsi_evt_ring_alloc_command(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
1722
gsi_evt_ring_program(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
1724
ret = gsi_channel_alloc_command(gsi, channel_id);
drivers/net/ipa/gsi.c
1731
netif_napi_add_tx(gsi->dummy_dev, &channel->napi,
drivers/net/ipa/gsi.c
1734
netif_napi_add(gsi->dummy_dev, &channel->napi,
drivers/net/ipa/gsi.c
1741
gsi_evt_ring_de_alloc_command(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
1747
static void gsi_channel_teardown_one(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
1749
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
175
return !!channel->gsi;
drivers/net/ipa/gsi.c
1757
gsi_channel_de_alloc_command(gsi, channel_id);
drivers/net/ipa/gsi.c
1758
gsi_evt_ring_reset_command(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
1759
gsi_evt_ring_de_alloc_command(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
1766
static int gsi_generic_command(struct gsi *gsi, u32 channel_id,
drivers/net/ipa/gsi.c
1784
reg = gsi_reg(gsi, CNTXT_GLOB_IRQ_EN);
drivers/net/ipa/gsi.c
1786
iowrite32(val, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1789
reg = gsi_reg(gsi, CNTXT_SCRATCH_0);
drivers/net/ipa/gsi.c
1791
val = ioread32(gsi->virt + offset);
drivers/net/ipa/gsi.c
1794
iowrite32(val, gsi->virt + offset);
drivers/net/ipa/gsi.c
1797
reg = gsi_reg(gsi, GENERIC_CMD);
drivers/net/ipa/gsi.c
1801
if (gsi->version >= IPA_VERSION_4_11)
drivers/net/ipa/gsi.c
1804
timeout = !gsi_command(gsi, reg_offset(reg), val);
drivers/net/ipa/gsi.c
1807
reg = gsi_reg(gsi, CNTXT_GLOB_IRQ_EN);
drivers/net/ipa/gsi.c
1808
iowrite32(ERROR_INT, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1811
return gsi->result;
drivers/net/ipa/gsi.c
1813
dev_err(gsi->dev, "GSI generic command %u to channel %u timed out\n",
drivers/net/ipa/gsi.c
1819
static int gsi_modem_channel_alloc(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
1821
return gsi_generic_command(gsi, channel_id,
drivers/net/ipa/gsi.c
1825
static void gsi_modem_channel_halt(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
1831
ret = gsi_generic_command(gsi, channel_id,
drivers/net/ipa/gsi.c
1836
dev_err(gsi->dev, "error %d halting modem channel %u\n",
drivers/net/ipa/gsi.c
1842
gsi_modem_channel_flow_control(struct gsi *gsi, u32 channel_id, bool enable)
drivers/net/ipa/gsi.c
1853
if (!enable && gsi->version >= IPA_VERSION_4_11)
drivers/net/ipa/gsi.c
1857
ret = gsi_generic_command(gsi, channel_id, command, 0);
drivers/net/ipa/gsi.c
1861
dev_err(gsi->dev,
drivers/net/ipa/gsi.c
1867
static int gsi_channel_setup(struct gsi *gsi)
drivers/net/ipa/gsi.c
1873
gsi_irq_enable(gsi);
drivers/net/ipa/gsi.c
1875
mutex_lock(&gsi->mutex);
drivers/net/ipa/gsi.c
1878
ret = gsi_channel_setup_one(gsi, channel_id);
drivers/net/ipa/gsi.c
1881
} while (++channel_id < gsi->channel_count);
drivers/net/ipa/gsi.c
1885
struct gsi_channel *channel = &gsi->channel[channel_id++];
drivers/net/ipa/gsi.c
1891
dev_err(gsi->dev, "channel %u not supported by hardware\n",
drivers/net/ipa/gsi.c
1893
channel_id = gsi->channel_count;
drivers/net/ipa/gsi.c
1898
mask = gsi->modem_channel_bitmap;
drivers/net/ipa/gsi.c
1902
ret = gsi_modem_channel_alloc(gsi, modem_channel_id);
drivers/net/ipa/gsi.c
1910
mutex_unlock(&gsi->mutex);
drivers/net/ipa/gsi.c
1916
mask ^= gsi->modem_channel_bitmap;
drivers/net/ipa/gsi.c
1922
gsi_modem_channel_halt(gsi, channel_id);
drivers/net/ipa/gsi.c
1927
gsi_channel_teardown_one(gsi, channel_id);
drivers/net/ipa/gsi.c
1929
mutex_unlock(&gsi->mutex);
drivers/net/ipa/gsi.c
1931
gsi_irq_disable(gsi);
drivers/net/ipa/gsi.c
1937
static void gsi_channel_teardown(struct gsi *gsi)
drivers/net/ipa/gsi.c
1939
u32 mask = gsi->modem_channel_bitmap;
drivers/net/ipa/gsi.c
1942
mutex_lock(&gsi->mutex);
drivers/net/ipa/gsi.c
1949
gsi_modem_channel_halt(gsi, channel_id);
drivers/net/ipa/gsi.c
195
static void gsi_irq_type_update(struct gsi *gsi, u32 val)
drivers/net/ipa/gsi.c
1952
channel_id = gsi->channel_count - 1;
drivers/net/ipa/gsi.c
1954
gsi_channel_teardown_one(gsi, channel_id);
drivers/net/ipa/gsi.c
1957
mutex_unlock(&gsi->mutex);
drivers/net/ipa/gsi.c
1959
gsi_irq_disable(gsi);
drivers/net/ipa/gsi.c
1963
static int gsi_irq_setup(struct gsi *gsi)
drivers/net/ipa/gsi.c
1969
reg = gsi_reg(gsi, CNTXT_INTSET);
drivers/net/ipa/gsi.c
197
const struct reg *reg = gsi_reg(gsi, CNTXT_TYPE_IRQ_MSK);
drivers/net/ipa/gsi.c
1970
iowrite32(reg_bit(reg, INTYPE), gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1973
gsi_irq_type_update(gsi, 0);
drivers/net/ipa/gsi.c
1976
reg = gsi_reg(gsi, CNTXT_SRC_CH_IRQ_MSK);
drivers/net/ipa/gsi.c
1977
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1979
reg = gsi_reg(gsi, CNTXT_SRC_EV_CH_IRQ_MSK);
drivers/net/ipa/gsi.c
1980
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1982
reg = gsi_reg(gsi, CNTXT_GLOB_IRQ_EN);
drivers/net/ipa/gsi.c
1983
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1985
reg = gsi_reg(gsi, CNTXT_SRC_IEOB_IRQ_MSK);
drivers/net/ipa/gsi.c
1986
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1989
if (gsi->version > IPA_VERSION_3_1) {
drivers/net/ipa/gsi.c
199
gsi->type_enabled_bitmap = val;
drivers/net/ipa/gsi.c
1990
reg = gsi_reg(gsi, INTER_EE_SRC_CH_IRQ_MSK);
drivers/net/ipa/gsi.c
1991
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1993
reg = gsi_reg(gsi, INTER_EE_SRC_EV_CH_IRQ_MSK);
drivers/net/ipa/gsi.c
1994
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
1997
reg = gsi_reg(gsi, CNTXT_GSI_IRQ_EN);
drivers/net/ipa/gsi.c
1998
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
200
iowrite32(val, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
2000
ret = request_irq(gsi->irq, gsi_isr, 0, "gsi", gsi);
drivers/net/ipa/gsi.c
2002
dev_err(gsi->dev, "error %d requesting \"gsi\" IRQ\n", ret);
drivers/net/ipa/gsi.c
2007
static void gsi_irq_teardown(struct gsi *gsi)
drivers/net/ipa/gsi.c
2009
free_irq(gsi->irq, gsi);
drivers/net/ipa/gsi.c
2013
static int gsi_ring_setup(struct gsi *gsi)
drivers/net/ipa/gsi.c
2015
struct device *dev = gsi->dev;
drivers/net/ipa/gsi.c
2020
if (gsi->version < IPA_VERSION_3_5_1) {
drivers/net/ipa/gsi.c
2022
gsi->channel_count = GSI_CHANNEL_COUNT_MAX;
drivers/net/ipa/gsi.c
2023
gsi->evt_ring_count = GSI_EVT_RING_COUNT_MAX;
drivers/net/ipa/gsi.c
2028
reg = gsi_reg(gsi, HW_PARAM_2);
drivers/net/ipa/gsi.c
2029
val = ioread32(gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
203
static void gsi_irq_type_enable(struct gsi *gsi, enum gsi_irq_type_id type_id)
drivers/net/ipa/gsi.c
2041
gsi->channel_count = count;
drivers/net/ipa/gsi.c
2043
if (gsi->version < IPA_VERSION_5_0) {
drivers/net/ipa/gsi.c
2046
reg = gsi_reg(gsi, HW_PARAM_4);
drivers/net/ipa/gsi.c
2047
val = ioread32(gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
205
gsi_irq_type_update(gsi, gsi->type_enabled_bitmap | type_id);
drivers/net/ipa/gsi.c
2060
gsi->evt_ring_count = count;
drivers/net/ipa/gsi.c
2066
int gsi_setup(struct gsi *gsi)
drivers/net/ipa/gsi.c
2073
reg = gsi_reg(gsi, GSI_STATUS);
drivers/net/ipa/gsi.c
2074
val = ioread32(gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
2076
dev_err(gsi->dev, "GSI has not been enabled\n");
drivers/net/ipa/gsi.c
208
static void gsi_irq_type_disable(struct gsi *gsi, enum gsi_irq_type_id type_id)
drivers/net/ipa/gsi.c
2080
ret = gsi_irq_setup(gsi);
drivers/net/ipa/gsi.c
2084
ret = gsi_ring_setup(gsi); /* No matching teardown required */
drivers/net/ipa/gsi.c
2089
reg = gsi_reg(gsi, ERROR_LOG);
drivers/net/ipa/gsi.c
2090
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
2092
ret = gsi_channel_setup(gsi);
drivers/net/ipa/gsi.c
2099
gsi_irq_teardown(gsi);
drivers/net/ipa/gsi.c
210
gsi_irq_type_update(gsi, gsi->type_enabled_bitmap & ~type_id);
drivers/net/ipa/gsi.c
2105
void gsi_teardown(struct gsi *gsi)
drivers/net/ipa/gsi.c
2107
gsi_channel_teardown(gsi);
drivers/net/ipa/gsi.c
2108
gsi_irq_teardown(gsi);
drivers/net/ipa/gsi.c
2114
struct gsi *gsi = channel->gsi;
drivers/net/ipa/gsi.c
2118
ret = gsi_evt_ring_id_alloc(gsi);
drivers/net/ipa/gsi.c
2123
evt_ring = &gsi->evt_ring[channel->evt_ring_id];
drivers/net/ipa/gsi.c
2126
ret = gsi_ring_alloc(gsi, &evt_ring->ring, channel->event_count);
drivers/net/ipa/gsi.c
2130
dev_err(gsi->dev, "error %d allocating channel %u event ring\n",
drivers/net/ipa/gsi.c
2133
gsi_evt_ring_id_free(gsi, channel->evt_ring_id);
drivers/net/ipa/gsi.c
2142
struct gsi *gsi = channel->gsi;
drivers/net/ipa/gsi.c
2145
evt_ring = &gsi->evt_ring[evt_ring_id];
drivers/net/ipa/gsi.c
2146
gsi_ring_free(gsi, &evt_ring->ring);
drivers/net/ipa/gsi.c
2147
gsi_evt_ring_id_free(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
2150
static bool gsi_channel_data_valid(struct gsi *gsi, bool command,
drivers/net/ipa/gsi.c
2155
struct device *dev = gsi->dev;
drivers/net/ipa/gsi.c
218
static void gsi_irq_ev_ctrl_enable(struct gsi *gsi, u32 evt_ring_id)
drivers/net/ipa/gsi.c
2218
static int gsi_channel_init_one(struct gsi *gsi,
drivers/net/ipa/gsi.c
2226
if (!gsi_channel_data_valid(gsi, command, data))
drivers/net/ipa/gsi.c
2232
dev_warn(gsi->dev, "channel %u limited to %u TREs\n",
drivers/net/ipa/gsi.c
2238
channel = &gsi->channel[data->channel_id];
drivers/net/ipa/gsi.c
2241
channel->gsi = gsi;
drivers/net/ipa/gsi.c
2252
ret = gsi_ring_alloc(gsi, &channel->tre_ring, data->channel.tre_count);
drivers/net/ipa/gsi.c
2254
dev_err(gsi->dev, "error %d allocating channel %u ring\n",
drivers/net/ipa/gsi.c
2259
ret = gsi_channel_trans_init(gsi, data->channel_id);
drivers/net/ipa/gsi.c
2264
u32 tre_max = gsi_channel_tre_max(gsi, data->channel_id);
drivers/net/ipa/gsi.c
227
reg = gsi_reg(gsi, CNTXT_SRC_EV_CH_IRQ_CLR);
drivers/net/ipa/gsi.c
2273
gsi_ring_free(gsi, &channel->tre_ring);
drivers/net/ipa/gsi.c
2277
channel->gsi = NULL; /* Mark it not (fully) initialized */
drivers/net/ipa/gsi.c
228
iowrite32(~0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
2291
gsi_ring_free(channel->gsi, &channel->tre_ring);
drivers/net/ipa/gsi.c
2296
static int gsi_channel_init(struct gsi *gsi, u32 count,
drivers/net/ipa/gsi.c
230
reg = gsi_reg(gsi, CNTXT_SRC_EV_CH_IRQ_MSK);
drivers/net/ipa/gsi.c
2304
modem_alloc = gsi->version == IPA_VERSION_4_2;
drivers/net/ipa/gsi.c
2306
gsi->event_bitmap = gsi_event_bitmap_init(GSI_EVT_RING_COUNT_MAX);
drivers/net/ipa/gsi.c
2307
gsi->ieob_enabled_bitmap = 0;
drivers/net/ipa/gsi.c
231
iowrite32(val, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
2319
gsi->modem_channel_bitmap |=
drivers/net/ipa/gsi.c
232
gsi_irq_type_enable(gsi, GSI_EV_CTRL);
drivers/net/ipa/gsi.c
2324
ret = gsi_channel_init_one(gsi, &data[i], command);
drivers/net/ipa/gsi.c
2336
gsi->modem_channel_bitmap &= ~BIT(data[i].channel_id);
drivers/net/ipa/gsi.c
2339
gsi_channel_exit_one(&gsi->channel[data->channel_id]);
drivers/net/ipa/gsi.c
2346
static void gsi_channel_exit(struct gsi *gsi)
drivers/net/ipa/gsi.c
2351
gsi_channel_exit_one(&gsi->channel[channel_id]);
drivers/net/ipa/gsi.c
2353
gsi->modem_channel_bitmap = 0;
drivers/net/ipa/gsi.c
2357
int gsi_init(struct gsi *gsi, struct platform_device *pdev,
drivers/net/ipa/gsi.c
236
static void gsi_irq_ev_ctrl_disable(struct gsi *gsi)
drivers/net/ipa/gsi.c
2365
gsi->dev = &pdev->dev;
drivers/net/ipa/gsi.c
2366
gsi->version = version;
drivers/net/ipa/gsi.c
2371
gsi->dummy_dev = alloc_netdev_dummy(0);
drivers/net/ipa/gsi.c
2372
if (!gsi->dummy_dev)
drivers/net/ipa/gsi.c
2374
init_completion(&gsi->completion);
drivers/net/ipa/gsi.c
2376
ret = gsi_reg_init(gsi, pdev);
drivers/net/ipa/gsi.c
2380
ret = gsi_irq_init(gsi, pdev); /* No matching exit required */
drivers/net/ipa/gsi.c
2384
ret = gsi_channel_init(gsi, count, data);
drivers/net/ipa/gsi.c
2388
mutex_init(&gsi->mutex);
drivers/net/ipa/gsi.c
2393
free_netdev(gsi->dummy_dev);
drivers/net/ipa/gsi.c
2394
gsi_reg_exit(gsi);
drivers/net/ipa/gsi.c
240
gsi_irq_type_disable(gsi, GSI_EV_CTRL);
drivers/net/ipa/gsi.c
2400
void gsi_exit(struct gsi *gsi)
drivers/net/ipa/gsi.c
2402
mutex_destroy(&gsi->mutex);
drivers/net/ipa/gsi.c
2403
gsi_channel_exit(gsi);
drivers/net/ipa/gsi.c
2404
free_netdev(gsi->dummy_dev);
drivers/net/ipa/gsi.c
2405
gsi_reg_exit(gsi);
drivers/net/ipa/gsi.c
242
reg = gsi_reg(gsi, CNTXT_SRC_EV_CH_IRQ_MSK);
drivers/net/ipa/gsi.c
2428
u32 gsi_channel_tre_max(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
243
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
2430
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
251
static void gsi_irq_ch_ctrl_enable(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
260
reg = gsi_reg(gsi, CNTXT_SRC_CH_IRQ_CLR);
drivers/net/ipa/gsi.c
261
iowrite32(~0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
263
reg = gsi_reg(gsi, CNTXT_SRC_CH_IRQ_MSK);
drivers/net/ipa/gsi.c
264
iowrite32(val, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
266
gsi_irq_type_enable(gsi, GSI_CH_CTRL);
drivers/net/ipa/gsi.c
270
static void gsi_irq_ch_ctrl_disable(struct gsi *gsi)
drivers/net/ipa/gsi.c
274
gsi_irq_type_disable(gsi, GSI_CH_CTRL);
drivers/net/ipa/gsi.c
276
reg = gsi_reg(gsi, CNTXT_SRC_CH_IRQ_MSK);
drivers/net/ipa/gsi.c
277
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
280
static void gsi_irq_ieob_enable_one(struct gsi *gsi, u32 evt_ring_id)
drivers/net/ipa/gsi.c
282
bool enable_ieob = !gsi->ieob_enabled_bitmap;
drivers/net/ipa/gsi.c
286
gsi->ieob_enabled_bitmap |= BIT(evt_ring_id);
drivers/net/ipa/gsi.c
288
reg = gsi_reg(gsi, CNTXT_SRC_IEOB_IRQ_MSK);
drivers/net/ipa/gsi.c
289
val = gsi->ieob_enabled_bitmap;
drivers/net/ipa/gsi.c
290
iowrite32(val, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
294
gsi_irq_type_enable(gsi, GSI_IEOB);
drivers/net/ipa/gsi.c
297
static void gsi_irq_ieob_disable(struct gsi *gsi, u32 event_mask)
drivers/net/ipa/gsi.c
302
gsi->ieob_enabled_bitmap &= ~event_mask;
drivers/net/ipa/gsi.c
305
if (!gsi->ieob_enabled_bitmap)
drivers/net/ipa/gsi.c
306
gsi_irq_type_disable(gsi, GSI_IEOB);
drivers/net/ipa/gsi.c
308
reg = gsi_reg(gsi, CNTXT_SRC_IEOB_IRQ_MSK);
drivers/net/ipa/gsi.c
309
val = gsi->ieob_enabled_bitmap;
drivers/net/ipa/gsi.c
310
iowrite32(val, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
313
static void gsi_irq_ieob_disable_one(struct gsi *gsi, u32 evt_ring_id)
drivers/net/ipa/gsi.c
315
gsi_irq_ieob_disable(gsi, BIT(evt_ring_id));
drivers/net/ipa/gsi.c
319
static void gsi_irq_enable(struct gsi *gsi)
drivers/net/ipa/gsi.c
327
reg = gsi_reg(gsi, CNTXT_GLOB_IRQ_EN);
drivers/net/ipa/gsi.c
328
iowrite32(ERROR_INT, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
330
gsi_irq_type_update(gsi, gsi->type_enabled_bitmap | GSI_GLOB_EE);
drivers/net/ipa/gsi.c
337
reg = gsi_reg(gsi, CNTXT_GSI_IRQ_EN);
drivers/net/ipa/gsi.c
341
iowrite32(val, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
343
gsi_irq_type_update(gsi, gsi->type_enabled_bitmap | GSI_GENERAL);
drivers/net/ipa/gsi.c
347
static void gsi_irq_disable(struct gsi *gsi)
drivers/net/ipa/gsi.c
351
gsi_irq_type_update(gsi, 0);
drivers/net/ipa/gsi.c
354
reg = gsi_reg(gsi, CNTXT_GSI_IRQ_EN);
drivers/net/ipa/gsi.c
355
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
357
reg = gsi_reg(gsi, CNTXT_GLOB_IRQ_EN);
drivers/net/ipa/gsi.c
358
iowrite32(0, gsi->virt + reg_offset(reg));
drivers/net/ipa/gsi.c
384
static bool gsi_command(struct gsi *gsi, u32 reg, u32 val)
drivers/net/ipa/gsi.c
387
struct completion *completion = &gsi->completion;
drivers/net/ipa/gsi.c
391
iowrite32(val, gsi->virt + reg);
drivers/net/ipa/gsi.c
398
gsi_evt_ring_state(struct gsi *gsi, u32 evt_ring_id)
drivers/net/ipa/gsi.c
400
const struct reg *reg = gsi_reg(gsi, EV_CH_E_CNTXT_0);
drivers/net/ipa/gsi.c
403
val = ioread32(gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
409
static void gsi_evt_ring_command(struct gsi *gsi, u32 evt_ring_id,
drivers/net/ipa/gsi.c
412
struct device *dev = gsi->dev;
drivers/net/ipa/gsi.c
418
gsi_irq_ev_ctrl_enable(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
420
reg = gsi_reg(gsi, EV_CH_CMD);
drivers/net/ipa/gsi.c
424
timeout = !gsi_command(gsi, reg_offset(reg), val);
drivers/net/ipa/gsi.c
426
gsi_irq_ev_ctrl_disable(gsi);
drivers/net/ipa/gsi.c
432
opcode, evt_ring_id, gsi_evt_ring_state(gsi, evt_ring_id));
drivers/net/ipa/gsi.c
436
static int gsi_evt_ring_alloc_command(struct gsi *gsi, u32 evt_ring_id)
drivers/net/ipa/gsi.c
441
state = gsi_evt_ring_state(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
443
dev_err(gsi->dev, "event ring %u bad state %u before alloc\n",
drivers/net/ipa/gsi.c
448
gsi_evt_ring_command(gsi, evt_ring_id, GSI_EVT_ALLOCATE);
drivers/net/ipa/gsi.c
451
state = gsi_evt_ring_state(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
455
dev_err(gsi->dev, "event ring %u bad state %u after alloc\n",
drivers/net/ipa/gsi.c
462
static void gsi_evt_ring_reset_command(struct gsi *gsi, u32 evt_ring_id)
drivers/net/ipa/gsi.c
466
state = gsi_evt_ring_state(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
469
dev_err(gsi->dev, "event ring %u bad state %u before reset\n",
drivers/net/ipa/gsi.c
474
gsi_evt_ring_command(gsi, evt_ring_id, GSI_EVT_RESET);
drivers/net/ipa/gsi.c
477
state = gsi_evt_ring_state(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
481
dev_err(gsi->dev, "event ring %u bad state %u after reset\n",
drivers/net/ipa/gsi.c
486
static void gsi_evt_ring_de_alloc_command(struct gsi *gsi, u32 evt_ring_id)
drivers/net/ipa/gsi.c
490
state = gsi_evt_ring_state(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
492
dev_err(gsi->dev, "event ring %u state %u before dealloc\n",
drivers/net/ipa/gsi.c
497
gsi_evt_ring_command(gsi, evt_ring_id, GSI_EVT_DE_ALLOC);
drivers/net/ipa/gsi.c
500
state = gsi_evt_ring_state(gsi, evt_ring_id);
drivers/net/ipa/gsi.c
504
dev_err(gsi->dev, "event ring %u bad state %u after dealloc\n",
drivers/net/ipa/gsi.c
511
const struct reg *reg = gsi_reg(channel->gsi, CH_C_CNTXT_0);
drivers/net/ipa/gsi.c
513
struct gsi *gsi = channel->gsi;
drivers/net/ipa/gsi.c
514
void __iomem *virt = gsi->virt;
drivers/net/ipa/gsi.c
517
reg = gsi_reg(gsi, CH_C_CNTXT_0);
drivers/net/ipa/gsi.c
528
struct gsi *gsi = channel->gsi;
drivers/net/ipa/gsi.c
529
struct device *dev = gsi->dev;
drivers/net/ipa/gsi.c
535
gsi_irq_ch_ctrl_enable(gsi, channel_id);
drivers/net/ipa/gsi.c
537
reg = gsi_reg(gsi, CH_CMD);
drivers/net/ipa/gsi.c
541
timeout = !gsi_command(gsi, reg_offset(reg), val);
drivers/net/ipa/gsi.c
543
gsi_irq_ch_ctrl_disable(gsi);
drivers/net/ipa/gsi.c
553
static int gsi_channel_alloc_command(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
555
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
556
struct device *dev = gsi->dev;
drivers/net/ipa/gsi.c
583
struct device *dev = channel->gsi->dev;
drivers/net/ipa/gsi.c
610
struct device *dev = channel->gsi->dev;
drivers/net/ipa/gsi.c
648
struct device *dev = channel->gsi->dev;
drivers/net/ipa/gsi.c
674
static void gsi_channel_de_alloc_command(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
676
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
677
struct device *dev = gsi->dev;
drivers/net/ipa/gsi.c
702
static void gsi_evt_ring_doorbell(struct gsi *gsi, u32 evt_ring_id, u32 index)
drivers/net/ipa/gsi.c
704
const struct reg *reg = gsi_reg(gsi, EV_CH_E_DOORBELL_0);
drivers/net/ipa/gsi.c
705
struct gsi_ring *ring = &gsi->evt_ring[evt_ring_id].ring;
drivers/net/ipa/gsi.c
712
iowrite32(val, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
716
static void gsi_evt_ring_program(struct gsi *gsi, u32 evt_ring_id)
drivers/net/ipa/gsi.c
718
struct gsi_evt_ring *evt_ring = &gsi->evt_ring[evt_ring_id];
drivers/net/ipa/gsi.c
723
reg = gsi_reg(gsi, EV_CH_E_CNTXT_0);
drivers/net/ipa/gsi.c
729
iowrite32(val, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
731
reg = gsi_reg(gsi, EV_CH_E_CNTXT_1);
drivers/net/ipa/gsi.c
733
iowrite32(val, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
739
reg = gsi_reg(gsi, EV_CH_E_CNTXT_2);
drivers/net/ipa/gsi.c
741
iowrite32(val, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
743
reg = gsi_reg(gsi, EV_CH_E_CNTXT_3);
drivers/net/ipa/gsi.c
745
iowrite32(val, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
748
reg = gsi_reg(gsi, EV_CH_E_CNTXT_8);
drivers/net/ipa/gsi.c
752
iowrite32(val, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
755
reg = gsi_reg(gsi, EV_CH_E_CNTXT_9);
drivers/net/ipa/gsi.c
756
iowrite32(0, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
758
reg = gsi_reg(gsi, EV_CH_E_CNTXT_10);
drivers/net/ipa/gsi.c
759
iowrite32(0, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
761
reg = gsi_reg(gsi, EV_CH_E_CNTXT_11);
drivers/net/ipa/gsi.c
762
iowrite32(0, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
765
reg = gsi_reg(gsi, EV_CH_E_CNTXT_12);
drivers/net/ipa/gsi.c
766
iowrite32(0, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
768
reg = gsi_reg(gsi, EV_CH_E_CNTXT_13);
drivers/net/ipa/gsi.c
769
iowrite32(0, gsi->virt + reg_n_offset(reg, evt_ring_id));
drivers/net/ipa/gsi.c
772
gsi_evt_ring_doorbell(gsi, evt_ring_id, ring->index);
drivers/net/ipa/gsi.c
829
struct gsi *gsi = channel->gsi;
drivers/net/ipa/gsi.c
835
reg = gsi_reg(gsi, CH_C_CNTXT_0);
drivers/net/ipa/gsi.c
838
val = ch_c_cntxt_0_type_encode(gsi->version, reg, GSI_CHANNEL_TYPE_GPI);
drivers/net/ipa/gsi.c
841
if (gsi->version < IPA_VERSION_5_0)
drivers/net/ipa/gsi.c
844
iowrite32(val, gsi->virt + reg_n_offset(reg, channel_id));
drivers/net/ipa/gsi.c
846
reg = gsi_reg(gsi, CH_C_CNTXT_1);
drivers/net/ipa/gsi.c
848
if (gsi->version >= IPA_VERSION_5_0)
drivers/net/ipa/gsi.c
850
iowrite32(val, gsi->virt + reg_n_offset(reg, channel_id));
drivers/net/ipa/gsi.c
856
reg = gsi_reg(gsi, CH_C_CNTXT_2);
drivers/net/ipa/gsi.c
858
iowrite32(val, gsi->virt + reg_n_offset(reg, channel_id));
drivers/net/ipa/gsi.c
860
reg = gsi_reg(gsi, CH_C_CNTXT_3);
drivers/net/ipa/gsi.c
862
iowrite32(val, gsi->virt + reg_n_offset(reg, channel_id));
drivers/net/ipa/gsi.c
864
reg = gsi_reg(gsi, CH_C_QOS);
drivers/net/ipa/gsi.c
874
if (gsi->version < IPA_VERSION_4_0 && doorbell)
drivers/net/ipa/gsi.c
880
if (gsi->version >= IPA_VERSION_4_0 && !channel->command) {
drivers/net/ipa/gsi.c
882
if (gsi->version < IPA_VERSION_4_5)
drivers/net/ipa/gsi.c
888
if (gsi->version >= IPA_VERSION_4_9)
drivers/net/ipa/gsi.c
891
iowrite32(val, gsi->virt + reg_n_offset(reg, channel_id));
drivers/net/ipa/gsi.c
899
reg = gsi_reg(gsi, CH_C_SCRATCH_0);
drivers/net/ipa/gsi.c
901
iowrite32(val, gsi->virt + reg_n_offset(reg, channel_id));
drivers/net/ipa/gsi.c
903
reg = gsi_reg(gsi, CH_C_SCRATCH_1);
drivers/net/ipa/gsi.c
905
iowrite32(val, gsi->virt + reg_n_offset(reg, channel_id));
drivers/net/ipa/gsi.c
907
reg = gsi_reg(gsi, CH_C_SCRATCH_2);
drivers/net/ipa/gsi.c
909
iowrite32(val, gsi->virt + reg_n_offset(reg, channel_id));
drivers/net/ipa/gsi.c
915
reg = gsi_reg(gsi, CH_C_SCRATCH_3);
drivers/net/ipa/gsi.c
917
val = ioread32(gsi->virt + offset);
drivers/net/ipa/gsi.c
919
iowrite32(val, gsi->virt + offset);
drivers/net/ipa/gsi.c
926
struct gsi *gsi = channel->gsi;
drivers/net/ipa/gsi.c
930
if (resume && gsi->version < IPA_VERSION_4_0)
drivers/net/ipa/gsi.c
933
mutex_lock(&gsi->mutex);
drivers/net/ipa/gsi.c
937
mutex_unlock(&gsi->mutex);
drivers/net/ipa/gsi.c
943
int gsi_channel_start(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.c
945
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi.c
950
gsi_irq_ieob_enable_one(gsi, channel->evt_ring_id);
drivers/net/ipa/gsi.c
954
gsi_irq_ieob_disable_one(gsi, channel->evt_ring_id);
drivers/net/ipa/gsi.c
978
struct gsi *gsi = channel->gsi;
drivers/net/ipa/gsi.c
985
if (suspend && gsi->version < IPA_VERSION_4_0)
drivers/net/ipa/gsi.c
988
mutex_lock(&gsi->mutex);
drivers/net/ipa/gsi.c
992
mutex_unlock(&gsi->mutex);
drivers/net/ipa/gsi.c
998
int gsi_channel_stop(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi.h
100
struct gsi *gsi;
drivers/net/ipa/gsi.h
166
int gsi_setup(struct gsi *gsi);
drivers/net/ipa/gsi.h
172
void gsi_teardown(struct gsi *gsi);
drivers/net/ipa/gsi.h
181
u32 gsi_channel_tre_max(struct gsi *gsi, u32 channel_id);
drivers/net/ipa/gsi.h
190
int gsi_channel_start(struct gsi *gsi, u32 channel_id);
drivers/net/ipa/gsi.h
199
int gsi_channel_stop(struct gsi *gsi, u32 channel_id);
drivers/net/ipa/gsi.h
207
void gsi_modem_channel_flow_control(struct gsi *gsi, u32 channel_id,
drivers/net/ipa/gsi.h
222
void gsi_channel_reset(struct gsi *gsi, u32 channel_id, bool doorbell);
drivers/net/ipa/gsi.h
228
void gsi_suspend(struct gsi *gsi);
drivers/net/ipa/gsi.h
234
void gsi_resume(struct gsi *gsi);
drivers/net/ipa/gsi.h
243
int gsi_channel_suspend(struct gsi *gsi, u32 channel_id);
drivers/net/ipa/gsi.h
252
int gsi_channel_resume(struct gsi *gsi, u32 channel_id);
drivers/net/ipa/gsi.h
26
struct gsi;
drivers/net/ipa/gsi.h
267
int gsi_init(struct gsi *gsi, struct platform_device *pdev,
drivers/net/ipa/gsi.h
275
void gsi_exit(struct gsi *gsi);
drivers/net/ipa/gsi_private.h
13
struct gsi;
drivers/net/ipa/gsi_private.h
81
int gsi_channel_trans_init(struct gsi *gsi, u32 channel_id);
drivers/net/ipa/gsi_reg.c
123
int gsi_reg_init(struct gsi *gsi, struct platform_device *pdev)
drivers/net/ipa/gsi_reg.c
13
static bool gsi_reg_id_valid(struct gsi *gsi, enum gsi_reg_id reg_id)
drivers/net/ipa/gsi_reg.c
142
gsi->regs = gsi_regs(gsi);
drivers/net/ipa/gsi_reg.c
143
if (!gsi->regs) {
drivers/net/ipa/gsi_reg.c
144
dev_err(dev, "unsupported IPA version %u (?)\n", gsi->version);
drivers/net/ipa/gsi_reg.c
148
gsi->virt = ioremap(res->start, size);
drivers/net/ipa/gsi_reg.c
149
if (!gsi->virt) {
drivers/net/ipa/gsi_reg.c
158
void gsi_reg_exit(struct gsi *gsi)
drivers/net/ipa/gsi_reg.c
160
iounmap(gsi->virt);
drivers/net/ipa/gsi_reg.c
161
gsi->virt = NULL;
drivers/net/ipa/gsi_reg.c
162
gsi->regs = NULL;
drivers/net/ipa/gsi_reg.c
18
return gsi->version >= IPA_VERSION_3_5;
drivers/net/ipa/gsi_reg.c
21
return gsi->version >= IPA_VERSION_3_5_1;
drivers/net/ipa/gsi_reg.c
24
return gsi->version >= IPA_VERSION_5_0;
drivers/net/ipa/gsi_reg.c
82
const struct reg *gsi_reg(struct gsi *gsi, enum gsi_reg_id reg_id)
drivers/net/ipa/gsi_reg.c
84
if (WARN(!gsi_reg_id_valid(gsi, reg_id), "invalid reg %u\n", reg_id))
drivers/net/ipa/gsi_reg.c
87
return reg(gsi->regs, reg_id);
drivers/net/ipa/gsi_reg.c
90
static const struct regs *gsi_regs(struct gsi *gsi)
drivers/net/ipa/gsi_reg.c
92
switch (gsi->version) {
drivers/net/ipa/gsi_reg.h
15
struct gsi;
drivers/net/ipa/gsi_reg.h
365
const struct reg *gsi_reg(struct gsi *gsi, enum gsi_reg_id reg_id);
drivers/net/ipa/gsi_reg.h
375
int gsi_reg_init(struct gsi *gsi, struct platform_device *pdev);
drivers/net/ipa/gsi_reg.h
381
void gsi_reg_exit(struct gsi *gsi);
drivers/net/ipa/gsi_trans.c
221
struct gsi_channel *channel = &trans->gsi->channel[trans->channel_id];
drivers/net/ipa/gsi_trans.c
256
struct gsi_channel *channel = &trans->gsi->channel[trans->channel_id];
drivers/net/ipa/gsi_trans.c
266
struct gsi_channel *channel = &trans->gsi->channel[trans->channel_id];
drivers/net/ipa/gsi_trans.c
279
struct gsi_channel *channel = &trans->gsi->channel[trans->channel_id];
drivers/net/ipa/gsi_trans.c
293
struct gsi_channel *channel = &trans->gsi->channel[trans->channel_id];
drivers/net/ipa/gsi_trans.c
324
bool gsi_channel_trans_idle(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi_trans.c
326
u32 tre_max = gsi_channel_tre_max(gsi, channel_id);
drivers/net/ipa/gsi_trans.c
329
trans_info = &gsi->channel[channel_id].trans_info;
drivers/net/ipa/gsi_trans.c
335
struct gsi_trans *gsi_channel_trans_alloc(struct gsi *gsi, u32 channel_id,
drivers/net/ipa/gsi_trans.c
339
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi_trans.c
358
trans->gsi = gsi;
drivers/net/ipa/gsi_trans.c
387
trans_info = &trans->gsi->channel[trans->channel_id].trans_info;
drivers/net/ipa/gsi_trans.c
450
ret = dma_map_sg(trans->gsi->dev, sg, 1, trans->direction);
drivers/net/ipa/gsi_trans.c
477
ret = dma_map_sg(trans->gsi->dev, sg, used_count, trans->direction);
drivers/net/ipa/gsi_trans.c
547
struct gsi_channel *channel = &trans->gsi->channel[trans->channel_id];
drivers/net/ipa/gsi_trans.c
633
dma_unmap_sg(trans->gsi->dev, trans->sgl, trans->used_count,
drivers/net/ipa/gsi_trans.c
671
int gsi_trans_read_byte(struct gsi *gsi, u32 channel_id, dma_addr_t addr)
drivers/net/ipa/gsi_trans.c
673
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi_trans.c
696
void gsi_trans_read_byte_done(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi_trans.c
698
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi_trans.c
704
int gsi_channel_trans_init(struct gsi *gsi, u32 channel_id)
drivers/net/ipa/gsi_trans.c
706
struct gsi_channel *channel = &gsi->channel[channel_id];
drivers/net/ipa/gsi_trans.c
722
tre_max = gsi_channel_tre_max(channel->gsi, channel_id);
drivers/net/ipa/gsi_trans.c
774
dev_err(gsi->dev, "error %d initializing channel %u transactions\n",
drivers/net/ipa/gsi_trans.h
142
bool gsi_channel_trans_idle(struct gsi *gsi, u32 channel_id);
drivers/net/ipa/gsi_trans.h
154
struct gsi_trans *gsi_channel_trans_alloc(struct gsi *gsi, u32 channel_id,
drivers/net/ipa/gsi_trans.h
21
struct gsi;
drivers/net/ipa/gsi_trans.h
217
int gsi_trans_read_byte(struct gsi *gsi, u32 channel_id, dma_addr_t addr);
drivers/net/ipa/gsi_trans.h
227
void gsi_trans_read_byte_done(struct gsi *gsi, u32 channel_id);
drivers/net/ipa/gsi_trans.h
51
struct gsi *gsi;
drivers/net/ipa/ipa.h
74
struct gsi gsi;
drivers/net/ipa/ipa_cmd.c
329
struct device *dev = channel->gsi->dev;
drivers/net/ipa/ipa_cmd.c
343
struct device *dev = channel->gsi->dev;
drivers/net/ipa/ipa_cmd.c
355
trans_info = &ipa->gsi.channel[endpoint->channel_id].trans_info;
drivers/net/ipa/ipa_cmd.c
366
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_cmd.c
404
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_cmd.c
433
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_cmd.c
490
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_cmd.c
515
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_cmd.c
555
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_cmd.c
573
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_cmd.c
588
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_cmd.c
632
return gsi_channel_trans_alloc(&ipa->gsi, endpoint->channel_id,
drivers/net/ipa/ipa_endpoint.c
1375
if (gsi_channel_trans_idle(&endpoint->ipa->gsi, endpoint->channel_id))
drivers/net/ipa/ipa_endpoint.c
1385
if (gsi_channel_trans_idle(&endpoint->ipa->gsi, endpoint->channel_id))
drivers/net/ipa/ipa_endpoint.c
1674
struct gsi *gsi = &ipa->gsi;
drivers/net/ipa/ipa_endpoint.c
1700
gsi_channel_reset(gsi, endpoint->channel_id, false);
drivers/net/ipa/ipa_endpoint.c
1706
ret = gsi_channel_start(gsi, endpoint->channel_id);
drivers/net/ipa/ipa_endpoint.c
1710
ret = gsi_trans_read_byte(gsi, endpoint->channel_id, addr);
drivers/net/ipa/ipa_endpoint.c
1727
gsi_trans_read_byte_done(gsi, endpoint->channel_id);
drivers/net/ipa/ipa_endpoint.c
1729
ret = gsi_channel_stop(gsi, endpoint->channel_id);
drivers/net/ipa/ipa_endpoint.c
1738
gsi_channel_reset(gsi, endpoint->channel_id, true);
drivers/net/ipa/ipa_endpoint.c
1745
(void)gsi_channel_stop(gsi, endpoint->channel_id);
drivers/net/ipa/ipa_endpoint.c
1772
gsi_channel_reset(&ipa->gsi, channel_id, true);
drivers/net/ipa/ipa_endpoint.c
1818
struct gsi *gsi = &ipa->gsi;
drivers/net/ipa/ipa_endpoint.c
1821
ret = gsi_channel_start(gsi, endpoint->channel_id);
drivers/net/ipa/ipa_endpoint.c
1844
struct gsi *gsi = &ipa->gsi;
drivers/net/ipa/ipa_endpoint.c
1858
ret = gsi_channel_stop(gsi, endpoint->channel_id);
drivers/net/ipa/ipa_endpoint.c
1867
struct gsi *gsi = &endpoint->ipa->gsi;
drivers/net/ipa/ipa_endpoint.c
1878
ret = gsi_channel_suspend(gsi, endpoint->channel_id);
drivers/net/ipa/ipa_endpoint.c
1887
struct gsi *gsi = &endpoint->ipa->gsi;
drivers/net/ipa/ipa_endpoint.c
1896
ret = gsi_channel_resume(gsi, endpoint->channel_id);
drivers/net/ipa/ipa_endpoint.c
1930
struct gsi *gsi = &endpoint->ipa->gsi;
drivers/net/ipa/ipa_endpoint.c
1937
endpoint->skb_frag_max = gsi->channel[channel_id].trans_tre_max - 1;
drivers/net/ipa/ipa_endpoint.c
436
struct gsi *gsi = &endpoint->ipa->gsi;
drivers/net/ipa/ipa_endpoint.c
442
return gsi_channel_trans_alloc(gsi, channel_id, tre_count, direction);
drivers/net/ipa/ipa_endpoint.c
593
gsi_modem_channel_flow_control(&ipa->gsi,
drivers/net/ipa/ipa_gsi.c
18
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_gsi.c
25
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_gsi.c
30
void ipa_gsi_channel_tx_queued(struct gsi *gsi, u32 channel_id, u32 count,
drivers/net/ipa/ipa_gsi.c
33
struct ipa *ipa = container_of(gsi, struct ipa, gsi);
drivers/net/ipa/ipa_gsi.c
41
void ipa_gsi_channel_tx_completed(struct gsi *gsi, u32 channel_id, u32 count,
drivers/net/ipa/ipa_gsi.c
44
struct ipa *ipa = container_of(gsi, struct ipa, gsi);
drivers/net/ipa/ipa_gsi.h
11
struct gsi;
drivers/net/ipa/ipa_gsi.h
44
void ipa_gsi_channel_tx_queued(struct gsi *gsi, u32 channel_id, u32 count,
drivers/net/ipa/ipa_gsi.h
57
void ipa_gsi_channel_tx_completed(struct gsi *gsi, u32 channel_id, u32 count,
drivers/net/ipa/ipa_main.c
118
ret = gsi_setup(&ipa->gsi);
drivers/net/ipa/ipa_main.c
168
gsi_teardown(&ipa->gsi);
drivers/net/ipa/ipa_main.c
192
gsi_teardown(&ipa->gsi);
drivers/net/ipa/ipa_main.c
863
ret = gsi_init(&ipa->gsi, pdev, ipa->version, data->endpoint_count,
drivers/net/ipa/ipa_main.c
924
gsi_exit(&ipa->gsi);
drivers/net/ipa/ipa_main.c
990
gsi_exit(&ipa->gsi);
drivers/net/ipa/ipa_mem.c
50
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_power.c
131
gsi_suspend(&ipa->gsi);
drivers/net/ipa/ipa_power.c
150
gsi_resume(&ipa->gsi);
drivers/net/ipa/ipa_table.c
208
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/net/ipa/ipa_table.c
388
struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
drivers/perf/arm_pmu_acpi.c
102
if (!gsi) {
drivers/perf/arm_pmu_acpi.c
104
gsi = this_gsi;
drivers/perf/arm_pmu_acpi.c
105
} else if (hetid != this_hetid || gsi != this_gsi) {
drivers/perf/arm_pmu_acpi.c
114
irq = acpi_register_gsi(NULL, gsi, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_HIGH);
drivers/perf/arm_pmu_acpi.c
116
pr_warn("ACPI: %s Unable to register interrupt: %d\n", pdev->name, gsi);
drivers/perf/arm_pmu_acpi.c
123
acpi_unregister_gsi(gsi);
drivers/perf/arm_pmu_acpi.c
25
int gsi, trigger;
drivers/perf/arm_pmu_acpi.c
29
gsi = gicc->performance_interrupt;
drivers/perf/arm_pmu_acpi.c
38
if (!gsi)
drivers/perf/arm_pmu_acpi.c
57
return acpi_register_gsi(NULL, gsi, trigger, ACPI_ACTIVE_HIGH);
drivers/perf/arm_pmu_acpi.c
63
int gsi;
drivers/perf/arm_pmu_acpi.c
67
gsi = gicc->performance_interrupt;
drivers/perf/arm_pmu_acpi.c
68
if (gsi)
drivers/perf/arm_pmu_acpi.c
69
acpi_unregister_gsi(gsi);
drivers/perf/arm_pmu_acpi.c
77
u16 this_gsi = 0, gsi = 0;
drivers/perf/arm_pmu_acpi.c
98
return gsi ? -ENXIO : 0;
drivers/platform/x86/intel_scu_wdt.c
31
int gsi = TANGIER_EXT_TIMER0_MSI;
drivers/platform/x86/intel_scu_wdt.c
39
irq = mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC, &info);
drivers/platform/x86/intel_scu_wdt.c
41
dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n", gsi);
drivers/xen/acpi.c
113
NULL, &gsi);
drivers/xen/acpi.c
115
gsi = entry->index;
drivers/xen/acpi.c
122
*gsi_out = gsi;
drivers/xen/acpi.c
92
u32 gsi;
drivers/xen/events/events_base.c
1012
int xen_bind_pirq_gsi_to_irq(unsigned gsi,
drivers/xen/events/events_base.c
1021
ret = xen_irq_from_gsi(gsi);
drivers/xen/events/events_base.c
1024
__func__, ret, gsi);
drivers/xen/events/events_base.c
1028
info = xen_allocate_irq_gsi(gsi);
drivers/xen/events/events_base.c
1045
ret = xen_irq_info_pirq_setup(info, 0, pirq, gsi, DOMID_SELF,
drivers/xen/events/events_base.c
125
unsigned short gsi;
drivers/xen/events/events_base.c
1940
int pirq, rc, irq, gsi;
drivers/xen/events/events_base.c
1949
gsi = info->u.pirq.gsi;
drivers/xen/events/events_base.c
1954
if (!gsi)
drivers/xen/events/events_base.c
1959
map_irq.index = gsi;
drivers/xen/events/events_base.c
1965
gsi, irq, pirq, rc);
drivers/xen/events/events_base.c
389
unsigned int pirq, unsigned int gsi,
drivers/xen/events/events_base.c
393
info->u.pirq.gsi = gsi;
drivers/xen/events/events_base.c
747
static struct irq_info *xen_allocate_irq_gsi(unsigned int gsi)
drivers/xen/events/events_base.c
762
if (gsi < nr_legacy_irqs())
drivers/xen/events/events_base.c
763
irq = gsi;
drivers/xen/events/events_base.c
765
irq = irq_alloc_desc_at(gsi, -1);
drivers/xen/events/events_base.c
935
int xen_irq_from_gsi(unsigned gsi)
drivers/xen/events/events_base.c
943
if (info->u.pirq.gsi == gsi)
drivers/xen/privcmd.c
876
kdata.gsi = rc;
drivers/xen/xen-pciback/pci_stub.c
243
return psdev->gsi;
drivers/xen/xen-pciback/pci_stub.c
379
int gsi, trigger, polarity;
drivers/xen/xen-pciback/pci_stub.c
457
err = xen_acpi_get_gsi_info(dev, &gsi, &trigger, &polarity);
drivers/xen/xen-pciback/pci_stub.c
462
err = xen_pvh_setup_gsi(gsi, trigger, polarity);
drivers/xen/xen-pciback/pci_stub.c
465
psdev->gsi = gsi;
drivers/xen/xen-pciback/pci_stub.c
60
int gsi;
drivers/xen/xen-pciback/pci_stub.c
95
psdev->gsi = -1;
include/acpi/acpi_drivers.h
54
int *polarity, char **name, u32 *gsi);
include/linux/acpi.h
358
int acpi_register_gsi (struct device *dev, u32 gsi, int triggering, int polarity);
include/linux/acpi.h
359
int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
include/linux/acpi.h
360
int acpi_isa_irq_to_gsi (unsigned isa_irq, u32 *gsi);
include/linux/acpi.h
376
extern int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity);
include/linux/acpi.h
378
static inline int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity)
include/linux/acpi.h
388
void acpi_unregister_gsi (u32 gsi);
include/linux/kvm_host.h
1794
unsigned gsi;
include/linux/kvm_host.h
1799
struct kvm_kernel_irq_routing_entry *entries, int gsi);
include/linux/kvm_host.h
1810
void kvm_notify_acked_gsi(struct kvm *kvm, int gsi);
include/linux/kvm_host.h
668
u32 gsi;
include/linux/kvm_irqfd.h
47
int gsi;
include/trace/events/kvm.h
67
TP_PROTO(unsigned int gsi, int level, int irq_source_id),
include/trace/events/kvm.h
68
TP_ARGS(gsi, level, irq_source_id),
include/trace/events/kvm.h
71
__field( unsigned int, gsi )
include/trace/events/kvm.h
77
__entry->gsi = gsi;
include/trace/events/kvm.h
83
__entry->gsi, __entry->level, __entry->irq_source_id)
include/uapi/linux/kvm.h
1045
__u32 gsi;
include/uapi/linux/kvm.h
1077
__u32 gsi;
include/uapi/linux/mshv.h
150
__u32 gsi;
include/uapi/linux/mshv.h
173
__u32 gsi;
include/uapi/xen/privcmd.h
131
__u32 gsi;
include/xen/acpi.h
72
int xen_pvh_setup_gsi(int gsi, int trigger, int polarity);
include/xen/acpi.h
84
static inline int xen_pvh_setup_gsi(int gsi, int trigger, int polarity)
include/xen/events.h
110
int xen_bind_pirq_gsi_to_irq(unsigned gsi,
include/xen/events.h
128
int xen_irq_from_gsi(unsigned gsi);
include/xen/interface/physdev.h
194
int gsi;
scripts/gcc-plugins/latent_entropy_plugin.c
342
gimple_stmt_iterator gsi;
scripts/gcc-plugins/latent_entropy_plugin.c
349
gsi = gsi_after_labels(bb);
scripts/gcc-plugins/latent_entropy_plugin.c
350
gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
scripts/gcc-plugins/latent_entropy_plugin.c
354
static void __perturb_latent_entropy(gimple_stmt_iterator *gsi,
scripts/gcc-plugins/latent_entropy_plugin.c
368
gsi_insert_before(gsi, assign, GSI_NEW_STMT);
scripts/gcc-plugins/latent_entropy_plugin.c
374
gsi_insert_after(gsi, assign, GSI_NEW_STMT);
scripts/gcc-plugins/latent_entropy_plugin.c
379
gsi_insert_after(gsi, assign, GSI_NEW_STMT);
scripts/gcc-plugins/latent_entropy_plugin.c
385
gimple_stmt_iterator gsi;
scripts/gcc-plugins/latent_entropy_plugin.c
387
for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
scripts/gcc-plugins/latent_entropy_plugin.c
389
gimple stmt = gsi_stmt(gsi);
scripts/gcc-plugins/latent_entropy_plugin.c
398
__perturb_latent_entropy(&gsi, local_entropy);
scripts/gcc-plugins/latent_entropy_plugin.c
425
gimple_stmt_iterator gsi = gsi_last_bb(last_bb);
scripts/gcc-plugins/latent_entropy_plugin.c
427
__perturb_latent_entropy(&gsi, local_entropy);
scripts/gcc-plugins/latent_entropy_plugin.c
437
gimple_stmt_iterator gsi = gsi_after_labels(bb);
scripts/gcc-plugins/latent_entropy_plugin.c
446
gsi_insert_before(&gsi, call, GSI_NEW_STMT);
scripts/gcc-plugins/latent_entropy_plugin.c
451
gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
scripts/gcc-plugins/latent_entropy_plugin.c
461
gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
scripts/gcc-plugins/latent_entropy_plugin.c
466
gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
scripts/gcc-plugins/latent_entropy_plugin.c
473
gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
scripts/gcc-plugins/randomize_layout_plugin.c
714
gimple_stmt_iterator gsi;
scripts/gcc-plugins/randomize_layout_plugin.c
716
for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
scripts/gcc-plugins/randomize_layout_plugin.c
728
stmt = gsi_stmt(gsi);
scripts/gcc-plugins/stackleak_plugin.c
113
static void add_stack_tracking_gasm(gimple_stmt_iterator *gsi, bool after)
scripts/gcc-plugins/stackleak_plugin.c
134
add_stack_tracking_gcall(gsi, after);
scripts/gcc-plugins/stackleak_plugin.c
144
gsi_insert_after(gsi, asm_call, GSI_CONTINUE_LINKING);
scripts/gcc-plugins/stackleak_plugin.c
146
gsi_insert_before(gsi, asm_call, GSI_SAME_STMT);
scripts/gcc-plugins/stackleak_plugin.c
150
static void add_stack_tracking(gimple_stmt_iterator *gsi, bool after)
scripts/gcc-plugins/stackleak_plugin.c
161
add_stack_tracking_gasm(gsi, after);
scripts/gcc-plugins/stackleak_plugin.c
163
add_stack_tracking_gcall(gsi, after);
scripts/gcc-plugins/stackleak_plugin.c
175
gimple_stmt_iterator gsi = { 0 };
scripts/gcc-plugins/stackleak_plugin.c
191
for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
scripts/gcc-plugins/stackleak_plugin.c
194
stmt = gsi_stmt(gsi);
scripts/gcc-plugins/stackleak_plugin.c
209
add_stack_tracking(&gsi, true);
scripts/gcc-plugins/stackleak_plugin.c
253
gsi = gsi_after_labels(bb);
scripts/gcc-plugins/stackleak_plugin.c
254
add_stack_tracking(&gsi, false);
scripts/gcc-plugins/stackleak_plugin.c
54
static void add_stack_tracking_gcall(gimple_stmt_iterator *gsi, bool after)
scripts/gcc-plugins/stackleak_plugin.c
65
gsi_insert_after(gsi, gimple_call, GSI_CONTINUE_LINKING);
scripts/gcc-plugins/stackleak_plugin.c
67
gsi_insert_before(gsi, gimple_call, GSI_SAME_STMT);
tools/include/uapi/linux/kvm.h
1045
__u32 gsi;
tools/include/uapi/linux/kvm.h
1077
__u32 gsi;
tools/testing/selftests/kvm/include/kvm_util.h
539
static inline int __kvm_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd,
tools/testing/selftests/kvm/include/kvm_util.h
544
.gsi = gsi,
tools/testing/selftests/kvm/include/kvm_util.h
552
static inline void kvm_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd, u32 flags)
tools/testing/selftests/kvm/include/kvm_util.h
554
int ret = __kvm_irqfd(vm, gsi, eventfd, flags);
tools/testing/selftests/kvm/include/kvm_util.h
559
static inline void kvm_assign_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd)
tools/testing/selftests/kvm/include/kvm_util.h
561
kvm_irqfd(vm, gsi, eventfd, 0);
tools/testing/selftests/kvm/include/kvm_util.h
564
static inline void kvm_deassign_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd)
tools/testing/selftests/kvm/include/kvm_util.h
566
kvm_irqfd(vm, gsi, eventfd, KVM_IRQFD_FLAG_DEASSIGN);
tools/testing/selftests/kvm/include/kvm_util.h
987
u32 gsi, u32 pin);
tools/testing/selftests/kvm/lib/kvm_util.c
1838
u32 gsi, u32 pin)
tools/testing/selftests/kvm/lib/kvm_util.c
1846
routing->entries[i].gsi = gsi;
tools/testing/selftests/kvm/s390/irq_routing.c
35
.gsi = 1,
tools/testing/selftests/kvm/s390/ucontrol_test.c
784
.gsi = 1,
tools/testing/selftests/kvm/x86/xen_shinfo_test.c
555
irq_routes.entries[0].gsi = 32;
tools/testing/selftests/kvm/x86/xen_shinfo_test.c
561
irq_routes.entries[1].gsi = 33;
virt/kvm/eventfd.c
110
resampler->notifier.gsi, 0, false);
virt/kvm/eventfd.c
281
n_entries = kvm_irq_map_gsi(kvm, entries, irqfd->gsi);
virt/kvm/eventfd.c
391
irqfd->gsi = args->gsi;
virt/kvm/eventfd.c
427
if (resampler->notifier.gsi == irqfd->gsi) {
virt/kvm/eventfd.c
443
resampler->notifier.gsi = irqfd->gsi;
virt/kvm/eventfd.c
50
kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1,
virt/kvm/eventfd.c
52
kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0,
virt/kvm/eventfd.c
526
int gsi, idx;
virt/kvm/eventfd.c
529
gsi = kvm_irq_map_chip_pin(kvm, irqchip, pin);
virt/kvm/eventfd.c
530
if (gsi != -1)
virt/kvm/eventfd.c
533
if (kian->gsi == gsi) {
virt/kvm/eventfd.c
544
void kvm_notify_acked_gsi(struct kvm *kvm, int gsi)
virt/kvm/eventfd.c
550
if (kian->gsi == gsi)
virt/kvm/eventfd.c
556
int gsi, idx;
virt/kvm/eventfd.c
56
irqfd->gsi, 1, false);
virt/kvm/eventfd.c
561
gsi = kvm_irq_map_chip_pin(kvm, irqchip, pin);
virt/kvm/eventfd.c
562
if (gsi != -1)
virt/kvm/eventfd.c
563
kvm_notify_acked_gsi(kvm, gsi);
virt/kvm/eventfd.c
602
if (irqfd->eventfd == eventfd && irqfd->gsi == args->gsi)
virt/kvm/eventfd.c
687
int gsi, idx;
virt/kvm/eventfd.c
690
gsi = kvm_irq_map_chip_pin(kvm, irqchip, pin);
virt/kvm/eventfd.c
691
if (gsi != -1) {
virt/kvm/eventfd.c
695
if (resampler->notifier.gsi == gsi) {
virt/kvm/eventfd.c
85
resampler->notifier.gsi, 0, false);
virt/kvm/irqchip.c
134
u32 gsi = array_index_nospec(ue->gsi, KVM_MAX_IRQ_ROUTES);
virt/kvm/irqchip.c
140
hlist_for_each_entry(ei, &rt->map[gsi], link)
virt/kvm/irqchip.c
146
e->gsi = gsi;
virt/kvm/irqchip.c
152
rt->chip[e->irqchip.irqchip][e->irqchip.pin] = e->gsi;
virt/kvm/irqchip.c
154
hlist_add_head(&e->link, &rt->map[e->gsi]);
virt/kvm/irqchip.c
179
if (ue[i].gsi >= KVM_MAX_IRQ_ROUTES)
virt/kvm/irqchip.c
181
nr_rt_entries = max(nr_rt_entries, ue[i].gsi);
virt/kvm/irqchip.c
22
struct kvm_kernel_irq_routing_entry *entries, int gsi)
virt/kvm/irqchip.c
30
if (irq_rt && gsi < irq_rt->nr_rt_entries) {
virt/kvm/irqchip.c
31
hlist_for_each_entry(e, &irq_rt->map[gsi], link) {