Symbol: link
arch/arc/kernel/unwind.c
1095
unsigned long link;
arch/arc/kernel/unwind.c
1097
if (!__get_user(link, (unsigned long *)
arch/arc/kernel/unwind.c
1100
&& link > bottom && link < UNW_FP(frame)
arch/arc/kernel/unwind.c
1102
&& link > UNW_FP(frame) && link < bottom
arch/arc/kernel/unwind.c
1104
&& !(link & (sizeof(link) - 1))
arch/arc/kernel/unwind.c
1117
UNW_FP(frame) = link;
arch/arc/kernel/unwind.c
125
struct unwind_table *link;
arch/arc/kernel/unwind.c
160
for (table = &root_table; table; table = table->link)
arch/arc/kernel/unwind.c
213
table->link = NULL;
arch/arc/kernel/unwind.c
386
last_table->link = table;
arch/arc/kernel/unwind.c
388
root_table.link = table;
arch/arc/kernel/unwind.c
404
for (prev = &root_table; prev->link && prev->link != table;
arch/arc/kernel/unwind.c
405
prev = prev->link)
arch/arc/kernel/unwind.c
408
if (prev->link) {
arch/arc/kernel/unwind.c
414
prev->link = table->link;
arch/arc/kernel/unwind.c
415
if (!prev->link)
arch/arm/include/asm/insn.h
33
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link, bool warn);
arch/arm/kernel/insn.c
31
if (link)
arch/arm/kernel/insn.c
38
bool link, bool warn)
arch/arm/kernel/insn.c
43
if (link)
arch/arm/kernel/insn.c
58
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link, bool warn)
arch/arm/kernel/insn.c
61
return __arm_gen_branch_thumb2(pc, addr, link, warn);
arch/arm/kernel/insn.c
63
return __arm_gen_branch_arm(pc, addr, link, warn);
arch/arm/kernel/insn.c
7
unsigned long addr, bool link,
arch/arm/mach-omap2/omap_hwmod.c
202
struct list_head link;
arch/arm/mach-omap2/omap_hwmod.c
740
list_add(&provider->link, &clkctrl_providers);
arch/arm/mach-omap2/omap_hwmod.c
786
list_for_each_entry(provider, &clkctrl_providers, link) {
arch/arm/xen/p2m.c
35
struct rb_node **link = &phys_to_mach.rb_node;
arch/arm/xen/p2m.c
40
while (*link) {
arch/arm/xen/p2m.c
41
parent = *link;
arch/arm/xen/p2m.c
48
link = &(*link)->rb_left;
arch/arm/xen/p2m.c
50
link = &(*link)->rb_right;
arch/arm/xen/p2m.c
52
rb_link_node(&new->rbnode_phys, parent, link);
arch/arm64/net/bpf_jit_comp.c
2298
struct bpf_prog *p = l->link.prog;
arch/arm64/net/bpf_jit_comp.c
2503
fentry_links->links[0]->link.type == BPF_LINK_TYPE_STRUCT_OPS;
arch/loongarch/net/bpf_jit.c
1494
struct bpf_prog *p = l->link.prog;
arch/m68k/fpsp040/fpsp.h
18
| link a6,#-LOCAL_SIZE
arch/mips/boot/tools/relocs.c
26
struct section *link;
arch/mips/boot/tools/relocs.c
291
sec->link = &secs[sec->shdr.sh_link];
arch/mips/boot/tools/relocs.c
489
sec_symtab = sec->link;
arch/mips/boot/tools/relocs.c
495
sym_strtab = sec_symtab->link->strtab;
arch/mips/cavium-octeon/executive/cvmx-helper-sgmii.c
115
pcsx_sgmx_an_adv_reg.s.link = 1;
arch/mips/include/asm/mach-rc32434/dma.h
27
u32 link; /* Next descriptor in chain. */
arch/mips/include/asm/octeon/cvmx-pcsx-defs.h
747
uint64_t link:1;
arch/mips/include/asm/octeon/cvmx-pcsx-defs.h
761
uint64_t link:1;
arch/mips/include/asm/octeon/cvmx-pcsx-defs.h
772
uint64_t link:1;
arch/mips/include/asm/octeon/cvmx-pcsx-defs.h
784
uint64_t link:1;
arch/powerpc/include/asm/ftrace.h
78
return arch_ftrace_regs(fregs)->regs.link;
arch/powerpc/include/asm/kvm_book3s.h
451
vcpu->arch.regs.link = val;
arch/powerpc/include/asm/kvm_book3s.h
458
return vcpu->arch.regs.link;
arch/powerpc/include/asm/kvm_book3s_64.h
594
vcpu->arch.regs.link = vcpu->arch.lr_tm;
arch/powerpc/include/asm/kvm_book3s_64.h
611
vcpu->arch.lr_tm = vcpu->arch.regs.link;
arch/powerpc/include/asm/kvm_booke.h
74
vcpu->arch.regs.link = val;
arch/powerpc/include/asm/kvm_booke.h
79
return vcpu->arch.regs.link;
arch/powerpc/include/asm/pmac_pfunc.h
126
struct list_head link;
arch/powerpc/include/asm/pmac_pfunc.h
170
struct list_head link;
arch/powerpc/include/asm/pnv-pci.h
55
struct list_head link;
arch/powerpc/include/asm/ptrace.h
38
unsigned long link;
arch/powerpc/include/asm/smu.h
405
struct list_head link;
arch/powerpc/include/asm/smu.h
508
struct list_head link;
arch/powerpc/include/asm/syscalls_32.h
21
unsigned int link;
arch/powerpc/include/asm/xics.h
90
struct list_head link;
arch/powerpc/include/uapi/asm/ptrace.h
43
unsigned long link;
arch/powerpc/kernel/asm-offsets.c
286
STACK_PT_REGS_OFFSET(_LINK, link);
arch/powerpc/kernel/asm-offsets.c
366
OFFSET(VCPU_LR, kvm_vcpu, arch.regs.link);
arch/powerpc/kernel/asm-offsets.c
613
OFFSET(VCPU_LR, kvm_vcpu, arch.regs.link);
arch/powerpc/kernel/kgdb.c
226
PACK64(ptr, regs->link);
arch/powerpc/kernel/kgdb.c
314
{ "lr", GDB_SIZEOF_REG, offsetof(struct pt_regs, link) },
arch/powerpc/kernel/process.c
1537
regs->nip, regs->link, regs->ctr);
arch/powerpc/kernel/process.c
1575
printk("LR ["REG"] %pS\n", regs->link, (void *)regs->link);
arch/powerpc/kernel/process.c
1896
regs->link = 0;
arch/powerpc/kernel/process.c
2339
lr = regs->link;
arch/powerpc/kernel/ptrace/ptrace-view.c
58
REG_OFFSET_NAME(link),
arch/powerpc/kernel/ptrace/ptrace.c
354
BUILD_BUG_ON(offsetof(struct pt_regs, link) !=
arch/powerpc/kernel/ptrace/ptrace.c
355
offsetof(struct user_pt_regs, link));
arch/powerpc/kernel/ptrace/ptrace.c
423
CHECK_REG(PT_LNK, link);
arch/powerpc/kernel/rethook.c
33
rh->ret_addr = regs->link;
arch/powerpc/kernel/rethook.c
37
regs->link = (unsigned long)arch_rethook_trampoline;
arch/powerpc/kernel/rethook.c
60
regs->link = orig_ret_address;
arch/powerpc/kernel/signal.c
369
task_pid_nr(tsk), where, ptr, regs->nip, regs->link);
arch/powerpc/kernel/signal_32.c
800
regs->link = tramp;
arch/powerpc/kernel/signal_32.c
891
regs->link = tramp;
arch/powerpc/kernel/signal_64.c
365
unsafe_get_user(regs->link, &sc->gp_regs[PT_LNK], efault_out);
arch/powerpc/kernel/signal_64.c
483
err |= __get_user(regs->link, &tm_sc->gp_regs[PT_LNK]);
arch/powerpc/kernel/signal_64.c
488
err |= __get_user(tsk->thread.ckpt_regs.link,
arch/powerpc/kernel/time.c
414
return regs->link;
arch/powerpc/kernel/trace/ftrace.c
68
static ppc_inst_t ftrace_create_branch_inst(unsigned long ip, unsigned long addr, int link)
arch/powerpc/kernel/trace/ftrace.c
694
arch_ftrace_regs(fregs)->regs.link = parent_ip;
arch/powerpc/kernel/trace/ftrace.c
73
create_branch(&op, (u32 *)ip, addr, link ? BRANCH_SET_LINK : 0);
arch/powerpc/kernel/trace/ftrace_64_pg.c
46
ftrace_call_replace(unsigned long ip, unsigned long addr, int link)
arch/powerpc/kernel/trace/ftrace_64_pg.c
53
create_branch(&op, (u32 *)ip, addr, link ? BRANCH_SET_LINK : 0);
arch/powerpc/kernel/trace/ftrace_64_pg.c
812
arch_ftrace_regs(fregs)->regs.link = __prepare_ftrace_return(parent_ip, ip,
arch/powerpc/kernel/traps.c
326
addr, regs->nip, regs->link, code);
arch/powerpc/kernel/traps.c
858
udbg_printf(" LR=0x%016lx R1=0x%08lx\n", regs->link, regs->gpr[1]);
arch/powerpc/kernel/uprobes.c
202
orig_ret_vaddr = regs->link;
arch/powerpc/kernel/uprobes.c
205
regs->link = trampoline_vaddr;
arch/powerpc/kvm/book3s_emulate.c
116
vcpu->arch.regs.link = vcpu->arch.lr_tm;
arch/powerpc/kvm/book3s_emulate.c
97
vcpu->arch.lr_tm = vcpu->arch.regs.link;
arch/powerpc/kvm/book3s_hv.c
498
vcpu->arch.regs.ctr, vcpu->arch.regs.link);
arch/powerpc/kvm/book3s_hv_nestedv2.c
284
vcpu->arch.regs.link);
arch/powerpc/kvm/book3s_hv_nestedv2.c
541
vcpu->arch.regs.link = kvmppc_gse_get_u64(gse);
arch/powerpc/kvm/book3s_pr.c
213
svcpu->lr = vcpu->arch.regs.link;
arch/powerpc/kvm/book3s_pr.c
295
vcpu->arch.regs.link = svcpu->lr;
arch/powerpc/kvm/booke.c
1456
regs->lr = vcpu->arch.regs.link;
arch/powerpc/kvm/booke.c
1487
vcpu->arch.regs.link = regs->lr;
arch/powerpc/kvm/booke.c
928
regs->link = lr;
arch/powerpc/kvm/booke.c
96
printk("lr: %08lx ctr: %08lx\n", vcpu->arch.regs.link,
arch/powerpc/lib/error-inject.c
14
regs_set_return_ip(regs, regs->link);
arch/powerpc/lib/sstep.c
1419
imm = (word & 0x400)? regs->ctr: regs->link;
arch/powerpc/lib/sstep.c
3243
regs->link = next_pc;
arch/powerpc/lib/sstep.c
3278
regs->gpr[op->reg] = regs->link;
arch/powerpc/lib/sstep.c
3294
regs->link = op->val;
arch/powerpc/lib/test_emulate_step.c
1708
if (exp.link != got.link) {
arch/powerpc/lib/test_emulate_step.c
1710
reg_mismatch("LR", exp.link, got.link);
arch/powerpc/net/bpf_jit_comp.c
518
struct bpf_prog *p = l->link.prog;
arch/powerpc/perf/callchain.c
52
lr = regs->link;
arch/powerpc/perf/callchain.c
72
lr = regs->link;
arch/powerpc/perf/callchain_32.c
143
lr = regs->link;
arch/powerpc/perf/callchain_64.c
78
lr = regs->link;
arch/powerpc/perf/perf_regs.c
59
PT_REGS_OFFSET(PERF_REG_POWERPC_LINK, link),
arch/powerpc/platforms/44x/pci.c
1232
port->link = 0;
arch/powerpc/platforms/44x/pci.c
1247
port->link = 1;
arch/powerpc/platforms/44x/pci.c
1292
port->link = 1;
arch/powerpc/platforms/44x/pci.c
1417
if (port->link && ppc4xx_pciex_wait_on_sdr(port,
arch/powerpc/platforms/44x/pci.c
1422
port->link = 0;
arch/powerpc/platforms/44x/pci.c
1424
} else if (port->link &&
arch/powerpc/platforms/44x/pci.c
1429
port->link = 0;
arch/powerpc/platforms/44x/pci.c
1470
if ((bus->number != port->hose->first_busno) && !port->link)
arch/powerpc/platforms/44x/pci.c
634
int link;
arch/powerpc/platforms/44x/pci.c
713
port->link = 1;
arch/powerpc/platforms/pasemi/idle.c
40
regs_set_return_ip(regs, regs->link);
arch/powerpc/platforms/powermac/low_i2c.c
1044
list_for_each_entry(bus, &pmac_i2c_busses, link)
arch/powerpc/platforms/powermac/low_i2c.c
1065
list_for_each_entry(bus, &pmac_i2c_busses, link) {
arch/powerpc/platforms/powermac/low_i2c.c
1081
list_for_each_entry(bus, &pmac_i2c_busses, link) {
arch/powerpc/platforms/powermac/low_i2c.c
1201
list_for_each_entry(bus, &pmac_i2c_busses, link) {
arch/powerpc/platforms/powermac/low_i2c.c
1502
list_for_each_entry(bus, &pmac_i2c_busses, link) {
arch/powerpc/platforms/powermac/low_i2c.c
590
list_add(&bus->link, &pmac_i2c_busses);
arch/powerpc/platforms/powermac/low_i2c.c
76
struct list_head link;
arch/powerpc/platforms/powermac/low_i2c.c
819
list_add(&bus->link, &pmac_i2c_busses);
arch/powerpc/platforms/powermac/low_i2c.c
945
list_add(&bus->link, &pmac_i2c_busses);
arch/powerpc/platforms/powermac/low_i2c.c
968
list_for_each_entry(bus, &pmac_i2c_busses, link) {
arch/powerpc/platforms/powermac/pfunc_core.c
540
struct list_head link;
arch/powerpc/platforms/powermac/pfunc_core.c
572
list_for_each_entry(dev, &pmf_devices, link) {
arch/powerpc/platforms/powermac/pfunc_core.c
671
list_add(&func->link, &dev->functions);
arch/powerpc/platforms/powermac/pfunc_core.c
742
list_add(&dev->link, &pmf_devices);
arch/powerpc/platforms/powermac/pfunc_core.c
794
list_del(&dev->link);
arch/powerpc/platforms/powermac/pfunc_core.c
798
list_entry(dev->functions.next, typeof(*func), link);
arch/powerpc/platforms/powermac/pfunc_core.c
799
list_del(&func->link);
arch/powerpc/platforms/powermac/pfunc_core.c
845
list_for_each_entry(func, &dev->functions, link) {
arch/powerpc/platforms/powermac/pfunc_core.c
884
list_add(&client->link, &func->irq_clients);
arch/powerpc/platforms/powermac/pfunc_core.c
907
list_del(&client->link);
arch/powerpc/platforms/powermac/pfunc_core.c
927
list_for_each_entry(client, &func->irq_clients, link) {
arch/powerpc/platforms/powermac/pfunc_core.c
971
list_for_each_entry_safe(func, tmp, &dev->functions, link) {
arch/powerpc/platforms/powernv/ocxl.c
140
struct npu_link *link;
arch/powerpc/platforms/powernv/ocxl.c
142
list_for_each_entry(link, &links_list, list) {
arch/powerpc/platforms/powernv/ocxl.c
144
if (link->domain == pci_domain_nr(dev->bus) &&
arch/powerpc/platforms/powernv/ocxl.c
145
link->bus == dev->bus->number &&
arch/powerpc/platforms/powernv/ocxl.c
146
link->dev == PCI_SLOT(dev->devfn)) {
arch/powerpc/platforms/powernv/ocxl.c
147
return link;
arch/powerpc/platforms/powernv/ocxl.c
152
link = kzalloc_obj(struct npu_link);
arch/powerpc/platforms/powernv/ocxl.c
153
if (!link)
arch/powerpc/platforms/powernv/ocxl.c
155
link->domain = pci_domain_nr(dev->bus);
arch/powerpc/platforms/powernv/ocxl.c
156
link->bus = dev->bus->number;
arch/powerpc/platforms/powernv/ocxl.c
157
link->dev = PCI_SLOT(dev->devfn);
arch/powerpc/platforms/powernv/ocxl.c
158
list_add(&link->list, &links_list);
arch/powerpc/platforms/powernv/ocxl.c
159
return link;
arch/powerpc/platforms/powernv/ocxl.c
166
struct npu_link *link;
arch/powerpc/platforms/powernv/ocxl.c
177
link = find_link(dev);
arch/powerpc/platforms/powernv/ocxl.c
178
if (!link) {
arch/powerpc/platforms/powernv/ocxl.c
194
link->fn_desired_actags[PCI_FUNC(dev->devfn)] = 0;
arch/powerpc/platforms/powernv/ocxl.c
203
link->fn_desired_actags[PCI_FUNC(dev->devfn)] += actag;
arch/powerpc/platforms/powernv/ocxl.c
206
link->fn_desired_actags[PCI_FUNC(dev->devfn)]);
arch/powerpc/platforms/powernv/ocxl.c
223
static void assign_actags(struct npu_link *link)
arch/powerpc/platforms/powernv/ocxl.c
229
total_desired += link->fn_desired_actags[i];
arch/powerpc/platforms/powernv/ocxl.c
232
if (link->fn_desired_actags[i]) {
arch/powerpc/platforms/powernv/ocxl.c
234
link->fn_desired_actags[i],
arch/powerpc/platforms/powernv/ocxl.c
236
link->fn_actags[i].start = range_start;
arch/powerpc/platforms/powernv/ocxl.c
237
link->fn_actags[i].count = actag_count;
arch/powerpc/platforms/powernv/ocxl.c
242
link->domain, link->bus, link->dev, i,
arch/powerpc/platforms/powernv/ocxl.c
243
link->fn_actags[i].start, link->fn_actags[i].count,
arch/powerpc/platforms/powernv/ocxl.c
244
link->fn_desired_actags[i]);
arch/powerpc/platforms/powernv/ocxl.c
246
link->assignment_done = true;
arch/powerpc/platforms/powernv/ocxl.c
252
struct npu_link *link;
arch/powerpc/platforms/powernv/ocxl.c
256
link = find_link(dev);
arch/powerpc/platforms/powernv/ocxl.c
257
if (!link) {
arch/powerpc/platforms/powernv/ocxl.c
267
if (!link->assignment_done)
arch/powerpc/platforms/powernv/ocxl.c
268
assign_actags(link);
arch/powerpc/platforms/powernv/ocxl.c
270
*base = link->fn_actags[PCI_FUNC(dev->devfn)].start;
arch/powerpc/platforms/powernv/ocxl.c
271
*enabled = link->fn_actags[PCI_FUNC(dev->devfn)].count;
arch/powerpc/platforms/powernv/ocxl.c
272
*supported = link->fn_desired_actags[PCI_FUNC(dev->devfn)];
arch/powerpc/platforms/powernv/ocxl.c
280
struct npu_link *link;
arch/powerpc/platforms/powernv/ocxl.c
294
link = find_link(dev);
arch/powerpc/platforms/powernv/ocxl.c
295
if (!link) {
arch/powerpc/platforms/powernv/ocxl.c
301
if (link->fn_desired_actags[i] && (i == PCI_FUNC(dev->devfn))) {
arch/powerpc/platforms/powernv/opal-fadump.h
101
regs->link = reg_val;
arch/powerpc/platforms/ps3/mm.c
378
struct list_head link;
arch/powerpc/platforms/ps3/mm.c
405
list_for_each_entry(c, &r->chunk_list.head, link) {
arch/powerpc/platforms/ps3/mm.c
434
list_for_each_entry(c, &r->chunk_list.head, link) {
arch/powerpc/platforms/ps3/mm.c
540
list_add(&c->link, &r->chunk_list.head);
arch/powerpc/platforms/ps3/mm.c
580
struct dma_chunk, link);
arch/powerpc/platforms/ps3/mm.c
610
list_add(&c->link, &r->chunk_list.head);
arch/powerpc/platforms/ps3/mm.c
722
list_for_each_entry_safe(c, tmp, &r->chunk_list.head, link) {
arch/powerpc/platforms/ps3/mm.c
723
list_del(&c->link);
arch/powerpc/platforms/ps3/mm.c
745
list_for_each_entry_safe(c, n, &r->chunk_list.head, link) {
arch/powerpc/platforms/ps3/mm.c
746
list_del(&c->link);
arch/powerpc/platforms/ps3/mm.c
914
list_del(&c->link);
arch/powerpc/platforms/ps3/mm.c
952
list_del(&c->link);
arch/powerpc/platforms/pseries/rtas-fadump.c
321
regs->link = (unsigned long)reg_val;
arch/powerpc/xmon/xmon.c
1038
xmon_show_stack(excp->gpr[1], excp->link, excp->nip);
arch/powerpc/xmon/xmon.c
1776
lr = regs.link;
arch/powerpc/xmon/xmon.c
1794
xmon_show_stack(excp->gpr[1], excp->link, excp->nip);
arch/powerpc/xmon/xmon.c
1838
xmon_print_symbol(fp->link, ": ", "\n");
arch/powerpc/xmon/xmon.c
1909
xmon_print_symbol(fp->link, " ", "\n");
arch/riscv/net/bpf_jit_comp64.c
941
struct bpf_prog *p = l->link.prog;
arch/s390/net/bpf_jit_comp.c
2516
struct bpf_prog *p = tlink->link.prog;
arch/s390/tools/relocs.c
214
sec->link = &secs[sec->shdr.sh_link];
arch/s390/tools/relocs.c
56
struct section *link;
arch/sh/drivers/pci/pcie-sh7786.c
29
int link;
arch/sh/include/asm/dwarf.h
246
struct list_head link;
arch/sh/include/asm/dwarf.h
264
struct list_head link;
arch/sh/include/asm/dwarf.h
301
struct list_head link;
arch/sh/kernel/dwarf.c
109
list_for_each_entry(reg, &frame->reg_list, link) {
arch/sh/kernel/dwarf.c
1138
list_for_each_entry_safe(cie, ctmp, &mod->arch.cie_list, link) {
arch/sh/kernel/dwarf.c
1139
list_del(&cie->link);
arch/sh/kernel/dwarf.c
1148
list_for_each_entry_safe(fde, ftmp, &mod->arch.fde_list, link) {
arch/sh/kernel/dwarf.c
1149
list_del(&fde->link);
arch/sh/kernel/dwarf.c
81
list_add(&reg->link, &frame->reg_list);
arch/sh/kernel/dwarf.c
857
list_add_tail(&cie->link, &mod->arch.cie_list);
arch/sh/kernel/dwarf.c
90
list_for_each_entry_safe(reg, n, &frame->reg_list, link) {
arch/sh/kernel/dwarf.c
91
list_del(&reg->link);
arch/sh/kernel/dwarf.c
949
list_add_tail(&fde->link, &mod->arch.fde_list);
arch/sh/mm/pmb.c
175
for (iter = pmbe->link; iter; iter = iter->link)
arch/sh/mm/pmb.c
286
pmbe->link = NULL;
arch/sh/mm/pmb.c
387
pmbp->link = pmbe;
arch/sh/mm/pmb.c
508
pmbe = pmblink->link;
arch/sh/mm/pmb.c
51
struct pmb_entry *link;
arch/sh/mm/pmb.c
645
pmbp->link = pmbe;
arch/sh/mm/pmb.c
663
tail = head->link;
arch/sh/mm/pmb.c
673
if (!tail->link)
arch/sh/mm/pmb.c
676
tail = tail->link;
arch/sh/mm/pmb.c
691
__pmb_unmap_entry(head->link, depth);
arch/sh/mm/pmb.c
713
if (!pmbe->link)
arch/x86/include/asm/amd/nb.h
31
struct pci_dev *link;
arch/x86/include/asm/pci_x86.h
77
u8 link; /* IRQ line ID, chipset dependent,
arch/x86/kernel/amd_nb.c
173
struct pci_dev *link = node_to_amd_nb(topology_amd_node_id(cpu))->link;
arch/x86/kernel/amd_nb.c
179
pci_read_config_dword(link, 0x1d4, &mask);
arch/x86/kernel/amd_nb.c
196
pci_read_config_dword(nb->link, 0x1d4, &reset);
arch/x86/kernel/amd_nb.c
211
pci_write_config_dword(nb->link, 0x1d4, mask);
arch/x86/kernel/amd_nb.c
214
pci_read_config_dword(nb->link, 0x1d4, &reg);
arch/x86/kernel/amd_nb.c
301
F4 = node_to_amd_nb(0)->link;
arch/x86/kernel/amd_nb.c
90
node_to_amd_nb(i)->link = amd_node_get_func(i, 4);
arch/x86/kernel/kvm.c
108
hlist_entry(p, typeof(*n), link);
arch/x86/kernel/kvm.c
133
hlist_del(&e->link);
arch/x86/kernel/kvm.c
146
hlist_add_head(&n->link, &b->list);
arch/x86/kernel/kvm.c
170
if (hlist_unhashed(&n.link))
arch/x86/kernel/kvm.c
183
hlist_del_init(&n->link);
arch/x86/kernel/kvm.c
199
n = hlist_entry(p, typeof(*n), link);
arch/x86/kernel/kvm.c
249
hlist_add_head(&dummy->link, &b->list);
arch/x86/kernel/kvm.c
89
struct hlist_node link;
arch/x86/kvm/hyperv.c
552
hlist_for_each_entry(e, &irq_rt->map[gsi], link) {
arch/x86/kvm/ioapic.c
301
hlist_add_head_rcu(&kimn->link, &ioapic->mask_notifier_list);
arch/x86/kvm/ioapic.c
309
hlist_del_rcu(&kimn->link);
arch/x86/kvm/ioapic.c
324
hlist_for_each_entry_srcu(kimn, &ioapic->mask_notifier_list, link,
arch/x86/kvm/ioapic.h
94
struct hlist_node link;
arch/x86/kvm/irq.c
398
hlist_for_each_entry(entry, &table->map[i], link) {
arch/x86/kvm/mmu/mmu.c
1824
list_del(&sp->link);
arch/x86/kvm/mmu/mmu.c
2363
list_add(&sp->link, &kvm->arch.active_mmu_pages);
arch/x86/kvm/mmu/mmu.c
2712
list_add(&sp->link, invalid_list);
arch/x86/kvm/mmu/mmu.c
2714
list_move(&sp->link, invalid_list);
arch/x86/kvm/mmu/mmu.c
2721
list_del(&sp->link);
arch/x86/kvm/mmu/mmu.c
2773
list_for_each_entry_safe(sp, nsp, invalid_list, link) {
arch/x86/kvm/mmu/mmu.c
2792
list_for_each_entry_safe_reverse(sp, tmp, &kvm->arch.active_mmu_pages, link) {
arch/x86/kvm/mmu/mmu.c
6730
&kvm->arch.active_mmu_pages, link) {
arch/x86/kvm/mmu/mmu.c
7355
list_for_each_entry_safe(sp, node, &kvm->arch.active_mmu_pages, link) {
arch/x86/kvm/mmu/mmu_internal.h
49
struct list_head link;
arch/x86/kvm/mmu/tdp_mmu.c
1147
list_for_each_entry(root, &kvm->arch.tdp_mmu_roots, link) {
arch/x86/kvm/mmu/tdp_mmu.c
137
&prev_root->link,
arch/x86/kvm/mmu/tdp_mmu.c
138
typeof(*prev_root), link);
arch/x86/kvm/mmu/tdp_mmu.c
141
typeof(*next_root), link);
arch/x86/kvm/mmu/tdp_mmu.c
149
&next_root->link, typeof(*next_root), link);
arch/x86/kvm/mmu/tdp_mmu.c
192
list_for_each_entry(_root, &_kvm->arch.tdp_mmu_roots, link) \
arch/x86/kvm/mmu/tdp_mmu.c
206
list_for_each_entry_rcu(_root, &_kvm->arch.tdp_mmu_roots, link) \
arch/x86/kvm/mmu/tdp_mmu.c
287
list_for_each_entry(root, &kvm->arch.tdp_mmu_roots, link) {
arch/x86/kvm/mmu/tdp_mmu.c
304
list_add_rcu(&root->link, &kvm->arch.tdp_mmu_roots);
arch/x86/kvm/mmu/tdp_mmu.c
92
list_del_rcu(&root->link);
arch/x86/net/bpf_jit_comp.c
2979
struct bpf_prog *p = l->link.prog;
arch/x86/net/bpf_jit_comp.c
3096
if (tl->links[i]->link.prog->call_session_cookie) {
arch/x86/pci/amd_bus.c
135
link = (reg >> 8) & 0x03;
arch/x86/pci/amd_bus.c
137
alloc_pci_root_info(min_bus, max_bus, node, link);
arch/x86/pci/amd_bus.c
168
link = (reg >> 4) & 0x03;
arch/x86/pci/amd_bus.c
171
info = find_pci_root_info(node, link);
arch/x86/pci/amd_bus.c
176
node, link, start, end);
arch/x86/pci/amd_bus.c
235
link = (reg >> 4) & 0x03;
arch/x86/pci/amd_bus.c
240
info = find_pci_root_info(node, link);
arch/x86/pci/amd_bus.c
246
node, link, start, end);
arch/x86/pci/amd_bus.c
329
&info->busn, info->node, info->link);
arch/x86/pci/amd_bus.c
42
static struct pci_root_info __init *find_pci_root_info(int node, int link)
arch/x86/pci/amd_bus.c
48
if (info->node == node && info->link == link)
arch/x86/pci/amd_bus.c
74
int link;
arch/x86/pci/bus_numa.c
71
int node, int link)
arch/x86/pci/bus_numa.c
88
info->link = link;
arch/x86/pci/bus_numa.h
19
int link;
arch/x86/pci/bus_numa.h
24
int node, int link);
arch/x86/pci/irq.c
1427
pirq = info->irq[pin - 1].link;
arch/x86/pci/irq.c
1523
if (info->irq[pin - 1].link == pirq) {
arch/x86/pci/irq.c
224
DBG(" %d:%02x/%04x", j, e->irq[j].link, e->irq[j].bitmap);
arch/x86/tools/relocs.c
440
sec->link = &secs[sec->shdr.sh_link];
arch/x86/tools/relocs.c
45
struct section *link;
arch/x86/tools/relocs.c
575
sym_strtab = sec->link->strtab;
arch/x86/tools/relocs.c
618
sec_symtab = sec->link;
arch/x86/tools/relocs.c
632
sym_strtab = sec_symtab->link->strtab;
arch/x86/tools/relocs.c
712
sec_symtab = sec->link;
arch/x86/tools/relocs.c
726
sym_strtab = sec_symtab->link->strtab;
crypto/asymmetric_keys/asymmetric_type.c
412
list_for_each_entry(parser, &asymmetric_key_parsers, link) {
crypto/asymmetric_keys/asymmetric_type.c
634
list_for_each_entry(cursor, &asymmetric_key_parsers, link) {
crypto/asymmetric_keys/asymmetric_type.c
643
list_add_tail(&parser->link, &asymmetric_key_parsers);
crypto/asymmetric_keys/asymmetric_type.c
661
list_del(&parser->link);
crypto/crypto_user.c
417
const struct crypto_link *link;
crypto/crypto_user.c
425
link = &crypto_dispatch[type];
crypto/crypto_user.c
432
if (link->dump == NULL)
crypto/crypto_user.c
442
.dump = link->dump,
crypto/crypto_user.c
443
.done = link->done,
crypto/crypto_user.c
457
if (link->doit == NULL)
crypto/crypto_user.c
460
return link->doit(skb, nlh, attrs);
drivers/accel/ivpu/ivpu_drv.c
118
void ivpu_file_priv_put(struct ivpu_file_priv **link)
drivers/accel/ivpu/ivpu_drv.c
120
struct ivpu_file_priv *file_priv = *link;
drivers/accel/ivpu/ivpu_drv.c
126
*link = NULL;
drivers/accel/ivpu/ivpu_drv.h
223
void ivpu_file_priv_put(struct ivpu_file_priv **link);
drivers/accel/ivpu/ivpu_ipc.c
158
list_add_tail(&rx_msg->link, &ipc->cb_msg_list);
drivers/accel/ivpu/ivpu_ipc.c
161
list_add_tail(&rx_msg->link, &cons->rx_msg_list);
drivers/accel/ivpu/ivpu_ipc.c
170
list_del(&rx_msg->link);
drivers/accel/ivpu/ivpu_ipc.c
181
INIT_LIST_HEAD(&cons->link);
drivers/accel/ivpu/ivpu_ipc.c
192
list_add_tail(&cons->link, &ipc->cons_list);
drivers/accel/ivpu/ivpu_ipc.c
202
list_del(&cons->link);
drivers/accel/ivpu/ivpu_ipc.c
206
list_for_each_entry_safe(rx_msg, r, &cons->rx_msg_list, link)
drivers/accel/ivpu/ivpu_ipc.c
270
rx_msg = list_first_entry_or_null(&cons->rx_msg_list, struct ivpu_ipc_rx_msg, link);
drivers/accel/ivpu/ivpu_ipc.c
447
list_for_each_entry(cons, &ipc->cons_list, link) {
drivers/accel/ivpu/ivpu_ipc.c
478
list_for_each_entry_safe(rx_msg, r, &cb_msg_list, link) {
drivers/accel/ivpu/ivpu_ipc.c
567
list_for_each_entry_safe(cons, c, &ipc->cons_list, link) {
drivers/accel/ivpu/ivpu_ipc.c
571
list_for_each_entry_safe(rx_msg, r, &cons->rx_msg_list, link)
drivers/accel/ivpu/ivpu_ipc.h
50
struct list_head link;
drivers/accel/ivpu/ivpu_ipc.h
57
struct list_head link;
drivers/acpi/pci_irq.c
182
acpi_get_handle(handle, prt->source, &entry->link);
drivers/acpi/pci_irq.c
30
acpi_handle link;
drivers/acpi/pci_irq.c
401
char *link = NULL;
drivers/acpi/pci_irq.c
428
if (entry->link)
drivers/acpi/pci_irq.c
429
rc = acpi_pci_link_allocate_irq(entry->link,
drivers/acpi/pci_irq.c
432
&link, &gsi);
drivers/acpi/pci_irq.c
467
if (link)
drivers/acpi/pci_irq.c
468
snprintf(link_desc, sizeof(link_desc), " -> Link[%s]", link);
drivers/acpi/pci_irq.c
503
if (entry->link)
drivers/acpi/pci_irq.c
504
gsi = acpi_pci_link_free_irq(entry->link);
drivers/acpi/pci_link.c
112
link->irq.possible[i] = p->interrupts[i];
drivers/acpi/pci_link.c
113
link->irq.possible_count++;
drivers/acpi/pci_link.c
115
link->irq.triggering = p->triggering;
drivers/acpi/pci_link.c
116
link->irq.polarity = p->polarity;
drivers/acpi/pci_link.c
117
link->irq.resource_type = ACPI_RESOURCE_TYPE_IRQ;
drivers/acpi/pci_link.c
138
link->irq.possible[i] = p->interrupts[i];
drivers/acpi/pci_link.c
139
link->irq.possible_count++;
drivers/acpi/pci_link.c
141
link->irq.triggering = p->triggering;
drivers/acpi/pci_link.c
142
link->irq.polarity = p->polarity;
drivers/acpi/pci_link.c
143
link->irq.resource_type = ACPI_RESOURCE_TYPE_EXTENDED_IRQ;
drivers/acpi/pci_link.c
155
static int acpi_pci_link_get_possible(struct acpi_pci_link *link)
drivers/acpi/pci_link.c
157
acpi_handle handle = link->device->handle;
drivers/acpi/pci_link.c
161
acpi_pci_link_check_possible, link);
drivers/acpi/pci_link.c
168
link->irq.possible_count);
drivers/acpi/pci_link.c
228
static int acpi_pci_link_get_current(struct acpi_pci_link *link)
drivers/acpi/pci_link.c
230
acpi_handle handle = link->device->handle;
drivers/acpi/pci_link.c
235
link->irq.active = 0;
drivers/acpi/pci_link.c
240
result = acpi_bus_get_status(link->device);
drivers/acpi/pci_link.c
246
if (!link->device->status.enabled) {
drivers/acpi/pci_link.c
269
link->irq.active = irq;
drivers/acpi/pci_link.c
271
acpi_handle_debug(handle, "Link at IRQ %d\n", link->irq.active);
drivers/acpi/pci_link.c
277
static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
drivers/acpi/pci_link.c
284
acpi_handle handle = link->device->handle;
drivers/acpi/pci_link.c
298
switch (link->irq.resource_type) {
drivers/acpi/pci_link.c
302
resource->res.data.irq.triggering = link->irq.triggering;
drivers/acpi/pci_link.c
304
link->irq.polarity;
drivers/acpi/pci_link.c
305
if (link->irq.triggering == ACPI_EDGE_SENSITIVE)
drivers/acpi/pci_link.c
320
link->irq.triggering;
drivers/acpi/pci_link.c
322
link->irq.polarity;
drivers/acpi/pci_link.c
323
if (link->irq.triggering == ACPI_EDGE_SENSITIVE)
drivers/acpi/pci_link.c
334
link->irq.resource_type);
drivers/acpi/pci_link.c
343
status = acpi_set_current_resources(link->device->handle, &buffer);
drivers/acpi/pci_link.c
353
result = acpi_bus_get_status(link->device);
drivers/acpi/pci_link.c
358
if (!link->device->status.enabled)
drivers/acpi/pci_link.c
362
result = acpi_pci_link_get_current(link);
drivers/acpi/pci_link.c
371
if (link->irq.active != irq) {
drivers/acpi/pci_link.c
377
link->irq.active, irq);
drivers/acpi/pci_link.c
378
link->irq.active = irq;
drivers/acpi/pci_link.c
381
acpi_handle_debug(handle, "Set IRQ %d\n", link->irq.active);
drivers/acpi/pci_link.c
453
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
457
list_for_each_entry(link, &acpi_link_list, list) {
drivers/acpi/pci_link.c
462
if (link->irq.active && link->irq.active == irq)
drivers/acpi/pci_link.c
468
for (i = 0; i < link->irq.possible_count; i++)
drivers/acpi/pci_link.c
469
if (link->irq.possible[i] == irq)
drivers/acpi/pci_link.c
471
link->irq.possible_count;
drivers/acpi/pci_link.c
492
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
498
list_for_each_entry(link, &acpi_link_list, list) {
drivers/acpi/pci_link.c
504
if (link->irq.possible_count) {
drivers/acpi/pci_link.c
507
link->irq.possible_count;
drivers/acpi/pci_link.c
509
for (i = 0; i < link->irq.possible_count; i++) {
drivers/acpi/pci_link.c
510
if (link->irq.possible[i] < ACPI_MAX_ISA_IRQS)
drivers/acpi/pci_link.c
511
acpi_isa_irq_penalty[link->irq.
drivers/acpi/pci_link.c
516
} else if (link->irq.active &&
drivers/acpi/pci_link.c
517
(link->irq.active < ACPI_MAX_ISA_IRQS)) {
drivers/acpi/pci_link.c
518
acpi_isa_irq_penalty[link->irq.active] +=
drivers/acpi/pci_link.c
528
static int acpi_pci_link_allocate(struct acpi_pci_link *link)
drivers/acpi/pci_link.c
530
acpi_handle handle = link->device->handle;
drivers/acpi/pci_link.c
534
if (link->irq.initialized) {
drivers/acpi/pci_link.c
535
if (link->refcnt == 0)
drivers/acpi/pci_link.c
537
acpi_pci_link_set(link, link->irq.active);
drivers/acpi/pci_link.c
544
for (i = 0; i < link->irq.possible_count; ++i) {
drivers/acpi/pci_link.c
545
if (link->irq.active == link->irq.possible[i])
drivers/acpi/pci_link.c
551
if (i == link->irq.possible_count) {
drivers/acpi/pci_link.c
554
link->irq.active);
drivers/acpi/pci_link.c
555
link->irq.active = 0;
drivers/acpi/pci_link.c
561
if (link->irq.active)
drivers/acpi/pci_link.c
562
irq = link->irq.active;
drivers/acpi/pci_link.c
564
irq = link->irq.possible[link->irq.possible_count - 1];
drivers/acpi/pci_link.c
566
if (acpi_irq_balance || !link->irq.active) {
drivers/acpi/pci_link.c
571
for (i = (link->irq.possible_count - 1); i >= 0; i--) {
drivers/acpi/pci_link.c
573
acpi_irq_get_penalty(link->irq.possible[i]))
drivers/acpi/pci_link.c
574
irq = link->irq.possible[i];
drivers/acpi/pci_link.c
584
if (acpi_pci_link_set(link, irq)) {
drivers/acpi/pci_link.c
589
if (link->irq.active < ACPI_MAX_ISA_IRQS)
drivers/acpi/pci_link.c
590
acpi_isa_irq_penalty[link->irq.active] +=
drivers/acpi/pci_link.c
594
link->irq.active);
drivers/acpi/pci_link.c
597
link->irq.initialized = 1;
drivers/acpi/pci_link.c
619
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
626
link = acpi_driver_data(device);
drivers/acpi/pci_link.c
627
if (!link) {
drivers/acpi/pci_link.c
639
if (acpi_pci_link_allocate(link)) {
drivers/acpi/pci_link.c
644
if (!link->irq.active) {
drivers/acpi/pci_link.c
649
link->refcnt++;
drivers/acpi/pci_link.c
653
*triggering = link->irq.triggering;
drivers/acpi/pci_link.c
655
*polarity = link->irq.polarity;
drivers/acpi/pci_link.c
657
*name = acpi_device_bid(link->device);
drivers/acpi/pci_link.c
659
*gsi = link->irq.active;
drivers/acpi/pci_link.c
671
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
678
link = acpi_driver_data(device);
drivers/acpi/pci_link.c
679
if (!link) {
drivers/acpi/pci_link.c
685
if (!link->irq.initialized) {
drivers/acpi/pci_link.c
700
link->refcnt--;
drivers/acpi/pci_link.c
704
if (link->refcnt == 0)
drivers/acpi/pci_link.c
705
acpi_evaluate_object(link->device->handle, "_DIS", NULL, NULL);
drivers/acpi/pci_link.c
708
return link->irq.active;
drivers/acpi/pci_link.c
719
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
723
link = kzalloc_obj(struct acpi_pci_link);
drivers/acpi/pci_link.c
724
if (!link)
drivers/acpi/pci_link.c
727
link->device = device;
drivers/acpi/pci_link.c
730
device->driver_data = link;
drivers/acpi/pci_link.c
733
result = acpi_pci_link_get_possible(link);
drivers/acpi/pci_link.c
738
acpi_pci_link_get_current(link);
drivers/acpi/pci_link.c
741
acpi_device_bid(device), link->irq.active);
drivers/acpi/pci_link.c
743
for (i = 0; i < link->irq.possible_count; i++) {
drivers/acpi/pci_link.c
744
if (link->irq.active != link->irq.possible[i])
drivers/acpi/pci_link.c
746
link->irq.possible[i]);
drivers/acpi/pci_link.c
749
if (!link->device->status.enabled)
drivers/acpi/pci_link.c
752
list_add_tail(&link->list, &acpi_link_list);
drivers/acpi/pci_link.c
760
kfree(link);
drivers/acpi/pci_link.c
767
static int acpi_pci_link_resume(struct acpi_pci_link *link)
drivers/acpi/pci_link.c
769
if (link->refcnt && link->irq.active && link->irq.initialized)
drivers/acpi/pci_link.c
770
return (acpi_pci_link_set(link, link->irq.active));
drivers/acpi/pci_link.c
777
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
779
list_for_each_entry(link, &acpi_link_list, list) {
drivers/acpi/pci_link.c
780
acpi_pci_link_resume(link);
drivers/acpi/pci_link.c
786
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
788
link = acpi_driver_data(device);
drivers/acpi/pci_link.c
791
list_del(&link->list);
drivers/acpi/pci_link.c
794
kfree(link);
drivers/acpi/pci_link.c
87
struct acpi_pci_link *link = context;
drivers/acpi/pci_link.c
88
acpi_handle handle = link->device->handle;
drivers/acpi/property.c
144
const union acpi_object *link,
drivers/acpi/property.c
161
status = acpi_get_handle(scope, link->package.elements[1].string.pointer,
drivers/acpi/property.c
171
if (acpi_nondev_subnode_extract(buf.pointer, handle, link, list,
drivers/acpi/property.c
192
union acpi_object *link, *desc;
drivers/acpi/property.c
195
link = &links->package.elements[i];
drivers/acpi/property.c
197
if (link->package.count != 2)
drivers/acpi/property.c
201
if (link->package.elements[0].type != ACPI_TYPE_STRING)
drivers/acpi/property.c
205
switch (link->package.elements[1].type) {
drivers/acpi/property.c
213
result = acpi_nondev_subnode_ok(scope, link, list,
drivers/acpi/property.c
233
link->package.elements[0].string.pointer);
drivers/acpi/property.c
234
desc = &link->package.elements[1];
drivers/acpi/property.c
235
result = acpi_nondev_subnode_extract(desc, NULL, link,
drivers/acpi/property.c
245
link->package.elements[0].string.pointer);
drivers/acpi/property.c
81
const union acpi_object *link,
drivers/acpi/property.c
96
dn->name = link->package.elements[0].string.pointer;
drivers/acpi/x86/lpss.c
521
const struct lpss_device_links *link)
drivers/acpi/x86/lpss.c
523
return acpi_dev_hid_uid_match(adev, link->supplier_hid, link->supplier_uid);
drivers/acpi/x86/lpss.c
527
const struct lpss_device_links *link)
drivers/acpi/x86/lpss.c
529
return acpi_dev_hid_uid_match(adev, link->consumer_hid, link->consumer_uid);
drivers/acpi/x86/lpss.c
565
const struct lpss_device_links *link)
drivers/acpi/x86/lpss.c
569
dev2 = acpi_lpss_find_device(link->consumer_hid, link->consumer_uid);
drivers/acpi/x86/lpss.c
573
if ((link->dep_missing_ids && dmi_check_system(link->dep_missing_ids))
drivers/acpi/x86/lpss.c
575
device_link_add(dev2, dev1, link->flags);
drivers/acpi/x86/lpss.c
581
const struct lpss_device_links *link)
drivers/acpi/x86/lpss.c
585
dev2 = acpi_lpss_find_device(link->supplier_hid, link->supplier_uid);
drivers/acpi/x86/lpss.c
589
if ((link->dep_missing_ids && dmi_check_system(link->dep_missing_ids))
drivers/acpi/x86/lpss.c
591
device_link_add(dev1, dev2, link->flags);
drivers/acpi/x86/lpss.c
602
const struct lpss_device_links *link = &lpss_device_links[i];
drivers/acpi/x86/lpss.c
604
if (acpi_lpss_is_supplier(adev, link))
drivers/acpi/x86/lpss.c
605
acpi_lpss_link_consumer(&pdev->dev, link);
drivers/acpi/x86/lpss.c
607
if (acpi_lpss_is_consumer(adev, link))
drivers/acpi/x86/lpss.c
608
acpi_lpss_link_supplier(&pdev->dev, link);
drivers/ata/acard-ahci.c
226
ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, cmd_tbl);
drivers/ata/acard-ahci.c
240
opts = cmd_fis_len | (qc->dev->link->pmp << 12);
drivers/ata/acard-ahci.c
257
rx_fis += qc->dev->link->pmp * ACARD_AHCI_RX_FIS_SZ;
drivers/ata/ahci.c
1173
ap->link.flags |= ATA_LFLAG_NO_SRST | ATA_LFLAG_ASSUME_ATA;
drivers/ata/ahci.c
1606
struct ata_link *link;
drivers/ata/ahci.c
1609
ata_for_each_link(link, ap, EDGE)
drivers/ata/ahci.c
1610
ata_for_each_dev(dev, link, ALL)
drivers/ata/ahci.c
865
static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
868
struct ata_port *ap = link->ap;
drivers/ata/ahci.c
875
rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
drivers/ata/ahci.c
886
static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
889
struct ata_port *ap = link->ap;
drivers/ata/ahci.c
900
ata_tf_init(link->device, &tf);
drivers/ata/ahci.c
904
rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
drivers/ata/ahci.c
91
static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
923
rc = ata_wait_after_reset(link, jiffies + 2 * HZ,
drivers/ata/ahci.c
93
static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
946
static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
949
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
drivers/ata/ahci.c
950
struct ata_port *ap = link->ap;
drivers/ata/ahci.c
969
ata_tf_init(link->device, &tf);
drivers/ata/ahci.c
97
static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
973
rc = sata_link_hardreset(link, timing, deadline, &online,
drivers/ata/ahci.c
976
if (sata_scr_read(link, SCR_STATUS, &sstatus) != 0 ||
drivers/ata/ahci.c
980
ata_link_info(link, "avn bounce port%d\n", port);
drivers/ata/ahci.h
304
struct ata_link *link;
drivers/ata/ahci.h
431
int ahci_do_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.h
433
int (*check_ready)(struct ata_link *link));
drivers/ata/ahci.h
435
int ahci_do_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.h
442
int ahci_check_ready(struct ata_link *link);
drivers/ata/ahci_brcm.c
251
struct ata_port *ap = dev->link->ap;
drivers/ata/ahci_da850.c
107
ret = ahci_do_softreset(link, class, pmp, deadline, ahci_check_ready);
drivers/ata/ahci_da850.c
109
return ahci_do_softreset(link, class, 0,
drivers/ata/ahci_da850.c
115
static int ahci_da850_hardreset(struct ata_link *link,
drivers/ata/ahci_da850.c
130
ret = ahci_do_hardreset(link, class, deadline, &online);
drivers/ata/ahci_da850.c
93
static int ahci_da850_softreset(struct ata_link *link,
drivers/ata/ahci_da850.c
98
pmp = sata_srst_pmp(link);
drivers/ata/ahci_dm816.c
103
static int ahci_dm816_softreset(struct ata_link *link,
drivers/ata/ahci_dm816.c
108
pmp = sata_srst_pmp(link);
drivers/ata/ahci_dm816.c
117
ret = ahci_do_softreset(link, class, pmp, deadline, ahci_check_ready);
drivers/ata/ahci_dm816.c
119
return ahci_do_softreset(link, class, 0,
drivers/ata/ahci_imx.c
619
ata_for_each_dev(dev, &ap->link, ENABLED)
drivers/ata/ahci_imx.c
635
static int ahci_imx_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci_imx.c
638
struct ata_port *ap = link->ap;
drivers/ata/ahci_imx.c
645
ret = ahci_pmp_retry_srst_ops.reset.softreset(link, class,
drivers/ata/ahci_imx.c
648
ret = ahci_ops.reset.softreset(link, class, deadline);
drivers/ata/ahci_qoriq.c
123
ata_tf_init(link->device, &tf);
drivers/ata/ahci_qoriq.c
127
rc = sata_link_hardreset(link, timing, deadline, &online,
drivers/ata/ahci_qoriq.c
88
static int ahci_qoriq_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci_qoriq.c
91
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
drivers/ata/ahci_qoriq.c
92
void __iomem *port_mmio = ahci_port_base(link->ap);
drivers/ata/ahci_qoriq.c
94
struct ata_port *ap = link->ap;
drivers/ata/ahci_xgene.c
202
port_fbs |= qc->dev->link->pmp << PORT_FBS_DEV_OFFSET;
drivers/ata/ahci_xgene.c
347
static int xgene_ahci_do_hardreset(struct ata_link *link,
drivers/ata/ahci_xgene.c
350
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
drivers/ata/ahci_xgene.c
351
struct ata_port *ap = link->ap;
drivers/ata/ahci_xgene.c
364
ata_tf_init(link->device, &tf);
drivers/ata/ahci_xgene.c
367
rc = sata_link_hardreset(link, timing, deadline, online,
drivers/ata/ahci_xgene.c
376
sata_scr_read(link, SCR_STATUS, &sstatus);
drivers/ata/ahci_xgene.c
387
static int xgene_ahci_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci_xgene.c
390
struct ata_port *ap = link->ap;
drivers/ata/ahci_xgene.c
410
rc = xgene_ahci_do_hardreset(link, deadline, &online);
drivers/ata/ahci_xgene.c
448
static int xgene_ahci_pmp_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci_xgene.c
451
int pmp = sata_srst_pmp(link);
drivers/ata/ahci_xgene.c
452
struct ata_port *ap = link->ap;
drivers/ata/ahci_xgene.c
465
return ahci_do_softreset(link, class, pmp, deadline, ahci_check_ready);
drivers/ata/ahci_xgene.c
489
static int xgene_ahci_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci_xgene.c
492
int pmp = sata_srst_pmp(link);
drivers/ata/ahci_xgene.c
493
struct ata_port *ap = link->ap;
drivers/ata/ahci_xgene.c
514
rc = ahci_do_softreset(link, class, pmp,
drivers/ata/ata_generic.c
51
static int generic_set_mode(struct ata_link *link, struct ata_device **unused)
drivers/ata/ata_generic.c
53
struct ata_port *ap = link->ap;
drivers/ata/ata_generic.c
65
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/ata_piix.c
1441
struct ata_link *link0 = &host->ports[0]->link;
drivers/ata/ata_piix.c
538
static int piix_pata_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/ata_piix.c
540
struct ata_port *ap = link->ap;
drivers/ata/ata_piix.c
545
return ata_sff_prereset(link, deadline);
drivers/ata/ata_piix.c
777
static void piix_sidpr_sel(struct ata_link *link, unsigned int reg)
drivers/ata/ata_piix.c
779
struct ata_port *ap = link->ap;
drivers/ata/ata_piix.c
782
iowrite32(((ap->port_no * 2 + link->pmp) << 8) | piix_sidx_map[reg],
drivers/ata/ata_piix.c
786
static int piix_sidpr_scr_read(struct ata_link *link,
drivers/ata/ata_piix.c
789
struct piix_host_priv *hpriv = link->ap->host->private_data;
drivers/ata/ata_piix.c
794
piix_sidpr_sel(link, reg);
drivers/ata/ata_piix.c
799
static int piix_sidpr_scr_write(struct ata_link *link,
drivers/ata/ata_piix.c
802
struct piix_host_priv *hpriv = link->ap->host->private_data;
drivers/ata/ata_piix.c
807
piix_sidpr_sel(link, reg);
drivers/ata/ata_piix.c
812
static int piix_sidpr_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/ata_piix.c
815
return sata_link_scr_lpm(link, policy, false);
drivers/ata/libahci.c
1022
static void ahci_sw_activity(struct ata_link *link)
drivers/ata/libahci.c
1024
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1026
struct ahci_em_priv *emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1028
if (!(link->flags & ATA_LFLAG_SW_ACTIVITY))
drivers/ata/libahci.c
1039
struct ata_link *link = emp->link;
drivers/ata/libahci.c
1040
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1047
led_message |= ap->port_no | (link->pmp << 8);
drivers/ata/libahci.c
1080
static void ahci_init_sw_activity(struct ata_link *link)
drivers/ata/libahci.c
1082
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1084
struct ahci_em_priv *emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1088
emp->link = link;
drivers/ata/libahci.c
1093
link->flags |= ATA_LFLAG_SW_ACTIVITY;
drivers/ata/libahci.c
1176
struct ata_link *link;
drivers/ata/libahci.c
1180
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libahci.c
1181
emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1219
struct ata_link *link = dev->link;
drivers/ata/libahci.c
1220
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1222
struct ahci_em_priv *emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1228
link->flags &= ~(ATA_LFLAG_SW_ACTIVITY);
drivers/ata/libahci.c
1232
port_led_state |= (ap->port_no | (link->pmp << 8));
drivers/ata/libahci.c
1235
link->flags |= ATA_LFLAG_SW_ACTIVITY;
drivers/ata/libahci.c
1239
port_led_state |= (ap->port_no | (link->pmp << 8));
drivers/ata/libahci.c
1250
struct ata_link *link = dev->link;
drivers/ata/libahci.c
1251
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1253
struct ahci_em_priv *emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1324
struct ahci_host_priv *hpriv = dev->link->ap->host->private_data;
drivers/ata/libahci.c
1451
int ahci_do_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1453
int (*check_ready)(struct ata_link *link))
drivers/ata/libahci.c
1455
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1468
ata_link_warn(link, "failed to reset engine (errno=%d)\n", rc);
drivers/ata/libahci.c
1475
if (!ata_is_host_link(link) && pp->fbs_enabled) {
drivers/ata/libahci.c
1480
ata_tf_init(link->device, &tf);
drivers/ata/libahci.c
1504
rc = ata_wait_after_reset(link, deadline, check_ready);
drivers/ata/libahci.c
1511
ata_link_info(link, "device not ready, treating as offline\n");
drivers/ata/libahci.c
1527
ata_link_err(link, "softreset failed (%s)\n", reason);
drivers/ata/libahci.c
1531
int ahci_check_ready(struct ata_link *link)
drivers/ata/libahci.c
1533
void __iomem *port_mmio = ahci_port_base(link->ap);
drivers/ata/libahci.c
1540
static int ahci_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1543
int pmp = sata_srst_pmp(link);
drivers/ata/libahci.c
1545
return ahci_do_softreset(link, class, pmp, deadline, ahci_check_ready);
drivers/ata/libahci.c
1549
static int ahci_bad_pmp_check_ready(struct ata_link *link)
drivers/ata/libahci.c
1551
void __iomem *port_mmio = ahci_port_base(link->ap);
drivers/ata/libahci.c
1565
static int ahci_pmp_retry_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1568
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1570
int pmp = sata_srst_pmp(link);
drivers/ata/libahci.c
1574
rc = ahci_do_softreset(link, class, pmp, deadline,
drivers/ata/libahci.c
1585
ata_link_warn(link,
drivers/ata/libahci.c
1588
rc = ahci_do_softreset(link, class, 0, deadline,
drivers/ata/libahci.c
1596
int ahci_do_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1599
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
drivers/ata/libahci.c
1600
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1610
ata_tf_init(link->device, &tf);
drivers/ata/libahci.c
1616
rc = sata_link_hardreset(link, timing, deadline, online,
drivers/ata/libahci.c
1628
static int ahci_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1633
return ahci_do_hardreset(link, class, deadline, &online);
drivers/ata/libahci.c
1636
static void ahci_postreset(struct ata_link *link, unsigned int *class)
drivers/ata/libahci.c
1638
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1642
ata_std_postreset(link, class);
drivers/ata/libahci.c
1704
ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, cmd_tbl);
drivers/ata/libahci.c
1717
opts = cmd_fis_len | n_elem << 16 | (qc->dev->link->pmp << 12);
drivers/ata/libahci.c
1755
struct ata_eh_info *host_ehi = &ap->link.eh_info;
drivers/ata/libahci.c
1756
struct ata_link *link = NULL;
drivers/ata/libahci.c
1769
link = &ap->pmp_link[pmp];
drivers/ata/libahci.c
1774
ata_for_each_link(link, ap, EDGE)
drivers/ata/libahci.c
1775
if (ata_link_active(link))
drivers/ata/libahci.c
1778
if (!link)
drivers/ata/libahci.c
1779
link = &ap->link;
drivers/ata/libahci.c
1781
active_qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/libahci.c
1782
active_ehi = &link->eh_info;
drivers/ata/libahci.c
1789
ahci_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/libahci.c
1790
ahci_scr_write(&ap->link, SCR_ERROR, serror);
drivers/ata/libahci.c
1856
ata_link_abort(link);
drivers/ata/libahci.c
1864
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/libahci.c
1905
if (sata_lpm_ignore_phy_events(&ap->link)) {
drivers/ata/libahci.c
1907
ahci_scr_write(&ap->link, SCR_ERROR, SERR_PHYRDY_CHG);
drivers/ata/libahci.c
2058
pp->active_link = qc->dev->link;
drivers/ata/libahci.c
2063
if (pp->fbs_enabled && pp->fbs_last_dev != qc->dev->link->pmp) {
drivers/ata/libahci.c
2066
fbs |= qc->dev->link->pmp << PORT_FBS_DEV_OFFSET;
drivers/ata/libahci.c
2068
pp->fbs_last_dev = qc->dev->link->pmp;
drivers/ata/libahci.c
2073
ahci_sw_activity(qc->dev->link);
drivers/ata/libahci.c
2085
rx_fis += qc->dev->link->pmp * AHCI_RX_FIS_SZ;
drivers/ata/libahci.c
2178
fis += qc->dev->link->pmp * AHCI_RX_FIS_SZ;
drivers/ata/libahci.c
2226
if (!ata_dev_enabled(ap->link.device))
drivers/ata/libahci.c
2244
struct ata_device *dev = ap->link.device;
drivers/ata/libahci.c
46
static int ahci_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/libahci.c
56
static int ahci_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
drivers/ata/libahci.c
57
static int ahci_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
drivers/ata/libahci.c
658
static int ahci_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/libahci.c
660
void __iomem *port_mmio = ahci_port_base(link->ap);
drivers/ata/libahci.c
661
int offset = ahci_scr_offset(link->ap, sc_reg);
drivers/ata/libahci.c
670
static int ahci_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/libahci.c
672
void __iomem *port_mmio = ahci_port_base(link->ap);
drivers/ata/libahci.c
673
int offset = ahci_scr_offset(link->ap, sc_reg);
drivers/ata/libahci.c
708
(ap->link.lpm_policy > ATA_LPM_MAX_POWER) &&
drivers/ata/libahci.c
709
ahci_set_lpm(&ap->link, ATA_LPM_MAX_POWER, ATA_LPM_WAKE_ONLY)) {
drivers/ata/libahci.c
71
static int ahci_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
73
static int ahci_pmp_retry_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
75
static int ahci_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
77
static void ahci_postreset(struct ata_link *link, unsigned int *class);
drivers/ata/libahci.c
809
static int ahci_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/libahci.c
812
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
829
sata_link_scr_lpm(link, policy, false);
drivers/ata/libahci.c
86
static void ahci_init_sw_activity(struct ata_link *link);
drivers/ata/libahci.c
863
(link->device->flags & ATA_DFLAG_DEVSLP)) {
drivers/ata/libahci.c
872
sata_link_scr_lpm(link, policy, false);
drivers/ata/libahci.c
908
struct ata_link *link;
drivers/ata/libahci.c
922
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libahci.c
923
emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
947
ata_for_each_link(link, ap, EDGE)
drivers/ata/libahci.c
948
ahci_init_sw_activity(link);
drivers/ata/libata-acpi.c
1028
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-acpi.c
1029
struct ata_eh_context *ehc = &ap->link.eh_context;
drivers/ata/libata-acpi.c
103
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/libata-acpi.c
138
ata_acpi_handle_hotplug(dev->link->ap, dev, event);
drivers/ata/libata-acpi.c
175
ata_acpi_uevent(dev->link->ap, dev, event);
drivers/ata/libata-acpi.c
208
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-acpi.c
227
adr = SATA_ADR(ap->port_no, dev->link->pmp);
drivers/ata/libata-acpi.c
264
if (dev->link->ap->flags & ATA_FLAG_ACPI_SATA)
drivers/ata/libata-acpi.c
267
tdev = &dev->link->ap->tdev;
drivers/ata/libata-acpi.c
291
struct ata_device *dev = &ap->link.device[i];
drivers/ata/libata-acpi.c
427
in_params[1].buffer.pointer = (u8 *)ap->link.device[0].id;
drivers/ata/libata-acpi.c
430
in_params[2].buffer.pointer = (u8 *)ap->link.device[1].id;
drivers/ata/libata-acpi.c
598
ata_for_each_dev(dev, &ap->link, ENABLED) {
drivers/ata/libata-acpi.c
843
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-acpi.c
902
ata_for_each_dev(dev, &ap->link, ALL) {
drivers/ata/libata-acpi.c
914
ata_for_each_dev(dev, &ap->link, ALL) {
drivers/ata/libata-acpi.c
947
ata_for_each_dev(dev, &ap->link, ENABLED) {
drivers/ata/libata-acpi.c
983
ata_for_each_dev(dev, &ap->link, ENABLED) {
drivers/ata/libata-core.c
1541
struct ata_link *link = dev->link;
drivers/ata/libata-core.c
1542
struct ata_port *ap = link->ap;
drivers/ata/libata-core.c
1577
preempted_tag = link->active_tag;
drivers/ata/libata-core.c
1578
preempted_sactive = link->sactive;
drivers/ata/libata-core.c
1581
link->active_tag = ATA_TAG_POISON;
drivers/ata/libata-core.c
1582
link->sactive = 0;
drivers/ata/libata-core.c
160
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-core.c
1668
link->active_tag = preempted_tag;
drivers/ata/libata-core.c
1669
link->sactive = preempted_sactive;
drivers/ata/libata-core.c
1694
if (adev->link->ap->pflags & ATA_PFLAG_RESETTING)
drivers/ata/libata-core.c
1699
if (adev->link->ap->flags & ATA_FLAG_NO_IORDY)
drivers/ata/libata-core.c
177
struct ata_link *ata_link_next(struct ata_link *link, struct ata_port *ap,
drivers/ata/libata-core.c
1780
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-core.c
184
if (!link)
drivers/ata/libata-core.c
192
return &ap->link;
drivers/ata/libata-core.c
196
if (link == &ap->link)
drivers/ata/libata-core.c
2031
unsigned long ap_flags = dev->link->ap->flags;
drivers/ata/libata-core.c
211
if (unlikely(link == ap->slave_link))
drivers/ata/libata-core.c
2122
unsigned long ap_flags = dev->link->ap->flags;
drivers/ata/libata-core.c
215
if (++link < ap->pmp_link + ap->nr_pmp_links)
drivers/ata/libata-core.c
216
return link;
drivers/ata/libata-core.c
2160
if (!ata_port_is_frozen(dev->link->ap))
drivers/ata/libata-core.c
219
return &ap->link;
drivers/ata/libata-core.c
2282
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-core.c
237
struct ata_device *ata_dev_next(struct ata_device *dev, struct ata_link *link,
drivers/ata/libata-core.c
2396
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-core.c
248
dev = link->device;
drivers/ata/libata-core.c
252
dev = link->device + ata_link_max_devices(link) - 1;
drivers/ata/libata-core.c
261
if (++dev < link->device + ata_link_max_devices(link))
drivers/ata/libata-core.c
266
if (--dev >= link->device)
drivers/ata/libata-core.c
2859
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-core.c
2940
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-core.c
295
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-core.c
298
return dev->link;
drivers/ata/libata-core.c
300
return &ap->link;
drivers/ata/libata-core.c
3114
sata_scr_read(&ap->link, SCR_NOTIFICATION, &sntf) == 0)) {
drivers/ata/libata-core.c
3292
static void sata_print_link_status(struct ata_link *link)
drivers/ata/libata-core.c
3296
if (sata_scr_read(link, SCR_STATUS, &sstatus))
drivers/ata/libata-core.c
3298
if (sata_scr_read(link, SCR_CONTROL, &scontrol))
drivers/ata/libata-core.c
3301
if (ata_phys_link_online(link)) {
drivers/ata/libata-core.c
3303
ata_link_info(link, "SATA link up %s (SStatus %X SControl %X)\n",
drivers/ata/libata-core.c
3306
ata_link_info(link, "SATA link down (SStatus %X SControl %X)\n",
drivers/ata/libata-core.c
3321
struct ata_link *link = adev->link;
drivers/ata/libata-core.c
3322
struct ata_device *pair = &link->device[1 - adev->devno];
drivers/ata/libata-core.c
3473
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-core.c
3474
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-core.c
3571
int ata_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
drivers/ata/libata-core.c
3573
struct ata_port *ap = link->ap;
drivers/ata/libata-core.c
3578
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
3610
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
3624
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
3635
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
3674
int ata_wait_ready(struct ata_link *link, unsigned long deadline,
drivers/ata/libata-core.c
3675
int (*check_ready)(struct ata_link *link))
drivers/ata/libata-core.c
3682
if (link->ap->host->flags & ATA_HOST_PARALLEL_SCAN)
drivers/ata/libata-core.c
3691
WARN_ON(link == link->ap->slave_link);
drivers/ata/libata-core.c
3700
ready = tmp = check_ready(link);
drivers/ata/libata-core.c
3716
if (ata_link_online(link))
drivers/ata/libata-core.c
3718
else if ((link->ap->flags & ATA_FLAG_SATA) &&
drivers/ata/libata-core.c
3719
!ata_link_offline(link) &&
drivers/ata/libata-core.c
3731
ata_link_warn(link,
drivers/ata/libata-core.c
3737
ata_msleep(link->ap, 50);
drivers/ata/libata-core.c
3755
int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
drivers/ata/libata-core.c
3756
int (*check_ready)(struct ata_link *link))
drivers/ata/libata-core.c
3758
ata_msleep(link->ap, ATA_WAIT_AFTER_RESET);
drivers/ata/libata-core.c
3760
return ata_wait_ready(link, deadline, check_ready);
drivers/ata/libata-core.c
3781
int ata_std_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/libata-core.c
3783
struct ata_port *ap = link->ap;
drivers/ata/libata-core.c
3784
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-core.c
3794
rc = sata_link_resume(link, timing, deadline);
drivers/ata/libata-core.c
3797
ata_link_warn(link,
drivers/ata/libata-core.c
3803
if (ata_phys_link_offline(link))
drivers/ata/libata-core.c
382
static void ata_force_link_limits(struct ata_link *link)
drivers/ata/libata-core.c
3822
void ata_std_postreset(struct ata_link *link, unsigned int *classes)
drivers/ata/libata-core.c
3827
if (!sata_scr_read(link, SCR_ERROR, &serror))
drivers/ata/libata-core.c
3828
sata_scr_write(link, SCR_ERROR, serror);
drivers/ata/libata-core.c
3831
sata_print_link_status(link);
drivers/ata/libata-core.c
385
int linkno = link->pmp;
drivers/ata/libata-core.c
388
if (ata_is_host_link(link))
drivers/ata/libata-core.c
394
if (fe->port != -1 && fe->port != link->ap->print_id)
drivers/ata/libata-core.c
402
link->hw_sata_spd_limit = (1 << fe->param.spd_limit) - 1;
drivers/ata/libata-core.c
403
ata_link_notice(link, "FORCE: PHY spd limit set to %s\n",
drivers/ata/libata-core.c
4047
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-core.c
410
link->flags |= fe->param.lflags_on;
drivers/ata/libata-core.c
411
ata_link_notice(link,
drivers/ata/libata-core.c
413
fe->param.lflags_on, link->flags);
drivers/ata/libata-core.c
416
link->flags &= ~fe->param.lflags_off;
drivers/ata/libata-core.c
417
ata_link_notice(link,
drivers/ata/libata-core.c
419
fe->param.lflags_off, link->flags);
drivers/ata/libata-core.c
437
int devno = dev->link->pmp + dev->devno;
drivers/ata/libata-core.c
442
if (ata_is_host_link(dev->link))
drivers/ata/libata-core.c
4470
if ((dev->link->ap->flags & ATA_FLAG_PIO_POLLING) &&
drivers/ata/libata-core.c
449
if (fe->port != -1 && fe->port != dev->link->ap->print_id)
drivers/ata/libata-core.c
4506
struct ata_link *link;
drivers/ata/libata-core.c
4533
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-core.c
4534
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
4555
struct ata_link *link = dev->link;
drivers/ata/libata-core.c
4556
struct ata_port *ap = link->ap;
drivers/ata/libata-core.c
4791
struct ata_link *link = qc->dev->link;
drivers/ata/libata-core.c
4794
if (!ata_tag_valid(link->active_tag))
drivers/ata/libata-core.c
4797
if (!ata_tag_valid(link->active_tag) && !link->sactive)
drivers/ata/libata-core.c
482
int devno = dev->link->pmp + dev->devno;
drivers/ata/libata-core.c
487
if (ata_is_host_link(dev->link))
drivers/ata/libata-core.c
492
if (fe->port != -1 && fe->port != dev->link->ap->print_id)
drivers/ata/libata-core.c
4930
struct ata_link *link;
drivers/ata/libata-core.c
4936
link = qc->dev->link;
drivers/ata/libata-core.c
4943
link->sactive &= ~(1 << qc->hw_tag);
drivers/ata/libata-core.c
4944
if (!link->sactive)
drivers/ata/libata-core.c
4947
link->active_tag = ATA_TAG_POISON;
drivers/ata/libata-core.c
4953
ap->excl_link == link))
drivers/ata/libata-core.c
5016
struct ata_eh_info *ehi = &dev->link->eh_info;
drivers/ata/libata-core.c
5151
struct ata_link *link = qc->dev->link;
drivers/ata/libata-core.c
5155
WARN_ON_ONCE(ata_tag_valid(link->active_tag));
drivers/ata/libata-core.c
5158
WARN_ON_ONCE(link->sactive & (1 << qc->hw_tag));
drivers/ata/libata-core.c
5160
if (!link->sactive)
drivers/ata/libata-core.c
5162
link->sactive |= 1 << qc->hw_tag;
drivers/ata/libata-core.c
5164
WARN_ON_ONCE(link->sactive);
drivers/ata/libata-core.c
5167
link->active_tag = qc->tag;
drivers/ata/libata-core.c
5193
link->eh_info.action |= ATA_EH_RESET;
drivers/ata/libata-core.c
5194
ata_ehi_push_desc(&link->eh_info, "waking up from sleep");
drivers/ata/libata-core.c
5195
ata_link_abort(link);
drivers/ata/libata-core.c
5232
bool ata_phys_link_online(struct ata_link *link)
drivers/ata/libata-core.c
5236
if (sata_scr_read(link, SCR_STATUS, &sstatus) == 0 &&
drivers/ata/libata-core.c
5256
bool ata_phys_link_offline(struct ata_link *link)
drivers/ata/libata-core.c
5260
if (sata_scr_read(link, SCR_STATUS, &sstatus) == 0 &&
drivers/ata/libata-core.c
5282
bool ata_link_online(struct ata_link *link)
drivers/ata/libata-core.c
5284
struct ata_link *slave = link->ap->slave_link;
drivers/ata/libata-core.c
5286
WARN_ON(link == slave); /* shouldn't be called on slave link */
drivers/ata/libata-core.c
5288
return ata_phys_link_online(link) ||
drivers/ata/libata-core.c
5309
bool ata_link_offline(struct ata_link *link)
drivers/ata/libata-core.c
5311
struct ata_link *slave = link->ap->slave_link;
drivers/ata/libata-core.c
5313
WARN_ON(link == slave); /* shouldn't be called on slave link */
drivers/ata/libata-core.c
5315
return ata_phys_link_offline(link) &&
drivers/ata/libata-core.c
5325
struct ata_link *link;
drivers/ata/libata-core.c
534
static inline void ata_force_link_limits(struct ata_link *link) { }
drivers/ata/libata-core.c
5343
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-core.c
5344
link->eh_info.action |= action;
drivers/ata/libata-core.c
5345
link->eh_info.flags |= ehi_flags;
drivers/ata/libata-core.c
5436
struct ata_link *link;
drivers/ata/libata-core.c
5439
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-core.c
5440
ata_for_each_dev(adev, link, ENABLED)
drivers/ata/libata-core.c
5535
struct ata_link *link = ata_dev_phys_link(dev);
drivers/ata/libata-core.c
5536
struct ata_port *ap = link->ap;
drivers/ata/libata-core.c
5540
link->sata_spd_limit = link->hw_sata_spd_limit;
drivers/ata/libata-core.c
5541
link->sata_spd = 0;
drivers/ata/libata-core.c
5570
void ata_link_init(struct ata_port *ap, struct ata_link *link, int pmp)
drivers/ata/libata-core.c
5575
memset((void *)link + ATA_LINK_CLEAR_BEGIN, 0,
drivers/ata/libata-core.c
5578
link->ap = ap;
drivers/ata/libata-core.c
5579
link->pmp = pmp;
drivers/ata/libata-core.c
5580
link->active_tag = ATA_TAG_POISON;
drivers/ata/libata-core.c
5581
link->hw_sata_spd_limit = UINT_MAX;
drivers/ata/libata-core.c
5585
struct ata_device *dev = &link->device[i];
drivers/ata/libata-core.c
5587
dev->link = link;
drivers/ata/libata-core.c
5588
dev->devno = dev - link->device;
drivers/ata/libata-core.c
5609
int sata_link_init_spd(struct ata_link *link)
drivers/ata/libata-core.c
5614
rc = sata_scr_read(link, SCR_CONTROL, &link->saved_scontrol);
drivers/ata/libata-core.c
5618
spd = (link->saved_scontrol >> 4) & 0xf;
drivers/ata/libata-core.c
5620
link->hw_sata_spd_limit &= (1 << spd) - 1;
drivers/ata/libata-core.c
5622
ata_force_link_limits(link);
drivers/ata/libata-core.c
5624
link->sata_spd_limit = link->hw_sata_spd_limit;
drivers/ata/libata-core.c
5673
ata_link_init(ap, &ap->link, 0);
drivers/ata/libata-core.c
5849
ap->link.flags |= pi->link_flags;
drivers/ata/libata-core.c
6030
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/libata-core.c
6124
sata_link_init_spd(&ap->link);
drivers/ata/libata-core.c
6136
ap->link.eh_info.desc);
drivers/ata/libata-core.c
6137
ata_ehi_clear_desc(&ap->link.eh_info);
drivers/ata/libata-core.c
6253
struct ata_link *link;
drivers/ata/libata-core.c
6266
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-core.c
6267
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-core.c
633
} else if (lba48 && (dev->link->ap->flags & ATA_FLAG_PIO_LBA48)) {
drivers/ata/libata-eh.c
1041
static int ata_do_link_abort(struct ata_port *ap, struct ata_link *link)
drivers/ata/libata-eh.c
1051
if (qc && (!link || qc->dev->link == link)) {
drivers/ata/libata-eh.c
1076
int ata_link_abort(struct ata_link *link)
drivers/ata/libata-eh.c
1078
return ata_do_link_abort(link->ap, link);
drivers/ata/libata-eh.c
1278
struct ata_link *link = dev->link;
drivers/ata/libata-eh.c
1279
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
1280
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
1302
ata_eh_clear_action(link, dev, &link->eh_info, ATA_EH_PERDEV_MASK);
drivers/ata/libata-eh.c
1303
ata_eh_clear_action(link, dev, &link->eh_context.i, ATA_EH_PERDEV_MASK);
drivers/ata/libata-eh.c
1323
void ata_eh_about_to_do(struct ata_link *link, struct ata_device *dev,
drivers/ata/libata-eh.c
1326
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
1327
struct ata_eh_info *ehi = &link->eh_info;
drivers/ata/libata-eh.c
1328
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
1331
trace_ata_eh_about_to_do(link, dev ? dev->devno : 0, action);
drivers/ata/libata-eh.c
1335
ata_eh_clear_action(link, dev, ehi, action);
drivers/ata/libata-eh.c
1340
if (!(ehc->i.flags & ATA_EHI_QUIET) && link != ap->slave_link)
drivers/ata/libata-eh.c
1358
void ata_eh_done(struct ata_link *link, struct ata_device *dev,
drivers/ata/libata-eh.c
1361
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
1363
trace_ata_eh_done(link, dev ? dev->devno : 0, action);
drivers/ata/libata-eh.c
1365
ata_eh_clear_action(link, dev, &ehc->i, action);
drivers/ata/libata-eh.c
1550
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-eh.c
1598
static void ata_eh_analyze_serror(struct ata_link *link)
drivers/ata/libata-eh.c
1600
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
1623
if (link->lpm_policy > ATA_LPM_MAX_POWER)
drivers/ata/libata-eh.c
1625
else if (!(link->flags & ATA_LFLAG_DISABLED) || ata_is_host_link(link))
drivers/ata/libata-eh.c
1901
struct ata_link *link = ata_dev_phys_link(dev);
drivers/ata/libata-eh.c
1924
if (sata_down_spd_limit(link, 0) == 0) {
drivers/ata/libata-eh.c
1955
(link->ap->cbl != ATA_CBL_SATA || dev->class == ATA_DEV_ATAPI) &&
drivers/ata/libata-eh.c
2006
static int ata_eh_get_non_ncq_success_sense(struct ata_link *link)
drivers/ata/libata-eh.c
2008
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
2011
qc = __ata_qc_from_tag(ap, link->active_tag);
drivers/ata/libata-eh.c
2032
static void ata_eh_get_success_sense(struct ata_link *link)
drivers/ata/libata-eh.c
2034
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2035
struct ata_device *dev = link->device;
drivers/ata/libata-eh.c
2036
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
2056
if (link->sactive)
drivers/ata/libata-eh.c
2057
ret = ata_eh_get_ncq_success_sense(link);
drivers/ata/libata-eh.c
2059
ret = ata_eh_get_non_ncq_success_sense(link);
drivers/ata/libata-eh.c
2063
ata_eh_done(link, dev, ATA_EH_GET_SUCCESS_SENSE);
drivers/ata/libata-eh.c
2080
ata_dev_phys_link(qc->dev) != link)
drivers/ata/libata-eh.c
2095
ata_eh_done(link, dev, ATA_EH_GET_SUCCESS_SENSE);
drivers/ata/libata-eh.c
2111
static bool ata_eh_link_established(struct ata_link *link)
drivers/ata/libata-eh.c
2121
if (sata_scr_read(link, SCR_STATUS, &sstatus))
drivers/ata/libata-eh.c
2147
static int ata_eh_link_set_lpm(struct ata_link *link,
drivers/ata/libata-eh.c
2151
struct ata_port *ap = ata_is_host_link(link) ? link->ap : NULL;
drivers/ata/libata-eh.c
2152
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2154
enum ata_lpm_policy old_policy = link->lpm_policy;
drivers/ata/libata-eh.c
2155
bool host_has_dipm = !(link->ap->flags & ATA_FLAG_NO_DIPM);
drivers/ata/libata-eh.c
2162
(link->flags & ATA_LFLAG_NO_LPM) || (ap && !ap->ops->set_lpm))
drivers/ata/libata-eh.c
2172
ata_link_dbg(link, "Set LPM policy: %d -> %d\n", old_policy, policy);
drivers/ata/libata-eh.c
2179
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
2210
rc = ap->ops->set_lpm(link, policy, hints);
drivers/ata/libata-eh.c
2214
rc = sata_pmp_set_lpm(link, policy, hints);
drivers/ata/libata-eh.c
2222
link->flags |= ATA_LFLAG_NO_LPM;
drivers/ata/libata-eh.c
2233
link->lpm_policy = policy;
drivers/ata/libata-eh.c
2242
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
2259
link->last_lpm_change = jiffies;
drivers/ata/libata-eh.c
2260
link->flags |= ATA_LFLAG_CHANGED;
drivers/ata/libata-eh.c
2266
link->lpm_policy = old_policy;
drivers/ata/libata-eh.c
2272
ata_link_warn(link, "disabling LPM on the link\n");
drivers/ata/libata-eh.c
2273
link->flags |= ATA_LFLAG_NO_LPM;
drivers/ata/libata-eh.c
2291
static void ata_eh_link_autopsy(struct ata_link *link)
drivers/ata/libata-eh.c
2293
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
2294
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2306
rc = sata_scr_read(link, SCR_ERROR, &serror);
drivers/ata/libata-eh.c
2309
ata_eh_analyze_serror(link);
drivers/ata/libata-eh.c
2318
ata_eh_analyze_ncq_error(link);
drivers/ata/libata-eh.c
2326
ata_eh_get_success_sense(link);
drivers/ata/libata-eh.c
2338
ata_dev_phys_link(qc->dev) != link)
drivers/ata/libata-eh.c
2403
if ((all_err_mask & AC_ERR_TIMEOUT) && !ata_is_host_link(link))
drivers/ata/libata-eh.c
2404
ap->link.eh_context.i.err_mask |= AC_ERR_TIMEOUT;
drivers/ata/libata-eh.c
2408
if (!dev && ((ata_link_max_devices(link) == 1 &&
drivers/ata/libata-eh.c
2409
ata_dev_enabled(link->device))))
drivers/ata/libata-eh.c
2410
dev = link->device;
drivers/ata/libata-eh.c
2432
struct ata_link *link;
drivers/ata/libata-eh.c
2434
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-eh.c
2435
ata_eh_link_autopsy(link);
drivers/ata/libata-eh.c
2442
struct ata_eh_context *mehc = &ap->link.eh_context;
drivers/ata/libata-eh.c
2463
ata_eh_link_autopsy(&ap->link);
drivers/ata/libata-eh.c
254
if (ap->link.eh_info.desc_len)
drivers/ata/libata-eh.c
255
__ata_ehi_push_desc(&ap->link.eh_info, " ");
drivers/ata/libata-eh.c
258
__ata_ehi_pushv_desc(&ap->link.eh_info, fmt, args);
drivers/ata/libata-eh.c
2597
static void ata_eh_link_report(struct ata_link *link)
drivers/ata/libata-eh.c
2599
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
2600
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2615
ata_dev_phys_link(qc->dev) != link ||
drivers/ata/libata-eh.c
2639
ehc->i.err_mask, link->sactive, ehc->i.serror,
drivers/ata/libata-eh.c
2644
ata_link_err(link, "exception Emask 0x%x "
drivers/ata/libata-eh.c
2646
ehc->i.err_mask, link->sactive, ehc->i.serror,
drivers/ata/libata-eh.c
2649
ata_link_err(link, "%s\n", desc);
drivers/ata/libata-eh.c
2654
ata_link_err(link,
drivers/ata/libata-eh.c
2681
ata_dev_phys_link(qc->dev) != link || !qc->err_mask)
drivers/ata/libata-eh.c
2794
struct ata_link *link;
drivers/ata/libata-eh.c
2796
ata_for_each_link(link, ap, HOST_FIRST)
drivers/ata/libata-eh.c
2797
ata_eh_link_report(link);
drivers/ata/libata-eh.c
2800
static int ata_do_reset(struct ata_link *link, ata_reset_fn_t reset,
drivers/ata/libata-eh.c
2807
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
2810
return reset(link, classes, deadline);
drivers/ata/libata-eh.c
2813
static bool ata_eh_followup_srst_needed(struct ata_link *link, int rc)
drivers/ata/libata-eh.c
2815
if ((link->flags & ATA_LFLAG_NO_SRST) || ata_link_offline(link))
drivers/ata/libata-eh.c
2819
if (sata_pmp_supported(link->ap) && ata_is_host_link(link))
drivers/ata/libata-eh.c
2824
int ata_eh_reset(struct ata_link *link, int classify,
drivers/ata/libata-eh.c
2827
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
2829
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2836
unsigned int lflags = link->flags;
drivers/ata/libata-eh.c
2852
if (link->flags & ATA_LFLAG_RST_ONCE)
drivers/ata/libata-eh.c
2854
if (link->flags & ATA_LFLAG_NO_HRST)
drivers/ata/libata-eh.c
2856
if (link->flags & ATA_LFLAG_NO_SRST)
drivers/ata/libata-eh.c
2873
ata_eh_about_to_do(link, NULL, ATA_EH_RESET);
drivers/ata/libata-eh.c
2875
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
2915
rc = prereset(link, deadline);
drivers/ata/libata-eh.c
2933
ata_link_dbg(link, "port disabled--ignoring\n");
drivers/ata/libata-eh.c
2936
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
2941
ata_link_err(link,
drivers/ata/libata-eh.c
2951
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
2953
if (ata_port_is_frozen(ap) && ata_is_host_link(link))
drivers/ata/libata-eh.c
2964
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
2971
ata_link_info(link, "%s resetting link\n",
drivers/ata/libata-eh.c
2978
trace_ata_link_hardreset_begin(link, classes, deadline);
drivers/ata/libata-eh.c
2981
trace_ata_link_softreset_begin(link, classes, deadline);
drivers/ata/libata-eh.c
2984
rc = ata_do_reset(link, reset, classes, deadline, true);
drivers/ata/libata-eh.c
2986
trace_ata_link_hardreset_end(link, classes, rc);
drivers/ata/libata-eh.c
2988
trace_ata_link_softreset_end(link, classes, rc);
drivers/ata/libata-eh.c
2990
failed_link = link;
drivers/ata/libata-eh.c
3022
ata_eh_followup_srst_needed(link, rc)) {
drivers/ata/libata-eh.c
3026
ata_link_err(link,
drivers/ata/libata-eh.c
3028
failed_link = link;
drivers/ata/libata-eh.c
3033
ata_eh_about_to_do(link, NULL, ATA_EH_RESET);
drivers/ata/libata-eh.c
3034
trace_ata_link_softreset_begin(link, classes, deadline);
drivers/ata/libata-eh.c
3035
rc = ata_do_reset(link, reset, classes, deadline, true);
drivers/ata/libata-eh.c
3036
trace_ata_link_softreset_end(link, classes, rc);
drivers/ata/libata-eh.c
3038
failed_link = link;
drivers/ata/libata-eh.c
3044
ata_link_info(link,
drivers/ata/libata-eh.c
3053
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3072
if (sata_scr_read(link, SCR_STATUS, &sstatus) == 0)
drivers/ata/libata-eh.c
3073
link->sata_spd = (sstatus >> 4) & 0xf;
drivers/ata/libata-eh.c
3078
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
3089
postreset(link, classes);
drivers/ata/libata-eh.c
3090
trace_ata_link_postreset(link, classes, rc);
drivers/ata/libata-eh.c
3098
spin_lock_irqsave(link->ap->lock, flags);
drivers/ata/libata-eh.c
3099
link->eh_info.serror = 0;
drivers/ata/libata-eh.c
3102
spin_unlock_irqrestore(link->ap->lock, flags);
drivers/ata/libata-eh.c
3113
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3135
ata_link_warn(link,
drivers/ata/libata-eh.c
3138
failed_link = link;
drivers/ata/libata-eh.c
3142
ata_link_warn(link,
drivers/ata/libata-eh.c
3148
ata_eh_done(link, NULL, ATA_EH_RESET);
drivers/ata/libata-eh.c
3153
link->lpm_policy = ATA_LPM_UNKNOWN; /* reset LPM state */
drivers/ata/libata-eh.c
3170
if (!ata_is_host_link(link) &&
drivers/ata/libata-eh.c
3171
sata_scr_read(link, SCR_STATUS, &sstatus))
drivers/ata/libata-eh.c
3181
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
3183
ata_link_warn(link, "%s failed\n",
drivers/ata/libata-eh.c
3207
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
3213
sata_down_spd_limit(link, 0);
drivers/ata/libata-eh.c
3226
struct ata_link *link;
drivers/ata/libata-eh.c
3258
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3259
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3260
struct ata_eh_info *ehi = &link->eh_info;
drivers/ata/libata-eh.c
3262
link->eh_context.i.dev_action[dev->devno] |=
drivers/ata/libata-eh.c
3264
ata_eh_clear_action(link, dev, ehi, ATA_EH_PARK);
drivers/ata/libata-eh.c
3272
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
3298
static int ata_eh_revalidate_and_attach(struct ata_link *link,
drivers/ata/libata-eh.c
3301
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
3302
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3312
ata_for_each_dev(dev, link, ALL_REVERSE) {
drivers/ata/libata-eh.c
333
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
3332
if (link->lpm_policy > ATA_LPM_MAX_POWER) {
drivers/ata/libata-eh.c
3333
rc = ata_eh_link_set_lpm(link, ATA_LPM_MAX_POWER,
drivers/ata/libata-eh.c
3344
ata_eh_about_to_do(link, dev, ATA_EH_REVALIDATE);
drivers/ata/libata-eh.c
3350
ata_eh_done(link, dev, ATA_EH_REVALIDATE);
drivers/ata/libata-eh.c
3400
if ((ehc->i.flags & ATA_EHI_DID_RESET) && ata_is_host_link(link)) {
drivers/ata/libata-eh.c
3409
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3457
static int ata_eh_set_mode(struct ata_link *link,
drivers/ata/libata-eh.c
3460
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
3465
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
3477
rc = ap->ops->set_mode(link, r_failed_dev);
drivers/ata/libata-eh.c
3479
rc = ata_set_mode(link, r_failed_dev);
drivers/ata/libata-eh.c
3482
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
3483
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3562
struct ata_link *link = dev->link;
drivers/ata/libata-eh.c
3563
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
3570
if (!ata_tag_valid(link->active_tag))
drivers/ata/libata-eh.c
3573
qc = __ata_qc_from_tag(ap, link->active_tag);
drivers/ata/libata-eh.c
358
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
3619
int ata_link_nr_enabled(struct ata_link *link)
drivers/ata/libata-eh.c
3624
ata_for_each_dev(dev, link, ENABLED)
drivers/ata/libata-eh.c
3629
static int ata_link_nr_vacant(struct ata_link *link)
drivers/ata/libata-eh.c
3634
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
3640
static int ata_eh_skip_recovery(struct ata_link *link)
drivers/ata/libata-eh.c
3642
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
3643
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3647
if (link->flags & ATA_LFLAG_DISABLED)
drivers/ata/libata-eh.c
3655
if (ata_port_is_frozen(ap) || ata_link_nr_enabled(link))
drivers/ata/libata-eh.c
3664
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3689
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
3690
struct ata_link *link = ata_dev_phys_link(dev);
drivers/ata/libata-eh.c
3705
if (link->lpm_policy > ATA_LPM_MAX_POWER) {
drivers/ata/libata-eh.c
3706
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
3707
link->ap->ops->set_lpm(link, ATA_LPM_MAX_POWER,
drivers/ata/libata-eh.c
3710
sata_pmp_set_lpm(link, ATA_LPM_MAX_POWER,
drivers/ata/libata-eh.c
3731
sata_down_spd_limit(link, 1);
drivers/ata/libata-eh.c
3738
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
3810
struct ata_link *link;
drivers/ata/libata-eh.c
3816
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3817
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3821
ata_eh_about_to_do(link, NULL, ATA_EH_ENABLE_LINK);
drivers/ata/libata-eh.c
3823
link->flags &= ~ATA_LFLAG_DISABLED;
drivers/ata/libata-eh.c
3825
ata_eh_done(link, NULL, ATA_EH_ENABLE_LINK);
drivers/ata/libata-eh.c
3828
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3829
if (link->flags & ATA_LFLAG_NO_RETRY)
drivers/ata/libata-eh.c
3857
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3858
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3861
if (ata_eh_skip_recovery(link))
drivers/ata/libata-eh.c
3864
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
3869
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3870
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3875
rc = ata_eh_reset(link, ata_link_nr_vacant(link), reset_ops);
drivers/ata/libata-eh.c
3877
ata_link_err(link, "reset failed, giving up\n");
drivers/ata/libata-eh.c
3892
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3893
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3894
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3924
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3925
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3926
if (!(link->eh_context.unloaded_mask &
drivers/ata/libata-eh.c
3931
ata_eh_done(link, dev, ATA_EH_PARK);
drivers/ata/libata-eh.c
3937
ata_for_each_link(link, ap, PMP_FIRST) {
drivers/ata/libata-eh.c
3938
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3940
if (sata_pmp_attached(ap) && ata_is_host_link(link))
drivers/ata/libata-eh.c
3944
rc = ata_eh_revalidate_and_attach(link, &dev);
drivers/ata/libata-eh.c
3949
if (link->device->class == ATA_DEV_PMP) {
drivers/ata/libata-eh.c
3956
rc = ata_eh_set_mode(link, &dev);
drivers/ata/libata-eh.c
3966
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3981
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
3984
ata_eh_done(link, dev, ATA_EH_SET_ACTIVE);
drivers/ata/libata-eh.c
3989
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
4000
if (link->lpm_policy != ap->target_lpm_policy) {
drivers/ata/libata-eh.c
4001
rc = ata_eh_link_set_lpm(link, ap->target_lpm_policy,
drivers/ata/libata-eh.c
4031
*r_failed_link = link;
drivers/ata/libata-eh.c
4107
struct ata_link *link = &ap->link;
drivers/ata/libata-eh.c
4113
!sata_scr_valid(link))
drivers/ata/libata-eh.c
4114
link->flags |= ATA_LFLAG_NO_HRST;
drivers/ata/libata-eh.c
4123
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
4146
struct ata_link *link;
drivers/ata/libata-eh.c
4169
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-eh.c
4170
ata_for_each_dev(dev, link, ENABLED)
drivers/ata/libata-eh.c
4181
ata_for_each_dev(dev, &ap->link, ENABLED) {
drivers/ata/libata-eh.c
4220
struct ata_link *link;
drivers/ata/libata-eh.c
4242
ata_for_each_link(link, ap, HOST_FIRST)
drivers/ata/libata-eh.c
4243
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
429
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
434
static void ata_eh_clear_action(struct ata_link *link, struct ata_device *dev,
drivers/ata/libata-eh.c
441
ata_for_each_dev(tdev, link, ALL)
drivers/ata/libata-eh.c
449
ata_for_each_dev(tdev, link, ALL)
drivers/ata/libata-eh.c
512
struct ata_link *link;
drivers/ata/libata-eh.c
521
ata_for_each_link(link, ap, PMP_FIRST) {
drivers/ata/libata-eh.c
522
ata_for_each_dev(dev, link, ENABLED)
drivers/ata/libata-eh.c
531
ata_for_each_link(link, ap, PMP_FIRST) {
drivers/ata/libata-eh.c
532
sata_scr_write(link, SCR_CONTROL, link->saved_scontrol & 0xff0);
drivers/ata/libata-eh.c
533
ata_for_each_dev(dev, link, ENABLED)
drivers/ata/libata-eh.c
712
struct ata_link *link;
drivers/ata/libata-eh.c
726
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-eh.c
727
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
730
memset(&link->eh_context, 0, sizeof(link->eh_context));
drivers/ata/libata-eh.c
731
link->eh_context.i = link->eh_info;
drivers/ata/libata-eh.c
732
memset(&link->eh_info, 0, sizeof(link->eh_info));
drivers/ata/libata-eh.c
734
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
788
ata_for_each_link(link, ap, HOST_FIRST)
drivers/ata/libata-eh.c
789
memset(&link->eh_info, 0, sizeof(link->eh_info));
drivers/ata/libata-pmp.c
1023
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
1024
if (!(gscr_error & (1 << link->pmp)))
drivers/ata/libata-pmp.c
1027
if (sata_pmp_handle_link_fail(link, link_tries)) {
drivers/ata/libata-pmp.c
1028
ata_ehi_hotplugged(&link->eh_context.i);
drivers/ata/libata-pmp.c
1031
ata_link_warn(link,
drivers/ata/libata-pmp.c
1033
ata_link_warn(link,
drivers/ata/libata-pmp.c
1047
if (sata_pmp_handle_link_fail(link, link_tries)) {
drivers/ata/libata-pmp.c
111
struct ata_link *link = qc->dev->link;
drivers/ata/libata-pmp.c
112
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
114
if (ap->excl_link == NULL || ap->excl_link == link) {
drivers/ata/libata-pmp.c
115
if (ap->nr_active_links == 0 || ata_link_active(link)) {
drivers/ata/libata-pmp.c
120
ap->excl_link = link;
drivers/ata/libata-pmp.c
141
int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *r_val)
drivers/ata/libata-pmp.c
148
err_mask = sata_pmp_read(link, reg, r_val);
drivers/ata/libata-pmp.c
150
ata_link_warn(link, "failed to read SCR %d (Emask=0x%x)\n",
drivers/ata/libata-pmp.c
172
int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val)
drivers/ata/libata-pmp.c
179
err_mask = sata_pmp_write(link, reg, val);
drivers/ata/libata-pmp.c
181
ata_link_warn(link, "failed to write SCR %d (Emask=0x%x)\n",
drivers/ata/libata-pmp.c
203
int sata_pmp_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/libata-pmp.c
206
return sata_link_scr_lpm(link, policy, true);
drivers/ata/libata-pmp.c
232
err_mask = sata_pmp_read(dev->link, reg, &gscr[reg]);
drivers/ata/libata-pmp.c
260
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-pmp.c
281
err_mask = sata_pmp_write(dev->link, SATA_PMP_GSCR_ERROR_EN,
drivers/ata/libata-pmp.c
298
err_mask = sata_pmp_read(&ap->link, PMP_GSCR_SII_POL, &reg);
drivers/ata/libata-pmp.c
305
err_mask = sata_pmp_write(&ap->link, PMP_GSCR_SII_POL, reg);
drivers/ata/libata-pmp.c
361
struct ata_link *link = &pmp_link[i];
drivers/ata/libata-pmp.c
362
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-pmp.c
364
link->flags = 0;
drivers/ata/libata-pmp.c
38
static unsigned int sata_pmp_read(struct ata_link *link, int reg, u32 *r_val)
drivers/ata/libata-pmp.c
380
u32 *gscr = ap->link.device->gscr;
drivers/ata/libata-pmp.c
383
struct ata_link *link;
drivers/ata/libata-pmp.c
387
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
389
link->flags |= ATA_LFLAG_NO_LPM;
drivers/ata/libata-pmp.c
395
if (link->pmp < 5)
drivers/ata/libata-pmp.c
396
link->flags |= ATA_LFLAG_NO_SRST |
drivers/ata/libata-pmp.c
40
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
400
if (link->pmp == 5)
drivers/ata/libata-pmp.c
401
link->flags |= ATA_LFLAG_NO_SRST |
drivers/ata/libata-pmp.c
41
struct ata_device *pmp_dev = ap->link.device;
drivers/ata/libata-pmp.c
412
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-pmp.c
413
link->flags |= ATA_LFLAG_NO_LPM |
drivers/ata/libata-pmp.c
418
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
420
link->flags |= ATA_LFLAG_NO_LPM;
drivers/ata/libata-pmp.c
427
if (link->pmp <= 5)
drivers/ata/libata-pmp.c
428
link->flags |= ATA_LFLAG_NO_SRST |
drivers/ata/libata-pmp.c
434
if (link->pmp == 6)
drivers/ata/libata-pmp.c
435
link->flags |= ATA_LFLAG_NO_SRST |
drivers/ata/libata-pmp.c
454
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
458
link->flags |= ATA_LFLAG_NO_LPM |
drivers/ata/libata-pmp.c
464
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
466
if (link->pmp == 4)
drivers/ata/libata-pmp.c
467
link->flags |= ATA_LFLAG_DISABLED;
drivers/ata/libata-pmp.c
487
struct ata_link *link = dev->link;
drivers/ata/libata-pmp.c
488
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
499
if (!ata_is_host_link(link)) {
drivers/ata/libata-pmp.c
50
tf.device = link->pmp;
drivers/ata/libata-pmp.c
509
WARN_ON(link->pmp != 0);
drivers/ata/libata-pmp.c
510
link->pmp = SATA_PMP_CTRL_PORT;
drivers/ata/libata-pmp.c
545
link->pmp = 0;
drivers/ata/libata-pmp.c
561
struct ata_link *link = dev->link;
drivers/ata/libata-pmp.c
562
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
568
WARN_ON(!ata_is_host_link(link) || dev->devno ||
drivers/ata/libata-pmp.c
569
link->pmp != SATA_PMP_CTRL_PORT);
drivers/ata/libata-pmp.c
579
link->pmp = 0;
drivers/ata/libata-pmp.c
650
struct ata_link *link = dev->link;
drivers/ata/libata-pmp.c
654
ata_eh_about_to_do(link, NULL, ATA_EH_REVALIDATE);
drivers/ata/libata-pmp.c
684
ata_eh_done(link, NULL, ATA_EH_REVALIDATE);
drivers/ata/libata-pmp.c
710
err_mask = sata_pmp_read(dev->link, SATA_PMP_GSCR_PROD_ID, &prod_id);
drivers/ata/libata-pmp.c
746
struct ata_link *link = &ap->link;
drivers/ata/libata-pmp.c
747
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-pmp.c
748
struct ata_device *dev = link->device;
drivers/ata/libata-pmp.c
75
static unsigned int sata_pmp_write(struct ata_link *link, int reg, u32 val)
drivers/ata/libata-pmp.c
766
rc = ata_eh_reset(link, 0, reset_ops);
drivers/ata/libata-pmp.c
768
ata_link_err(link, "failed to reset PMP, giving up\n");
drivers/ata/libata-pmp.c
77
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
78
struct ata_device *pmp_dev = ap->link.device;
drivers/ata/libata-pmp.c
802
sata_down_spd_limit(link, 0);
drivers/ata/libata-pmp.c
833
struct ata_link *link;
drivers/ata/libata-pmp.c
839
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
840
if (!(link->flags & ATA_LFLAG_DISABLED))
drivers/ata/libata-pmp.c
848
sata_link_hardreset(link, sata_deb_timing_normal,
drivers/ata/libata-pmp.c
853
rc = sata_scr_write(link, SCR_ERROR, SERR_PHYRDY_CHG);
drivers/ata/libata-pmp.c
855
ata_link_err(link,
drivers/ata/libata-pmp.c
86
tf.device = link->pmp;
drivers/ata/libata-pmp.c
869
static int sata_pmp_handle_link_fail(struct ata_link *link, int *link_tries)
drivers/ata/libata-pmp.c
871
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
874
if (link_tries[link->pmp] && --link_tries[link->pmp])
drivers/ata/libata-pmp.c
878
if (!(link->flags & ATA_LFLAG_DISABLED)) {
drivers/ata/libata-pmp.c
879
ata_link_warn(link,
drivers/ata/libata-pmp.c
884
link->flags |= ATA_LFLAG_DISABLED;
drivers/ata/libata-pmp.c
888
ata_dev_disable(link->device);
drivers/ata/libata-pmp.c
889
link->eh_context.i.action = 0;
drivers/ata/libata-pmp.c
913
struct ata_link *pmp_link = &ap->link;
drivers/ata/libata-pmp.c
917
struct ata_link *link;
drivers/ata/libata-pmp.c
924
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-pmp.c
925
link_tries[link->pmp] = ATA_EH_PMP_LINK_TRIES;
drivers/ata/libata-pmp.c
932
ata_for_each_dev(dev, &ap->link, ALL)
drivers/ata/libata-pmp.c
941
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-pmp.c
942
link_tries[link->pmp] = ATA_EH_PMP_LINK_TRIES;
drivers/ata/libata-pmp.c
974
rc = ata_eh_recover(ap, &ops->pmp_reset, &link);
drivers/ata/libata-pmp.c
979
rc = sata_scr_read(&ap->link, SCR_NOTIFICATION, &sntf);
drivers/ata/libata-pmp.c
981
sata_scr_write(&ap->link, SCR_NOTIFICATION, sntf);
drivers/ata/libata-pmp.c
987
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-pmp.c
988
if (link->lpm_policy > ATA_LPM_MAX_POWER)
drivers/ata/libata-sata.c
101
return sata_pmp_scr_write(link, reg, val);
drivers/ata/libata-sata.c
120
int sata_scr_write_flush(struct ata_link *link, int reg, u32 val)
drivers/ata/libata-sata.c
122
if (ata_is_host_link(link)) {
drivers/ata/libata-sata.c
125
if (sata_scr_valid(link)) {
drivers/ata/libata-sata.c
126
rc = link->ap->ops->scr_write(link, reg, val);
drivers/ata/libata-sata.c
128
rc = link->ap->ops->scr_read(link, reg, &val);
drivers/ata/libata-sata.c
134
return sata_pmp_scr_write(link, reg, val);
drivers/ata/libata-sata.c
1365
return ata_scsi_dev_config(sdev, lim, ap->link.device);
drivers/ata/libata-sata.c
1383
if (likely(ata_dev_enabled(ap->link.device)))
drivers/ata/libata-sata.c
1384
rc = __ata_scsi_queuecmd(cmd, ap->link.device);
drivers/ata/libata-sata.c
1414
rc = sata_scr_read(&ap->link, SCR_NOTIFICATION, &sntf);
drivers/ata/libata-sata.c
1416
sata_scr_write(&ap->link, SCR_NOTIFICATION, sntf);
drivers/ata/libata-sata.c
1425
struct ata_device *dev = ap->link.device;
drivers/ata/libata-sata.c
1442
struct ata_link *link;
drivers/ata/libata-sata.c
1445
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-sata.c
1446
if (!(sntf & (1 << link->pmp)))
drivers/ata/libata-sata.c
1449
if ((link->device->class == ATA_DEV_ATAPI) &&
drivers/ata/libata-sata.c
1450
(link->device->flags & ATA_DFLAG_AN))
drivers/ata/libata-sata.c
1451
ata_scsi_media_change_notify(link->device);
drivers/ata/libata-sata.c
1538
int ata_eh_get_ncq_success_sense(struct ata_link *link)
drivers/ata/libata-sata.c
1540
struct ata_device *dev = link->device;
drivers/ata/libata-sata.c
1541
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-sata.c
1575
ata_dev_phys_link(qc->dev) != link)
drivers/ata/libata-sata.c
1636
void ata_eh_analyze_ncq_error(struct ata_link *link)
drivers/ata/libata-sata.c
1638
struct ata_port *ap = link->ap;
drivers/ata/libata-sata.c
1639
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-sata.c
1640
struct ata_device *dev = link->device;
drivers/ata/libata-sata.c
1650
if (!link->sactive || !(ehc->i.err_mask & AC_ERR_DEV))
drivers/ata/libata-sata.c
1666
ata_link_err(link, "failed to read log page 10h (errno=%d)\n",
drivers/ata/libata-sata.c
1671
if (!(link->sactive & BIT(tag))) {
drivers/ata/libata-sata.c
1672
ata_link_err(link, "log page 10h reported inactive tag %d\n",
drivers/ata/libata-sata.c
1703
ata_dev_phys_link(qc->dev) != link)
drivers/ata/libata-sata.c
235
int sata_link_debounce(struct ata_link *link, const unsigned int *params,
drivers/ata/libata-sata.c
248
if ((rc = sata_scr_read(link, SCR_STATUS, &cur)))
drivers/ata/libata-sata.c
256
ata_msleep(link->ap, interval);
drivers/ata/libata-sata.c
257
if ((rc = sata_scr_read(link, SCR_STATUS, &cur)))
drivers/ata/libata-sata.c
298
int sata_link_resume(struct ata_link *link, const unsigned int *params,
drivers/ata/libata-sata.c
305
if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol)))
drivers/ata/libata-sata.c
315
if ((rc = sata_scr_write(link, SCR_CONTROL, scontrol)))
drivers/ata/libata-sata.c
322
if (!(link->flags & ATA_LFLAG_NO_DEBOUNCE_DELAY))
drivers/ata/libata-sata.c
323
ata_msleep(link->ap, 200);
drivers/ata/libata-sata.c
326
if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol)))
drivers/ata/libata-sata.c
331
ata_link_warn(link, "failed to resume link (SControl %X)\n",
drivers/ata/libata-sata.c
337
ata_link_warn(link, "link resume succeeded after %d retries\n",
drivers/ata/libata-sata.c
340
if ((rc = sata_link_debounce(link, params, deadline)))
drivers/ata/libata-sata.c
344
if (!(rc = sata_scr_read(link, SCR_ERROR, &serror)))
drivers/ata/libata-sata.c
345
rc = sata_scr_write(link, SCR_ERROR, serror);
drivers/ata/libata-sata.c
369
int sata_link_scr_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/libata-sata.c
372
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-sata.c
377
rc = sata_scr_read(link, SCR_CONTROL, &scontrol);
drivers/ata/libata-sata.c
399
if (ata_link_nr_enabled(link) > 0) {
drivers/ata/libata-sata.c
407
if (link->ap->host->flags & ATA_HOST_NO_PART)
drivers/ata/libata-sata.c
41
int sata_scr_valid(struct ata_link *link)
drivers/ata/libata-sata.c
410
if (link->ap->host->flags & ATA_HOST_NO_SSC)
drivers/ata/libata-sata.c
413
if (link->ap->host->flags & ATA_HOST_NO_DEVSLP)
drivers/ata/libata-sata.c
425
rc = sata_scr_write(link, SCR_CONTROL, scontrol);
drivers/ata/libata-sata.c
43
struct ata_port *ap = link->ap;
drivers/ata/libata-sata.c
435
return sata_scr_write(link, SCR_ERROR, SERR_PHYRDY_CHG);
drivers/ata/libata-sata.c
439
static int __sata_set_spd_needed(struct ata_link *link, u32 *scontrol)
drivers/ata/libata-sata.c
441
struct ata_link *host_link = &link->ap->link;
drivers/ata/libata-sata.c
444
limit = link->sata_spd_limit;
drivers/ata/libata-sata.c
450
if (!ata_is_host_link(link) && host_link->sata_spd)
drivers/ata/libata-sata.c
479
static int sata_set_spd_needed(struct ata_link *link)
drivers/ata/libata-sata.c
483
if (sata_scr_read(link, SCR_CONTROL, &scontrol))
drivers/ata/libata-sata.c
486
return __sata_set_spd_needed(link, &scontrol);
drivers/ata/libata-sata.c
502
int sata_set_spd(struct ata_link *link)
drivers/ata/libata-sata.c
507
if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol)))
drivers/ata/libata-sata.c
510
if (!__sata_set_spd_needed(link, &scontrol))
drivers/ata/libata-sata.c
513
if ((rc = sata_scr_write(link, SCR_CONTROL, scontrol)))
drivers/ata/libata-sata.c
540
int sata_down_spd_limit(struct ata_link *link, u32 spd_limit)
drivers/ata/libata-sata.c
545
if (!sata_scr_valid(link))
drivers/ata/libata-sata.c
551
rc = sata_scr_read(link, SCR_STATUS, &sstatus);
drivers/ata/libata-sata.c
555
spd = link->sata_spd;
drivers/ata/libata-sata.c
557
mask = link->sata_spd_limit;
drivers/ata/libata-sata.c
576
else if (link->sata_spd)
drivers/ata/libata-sata.c
592
link->sata_spd_limit = mask;
drivers/ata/libata-sata.c
594
ata_link_warn(link, "limiting SATA link speed to %s\n",
drivers/ata/libata-sata.c
624
int sata_link_hardreset(struct ata_link *link, const unsigned int *timing,
drivers/ata/libata-sata.c
634
if (sata_set_spd_needed(link)) {
drivers/ata/libata-sata.c
640
if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol)))
drivers/ata/libata-sata.c
645
if ((rc = sata_scr_write(link, SCR_CONTROL, scontrol)))
drivers/ata/libata-sata.c
648
sata_set_spd(link);
drivers/ata/libata-sata.c
65
int sata_scr_read(struct ata_link *link, int reg, u32 *val)
drivers/ata/libata-sata.c
652
if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol)))
drivers/ata/libata-sata.c
657
if ((rc = sata_scr_write_flush(link, SCR_CONTROL, scontrol)))
drivers/ata/libata-sata.c
663
ata_msleep(link->ap, 1);
drivers/ata/libata-sata.c
666
rc = sata_link_resume(link, timing, deadline);
drivers/ata/libata-sata.c
67
if (ata_is_host_link(link)) {
drivers/ata/libata-sata.c
670
if (ata_phys_link_offline(link))
drivers/ata/libata-sata.c
677
if (sata_pmp_supported(link->ap) && ata_is_host_link(link)) {
drivers/ata/libata-sata.c
68
if (sata_scr_valid(link))
drivers/ata/libata-sata.c
69
return link->ap->ops->scr_read(link, reg, val);
drivers/ata/libata-sata.c
690
ata_wait_ready(link, pmp_deadline, check_ready);
drivers/ata/libata-sata.c
698
rc = ata_wait_ready(link, deadline, check_ready);
drivers/ata/libata-sata.c
723
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/libata-sata.c
726
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
drivers/ata/libata-sata.c
73
return sata_pmp_scr_read(link, reg, val);
drivers/ata/libata-sata.c
730
rc = sata_link_hardreset(link, timing, deadline, &online, NULL);
drivers/ata/libata-sata.c
847
struct ata_link *link;
drivers/ata/libata-sata.c
852
link = kzalloc_obj(*link);
drivers/ata/libata-sata.c
853
if (!link)
drivers/ata/libata-sata.c
856
ata_link_init(ap, link, 1);
drivers/ata/libata-sata.c
857
ap->slave_link = link;
drivers/ata/libata-sata.c
874
bool sata_lpm_ignore_phy_events(struct ata_link *link)
drivers/ata/libata-sata.c
876
unsigned long lpm_timeout = link->last_lpm_change +
drivers/ata/libata-sata.c
880
if (link->lpm_policy > ATA_LPM_MAX_POWER)
drivers/ata/libata-sata.c
886
if ((link->flags & ATA_LFLAG_CHANGED) &&
drivers/ata/libata-sata.c
909
struct ata_link *link;
drivers/ata/libata-sata.c
915
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-sata.c
916
ata_for_each_dev(dev, &ap->link, ENABLED) {
drivers/ata/libata-sata.c
93
int sata_scr_write(struct ata_link *link, int reg, u32 val)
drivers/ata/libata-sata.c
95
if (ata_is_host_link(link)) {
drivers/ata/libata-sata.c
96
if (sata_scr_valid(link))
drivers/ata/libata-sata.c
97
return link->ap->ops->scr_write(link, reg, val);
drivers/ata/libata-scsi.c
1152
struct device_link *link;
drivers/ata/libata-scsi.c
116
link = dev->link;
drivers/ata/libata-scsi.c
1161
link = device_link_add(&sdev->sdev_gendev, &ap->tdev,
drivers/ata/libata-scsi.c
1164
if (!link) {
drivers/ata/libata-scsi.c
119
link->eh_context.unloaded_mask & (1 << dev->devno) &&
drivers/ata/libata-scsi.c
173
dev->link->eh_info.dev_action[dev->devno] |= ATA_EH_PARK;
drivers/ata/libata-scsi.c
1853
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-scsi.c
3036
int link_max_devices = ata_link_max_devices(&ap->link);
drivers/ata/libata-scsi.c
3039
return &ap->link.device[0];
drivers/ata/libata-scsi.c
3042
return &ap->link.device[devno];
drivers/ata/libata-scsi.c
402
dev->link->eh_info.action |= ATA_EH_RESET;
drivers/ata/libata-scsi.c
4430
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-scsi.c
4683
struct ata_link *link;
drivers/ata/libata-scsi.c
4687
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-scsi.c
4688
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-scsi.c
4695
if (ata_is_host_link(link))
drivers/ata/libata-scsi.c
4698
channel = link->pmp;
drivers/ata/libata-scsi.c
4716
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-scsi.c
4717
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-scsi.c
4723
if (!link)
drivers/ata/libata-scsi.c
4788
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-scsi.c
4835
static void ata_scsi_handle_link_detach(struct ata_link *link)
drivers/ata/libata-scsi.c
4837
struct ata_port *ap = link->ap;
drivers/ata/libata-scsi.c
4840
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-scsi.c
4900
ata_scsi_handle_link_detach(&ap->link);
drivers/ata/libata-scsi.c
4950
struct ata_link *link;
drivers/ata/libata-scsi.c
4952
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-scsi.c
4953
struct ata_eh_info *ehi = &link->eh_info;
drivers/ata/libata-scsi.c
4961
struct ata_eh_info *ehi = &dev->link->eh_info;
drivers/ata/libata-scsi.c
4992
struct ata_link *link;
drivers/ata/libata-scsi.c
5001
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-scsi.c
5002
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-scsi.c
745
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-scsi.c
97
struct ata_link *link;
drivers/ata/libata-sff.c
1176
void ata_sff_queue_pio_task(struct ata_link *link, unsigned long delay)
drivers/ata/libata-sff.c
1178
struct ata_port *ap = link->ap;
drivers/ata/libata-sff.c
1181
(ap->sff_pio_task_link != link));
drivers/ata/libata-sff.c
1182
ap->sff_pio_task_link = link;
drivers/ata/libata-sff.c
1214
struct ata_link *link = ap->sff_pio_task_link;
drivers/ata/libata-sff.c
1223
qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/libata-sff.c
1247
ata_sff_queue_pio_task(link, ATA_SHORT_PAUSE);
drivers/ata/libata-sff.c
1285
struct ata_link *link = qc->dev->link;
drivers/ata/libata-sff.c
1306
ata_sff_queue_pio_task(link, 0);
drivers/ata/libata-sff.c
1319
ata_sff_queue_pio_task(link, 0);
drivers/ata/libata-sff.c
1329
ata_sff_queue_pio_task(link, 0);
drivers/ata/libata-sff.c
1351
ata_sff_queue_pio_task(link, 0);
drivers/ata/libata-sff.c
1479
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/libata-sff.c
1572
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/libata-sff.c
1653
int ata_sff_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/libata-sff.c
1655
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-sff.c
1659
ata_std_prereset(link, deadline);
drivers/ata/libata-sff.c
1666
if (!ata_link_offline(link)) {
drivers/ata/libata-sff.c
1667
rc = ata_sff_wait_ready(link, deadline);
drivers/ata/libata-sff.c
1669
ata_link_warn(link,
drivers/ata/libata-sff.c
1749
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-sff.c
1816
int ata_sff_wait_after_reset(struct ata_link *link, unsigned int devmask,
drivers/ata/libata-sff.c
1819
struct ata_port *ap = link->ap;
drivers/ata/libata-sff.c
1828
rc = ata_sff_wait_ready(link, deadline);
drivers/ata/libata-sff.c
1857
rc = ata_sff_wait_ready(link, deadline);
drivers/ata/libata-sff.c
186
static int ata_sff_check_ready(struct ata_link *link)
drivers/ata/libata-sff.c
188
u8 status = link->ap->ops->sff_check_status(link->ap);
drivers/ata/libata-sff.c
1892
return ata_sff_wait_after_reset(&ap->link, devmask, deadline);
drivers/ata/libata-sff.c
1909
int ata_sff_softreset(struct ata_link *link, unsigned int *classes,
drivers/ata/libata-sff.c
1912
struct ata_port *ap = link->ap;
drivers/ata/libata-sff.c
1930
if (rc && (rc != -ENODEV || sata_scr_valid(link))) {
drivers/ata/libata-sff.c
1931
ata_link_err(link, "SRST failed (errno=%d)\n", rc);
drivers/ata/libata-sff.c
1936
classes[0] = ata_sff_dev_classify(&link->device[0],
drivers/ata/libata-sff.c
1939
classes[1] = ata_sff_dev_classify(&link->device[1],
drivers/ata/libata-sff.c
1961
int sata_sff_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/libata-sff.c
1964
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-sff.c
1969
rc = sata_link_hardreset(link, timing, deadline, &online,
drivers/ata/libata-sff.c
1972
*class = ata_sff_dev_classify(link->device, 1, NULL);
drivers/ata/libata-sff.c
1990
void ata_sff_postreset(struct ata_link *link, unsigned int *classes)
drivers/ata/libata-sff.c
1992
struct ata_port *ap = link->ap;
drivers/ata/libata-sff.c
1994
ata_std_postreset(link, classes);
drivers/ata/libata-sff.c
2060
qc = __ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/libata-sff.c
207
int ata_sff_wait_ready(struct ata_link *link, unsigned long deadline)
drivers/ata/libata-sff.c
209
return ata_wait_ready(link, deadline, ata_sff_check_ready);
drivers/ata/libata-sff.c
2643
struct ata_link *link = qc->dev->link;
drivers/ata/libata-sff.c
2677
ata_sff_queue_pio_task(link, 0);
drivers/ata/libata-sff.c
2704
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/libata-sff.c
2777
qc = __ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/libata-sff.c
295
if (can_sleep && ap->link.device[device].class == ATA_DEV_ATAPI)
drivers/ata/libata-sff.c
478
struct ata_port *ap = qc->dev->link->ap;
drivers/ata/libata-sff.c
534
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-sff.c
735
struct ata_eh_info *ehi = &dev->link->eh_info;
drivers/ata/libata-sff.c
803
struct ata_eh_info *ehi = &dev->link->eh_info;
drivers/ata/libata-sff.c
918
struct ata_link *link = qc->dev->link;
drivers/ata/libata-sff.c
919
struct ata_eh_info *ehi = &link->eh_info;
drivers/ata/libata-transport.c
256
ata_tlink_delete(&ap->link);
drivers/ata/libata-transport.c
312
error = ata_tlink_add(&ap->link);
drivers/ata/libata-transport.c
571
struct ata_link *link = ata_dev->link;
drivers/ata/libata-transport.c
572
struct ata_port *ap = link->ap;
drivers/ata/libata-transport.c
576
dev->parent = &link->tdev;
drivers/ata/libata-transport.c
578
if (ata_is_host_link(link))
drivers/ata/libata-transport.c
581
dev_set_name(dev, "dev%d.%d.0", ap->print_id, link->pmp);
drivers/ata/libata-transport.c
615
struct ata_link *link = transport_class_to_link(dev); \
drivers/ata/libata-transport.c
618
sata_spd_string(format(link->field))); \
drivers/ata/libata-transport.c
665
void ata_tlink_delete(struct ata_link *link)
drivers/ata/libata-transport.c
667
struct device *dev = &link->tdev;
drivers/ata/libata-transport.c
670
ata_for_each_dev(ata_dev, link, ALL) {
drivers/ata/libata-transport.c
689
int ata_tlink_add(struct ata_link *link)
drivers/ata/libata-transport.c
691
struct device *dev = &link->tdev;
drivers/ata/libata-transport.c
692
struct ata_port *ap = link->ap;
drivers/ata/libata-transport.c
699
if (ata_is_host_link(link))
drivers/ata/libata-transport.c
702
dev_set_name(dev, "link%d.%d", ap->print_id, link->pmp);
drivers/ata/libata-transport.c
715
ata_for_each_dev(ata_dev, link, ALL) {
drivers/ata/libata-transport.c
722
while (--ata_dev >= link->device)
drivers/ata/libata-transport.h
8
int ata_tlink_add(struct ata_link *link);
drivers/ata/libata-transport.h
9
void ata_tlink_delete(struct ata_link *link);
drivers/ata/libata.h
100
extern int sata_link_init_spd(struct ata_link *link);
drivers/ata/libata.h
111
int sata_down_spd_limit(struct ata_link *link, u32 spd_limit);
drivers/ata/libata.h
112
int ata_eh_get_ncq_success_sense(struct ata_link *link);
drivers/ata/libata.h
114
static inline int sata_down_spd_limit(struct ata_link *link, u32 spd_limit)
drivers/ata/libata.h
118
static inline int ata_eh_get_ncq_success_sense(struct ata_link *link)
drivers/ata/libata.h
183
extern void ata_eh_about_to_do(struct ata_link *link, struct ata_device *dev,
drivers/ata/libata.h
185
extern void ata_eh_done(struct ata_link *link, struct ata_device *dev,
drivers/ata/libata.h
190
extern int ata_eh_reset(struct ata_link *link, int classify,
drivers/ata/libata.h
206
extern int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *val);
drivers/ata/libata.h
207
extern int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val);
drivers/ata/libata.h
208
extern int sata_pmp_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/libata.h
212
static inline int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *val)
drivers/ata/libata.h
217
static inline int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val)
drivers/ata/libata.h
222
static inline int sata_pmp_set_lpm(struct ata_link *link,
drivers/ata/libata.h
74
extern int ata_wait_ready(struct ata_link *link, unsigned long deadline,
drivers/ata/libata.h
75
int (*check_ready)(struct ata_link *link));
drivers/ata/libata.h
95
extern bool ata_phys_link_online(struct ata_link *link);
drivers/ata/libata.h
96
extern bool ata_phys_link_offline(struct ata_link *link);
drivers/ata/libata.h
99
extern void ata_link_init(struct ata_port *ap, struct ata_link *link, int pmp);
drivers/ata/pata_acpi.c
102
struct pata_acpi *acpi = adev->link->ap->private_data;
drivers/ata/pata_acpi.c
203
acpi->mask[0] = pacpi_discover_modes(ap, &ap->link.device[0]);
drivers/ata/pata_acpi.c
204
acpi->mask[1] = pacpi_discover_modes(ap, &ap->link.device[1]);
drivers/ata/pata_acpi.c
37
static int pacpi_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_acpi.c
39
struct ata_port *ap = link->ap;
drivers/ata/pata_acpi.c
44
return ata_sff_prereset(link, deadline);
drivers/ata/pata_ali.c
286
struct ata_eh_context *ehc = &adev->link->eh_context;
drivers/ata/pata_ali.c
341
static void ali_c2_c3_postreset(struct ata_link *link, unsigned int *classes)
drivers/ata/pata_ali.c
344
int port_bit = 4 << link->ap->port_no;
drivers/ata/pata_ali.c
355
ata_sff_postreset(link, classes);
drivers/ata/pata_amd.c
132
static int amd_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_amd.c
139
struct ata_port *ap = link->ap;
drivers/ata/pata_amd.c
145
return ata_sff_prereset(link, deadline);
drivers/ata/pata_amd.c
186
ata_for_each_dev(adev, &ap->link, ENABLED) {
drivers/ata/pata_amd.c
273
struct ata_port *ap = dev->link->ap;
drivers/ata/pata_amd.c
330
static int nv_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_amd.c
337
struct ata_port *ap = link->ap;
drivers/ata/pata_amd.c
343
return ata_sff_prereset(link, deadline);
drivers/ata/pata_arasan_cf.c
285
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/pata_arasan_cf.c
374
ata_ehi_push_desc(&qc->ap->link.eh_info, "DMA Failed: Timeout");
drivers/ata/pata_artop.c
50
static int artop62x0_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_artop.c
57
struct ata_port *ap = link->ap;
drivers/ata/pata_artop.c
65
return ata_sff_prereset(link, deadline);
drivers/ata/pata_atiixp.c
76
static int atiixp_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_atiixp.c
83
struct ata_port *ap = link->ap;
drivers/ata/pata_atiixp.c
89
return ata_sff_prereset(link, deadline);
drivers/ata/pata_buddha.c
103
static int pata_buddha_set_mode(struct ata_link *link,
drivers/ata/pata_buddha.c
108
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/pata_buddha.c
69
struct ata_port *ap = dev->link->ap;
drivers/ata/pata_cs5536.c
110
struct pci_dev *pdev = to_pci_dev(adev->link->ap->host->dev);
drivers/ata/pata_efar.c
37
static int efar_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_efar.c
43
struct ata_port *ap = link->ap;
drivers/ata/pata_efar.c
49
return ata_sff_prereset(link, deadline);
drivers/ata/pata_ep93xx.c
481
struct ata_port *ap = qc->dev->link->ap;
drivers/ata/pata_ep93xx.c
546
static int ep93xx_pata_wait_after_reset(struct ata_link *link,
drivers/ata/pata_ep93xx.c
550
struct ata_port *ap = link->ap;
drivers/ata/pata_ep93xx.c
559
rc = ata_sff_wait_ready(link, deadline);
drivers/ata/pata_ep93xx.c
593
rc = ata_sff_wait_ready(link, deadline);
drivers/ata/pata_ep93xx.c
623
return ep93xx_pata_wait_after_reset(&ap->link, devmask, deadline);
drivers/ata/pata_falcon.c
102
static int pata_falcon_set_mode(struct ata_link *link,
drivers/ata/pata_falcon.c
107
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/pata_falcon.c
49
struct ata_port *ap = dev->link->ap;
drivers/ata/pata_gayle.c
47
struct ata_port *ap = dev->link->ap;
drivers/ata/pata_gayle.c
81
static int pata_gayle_set_mode(struct ata_link *link,
drivers/ata/pata_gayle.c
86
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/pata_hpt366.c
290
static int hpt366_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_hpt366.c
292
struct ata_port *ap = link->ap;
drivers/ata/pata_hpt366.c
312
return ata_sff_prereset(link, deadline);
drivers/ata/pata_hpt37x.c
389
static int hpt37x_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_hpt37x.c
391
struct ata_port *ap = link->ap;
drivers/ata/pata_hpt37x.c
420
return ata_sff_prereset(link, deadline);
drivers/ata/pata_hpt3x2n.c
161
static int hpt3x2n_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_hpt3x2n.c
163
struct ata_port *ap = link->ap;
drivers/ata/pata_hpt3x2n.c
183
return ata_sff_prereset(link, deadline);
drivers/ata/pata_icside.c
307
static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
drivers/ata/pata_icside.c
309
struct ata_port *ap = link->ap;
drivers/ata/pata_icside.c
313
return ata_sff_postreset(link, classes);
drivers/ata/pata_it8213.c
33
static int it8213_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_it8213.c
38
struct ata_port *ap = link->ap;
drivers/ata/pata_it8213.c
43
return ata_sff_prereset(link, deadline);
drivers/ata/pata_it821x.c
395
struct ata_device *adev = &ap->link.device[device];
drivers/ata/pata_it821x.c
466
static int it821x_smart_set_mode(struct ata_link *link, struct ata_device **unused)
drivers/ata/pata_it821x.c
470
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/pata_ixp4xx_cf.c
131
struct ata_port *ap = qc->dev->link->ap;
drivers/ata/pata_jmicron.c
105
return ata_sff_prereset(link, deadline);
drivers/ata/pata_jmicron.c
42
static int jmicron_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_jmicron.c
44
struct ata_port *ap = link->ap;
drivers/ata/pata_legacy.c
158
static int legacy_set_mode(struct ata_link *link, struct ata_device **unused)
drivers/ata/pata_legacy.c
162
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/pata_legacy.c
297
ata_for_each_dev(dev, &ap->link, ALL) {
drivers/ata/pata_macio.c
1251
ehi = &ap->link.eh_info;
drivers/ata/pata_macio.c
1258
ata_for_each_dev(dev, &ap->link, ALL)
drivers/ata/pata_macio.c
830
dev = &ap->link.device[sdev->id];
drivers/ata/pata_marvell.c
62
static int marvell_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_marvell.c
64
struct ata_port *ap = link->ap;
drivers/ata/pata_marvell.c
71
return ata_sff_prereset(link, deadline);
drivers/ata/pata_mpiix.c
49
static int mpiix_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_mpiix.c
51
struct ata_port *ap = link->ap;
drivers/ata/pata_mpiix.c
58
return ata_sff_prereset(link, deadline);
drivers/ata/pata_ninja32.c
72
struct ata_device *adev = &ap->link.device[device];
drivers/ata/pata_ns87410.c
26
static int ns87410_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_ns87410.c
28
struct ata_port *ap = link->ap;
drivers/ata/pata_ns87410.c
38
return ata_sff_prereset(link, deadline);
drivers/ata/pata_octeon_cf.c
295
struct ata_port *ap = qc->dev->link->ap;
drivers/ata/pata_octeon_cf.c
334
struct ata_port *ap = qc->dev->link->ap;
drivers/ata/pata_octeon_cf.c
432
static int octeon_cf_softreset16(struct ata_link *link, unsigned int *classes,
drivers/ata/pata_octeon_cf.c
435
struct ata_port *ap = link->ap;
drivers/ata/pata_octeon_cf.c
446
rc = ata_sff_wait_after_reset(link, 1, deadline);
drivers/ata/pata_octeon_cf.c
448
ata_link_err(link, "SRST failed (errno=%d)\n", rc);
drivers/ata/pata_octeon_cf.c
453
classes[0] = ata_sff_dev_classify(&link->device[0], 1, &err);
drivers/ata/pata_octeon_cf.c
593
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/pata_octeon_cf.c
661
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/pata_octeon_cf.c
735
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/pata_oldpiix.c
38
static int oldpiix_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_oldpiix.c
40
struct ata_port *ap = link->ap;
drivers/ata/pata_oldpiix.c
50
return ata_sff_prereset(link, deadline);
drivers/ata/pata_opti.c
54
static int opti_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_opti.c
56
struct ata_port *ap = link->ap;
drivers/ata/pata_opti.c
66
return ata_sff_prereset(link, deadline);
drivers/ata/pata_optidma.c
319
static int optidma_set_mode(struct ata_link *link, struct ata_device **r_failed)
drivers/ata/pata_optidma.c
321
struct ata_port *ap = link->ap;
drivers/ata/pata_optidma.c
327
rc = ata_set_mode(link, r_failed);
drivers/ata/pata_optidma.c
332
r |= (optidma_make_bits43(&link->device[0]) +
drivers/ata/pata_optidma.c
333
(optidma_make_bits43(&link->device[0]) << 2)) << nybble;
drivers/ata/pata_optidma.c
55
static int optidma_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_optidma.c
57
struct ata_port *ap = link->ap;
drivers/ata/pata_optidma.c
66
return ata_sff_prereset(link, deadline);
drivers/ata/pata_parport/pata_parport.c
132
rc = ata_sff_wait_ready(link, deadline);
drivers/ata/pata_parport/pata_parport.c
163
return pata_parport_wait_after_reset(&ap->link, devmask, deadline);
drivers/ata/pata_parport/pata_parport.c
166
static int pata_parport_softreset(struct ata_link *link, unsigned int *classes,
drivers/ata/pata_parport/pata_parport.c
169
struct ata_port *ap = link->ap;
drivers/ata/pata_parport/pata_parport.c
186
ata_link_err(link, "SRST failed (errno=%d)\n", rc);
drivers/ata/pata_parport/pata_parport.c
191
classes[0] = ata_sff_dev_classify(&link->device[0],
drivers/ata/pata_parport/pata_parport.c
194
classes[1] = ata_sff_dev_classify(&link->device[1],
drivers/ata/pata_parport/pata_parport.c
287
struct ata_port *ap = qc->dev->link->ap;
drivers/ata/pata_parport/pata_parport.c
83
static int pata_parport_wait_after_reset(struct ata_link *link,
drivers/ata/pata_parport/pata_parport.c
87
struct ata_port *ap = link->ap;
drivers/ata/pata_parport/pata_parport.c
96
rc = ata_sff_wait_ready(link, deadline);
drivers/ata/pata_pcmcia.c
43
static int pcmcia_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
drivers/ata/pata_pcmcia.c
45
struct ata_device *master = &link->device[0];
drivers/ata/pata_pcmcia.c
46
struct ata_device *slave = &link->device[1];
drivers/ata/pata_pcmcia.c
49
return ata_set_mode(link, r_failed_dev);
drivers/ata/pata_pcmcia.c
61
return ata_set_mode(link, r_failed_dev);
drivers/ata/pata_pcmcia.c
72
static int pcmcia_set_mode_8bit(struct ata_link *link,
drivers/ata/pata_pcmcia.c
94
struct ata_port *ap = qc->dev->link->ap;
drivers/ata/pata_pdc2027x.c
238
static int pdc2027x_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_pdc2027x.c
241
if (!pdc2027x_port_enabled(link->ap))
drivers/ata/pata_pdc2027x.c
243
return ata_sff_prereset(link, deadline);
drivers/ata/pata_pdc2027x.c
384
static int pdc2027x_set_mode(struct ata_link *link, struct ata_device **r_failed)
drivers/ata/pata_pdc2027x.c
386
struct ata_port *ap = link->ap;
drivers/ata/pata_pdc2027x.c
390
rc = ata_set_mode(link, r_failed);
drivers/ata/pata_pdc2027x.c
394
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/pata_pdc2027x.c
56
static int pdc2027x_prereset(struct ata_link *link, unsigned long deadline);
drivers/ata/pata_pdc2027x.c
62
static int pdc2027x_set_mode(struct ata_link *link, struct ata_device **r_failed);
drivers/ata/pata_platform.c
34
static int pata_platform_set_mode(struct ata_link *link, struct ata_device **unused)
drivers/ata/pata_platform.c
38
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/pata_rdc.c
60
static int rdc_pata_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_rdc.c
62
struct ata_port *ap = link->ap;
drivers/ata/pata_rdc.c
72
return ata_sff_prereset(link, deadline);
drivers/ata/pata_rz1000.c
37
static int rz1000_set_mode(struct ata_link *link, struct ata_device **unused)
drivers/ata/pata_rz1000.c
41
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/pata_sis.c
101
struct ata_port *ap = adev->link->ap;
drivers/ata/pata_sis.c
164
static int sis_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_sis.c
171
struct ata_port *ap = link->ap;
drivers/ata/pata_sis.c
180
return ata_sff_prereset(link, deadline);
drivers/ata/pata_sis.c
530
struct ata_port *ap = adev->link->ap;
drivers/ata/pata_sis.c
88
return 0x40 + (4 * adev->link->ap->port_no) + (2 * adev->devno);
drivers/ata/pata_sl82c105.c
52
static int sl82c105_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_sl82c105.c
58
struct ata_port *ap = link->ap;
drivers/ata/pata_sl82c105.c
63
return ata_sff_prereset(link, deadline);
drivers/ata/pata_triflex.c
43
static int triflex_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_triflex.c
50
struct ata_port *ap = link->ap;
drivers/ata/pata_triflex.c
56
return ata_sff_prereset(link, deadline);
drivers/ata/pata_via.c
209
static int via_pre_reset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_via.c
211
struct ata_port *ap = link->ap;
drivers/ata/pata_via.c
224
return ata_sff_prereset(link, deadline);
drivers/ata/pata_via.c
355
struct ata_host *host = dev->link->ap->host;
drivers/ata/pdc_adma.c
124
static int adma_prereset(struct ata_link *link, unsigned long deadline);
drivers/ata/pdc_adma.c
244
static int adma_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/pdc_adma.c
246
struct ata_port *ap = link->ap;
drivers/ata/pdc_adma.c
253
return ata_sff_prereset(link, deadline);
drivers/ata/pdc_adma.c
405
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/pdc_adma.c
420
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/pdc_adma.c
448
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/pdc_adma.c
462
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_dwc_460ex.c
1028
sata_dwc_scr_read(&ap->link, SCR_ACTIVE, &sactive);
drivers/ata/sata_dwc_460ex.c
1030
sata_dwc_scr_write(&ap->link, SCR_ACTIVE, sactive);
drivers/ata/sata_dwc_460ex.c
1048
static int sata_dwc_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_dwc_460ex.c
1051
struct sata_dwc_device *hsdev = HSDEV_FROM_AP(link->ap);
drivers/ata/sata_dwc_460ex.c
1054
ret = sata_sff_hardreset(link, class, deadline);
drivers/ata/sata_dwc_460ex.c
301
tag = ap->link.active_tag;
drivers/ata/sata_dwc_460ex.c
363
static int sata_dwc_scr_read(struct ata_link *link, unsigned int scr, u32 *val)
drivers/ata/sata_dwc_460ex.c
366
dev_err(link->ap->dev, "%s: Incorrect SCR offset 0x%02x\n",
drivers/ata/sata_dwc_460ex.c
371
*val = sata_dwc_readl(link->ap->ioaddr.scr_addr + (scr * 4));
drivers/ata/sata_dwc_460ex.c
372
dev_dbg(link->ap->dev, "%s: id=%d reg=%d val=0x%08x\n", __func__,
drivers/ata/sata_dwc_460ex.c
373
link->ap->print_id, scr, *val);
drivers/ata/sata_dwc_460ex.c
378
static int sata_dwc_scr_write(struct ata_link *link, unsigned int scr, u32 val)
drivers/ata/sata_dwc_460ex.c
380
dev_dbg(link->ap->dev, "%s: id=%d reg=%d val=0x%08x\n", __func__,
drivers/ata/sata_dwc_460ex.c
381
link->ap->print_id, scr, val);
drivers/ata/sata_dwc_460ex.c
383
dev_err(link->ap->dev, "%s: Incorrect SCR offset 0x%02x\n",
drivers/ata/sata_dwc_460ex.c
387
sata_dwc_writel(link->ap->ioaddr.scr_addr + (scr * 4), val);
drivers/ata/sata_dwc_460ex.c
395
sata_dwc_scr_read(&ap->link, SCR_ERROR, &val);
drivers/ata/sata_dwc_460ex.c
396
sata_dwc_scr_write(&ap->link, SCR_ERROR, val);
drivers/ata/sata_dwc_460ex.c
415
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_dwc_460ex.c
423
sata_dwc_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_dwc_460ex.c
426
tag = ap->link.active_tag;
drivers/ata/sata_dwc_460ex.c
484
ap->link.active_tag);
drivers/ata/sata_dwc_460ex.c
516
qc->ap->link.active_tag = tag;
drivers/ata/sata_dwc_460ex.c
522
sata_dwc_scr_read(&ap->link, SCR_ACTIVE, &sactive);
drivers/ata/sata_dwc_460ex.c
527
if (ap->link.active_tag == ATA_TAG_POISON)
drivers/ata/sata_dwc_460ex.c
530
tag = ap->link.active_tag;
drivers/ata/sata_dwc_460ex.c
544
qc->ap->link.active_tag = tag;
drivers/ata/sata_dwc_460ex.c
596
sata_dwc_scr_read(&ap->link, SCR_ACTIVE, &sactive);
drivers/ata/sata_dwc_460ex.c
631
qc->ap->link.active_tag = tag;
drivers/ata/sata_dwc_460ex.c
673
sata_dwc_scr_read(&ap->link, SCR_ACTIVE, &sactive2);
drivers/ata/sata_dwc_460ex.c
717
tag = ap->link.active_tag;
drivers/ata/sata_dwc_460ex.c
734
ap->link.active_tag = ATA_TAG_POISON;
drivers/ata/sata_dwc_460ex.c
980
sata_dwc_scr_read(&ap->link, SCR_ERROR, &reg);
drivers/ata/sata_fsl.c
1017
if (ata_link_online(link)) {
drivers/ata/sata_fsl.c
1060
struct ata_link *link = NULL;
drivers/ata/sata_fsl.c
1068
link = &ap->link;
drivers/ata/sata_fsl.c
1069
ehi = &link->eh_info;
drivers/ata/sata_fsl.c
1076
sata_fsl_scr_read(&ap->link, SCR_ERROR, &SError);
drivers/ata/sata_fsl.c
1078
sata_fsl_scr_write(&ap->link, SCR_ERROR, SError);
drivers/ata/sata_fsl.c
1131
link = &ap->pmp_link[dev_num];
drivers/ata/sata_fsl.c
1132
ehi = &link->eh_info;
drivers/ata/sata_fsl.c
1133
qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/sata_fsl.c
1151
qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/sata_fsl.c
1173
ata_link_abort(qc->dev->link);
drivers/ata/sata_fsl.c
1191
sata_fsl_scr_read(&ap->link, SCR_ERROR, &SError);
drivers/ata/sata_fsl.c
1211
sata_fsl_scr_write(&ap->link, SCR_ERROR,
drivers/ata/sata_fsl.c
514
ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *) &cd->cfis);
drivers/ata/sata_fsl.c
552
iowrite32(qc->dev->link->pmp, CQPMP + hcr_base);
drivers/ata/sata_fsl.c
582
static int sata_fsl_scr_write(struct ata_link *link,
drivers/ata/sata_fsl.c
585
struct sata_fsl_host_priv *host_priv = link->ap->host->private_data;
drivers/ata/sata_fsl.c
600
ata_link_dbg(link, "reg_in = %d\n", sc_reg);
drivers/ata/sata_fsl.c
606
static int sata_fsl_scr_read(struct ata_link *link,
drivers/ata/sata_fsl.c
609
struct sata_fsl_host_priv *host_priv = link->ap->host->private_data;
drivers/ata/sata_fsl.c
624
ata_link_dbg(link, "reg_in = %d\n", sc_reg);
drivers/ata/sata_fsl.c
802
static int sata_fsl_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_fsl.c
805
struct ata_port *ap = link->ap;
drivers/ata/sata_fsl.c
847
sata_set_spd(link);
drivers/ata/sata_fsl.c
880
if ((!(temp & 0x10)) || ata_link_offline(link)) {
drivers/ata/sata_fsl.c
915
static int sata_fsl_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_fsl.c
918
struct ata_port *ap = link->ap;
drivers/ata/sata_fsl.c
922
int pmp = sata_srst_pmp(link);
drivers/ata/sata_fsl.c
928
if (ata_link_offline(link)) {
drivers/ata/sata_fsl.c
941
ata_tf_init(link->device, &tf);
drivers/ata/sata_fsl.c
976
sata_fsl_scr_read(&ap->link, SCR_ERROR, &Serror);
drivers/ata/sata_highbank.c
386
static int ahci_highbank_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_highbank.c
390
struct ata_port *ap = link->ap;
drivers/ata/sata_highbank.c
403
ata_tf_init(link->device, &tf);
drivers/ata/sata_highbank.c
408
highbank_cphy_disable_overrides(link->ap->port_no);
drivers/ata/sata_highbank.c
409
rc = sata_link_hardreset(link, timing, deadline, &online, NULL);
drivers/ata/sata_highbank.c
410
highbank_cphy_override_lane(link->ap->port_no);
drivers/ata/sata_highbank.c
415
if (sata_scr_read(link, SCR_STATUS, &sstatus))
drivers/ata/sata_inic162x.c
291
static int inic_scr_read(struct ata_link *link, unsigned sc_reg, u32 *val)
drivers/ata/sata_inic162x.c
293
void __iomem *scr_addr = inic_port_base(link->ap) + PORT_SCR;
drivers/ata/sata_inic162x.c
306
static int inic_scr_write(struct ata_link *link, unsigned sc_reg, u32 val)
drivers/ata/sata_inic162x.c
308
void __iomem *scr_addr = inic_port_base(link->ap) + PORT_SCR;
drivers/ata/sata_inic162x.c
328
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_inic162x.c
385
struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_inic162x.c
605
static int inic_check_ready(struct ata_link *link)
drivers/ata/sata_inic162x.c
607
void __iomem *port_base = inic_port_base(link->ap);
drivers/ata/sata_inic162x.c
616
static int inic_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_inic162x.c
619
struct ata_port *ap = link->ap;
drivers/ata/sata_inic162x.c
622
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
drivers/ata/sata_inic162x.c
633
rc = sata_link_resume(link, timing, deadline);
drivers/ata/sata_inic162x.c
635
ata_link_warn(link,
drivers/ata/sata_inic162x.c
642
if (ata_link_online(link)) {
drivers/ata/sata_inic162x.c
646
rc = ata_wait_after_reset(link, deadline, inic_check_ready);
drivers/ata/sata_inic162x.c
649
ata_link_warn(link,
drivers/ata/sata_mv.c
1310
static int mv_scr_read(struct ata_link *link, unsigned int sc_reg_in, u32 *val)
drivers/ata/sata_mv.c
1315
*val = readl(mv_ap_base(link->ap) + ofs);
drivers/ata/sata_mv.c
1321
static int mv_scr_write(struct ata_link *link, unsigned int sc_reg_in, u32 val)
drivers/ata/sata_mv.c
1326
void __iomem *addr = mv_ap_base(link->ap) + ofs;
drivers/ata/sata_mv.c
1327
struct mv_host_priv *hpriv = link->ap->host->private_data;
drivers/ata/sata_mv.c
1347
mv_ap_base(link->ap) + LP_PHY_CTL;
drivers/ata/sata_mv.c
1379
if (sata_pmp_attached(adev->link->ap)) {
drivers/ata/sata_mv.c
1389
struct ata_link *link = qc->dev->link;
drivers/ata/sata_mv.c
1390
struct ata_port *ap = link->ap;
drivers/ata/sata_mv.c
1409
if (link == ap->excl_link) {
drivers/ata/sata_mv.c
1435
ap->excl_link = link;
drivers/ata/sata_mv.c
2028
flags |= (qc->dev->link->pmp & 0xf) << CRQB_PMP_SHIFT;
drivers/ata/sata_mv.c
2122
flags |= (qc->dev->link->pmp & 0xf) << CRQB_PMP_SHIFT;
drivers/ata/sata_mv.c
2253
struct ata_link *link = qc->dev->link;
drivers/ata/sata_mv.c
2257
ata_tf_to_fis(&qc->tf, link->pmp, 1, (void *)fis);
drivers/ata/sata_mv.c
2282
ata_sff_queue_pio_task(link, 0);
drivers/ata/sata_mv.c
2341
ata_link_warn(qc->dev->link, DRV_NAME
drivers/ata/sata_mv.c
2366
mv_pmp_select(ap, qc->dev->link->pmp);
drivers/ata/sata_mv.c
2394
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_mv.c
2417
struct ata_link *link = &ap->pmp_link[pmp];
drivers/ata/sata_mv.c
2419
ata_eh_analyze_ncq_error(link);
drivers/ata/sata_mv.c
2444
struct ata_link *link = &ap->pmp_link[pmp];
drivers/ata/sata_mv.c
2445
struct ata_eh_info *ehi = &link->eh_info;
drivers/ata/sata_mv.c
2452
ata_link_abort(link);
drivers/ata/sata_mv.c
2574
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_mv.c
2581
struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_mv.c
2610
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_mv.c
2619
sata_scr_read(&ap->link, SCR_ERROR, &serr);
drivers/ata/sata_mv.c
2620
sata_scr_write_flush(&ap->link, SCR_ERROR, serr);
drivers/ata/sata_mv.c
2731
ata_link_abort(qc->dev->link);
drivers/ata/sata_mv.c
2787
tag = ap->link.active_tag;
drivers/ata/sata_mv.c
2934
if (!ata_link_offline(&ap->link)) {
drivers/ata/sata_mv.c
2935
ehi = &ap->link.eh_info;
drivers/ata/sata_mv.c
2942
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_mv.c
3021
static int mv5_scr_read(struct ata_link *link, unsigned int sc_reg_in, u32 *val)
drivers/ata/sata_mv.c
3023
struct mv_host_priv *hpriv = link->ap->host->private_data;
drivers/ata/sata_mv.c
3025
void __iomem *addr = mv5_phy_base(mmio, link->ap->port_no);
drivers/ata/sata_mv.c
3035
static int mv5_scr_write(struct ata_link *link, unsigned int sc_reg_in, u32 val)
drivers/ata/sata_mv.c
3037
struct mv_host_priv *hpriv = link->ap->host->private_data;
drivers/ata/sata_mv.c
3039
void __iomem *addr = mv5_phy_base(mmio, link->ap->port_no);
drivers/ata/sata_mv.c
3573
static int mv_pmp_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_mv.c
3576
mv_pmp_select(link->ap, sata_srst_pmp(link));
drivers/ata/sata_mv.c
3577
return sata_std_hardreset(link, class, deadline);
drivers/ata/sata_mv.c
3580
static int mv_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_mv.c
3583
mv_pmp_select(link->ap, sata_srst_pmp(link));
drivers/ata/sata_mv.c
3584
return ata_sff_softreset(link, class, deadline);
drivers/ata/sata_mv.c
3587
static int mv_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_mv.c
3590
struct ata_port *ap = link->ap;
drivers/ata/sata_mv.c
3606
sata_ehc_deb_timing(&link->eh_context);
drivers/ata/sata_mv.c
3608
rc = sata_link_hardreset(link, timing, deadline + extra,
drivers/ata/sata_mv.c
3613
sata_scr_read(link, SCR_STATUS, &sstatus);
drivers/ata/sata_mv.c
588
static int mv_scr_read(struct ata_link *link, unsigned int sc_reg_in, u32 *val);
drivers/ata/sata_mv.c
589
static int mv_scr_write(struct ata_link *link, unsigned int sc_reg_in, u32 val);
drivers/ata/sata_mv.c
590
static int mv5_scr_read(struct ata_link *link, unsigned int sc_reg_in, u32 *val);
drivers/ata/sata_mv.c
591
static int mv5_scr_write(struct ata_link *link, unsigned int sc_reg_in, u32 val);
drivers/ata/sata_mv.c
598
static int mv_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_mv.c
641
static int mv_pmp_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_mv.c
643
static int mv_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_nv.c
1447
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_nv.c
1504
static int nv_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_nv.c
1509
*val = ioread32(link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/ata/sata_nv.c
1513
static int nv_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_nv.c
1518
iowrite32(val, link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/ata/sata_nv.c
1522
static int nv_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_nv.c
1525
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/sata_nv.c
1530
if (!(link->ap->pflags & ATA_PFLAG_LOADING) &&
drivers/ata/sata_nv.c
1531
!ata_dev_enabled(link->device))
drivers/ata/sata_nv.c
1532
sata_link_hardreset(link, sata_deb_timing_hotplug, deadline,
drivers/ata/sata_nv.c
1539
ata_link_info(link,
drivers/ata/sata_nv.c
1543
rc = sata_link_resume(link, timing, deadline);
drivers/ata/sata_nv.c
1546
ata_link_warn(link, "failed to resume link (errno=%d)\n",
drivers/ata/sata_nv.c
1636
if (ata_tag_valid(ap->link.active_tag) || ap->link.sactive) {
drivers/ata/sata_nv.c
1653
if ((ata_tag_valid(ap->link.active_tag) && i == ap->link.active_tag) ||
drivers/ata/sata_nv.c
1654
ap->link.sactive & (1 << i))
drivers/ata/sata_nv.c
1758
ap->qc_active, ap->link.sactive);
drivers/ata/sata_nv.c
1799
struct ata_eh_context *ehc = &ap->link.eh_context;
drivers/ata/sata_nv.c
1801
if (ap->link.sactive) {
drivers/ata/sata_nv.c
1890
dev = &ap->link.device[sdev->id];
drivers/ata/sata_nv.c
2042
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_nv.c
2047
sata_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_nv.c
2048
sata_scr_write(&ap->link, SCR_ERROR, serror);
drivers/ata/sata_nv.c
2068
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_nv.c
2183
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_nv.c
2203
if (ap->ops->scr_read(&ap->link, SCR_ERROR, &serror))
drivers/ata/sata_nv.c
2205
ap->ops->scr_write(&ap->link, SCR_ERROR, serror);
drivers/ata/sata_nv.c
2293
if (ap->link.sactive) {
drivers/ata/sata_nv.c
290
static int nv_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
drivers/ata/sata_nv.c
291
static int nv_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
drivers/ata/sata_nv.c
293
static int nv_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_nv.c
687
if (ap->link.device[sdev->id].class == ATA_DEV_ATAPI) {
drivers/ata/sata_nv.c
821
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_nv.c
857
struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_nv.c
909
if (ata_tag_valid(ap->link.active_tag))
drivers/ata/sata_nv.c
948
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_nv.c
979
if (ata_tag_valid(ap->link.active_tag))
drivers/ata/sata_nv.c
981
ap->link.active_tag;
drivers/ata/sata_nv.c
983
check_commands = ap->link.sactive;
drivers/ata/sata_promise.c
137
static int pdc_sata_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
drivers/ata/sata_promise.c
138
static int pdc_sata_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
drivers/ata/sata_promise.c
153
static int pdc_pata_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_promise.c
155
static int pdc_sata_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_promise.c
444
if (sata_scr_valid(&ap->link) && (ap->flags & PDC_FLAG_GEN_II)) {
drivers/ata/sata_promise.c
461
static int pdc_sata_scr_read(struct ata_link *link,
drivers/ata/sata_promise.c
466
*val = readl(link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/ata/sata_promise.c
470
static int pdc_sata_scr_write(struct ata_link *link,
drivers/ata/sata_promise.c
475
writel(val, link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/ata/sata_promise.c
511
if (sata_scr_valid(&ap->link))
drivers/ata/sata_promise.c
764
static int pdc_pata_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_promise.c
767
pdc_reset_port(link->ap);
drivers/ata/sata_promise.c
768
return ata_sff_softreset(link, class, deadline);
drivers/ata/sata_promise.c
802
static int pdc_sata_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_promise.c
805
if (link->ap->flags & PDC_FLAG_GEN_II)
drivers/ata/sata_promise.c
806
pdc_not_at_command_packet_phase(link->ap);
drivers/ata/sata_promise.c
808
pdc_hard_reset_port(link->ap);
drivers/ata/sata_promise.c
809
pdc_reset_port(link->ap);
drivers/ata/sata_promise.c
815
return sata_std_hardreset(link, class, deadline);
drivers/ata/sata_promise.c
838
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_promise.c
855
if (sata_scr_valid(&ap->link)) {
drivers/ata/sata_promise.c
858
pdc_sata_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_promise.c
961
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_promise.c
975
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_qstor.c
108
static int qs_prereset(struct ata_link *link, unsigned long deadline);
drivers/ata/sata_qstor.c
206
static int qs_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/sata_qstor.c
208
struct ata_port *ap = link->ap;
drivers/ata/sata_qstor.c
211
return ata_sff_prereset(link, deadline);
drivers/ata/sata_qstor.c
214
static int qs_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_qstor.c
218
*val = readl(link->ap->ioaddr.scr_addr + (sc_reg * 8));
drivers/ata/sata_qstor.c
228
static int qs_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_qstor.c
232
writel(val, link->ap->ioaddr.scr_addr + (sc_reg * 8));
drivers/ata/sata_qstor.c
338
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_qstor.c
375
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_qstor.c
401
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_qstor.c
98
static int qs_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
drivers/ata/sata_qstor.c
99
static int qs_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
drivers/ata/sata_rcar.c
307
static int sata_rcar_wait_after_reset(struct ata_link *link,
drivers/ata/sata_rcar.c
310
struct ata_port *ap = link->ap;
drivers/ata/sata_rcar.c
314
return ata_sff_wait_ready(link, deadline);
drivers/ata/sata_rcar.c
330
return sata_rcar_wait_after_reset(&ap->link, deadline);
drivers/ata/sata_rcar.c
333
static int sata_rcar_softreset(struct ata_link *link, unsigned int *classes,
drivers/ata/sata_rcar.c
336
struct ata_port *ap = link->ap;
drivers/ata/sata_rcar.c
348
if (rc && (rc != -ENODEV || sata_scr_valid(link))) {
drivers/ata/sata_rcar.c
349
ata_link_err(link, "SRST failed (errno=%d)\n", rc);
drivers/ata/sata_rcar.c
354
classes[0] = ata_sff_dev_classify(&link->device[0], devmask, &err);
drivers/ata/sata_rcar.c
428
struct ata_port *ap = qc->dev->link->ap;
drivers/ata/sata_rcar.c
481
static int sata_rcar_scr_read(struct ata_link *link, unsigned int sc_reg,
drivers/ata/sata_rcar.c
487
*val = ioread32(link->ap->ioaddr.scr_addr + (sc_reg << 2));
drivers/ata/sata_rcar.c
491
static int sata_rcar_scr_write(struct ata_link *link, unsigned int sc_reg,
drivers/ata/sata_rcar.c
497
iowrite32(val, link->ap->ioaddr.scr_addr + (sc_reg << 2));
drivers/ata/sata_rcar.c
653
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_rcar.c
686
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_sil.c
103
static int sil_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
drivers/ata/sata_sil.c
104
static int sil_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
drivers/ata/sata_sil.c
105
static int sil_set_mode(struct ata_link *link, struct ata_device **r_failed);
drivers/ata/sata_sil.c
345
static int sil_set_mode(struct ata_link *link, struct ata_device **r_failed)
drivers/ata/sata_sil.c
347
struct ata_port *ap = link->ap;
drivers/ata/sata_sil.c
354
rc = ata_set_mode(link, r_failed);
drivers/ata/sata_sil.c
358
ata_for_each_dev(dev, link, ALL) {
drivers/ata/sata_sil.c
397
static int sil_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_sil.c
399
void __iomem *mmio = sil_scr_addr(link->ap, sc_reg);
drivers/ata/sata_sil.c
408
static int sil_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_sil.c
410
void __iomem *mmio = sil_scr_addr(link->ap, sc_reg);
drivers/ata/sata_sil.c
421
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_sil.c
422
struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_sil.c
432
sil_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_sil.c
433
sil_scr_write(&ap->link, SCR_ERROR, serror);
drivers/ata/sata_sil.c
439
ap->link.eh_info.serror |= serror;
drivers/ata/sata_sil.c
613
struct ata_port *ap = dev->link->ap;
drivers/ata/sata_sil.c
614
int print_info = ap->link.eh_context.i.flags & ATA_EHI_PRINTINFO;
drivers/ata/sata_sil24.c
1037
link = &ap->pmp_link[pmp];
drivers/ata/sata_sil24.c
1038
ehi = &link->eh_info;
drivers/ata/sata_sil24.c
1039
qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/sata_sil24.c
1050
qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/sata_sil24.c
1089
ata_link_abort(qc->dev->link);
drivers/ata/sata_sil24.c
1123
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_sil24.c
1134
slot_stat, ap->link.active_tag, ap->link.sactive);
drivers/ata/sata_sil24.c
326
static int sil24_scr_read(struct ata_link *link, unsigned sc_reg, u32 *val);
drivers/ata/sata_sil24.c
327
static int sil24_scr_write(struct ata_link *link, unsigned sc_reg, u32 val);
drivers/ata/sata_sil24.c
336
static int sil24_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sil24.c
338
static int sil24_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sil24.c
340
static int sil24_pmp_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sil24.c
473
void __iomem *port = sil24_port_base(dev->link->ap);
drivers/ata/sata_sil24.c
499
static int sil24_scr_read(struct ata_link *link, unsigned sc_reg, u32 *val)
drivers/ata/sata_sil24.c
501
void __iomem *scr_addr = sil24_port_base(link->ap) + PORT_SCONTROL;
drivers/ata/sata_sil24.c
510
static int sil24_scr_write(struct ata_link *link, unsigned sc_reg, u32 val)
drivers/ata/sata_sil24.c
512
void __iomem *scr_addr = sil24_port_base(link->ap) + PORT_SCONTROL;
drivers/ata/sata_sil24.c
589
ap->link.eh_context.i.action |= ATA_EH_RESET;
drivers/ata/sata_sil24.c
648
static int sil24_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sil24.c
651
struct ata_port *ap = link->ap;
drivers/ata/sata_sil24.c
652
int pmp = sata_srst_pmp(link);
drivers/ata/sata_sil24.c
668
ata_tf_init(link->device, &tf); /* doesn't really matter */
drivers/ata/sata_sil24.c
685
ata_link_err(link, "softreset failed (%s)\n", reason);
drivers/ata/sata_sil24.c
689
static int sil24_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sil24.c
692
struct ata_port *ap = link->ap;
drivers/ata/sata_sil24.c
723
sata_set_spd(link);
drivers/ata/sata_sil24.c
726
if (ata_link_online(link))
drivers/ata/sata_sil24.c
737
rc = sata_link_debounce(link, sata_deb_timing_long, deadline);
drivers/ata/sata_sil24.c
744
if (ata_link_offline(link))
drivers/ata/sata_sil24.c
764
ata_link_err(link, "hardreset failed (%s)\n", reason);
drivers/ata/sata_sil24.c
789
struct ata_link *link = qc->dev->link;
drivers/ata/sata_sil24.c
790
struct ata_port *ap = link->ap;
drivers/ata/sata_sil24.c
816
if (link == ap->excl_link) {
drivers/ata/sata_sil24.c
823
ap->excl_link = link;
drivers/ata/sata_sil24.c
872
ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, prb->fis);
drivers/ata/sata_sil24.c
910
u32 *gscr = ap->link.device->gscr;
drivers/ata/sata_sil24.c
931
static int sil24_pmp_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sil24.c
936
rc = sil24_init_port(link->ap);
drivers/ata/sata_sil24.c
938
ata_link_err(link, "hardreset failed (port not ready)\n");
drivers/ata/sata_sil24.c
942
return sata_std_hardreset(link, class, deadline);
drivers/ata/sata_sil24.c
973
struct ata_link *link;
drivers/ata/sata_sil24.c
983
link = &ap->link;
drivers/ata/sata_sil24.c
984
ehi = &link->eh_info;
drivers/ata/sata_sis.c
101
struct ata_port *ap = link->ap;
drivers/ata/sata_sis.c
122
if (link->pmp)
drivers/ata/sata_sis.c
128
static u32 sis_scr_cfg_read(struct ata_link *link,
drivers/ata/sata_sis.c
131
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_sis.c
132
unsigned int cfg_addr = get_scr_cfg_addr(link, sc_reg);
drivers/ata/sata_sis.c
141
static int sis_scr_cfg_write(struct ata_link *link,
drivers/ata/sata_sis.c
144
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_sis.c
145
unsigned int cfg_addr = get_scr_cfg_addr(link, sc_reg);
drivers/ata/sata_sis.c
151
static int sis_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_sis.c
153
struct ata_port *ap = link->ap;
drivers/ata/sata_sis.c
154
void __iomem *base = ap->ioaddr.scr_addr + link->pmp * 0x10;
drivers/ata/sata_sis.c
160
return sis_scr_cfg_read(link, sc_reg, val);
drivers/ata/sata_sis.c
166
static int sis_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_sis.c
168
struct ata_port *ap = link->ap;
drivers/ata/sata_sis.c
169
void __iomem *base = ap->ioaddr.scr_addr + link->pmp * 0x10;
drivers/ata/sata_sis.c
175
return sis_scr_cfg_write(link, sc_reg, val);
drivers/ata/sata_sis.c
50
static int sis_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
drivers/ata/sata_sis.c
51
static int sis_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
drivers/ata/sata_sis.c
99
static unsigned int get_scr_cfg_addr(struct ata_link *link, unsigned int sc_reg)
drivers/ata/sata_svw.c
106
static int k2_sata_scr_read(struct ata_link *link,
drivers/ata/sata_svw.c
111
*val = readl(link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/ata/sata_svw.c
116
static int k2_sata_scr_write(struct ata_link *link,
drivers/ata/sata_svw.c
121
writel(val, link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/ata/sata_svw.c
125
static int k2_sata_softreset(struct ata_link *link,
drivers/ata/sata_svw.c
129
void __iomem *mmio = link->ap->ioaddr.bmdma_addr;
drivers/ata/sata_svw.c
139
return ata_sff_softreset(link, class, deadline);
drivers/ata/sata_svw.c
142
static int k2_sata_hardreset(struct ata_link *link,
drivers/ata/sata_svw.c
146
void __iomem *mmio = link->ap->ioaddr.bmdma_addr;
drivers/ata/sata_svw.c
156
return sata_sff_hardreset(link, class, deadline);
drivers/ata/sata_sx4.c
223
static int pdc_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sx4.c
781
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_sx4.c
848
static int pdc_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sx4.c
851
pdc_reset_port(link->ap);
drivers/ata/sata_sx4.c
852
return ata_sff_softreset(link, class, deadline);
drivers/ata/sata_uli.c
103
static void uli_scr_cfg_write(struct ata_link *link, unsigned int scr, u32 val)
drivers/ata/sata_uli.c
105
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_uli.c
106
unsigned int cfg_addr = get_scr_cfg_addr(link->ap, scr);
drivers/ata/sata_uli.c
111
static int uli_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_uli.c
116
*val = uli_scr_cfg_read(link, sc_reg);
drivers/ata/sata_uli.c
120
static int uli_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_uli.c
125
uli_scr_cfg_write(link, sc_reg, val);
drivers/ata/sata_uli.c
44
static int uli_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
drivers/ata/sata_uli.c
45
static int uli_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
drivers/ata/sata_uli.c
93
static u32 uli_scr_cfg_read(struct ata_link *link, unsigned int sc_reg)
drivers/ata/sata_uli.c
95
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_uli.c
96
unsigned int cfg_addr = get_scr_cfg_addr(link->ap, sc_reg);
drivers/ata/sata_via.c
186
static int svia_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_via.c
190
*val = ioread32(link->ap->ioaddr.scr_addr + (4 * sc_reg));
drivers/ata/sata_via.c
194
static int svia_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_via.c
198
iowrite32(val, link->ap->ioaddr.scr_addr + (4 * sc_reg));
drivers/ata/sata_via.c
202
static int vt8251_scr_read(struct ata_link *link, unsigned int scr, u32 *val)
drivers/ata/sata_via.c
205
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_via.c
206
int slot = 2 * link->ap->port_no + link->pmp;
drivers/ata/sata_via.c
251
static int vt8251_scr_write(struct ata_link *link, unsigned int scr, u32 val)
drivers/ata/sata_via.c
253
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_via.c
254
int slot = 2 * link->ap->port_no + link->pmp;
drivers/ata/sata_via.c
331
static int vt6420_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/sata_via.c
333
struct ata_port *ap = link->ap;
drivers/ata/sata_via.c
334
struct ata_eh_context *ehc = &ap->link.eh_context;
drivers/ata/sata_via.c
344
svia_scr_write(link, SCR_CONTROL, 0x300);
drivers/ata/sata_via.c
345
svia_scr_read(link, SCR_CONTROL, &scontrol); /* flush */
drivers/ata/sata_via.c
349
ata_msleep(link->ap, 200);
drivers/ata/sata_via.c
350
svia_scr_read(link, SCR_STATUS, &sstatus);
drivers/ata/sata_via.c
356
svia_scr_read(link, SCR_STATUS, &sstatus);
drivers/ata/sata_via.c
357
svia_scr_read(link, SCR_CONTROL, &scontrol);
drivers/ata/sata_via.c
366
svia_scr_read(link, SCR_STATUS, &sstatus);
drivers/ata/sata_via.c
376
ata_sff_wait_ready(link, deadline);
drivers/ata/sata_via.c
556
svia_scr_read(&host->ports[0]->link, SCR_ERROR, &serror);
drivers/ata/sata_via.c
558
ata_ehi_hotplugged(&host->ports[0]->link.eh_info);
drivers/ata/sata_via.c
563
svia_scr_read(&host->ports[1]->link, SCR_ERROR, &serror);
drivers/ata/sata_via.c
565
ata_ehi_hotplugged(&host->ports[1]->link.eh_info);
drivers/ata/sata_via.c
583
svia_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_via.c
588
ap->link.eh_context.i.flags |= ATA_EHI_QUIET;
drivers/ata/sata_via.c
74
static int svia_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
drivers/ata/sata_via.c
75
static int svia_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
drivers/ata/sata_via.c
76
static int vt8251_scr_read(struct ata_link *link, unsigned int scr, u32 *val);
drivers/ata/sata_via.c
77
static int vt8251_scr_write(struct ata_link *link, unsigned int scr, u32 val);
drivers/ata/sata_via.c
80
static int vt6420_prereset(struct ata_link *link, unsigned long deadline);
drivers/ata/sata_vsc.c
229
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_vsc.c
84
static int vsc_sata_scr_read(struct ata_link *link,
drivers/ata/sata_vsc.c
89
*val = readl(link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/ata/sata_vsc.c
94
static int vsc_sata_scr_write(struct ata_link *link,
drivers/ata/sata_vsc.c
99
writel(val, link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/base/core.c
1000
if (link->status != DL_STATE_CONSUMER_PROBE)
drivers/base/core.c
1003
if (link->supplier->links.status == DL_DEV_DRIVER_BOUND) {
drivers/base/core.c
1004
WRITE_ONCE(link->status, DL_STATE_AVAILABLE);
drivers/base/core.c
1006
WARN_ON(!device_link_test(link, DL_FLAG_SYNC_STATE_ONLY));
drivers/base/core.c
1007
WRITE_ONCE(link->status, DL_STATE_DORMANT);
drivers/base/core.c
1021
struct fwnode_link *link;
drivers/base/core.c
1026
list_for_each_entry(link, &fwnode->suppliers, c_hook)
drivers/base/core.c
1027
if (!(link->flags &
drivers/base/core.c
1029
return link->supplier;
drivers/base/core.c
1052
struct device_link *link;
drivers/base/core.c
1073
list_for_each_entry(link, &dev->links.suppliers, c_node) {
drivers/base/core.c
1074
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1077
if (link->status != DL_STATE_AVAILABLE &&
drivers/base/core.c
1078
!device_link_test(link, DL_FLAG_SYNC_STATE_ONLY)) {
drivers/base/core.c
1081
device_link_test(link, DL_FLAG_INFERRED) &&
drivers/base/core.c
1082
!link->supplier->can_match) {
drivers/base/core.c
1089
"supplier %s not ready\n", dev_name(link->supplier));
drivers/base/core.c
1092
WRITE_ONCE(link->status, DL_STATE_CONSUMER_PROBE);
drivers/base/core.c
111
static void __fwnode_link_del(struct fwnode_link *link)
drivers/base/core.c
1122
struct device_link *link;
drivers/base/core.c
1129
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1130
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1132
if (link->status != DL_STATE_ACTIVE)
drivers/base/core.c
114
link->consumer, link->supplier);
drivers/base/core.c
115
list_del(&link->s_hook);
drivers/base/core.c
116
list_del(&link->c_hook);
drivers/base/core.c
117
kfree(link);
drivers/base/core.c
1228
static void device_link_drop_managed(struct device_link *link)
drivers/base/core.c
1230
link->flags &= ~DL_FLAG_MANAGED;
drivers/base/core.c
1231
WRITE_ONCE(link->status, DL_STATE_NONE);
drivers/base/core.c
1232
kref_put(&link->kref, __device_link_del);
drivers/base/core.c
126
static void __fwnode_link_cycle(struct fwnode_link *link)
drivers/base/core.c
1265
struct device_link *link, *ln;
drivers/base/core.c
1269
list_for_each_entry_safe(link, ln, &dev->links.suppliers, c_node) {
drivers/base/core.c
1270
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1273
if (link->status != DL_STATE_AVAILABLE) {
drivers/base/core.c
1274
device_link_drop_managed(link);
drivers/base/core.c
1277
WRITE_ONCE(link->status, DL_STATE_CONSUMER_PROBE);
drivers/base/core.c
129
link->consumer, link->supplier);
drivers/base/core.c
1297
struct device_link *link, *ln;
drivers/base/core.c
130
link->flags |= FWLINK_FLAG_CYCLE;
drivers/base/core.c
1330
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1331
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1340
if (link->status == DL_STATE_CONSUMER_PROBE ||
drivers/base/core.c
1341
link->status == DL_STATE_ACTIVE)
drivers/base/core.c
1344
WARN_ON(link->status != DL_STATE_DORMANT);
drivers/base/core.c
1345
WRITE_ONCE(link->status, DL_STATE_AVAILABLE);
drivers/base/core.c
1347
if (device_link_test(link, DL_FLAG_AUTOPROBE_CONSUMER))
drivers/base/core.c
1348
driver_deferred_probe_add(link->consumer);
drivers/base/core.c
1356
list_for_each_entry_safe(link, ln, &dev->links.suppliers, c_node) {
drivers/base/core.c
1359
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1362
supplier = link->supplier;
drivers/base/core.c
1363
if (device_link_test(link, DL_FLAG_SYNC_STATE_ONLY)) {
drivers/base/core.c
1369
device_link_drop_managed(link);
drivers/base/core.c
1371
device_link_test(link, DL_FLAG_INFERRED) &&
drivers/base/core.c
1372
link->status != DL_STATE_CONSUMER_PROBE &&
drivers/base/core.c
1373
!link->supplier->can_match) {
drivers/base/core.c
1381
device_link_drop_managed(link);
drivers/base/core.c
1383
WARN_ON(link->status != DL_STATE_CONSUMER_PROBE);
drivers/base/core.c
1384
WRITE_ONCE(link->status, DL_STATE_ACTIVE);
drivers/base/core.c
141
struct fwnode_link *link, *tmp;
drivers/base/core.c
1420
struct device_link *link, *ln;
drivers/base/core.c
1422
list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) {
drivers/base/core.c
1423
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1426
if (device_link_test(link, DL_FLAG_AUTOREMOVE_CONSUMER)) {
drivers/base/core.c
1427
device_link_drop_managed(link);
drivers/base/core.c
1431
if (link->status != DL_STATE_CONSUMER_PROBE &&
drivers/base/core.c
1432
link->status != DL_STATE_ACTIVE)
drivers/base/core.c
1435
if (link->supplier->links.status == DL_DEV_DRIVER_BOUND) {
drivers/base/core.c
1436
WRITE_ONCE(link->status, DL_STATE_AVAILABLE);
drivers/base/core.c
1438
WARN_ON(!device_link_test(link, DL_FLAG_SYNC_STATE_ONLY));
drivers/base/core.c
1439
WRITE_ONCE(link->status, DL_STATE_DORMANT);
drivers/base/core.c
145
list_for_each_entry_safe(link, tmp, &fwnode->suppliers, c_hook)
drivers/base/core.c
1458
struct device_link *link;
drivers/base/core.c
146
__fwnode_link_del(link);
drivers/base/core.c
1462
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1463
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1473
if (link->status == DL_STATE_CONSUMER_PROBE ||
drivers/base/core.c
1474
link->status == DL_STATE_ACTIVE)
drivers/base/core.c
1475
WRITE_ONCE(link->status, DL_STATE_DORMANT);
drivers/base/core.c
1495
struct device_link *link, *ln;
drivers/base/core.c
1499
list_for_each_entry_safe(link, ln, &dev->links.consumers, s_node) {
drivers/base/core.c
1500
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1503
WARN_ON(device_link_test(link, DL_FLAG_AUTOREMOVE_CONSUMER));
drivers/base/core.c
1504
WARN_ON(link->status != DL_STATE_SUPPLIER_UNBIND);
drivers/base/core.c
1511
if (link->status == DL_STATE_SUPPLIER_UNBIND &&
drivers/base/core.c
1512
device_link_test(link, DL_FLAG_AUTOREMOVE_SUPPLIER))
drivers/base/core.c
1513
device_link_drop_managed(link);
drivers/base/core.c
1515
WRITE_ONCE(link->status, DL_STATE_DORMANT);
drivers/base/core.c
1540
struct device_link *link;
drivers/base/core.c
1545
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1546
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1549
if (link->status == DL_STATE_CONSUMER_PROBE
drivers/base/core.c
1550
|| link->status == DL_STATE_ACTIVE) {
drivers/base/core.c
1554
WRITE_ONCE(link->status, DL_STATE_SUPPLIER_UNBIND);
drivers/base/core.c
157
struct fwnode_link *link, *tmp;
drivers/base/core.c
1580
struct device_link *link;
drivers/base/core.c
1585
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1588
if (!device_link_test(link, DL_FLAG_MANAGED) ||
drivers/base/core.c
1589
device_link_test(link, DL_FLAG_SYNC_STATE_ONLY))
drivers/base/core.c
1592
status = link->status;
drivers/base/core.c
1599
WRITE_ONCE(link->status, DL_STATE_SUPPLIER_UNBIND);
drivers/base/core.c
1601
struct device *consumer = link->consumer;
drivers/base/core.c
161
list_for_each_entry_safe(link, tmp, &fwnode->consumers, s_hook)
drivers/base/core.c
162
__fwnode_link_del(link);
drivers/base/core.c
1623
struct device_link *link, *ln;
drivers/base/core.c
1634
list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) {
drivers/base/core.c
1635
WARN_ON(link->status == DL_STATE_ACTIVE);
drivers/base/core.c
1636
__device_link_del(&link->kref);
drivers/base/core.c
1639
list_for_each_entry_safe_reverse(link, ln, &dev->links.consumers, s_node) {
drivers/base/core.c
1640
WARN_ON(link->status != DL_STATE_DORMANT &&
drivers/base/core.c
1641
link->status != DL_STATE_NONE);
drivers/base/core.c
1642
__device_link_del(&link->kref);
drivers/base/core.c
1743
static void fw_devlink_relax_link(struct device_link *link)
drivers/base/core.c
1745
if (!device_link_test(link, DL_FLAG_INFERRED))
drivers/base/core.c
1748
if (device_link_flag_is_sync_state_only(link->flags))
drivers/base/core.c
1751
pm_runtime_drop_link(link);
drivers/base/core.c
1752
link->flags = DL_FLAG_MANAGED | FW_DEVLINK_FLAGS_PERMISSIVE;
drivers/base/core.c
1753
dev_dbg(link->consumer, "Relaxing link with %s\n",
drivers/base/core.c
1754
dev_name(link->supplier));
drivers/base/core.c
1759
struct device_link *link = to_devlink(dev);
drivers/base/core.c
1761
if (!link->supplier->can_match)
drivers/base/core.c
1762
fw_devlink_relax_link(link);
drivers/base/core.c
1778
struct device_link *link = to_devlink(dev);
drivers/base/core.c
1779
struct device *sup = link->supplier;
drivers/base/core.c
1781
if (!device_link_test(link, DL_FLAG_MANAGED) ||
drivers/base/core.c
1782
link->status == DL_STATE_ACTIVE || sup->state_synced ||
drivers/base/core.c
1788
dev_name(link->consumer));
drivers/base/core.c
1872
struct device_link *link;
drivers/base/core.c
1878
list_for_each_entry(link, &dev->links.consumers, s_node)
drivers/base/core.c
1879
fw_devlink_relax_link(link);
drivers/base/core.c
1993
struct fwnode_link *link;
drivers/base/core.c
2029
list_for_each_entry(link, &sup_handle->suppliers, c_hook) {
drivers/base/core.c
203
struct fwnode_link *link, *tmp;
drivers/base/core.c
2030
if (link->flags & FWLINK_FLAG_IGNORE)
drivers/base/core.c
2033
if (__fw_devlink_relax_cycles(con_handle, link->supplier)) {
drivers/base/core.c
2034
__fwnode_link_cycle(link);
drivers/base/core.c
205
list_for_each_entry_safe(link, tmp, &from->consumers, s_hook) {
drivers/base/core.c
206
__fwnode_link_add(link->consumer, to, link->flags);
drivers/base/core.c
207
__fwnode_link_del(link);
drivers/base/core.c
2106
struct fwnode_link *link)
drivers/base/core.c
2112
if (link->flags & FWLINK_FLAG_IGNORE)
drivers/base/core.c
2140
if (__fw_devlink_relax_cycles(link->consumer, sup_handle)) {
drivers/base/core.c
2141
__fwnode_link_cycle(link);
drivers/base/core.c
2144
link->consumer, sup_handle);
drivers/base/core.c
2148
if (con->fwnode == link->consumer)
drivers/base/core.c
2149
flags = fw_devlink_get_flags(link->flags);
drivers/base/core.c
2175
flags, dev_name(sup_dev), link->consumer);
drivers/base/core.c
2218
struct fwnode_link *link, *tmp;
drivers/base/core.c
2220
list_for_each_entry_safe(link, tmp, &fwnode->consumers, s_hook) {
drivers/base/core.c
2225
con_dev = get_dev_from_fwnode(link->consumer);
drivers/base/core.c
2237
con_dev = fwnode_get_next_parent_dev(link->consumer);
drivers/base/core.c
2256
ret = fw_devlink_create_devlink(con_dev, fwnode, link);
drivers/base/core.c
2261
__fwnode_link_del(link);
drivers/base/core.c
2292
struct fwnode_link *link, *tmp;
drivers/base/core.c
2295
list_for_each_entry_safe(link, tmp, &fwnode->suppliers, c_hook) {
drivers/base/core.c
2297
struct fwnode_handle *sup = link->supplier;
drivers/base/core.c
2299
ret = fw_devlink_create_devlink(dev, sup, link);
drivers/base/core.c
2303
__fwnode_link_del(link);
drivers/base/core.c
271
static void device_link_remove_from_lists(struct device_link *link)
drivers/base/core.c
273
list_del_rcu(&link->s_node);
drivers/base/core.c
274
list_del_rcu(&link->c_node);
drivers/base/core.c
305
struct device_link *link;
drivers/base/core.c
320
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
321
if (device_link_flag_is_sync_state_only(link->flags))
drivers/base/core.c
324
if (link->consumer == target)
drivers/base/core.c
327
ret = device_is_dependent(link->consumer, target);
drivers/base/core.c
334
static void device_link_init_status(struct device_link *link,
drivers/base/core.c
349
link->status = DL_STATE_CONSUMER_PROBE;
drivers/base/core.c
352
link->status = DL_STATE_DORMANT;
drivers/base/core.c
359
link->status = DL_STATE_CONSUMER_PROBE;
drivers/base/core.c
362
link->status = DL_STATE_ACTIVE;
drivers/base/core.c
365
link->status = DL_STATE_AVAILABLE;
drivers/base/core.c
370
link->status = DL_STATE_SUPPLIER_UNBIND;
drivers/base/core.c
373
link->status = DL_STATE_DORMANT;
drivers/base/core.c
380
struct device_link *link;
drivers/base/core.c
393
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
394
if (device_link_flag_is_sync_state_only(link->flags))
drivers/base/core.c
396
device_reorder_to_tail(link->consumer, NULL);
drivers/base/core.c
460
struct device_link *link = to_devlink(dev);
drivers/base/core.c
463
if (device_link_test(link, DL_FLAG_AUTOREMOVE_SUPPLIER))
drivers/base/core.c
465
else if (device_link_test(link, DL_FLAG_AUTOREMOVE_CONSUMER))
drivers/base/core.c
477
struct device_link *link = to_devlink(dev);
drivers/base/core.c
479
return sysfs_emit(buf, "%d\n", device_link_test(link, DL_FLAG_PM_RUNTIME));
drivers/base/core.c
486
struct device_link *link = to_devlink(dev);
drivers/base/core.c
488
return sysfs_emit(buf, "%d\n", device_link_test(link, DL_FLAG_SYNC_STATE_ONLY));
drivers/base/core.c
503
struct device_link *link = container_of(work, struct device_link, rm_work);
drivers/base/core.c
508
pm_runtime_release_supplier(link);
drivers/base/core.c
516
if (link->supplier_preactivated)
drivers/base/core.c
517
pm_runtime_put_noidle(link->supplier);
drivers/base/core.c
519
pm_request_idle(link->supplier);
drivers/base/core.c
521
put_device(link->consumer);
drivers/base/core.c
522
put_device(link->supplier);
drivers/base/core.c
523
kfree(link);
drivers/base/core.c
528
struct device_link *link = to_devlink(dev);
drivers/base/core.c
530
INIT_WORK(&link->rm_work, device_link_release_fn);
drivers/base/core.c
537
queue_work(device_link_wq, &link->rm_work);
drivers/base/core.c
564
struct device_link *link = to_devlink(dev);
drivers/base/core.c
565
struct device *sup = link->supplier;
drivers/base/core.c
566
struct device *con = link->consumer;
drivers/base/core.c
568
ret = sysfs_create_link(&link->link_dev.kobj, &sup->kobj, "supplier");
drivers/base/core.c
572
ret = sysfs_create_link(&link->link_dev.kobj, &con->kobj, "consumer");
drivers/base/core.c
582
ret = sysfs_create_link(&sup->kobj, &link->link_dev.kobj, buf_con);
drivers/base/core.c
592
ret = sysfs_create_link(&con->kobj, &link->link_dev.kobj, buf_sup);
drivers/base/core.c
601
sysfs_remove_link(&link->link_dev.kobj, "consumer");
drivers/base/core.c
603
sysfs_remove_link(&link->link_dev.kobj, "supplier");
drivers/base/core.c
611
struct device_link *link = to_devlink(dev);
drivers/base/core.c
612
struct device *sup = link->supplier;
drivers/base/core.c
613
struct device *con = link->consumer;
drivers/base/core.c
615
sysfs_remove_link(&link->link_dev.kobj, "consumer");
drivers/base/core.c
616
sysfs_remove_link(&link->link_dev.kobj, "supplier");
drivers/base/core.c
71
struct fwnode_link *link;
drivers/base/core.c
73
list_for_each_entry(link, &sup->consumers, s_hook)
drivers/base/core.c
730
struct device_link *link;
drivers/base/core.c
74
if (link->consumer == con) {
drivers/base/core.c
75
link->flags |= flags;
drivers/base/core.c
767
link = NULL;
drivers/base/core.c
778
link = NULL;
drivers/base/core.c
79
link = kzalloc_obj(*link);
drivers/base/core.c
790
list_for_each_entry(link, &supplier->links.consumers, s_node) {
drivers/base/core.c
791
if (link->consumer != consumer)
drivers/base/core.c
794
if (device_link_test(link, DL_FLAG_INFERRED) &&
drivers/base/core.c
796
link->flags &= ~DL_FLAG_INFERRED;
drivers/base/core.c
799
if (!device_link_test(link, DL_FLAG_PM_RUNTIME)) {
drivers/base/core.c
80
if (!link)
drivers/base/core.c
801
link->flags |= DL_FLAG_PM_RUNTIME;
drivers/base/core.c
804
refcount_inc(&link->rpm_active);
drivers/base/core.c
808
kref_get(&link->kref);
drivers/base/core.c
809
if (device_link_test(link, DL_FLAG_SYNC_STATE_ONLY) &&
drivers/base/core.c
810
!device_link_test(link, DL_FLAG_STATELESS)) {
drivers/base/core.c
811
link->flags |= DL_FLAG_STATELESS;
drivers/base/core.c
814
link->flags |= DL_FLAG_STATELESS;
drivers/base/core.c
825
if (device_link_test(link, DL_FLAG_AUTOREMOVE_CONSUMER)) {
drivers/base/core.c
826
link->flags &= ~DL_FLAG_AUTOREMOVE_CONSUMER;
drivers/base/core.c
827
link->flags |= DL_FLAG_AUTOREMOVE_SUPPLIER;
drivers/base/core.c
83
link->supplier = sup;
drivers/base/core.c
830
link->flags &= ~(DL_FLAG_AUTOREMOVE_CONSUMER |
drivers/base/core.c
833
if (!device_link_test(link, DL_FLAG_MANAGED)) {
drivers/base/core.c
834
kref_get(&link->kref);
drivers/base/core.c
835
link->flags |= DL_FLAG_MANAGED;
drivers/base/core.c
836
device_link_init_status(link, consumer, supplier);
drivers/base/core.c
838
if (device_link_test(link, DL_FLAG_SYNC_STATE_ONLY) &&
drivers/base/core.c
84
INIT_LIST_HEAD(&link->s_hook);
drivers/base/core.c
840
link->flags &= ~DL_FLAG_SYNC_STATE_ONLY;
drivers/base/core.c
847
link = kzalloc_obj(*link);
drivers/base/core.c
848
if (!link)
drivers/base/core.c
85
link->consumer = con;
drivers/base/core.c
851
refcount_set(&link->rpm_active, 1);
drivers/base/core.c
854
link->supplier = supplier;
drivers/base/core.c
855
INIT_LIST_HEAD(&link->s_node);
drivers/base/core.c
857
link->consumer = consumer;
drivers/base/core.c
858
INIT_LIST_HEAD(&link->c_node);
drivers/base/core.c
859
link->flags = flags;
drivers/base/core.c
86
INIT_LIST_HEAD(&link->c_hook);
drivers/base/core.c
860
kref_init(&link->kref);
drivers/base/core.c
862
link->link_dev.class = &devlink_class;
drivers/base/core.c
863
device_set_pm_not_required(&link->link_dev);
drivers/base/core.c
864
dev_set_name(&link->link_dev, "%s:%s--%s:%s",
drivers/base/core.c
867
if (device_register(&link->link_dev)) {
drivers/base/core.c
868
put_device(&link->link_dev);
drivers/base/core.c
869
link = NULL;
drivers/base/core.c
87
link->flags = flags;
drivers/base/core.c
875
refcount_inc(&link->rpm_active);
drivers/base/core.c
882
link->status = DL_STATE_NONE;
drivers/base/core.c
884
device_link_init_status(link, consumer, supplier);
drivers/base/core.c
89
list_add(&link->s_hook, &sup->consumers);
drivers/base/core.c
890
if (link->status == DL_STATE_CONSUMER_PROBE &&
drivers/base/core.c
894
list_add_tail_rcu(&link->s_node, &supplier->links.consumers);
drivers/base/core.c
895
list_add_tail_rcu(&link->c_node, &consumer->links.suppliers);
drivers/base/core.c
90
list_add(&link->c_hook, &con->suppliers);
drivers/base/core.c
920
if ((flags & DL_FLAG_PM_RUNTIME && flags & DL_FLAG_RPM_ACTIVE) && !link)
drivers/base/core.c
923
return link;
drivers/base/core.c
929
struct device_link *link = container_of(kref, struct device_link, kref);
drivers/base/core.c
931
dev_dbg(link->consumer, "Dropping the link to %s\n",
drivers/base/core.c
932
dev_name(link->supplier));
drivers/base/core.c
934
pm_runtime_drop_link(link);
drivers/base/core.c
936
device_link_remove_from_lists(link);
drivers/base/core.c
937
device_unregister(&link->link_dev);
drivers/base/core.c
940
static void device_link_put_kref(struct device_link *link)
drivers/base/core.c
942
if (device_link_test(link, DL_FLAG_STATELESS))
drivers/base/core.c
943
kref_put(&link->kref, __device_link_del);
drivers/base/core.c
944
else if (!device_is_registered(link->consumer))
drivers/base/core.c
945
__device_link_del(&link->kref);
drivers/base/core.c
959
void device_link_del(struct device_link *link)
drivers/base/core.c
962
device_link_put_kref(link);
drivers/base/core.c
977
struct device_link *link;
drivers/base/core.c
984
list_for_each_entry(link, &supplier->links.consumers, s_node) {
drivers/base/core.c
985
if (link->consumer == consumer) {
drivers/base/core.c
986
device_link_put_kref(link);
drivers/base/core.c
997
struct device_link *link;
drivers/base/core.c
999
list_for_each_entry(link, &dev->links.suppliers, c_node) {
drivers/base/power/common.c
267
struct device_link *link;
drivers/base/power/common.c
269
link = device_link_add(dev, pd_dev, link_flags);
drivers/base/power/common.c
270
if (!link) {
drivers/base/power/common.c
275
pds->pd_links[i] = link;
drivers/base/power/main.c
1352
struct device_link *link;
drivers/base/power/main.c
1361
dev_for_each_link_to_supplier(link, dev)
drivers/base/power/main.c
1362
if (READ_ONCE(link->status) != DL_STATE_DORMANT)
drivers/base/power/main.c
1363
dpm_async_with_cleanup(link->supplier, func);
drivers/base/power/main.c
1407
struct device_link *link;
drivers/base/power/main.c
1415
dev_for_each_link_to_supplier(link, dev)
drivers/base/power/main.c
1416
link->supplier->power.must_resume = true;
drivers/base/power/main.c
1838
struct device_link *link;
drivers/base/power/main.c
1849
dev_for_each_link_to_supplier(link, dev) {
drivers/base/power/main.c
1850
spin_lock_irq(&link->supplier->power.lock);
drivers/base/power/main.c
1851
link->supplier->power.direct_complete = false;
drivers/base/power/main.c
1852
spin_unlock_irq(&link->supplier->power.lock);
drivers/base/power/main.c
2079
struct device_link *link;
drivers/base/power/main.c
2101
dev_for_each_link_to_supplier(link, dev) {
drivers/base/power/main.c
2102
if (!device_link_test(link, DL_FLAG_PM_RUNTIME))
drivers/base/power/main.c
2105
if (!dev_pm_smart_suspend(link->supplier) &&
drivers/base/power/main.c
2106
!pm_runtime_blocked(link->supplier)) {
drivers/base/power/main.c
271
struct device_link *link;
drivers/base/power/main.c
283
dev_for_each_link_to_supplier(link, dev)
drivers/base/power/main.c
284
if (READ_ONCE(link->status) != DL_STATE_DORMANT &&
drivers/base/power/main.c
285
!device_link_flag_is_sync_state_only(link->flags))
drivers/base/power/main.c
286
dpm_wait(link->supplier, async);
drivers/base/power/main.c
327
struct device_link *link;
drivers/base/power/main.c
341
dev_for_each_link_to_consumer(link, dev)
drivers/base/power/main.c
342
if (READ_ONCE(link->status) != DL_STATE_DORMANT &&
drivers/base/power/main.c
343
!device_link_flag_is_sync_state_only(link->flags))
drivers/base/power/main.c
344
dpm_wait(link->consumer, async);
drivers/base/power/main.c
683
struct device_link *link;
drivers/base/power/main.c
691
dev_for_each_link_to_consumer(link, dev)
drivers/base/power/main.c
692
if (READ_ONCE(link->status) != DL_STATE_DORMANT)
drivers/base/power/main.c
693
dpm_async_with_cleanup(link->consumer, func);
drivers/base/power/runtime.c
1908
struct device_link *link;
drivers/base/power/runtime.c
1913
dev_for_each_link_to_supplier(link, dev)
drivers/base/power/runtime.c
1914
if (device_link_test(link, DL_FLAG_PM_RUNTIME)) {
drivers/base/power/runtime.c
1915
link->supplier_preactivated = true;
drivers/base/power/runtime.c
1916
pm_runtime_get_sync(link->supplier);
drivers/base/power/runtime.c
1928
struct device_link *link;
drivers/base/power/runtime.c
1933
list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
drivers/base/power/runtime.c
1935
if (link->supplier_preactivated) {
drivers/base/power/runtime.c
1936
link->supplier_preactivated = false;
drivers/base/power/runtime.c
1937
pm_runtime_put(link->supplier);
drivers/base/power/runtime.c
1966
void pm_runtime_drop_link(struct device_link *link)
drivers/base/power/runtime.c
1968
if (!device_link_test(link, DL_FLAG_PM_RUNTIME))
drivers/base/power/runtime.c
1971
pm_runtime_drop_link_count(link->consumer);
drivers/base/power/runtime.c
1972
pm_runtime_release_supplier(link);
drivers/base/power/runtime.c
1973
pm_request_idle(link->supplier);
drivers/base/power/runtime.c
299
struct device_link *link;
drivers/base/power/runtime.c
301
list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
drivers/base/power/runtime.c
305
if (!device_link_test(link, DL_FLAG_PM_RUNTIME))
drivers/base/power/runtime.c
308
retval = pm_runtime_get_sync(link->supplier);
drivers/base/power/runtime.c
311
pm_runtime_put_noidle(link->supplier);
drivers/base/power/runtime.c
314
refcount_inc(&link->rpm_active);
drivers/base/power/runtime.c
325
void pm_runtime_release_supplier(struct device_link *link)
drivers/base/power/runtime.c
327
struct device *supplier = link->supplier;
drivers/base/power/runtime.c
335
while (refcount_dec_not_one(&link->rpm_active) &&
drivers/base/power/runtime.c
342
struct device_link *link;
drivers/base/power/runtime.c
344
list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
drivers/base/power/runtime.c
346
pm_runtime_release_supplier(link);
drivers/base/power/runtime.c
348
pm_request_idle(link->supplier);
drivers/base/power/runtime.c
359
struct device_link *link;
drivers/base/power/runtime.c
362
list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
drivers/base/power/runtime.c
364
pm_request_idle(link->supplier);
drivers/base/regmap/regmap-debugfs.c
20
struct list_head link;
drivers/base/regmap/regmap-debugfs.c
563
list_add(&node->link, &regmap_debugfs_early_list);
drivers/base/regmap/regmap-debugfs.c
670
link) {
drivers/base/regmap/regmap-debugfs.c
672
list_del(&node->link);
drivers/base/regmap/regmap-debugfs.c
687
list_for_each_entry_safe(node, tmp, &regmap_debugfs_early_list, link) {
drivers/base/regmap/regmap-debugfs.c
689
list_del(&node->link);
drivers/bluetooth/bluecard_cs.c
818
static int bluecard_probe(struct pcmcia_device *link)
drivers/bluetooth/bluecard_cs.c
823
info = devm_kzalloc(&link->dev, sizeof(*info), GFP_KERNEL);
drivers/bluetooth/bluecard_cs.c
827
info->p_dev = link;
drivers/bluetooth/bluecard_cs.c
828
link->priv = info;
drivers/bluetooth/bluecard_cs.c
830
link->config_flags |= CONF_ENABLE_IRQ;
drivers/bluetooth/bluecard_cs.c
832
return bluecard_config(link);
drivers/bluetooth/bluecard_cs.c
836
static void bluecard_detach(struct pcmcia_device *link)
drivers/bluetooth/bluecard_cs.c
838
bluecard_release(link);
drivers/bluetooth/bluecard_cs.c
84
static int bluecard_config(struct pcmcia_device *link);
drivers/bluetooth/bluecard_cs.c
842
static int bluecard_config(struct pcmcia_device *link)
drivers/bluetooth/bluecard_cs.c
844
struct bluecard_info *info = link->priv;
drivers/bluetooth/bluecard_cs.c
847
link->config_index = 0x20;
drivers/bluetooth/bluecard_cs.c
849
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
drivers/bluetooth/bluecard_cs.c
85
static void bluecard_release(struct pcmcia_device *link);
drivers/bluetooth/bluecard_cs.c
850
link->resource[0]->end = 64;
drivers/bluetooth/bluecard_cs.c
851
link->io_lines = 6;
drivers/bluetooth/bluecard_cs.c
854
link->resource[0]->start = n ^ 0x300;
drivers/bluetooth/bluecard_cs.c
855
i = pcmcia_request_io(link);
drivers/bluetooth/bluecard_cs.c
863
i = pcmcia_request_irq(link, bluecard_interrupt);
drivers/bluetooth/bluecard_cs.c
867
i = pcmcia_enable_device(link);
drivers/bluetooth/bluecard_cs.c
877
bluecard_release(link);
drivers/bluetooth/bluecard_cs.c
882
static void bluecard_release(struct pcmcia_device *link)
drivers/bluetooth/bluecard_cs.c
884
struct bluecard_info *info = link->priv;
drivers/bluetooth/bluecard_cs.c
890
pcmcia_disable_device(link);
drivers/bluetooth/bt3c_cs.c
620
static int bt3c_probe(struct pcmcia_device *link)
drivers/bluetooth/bt3c_cs.c
625
info = devm_kzalloc(&link->dev, sizeof(*info), GFP_KERNEL);
drivers/bluetooth/bt3c_cs.c
629
info->p_dev = link;
drivers/bluetooth/bt3c_cs.c
630
link->priv = info;
drivers/bluetooth/bt3c_cs.c
632
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_VPP |
drivers/bluetooth/bt3c_cs.c
635
return bt3c_config(link);
drivers/bluetooth/bt3c_cs.c
639
static void bt3c_detach(struct pcmcia_device *link)
drivers/bluetooth/bt3c_cs.c
641
bt3c_release(link);
drivers/bluetooth/bt3c_cs.c
683
static int bt3c_config(struct pcmcia_device *link)
drivers/bluetooth/bt3c_cs.c
685
struct bt3c_info *info = link->priv;
drivers/bluetooth/bt3c_cs.c
693
if (!pcmcia_loop_config(link, bt3c_check_config, (void *) try))
drivers/bluetooth/bt3c_cs.c
700
if (!pcmcia_loop_config(link, bt3c_check_config_notpicky, NULL))
drivers/bluetooth/bt3c_cs.c
707
i = pcmcia_request_irq(link, &bt3c_interrupt);
drivers/bluetooth/bt3c_cs.c
711
i = pcmcia_enable_device(link);
drivers/bluetooth/bt3c_cs.c
721
bt3c_release(link);
drivers/bluetooth/bt3c_cs.c
726
static void bt3c_release(struct pcmcia_device *link)
drivers/bluetooth/bt3c_cs.c
728
struct bt3c_info *info = link->priv;
drivers/bluetooth/bt3c_cs.c
732
pcmcia_disable_device(link);
drivers/bluetooth/bt3c_cs.c
86
static int bt3c_config(struct pcmcia_device *link);
drivers/bluetooth/bt3c_cs.c
87
static void bt3c_release(struct pcmcia_device *link);
drivers/bluetooth/btintel.c
2389
__u8 link, struct bt_codec *codec,
drivers/bluetooth/btintel.c
2400
if (link != ESCO_LINK) {
drivers/bluetooth/btintel.c
2401
bt_dev_err(hdev, "Invalid link type(%u)", link);
drivers/bluetooth/btmtksdio.c
968
__u8 link, struct bt_codec *codec,
drivers/bluetooth/btmtksdio.c
979
if (link != ESCO_LINK) {
drivers/bluetooth/btmtksdio.c
980
bt_dev_err(hdev, "Invalid link type(%u)", link);
drivers/bluetooth/dtl1_cs.c
531
static int dtl1_probe(struct pcmcia_device *link)
drivers/bluetooth/dtl1_cs.c
536
info = devm_kzalloc(&link->dev, sizeof(*info), GFP_KERNEL);
drivers/bluetooth/dtl1_cs.c
540
info->p_dev = link;
drivers/bluetooth/dtl1_cs.c
541
link->priv = info;
drivers/bluetooth/dtl1_cs.c
543
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/bluetooth/dtl1_cs.c
545
return dtl1_config(link);
drivers/bluetooth/dtl1_cs.c
549
static void dtl1_detach(struct pcmcia_device *link)
drivers/bluetooth/dtl1_cs.c
551
struct dtl1_info *info = link->priv;
drivers/bluetooth/dtl1_cs.c
554
pcmcia_disable_device(link);
drivers/bluetooth/dtl1_cs.c
568
static int dtl1_config(struct pcmcia_device *link)
drivers/bluetooth/dtl1_cs.c
570
struct dtl1_info *info = link->priv;
drivers/bluetooth/dtl1_cs.c
574
link->resource[0]->end = 8;
drivers/bluetooth/dtl1_cs.c
575
ret = pcmcia_loop_config(link, dtl1_confcheck, NULL);
drivers/bluetooth/dtl1_cs.c
579
ret = pcmcia_request_irq(link, dtl1_interrupt);
drivers/bluetooth/dtl1_cs.c
583
ret = pcmcia_enable_device(link);
drivers/bluetooth/dtl1_cs.c
594
dtl1_detach(link);
drivers/bluetooth/dtl1_cs.c
84
static int dtl1_config(struct pcmcia_device *link);
drivers/char/ipmi/ipmi_devintf.c
129
list_for_each_entry_safe(msg, next, &priv->recv_msgs, link)
drivers/char/ipmi/ipmi_devintf.c
224
msg = list_entry(entry, struct ipmi_recv_msg, link);
drivers/char/ipmi/ipmi_devintf.c
48
list_add_tail(&msg->link, &priv->recv_msgs);
drivers/char/ipmi/ipmi_devintf.c
802
struct list_head link;
drivers/char/ipmi/ipmi_devintf.c
825
list_add(&entry->link, &reg_list);
drivers/char/ipmi/ipmi_devintf.c
835
list_for_each_entry(entry, &reg_list, link) {
drivers/char/ipmi/ipmi_devintf.c
837
list_del(&entry->link);
drivers/char/ipmi/ipmi_devintf.c
893
list_for_each_entry_safe(entry, entry2, &reg_list, link) {
drivers/char/ipmi/ipmi_devintf.c
894
list_del(&entry->link);
drivers/char/ipmi/ipmi_msghandler.c
1256
list_for_each_entry(intf, &ipmi_interfaces, link) {
drivers/char/ipmi/ipmi_msghandler.c
1300
list_add(&new_user->link, &intf->users);
drivers/char/ipmi/ipmi_msghandler.c
1327
list_for_each_entry(intf, &ipmi_interfaces, link) {
drivers/char/ipmi/ipmi_msghandler.c
1364
list_del(&user->link);
drivers/char/ipmi/ipmi_msghandler.c
1385
list_for_each_entry_rcu(rcvr, &intf->cmd_rcvrs, link,
drivers/char/ipmi/ipmi_msghandler.c
1388
list_del_rcu(&rcvr->link);
drivers/char/ipmi/ipmi_msghandler.c
1401
list_for_each_entry_safe(msg, msg2, &intf->user_msgs, link) {
drivers/char/ipmi/ipmi_msghandler.c
1404
list_del(&msg->link);
drivers/char/ipmi/ipmi_msghandler.c
1636
list_for_each_entry_safe(msg, msg2, &intf->waiting_events, link)
drivers/char/ipmi/ipmi_msghandler.c
1637
list_move_tail(&msg->link, &msgs);
drivers/char/ipmi/ipmi_msghandler.c
1644
list_for_each_entry_safe(msg, msg2, &msgs, link) {
drivers/char/ipmi/ipmi_msghandler.c
1665
list_for_each_entry_rcu(rcvr, &intf->cmd_rcvrs, link,
drivers/char/ipmi/ipmi_msghandler.c
1681
list_for_each_entry_rcu(rcvr, &intf->cmd_rcvrs, link,
drivers/char/ipmi/ipmi_msghandler.c
1722
list_add_rcu(&rcvr->link, &intf->cmd_rcvrs);
drivers/char/ipmi/ipmi_msghandler.c
1760
list_del_rcu(&rcvr->link);
drivers/char/ipmi/ipmi_msghandler.c
185
struct list_head link;
drivers/char/ipmi/ipmi_msghandler.c
1877
list_add_tail(&smi_msg->link, &intf->hp_xmit_msgs);
drivers/char/ipmi/ipmi_msghandler.c
1879
list_add_tail(&smi_msg->link, &intf->xmit_msgs);
drivers/char/ipmi/ipmi_msghandler.c
204
struct list_head link;
drivers/char/ipmi/ipmi_msghandler.c
3576
list_for_each_entry(user, &intf->users, link)
drivers/char/ipmi/ipmi_msghandler.c
3617
struct list_head *link;
drivers/char/ipmi/ipmi_msghandler.c
3689
link = &ipmi_interfaces;
drivers/char/ipmi/ipmi_msghandler.c
3690
list_for_each_entry(tintf, &ipmi_interfaces, link) {
drivers/char/ipmi/ipmi_msghandler.c
3692
link = &tintf->link;
drivers/char/ipmi/ipmi_msghandler.c
3699
list_add(&intf->link, &ipmi_interfaces);
drivers/char/ipmi/ipmi_msghandler.c
3701
list_add_tail(&intf->link, link);
drivers/char/ipmi/ipmi_msghandler.c
3757
list_del(&intf->link);
drivers/char/ipmi/ipmi_msghandler.c
3810
msg = list_entry(entry, struct ipmi_smi_msg, link);
drivers/char/ipmi/ipmi_msghandler.c
3837
list_del(&intf->link);
drivers/char/ipmi/ipmi_msghandler.c
3857
list_for_each_entry(w, &smi_watchers, link)
drivers/char/ipmi/ipmi_msghandler.c
3864
struct ipmi_user, link);
drivers/char/ipmi/ipmi_msghandler.c
429
struct list_head link;
drivers/char/ipmi/ipmi_msghandler.c
4471
list_for_each_entry(user, &intf->users, link) {
drivers/char/ipmi/ipmi_msghandler.c
4479
link) {
drivers/char/ipmi/ipmi_msghandler.c
4481
list_del(&recv_msg->link);
drivers/char/ipmi/ipmi_msghandler.c
4497
list_add_tail(&recv_msg->link, &msgs);
drivers/char/ipmi/ipmi_msghandler.c
4503
list_for_each_entry_safe(recv_msg, recv_msg2, &msgs, link) {
drivers/char/ipmi/ipmi_msghandler.c
4504
list_del(&recv_msg->link);
drivers/char/ipmi/ipmi_msghandler.c
4524
list_add_tail(&recv_msg->link, &intf->waiting_events);
drivers/char/ipmi/ipmi_msghandler.c
4826
struct ipmi_smi_msg, link);
drivers/char/ipmi/ipmi_msghandler.c
4827
list_del(&smi_msg->link);
drivers/char/ipmi/ipmi_msghandler.c
4842
list_add(&smi_msg->link, &intf->waiting_rcv_msgs);
drivers/char/ipmi/ipmi_msghandler.c
4884
newmsg = list_entry(entry, struct ipmi_smi_msg, link);
drivers/char/ipmi/ipmi_msghandler.c
4919
list_for_each_entry(user, &intf->users, link) {
drivers/char/ipmi/ipmi_msghandler.c
4935
list_for_each_entry_safe(msg, msg2, &intf->user_msgs, link) {
drivers/char/ipmi/ipmi_msghandler.c
4938
list_del(&msg->link);
drivers/char/ipmi/ipmi_msghandler.c
4963
list_add_tail(&msg->link, &intf->waiting_rcv_msgs);
drivers/char/ipmi/ipmi_msghandler.c
5040
list_add_tail(&msg->link, timeouts);
drivers/char/ipmi/ipmi_msghandler.c
5137
list_for_each_entry_safe(msg, msg2, &timeouts, link)
drivers/char/ipmi/ipmi_msghandler.c
5194
list_for_each_entry(intf, &ipmi_interfaces, link) {
drivers/char/ipmi/ipmi_msghandler.c
5548
list_for_each_entry(intf, &ipmi_interfaces, link) {
drivers/char/ipmi/ipmi_msghandler.c
5578
list_for_each_entry(user, &intf->users, link) {
drivers/char/ipmi/ipmi_msghandler.c
709
list_for_each_entry_safe(msg, msg2, q, link) {
drivers/char/ipmi/ipmi_msghandler.c
710
list_del(&msg->link);
drivers/char/ipmi/ipmi_msghandler.c
719
list_for_each_entry_safe(msg, msg2, q, link) {
drivers/char/ipmi/ipmi_msghandler.c
720
list_del(&msg->link);
drivers/char/ipmi/ipmi_msghandler.c
738
list_for_each_entry_safe(rcvr, rcvr2, &intf->cmd_rcvrs, link)
drivers/char/ipmi/ipmi_msghandler.c
768
list_add(&watcher->link, &smi_watchers);
drivers/char/ipmi/ipmi_msghandler.c
777
list_for_each_entry(intf, &ipmi_interfaces, link)
drivers/char/ipmi/ipmi_msghandler.c
794
list_for_each_entry(intf, &ipmi_interfaces, link) {
drivers/char/ipmi/ipmi_msghandler.c
821
list_del(&watcher->link);
drivers/char/ipmi/ipmi_msghandler.c
832
list_for_each_entry(w, &smi_watchers, link) {
drivers/char/ipmi/ipmi_msghandler.c
988
list_add_tail(&msg->link, &intf->user_msgs);
drivers/char/ipmi/ipmi_si_intf.c
1881
list_for_each_entry(e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
1959
list_add_tail(&new_smi->link, &smi_infos);
drivers/char/ipmi/ipmi_si_intf.c
2161
list_for_each_entry(e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2172
list_for_each_entry(e2, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2187
list_for_each_entry(e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2198
list_for_each_entry(e2, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2206
list_for_each_entry(e2, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2313
list_del(&smi_info->link);
drivers/char/ipmi/ipmi_si_intf.c
2323
list_for_each_entry(e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2340
list_for_each_entry_safe(e, tmp_e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2371
list_for_each_entry_safe(e, tmp_e, &smi_infos, link)
drivers/char/ipmi/ipmi_si_intf.c
251
struct list_head link;
drivers/char/ipmi/ipmi_ssif.c
1286
list_for_each_entry(addr_info, &ssif_infos, link) {
drivers/char/ipmi/ipmi_ssif.c
1409
list_for_each_entry(info, &ssif_infos, link) {
drivers/char/ipmi/ipmi_ssif.c
1617
list_add_tail(&info->link, &ssif_infos);
drivers/char/ipmi/ipmi_ssif.c
1631
list_for_each_entry(info, &ssif_infos, link) {
drivers/char/ipmi/ipmi_ssif.c
193
struct list_head link;
drivers/char/ipmi/ipmi_ssif.c
1978
list_add_tail(&addr_info->link, &ssif_infos);
drivers/char/ipmi/ipmi_ssif.c
1992
list_for_each_entry_safe(info, tmp, &ssif_infos, link) {
drivers/char/ipmi/ipmi_ssif.c
1993
list_del(&info->link);
drivers/char/ipmi/ipmi_ssif.c
2006
list_for_each_entry(info, &ssif_infos, link)
drivers/char/ipmi/ipmi_ssif.c
2014
list_for_each_entry(info, &ssif_infos, link) {
drivers/char/ipmi/ipmi_ssif.c
2097
list_del(&addr_info->link);
drivers/clk/clk.c
4936
struct list_head link;
drivers/clk/clk.c
5021
list_add(&cp->link, &of_clk_providers);
drivers/clk/clk.c
5063
list_add(&cp->link, &of_clk_providers);
drivers/clk/clk.c
5155
list_for_each_entry(cp, &of_clk_providers, link) {
drivers/clk/clk.c
5157
list_del(&cp->link);
drivers/clk/clk.c
5271
list_for_each_entry(provider, &of_clk_providers, link) {
drivers/clk/ti/clk.c
251
struct list_head link;
drivers/clk/ti/clk.c
278
list_add(&retry->link, &retry_list);
drivers/clk/ti/clk.c
459
list_for_each_entry_safe(retry, tmp, &retry_list, link) {
drivers/clk/ti/clk.c
462
list_del(&retry->link);
drivers/clk/ti/composite.c
192
list_del(&cclk->comp_clks[i]->link);
drivers/clk/ti/composite.c
267
list_add(&clk->link, &component_clks);
drivers/clk/ti/composite.c
59
struct list_head link;
drivers/clk/ti/composite.c
85
list_for_each_entry(comp, &component_clks, link) {
drivers/comedi/comedi_pcmcia.c
101
struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
drivers/comedi/comedi_pcmcia.c
103
if (link)
drivers/comedi/comedi_pcmcia.c
104
pcmcia_disable_device(link);
drivers/comedi/comedi_pcmcia.c
121
int comedi_pcmcia_auto_config(struct pcmcia_device *link,
drivers/comedi/comedi_pcmcia.c
124
return comedi_auto_config(&link->dev, driver, 0);
drivers/comedi/comedi_pcmcia.c
142
void comedi_pcmcia_auto_unconfig(struct pcmcia_device *link)
drivers/comedi/comedi_pcmcia.c
144
comedi_auto_unconfig(&link->dev);
drivers/comedi/comedi_pcmcia.c
30
static int comedi_pcmcia_conf_check(struct pcmcia_device *link,
drivers/comedi/comedi_pcmcia.c
33
if (link->config_index == 0)
drivers/comedi/comedi_pcmcia.c
36
return pcmcia_request_io(link);
drivers/comedi/comedi_pcmcia.c
74
struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
drivers/comedi/comedi_pcmcia.c
77
if (!link)
drivers/comedi/comedi_pcmcia.c
83
ret = pcmcia_loop_config(link, conf_check, NULL);
drivers/comedi/comedi_pcmcia.c
87
return pcmcia_enable_device(link);
drivers/comedi/drivers/cb_das16_cs.c
325
struct pcmcia_device *link)
drivers/comedi/drivers/cb_das16_cs.c
332
if (board->device_id == link->card_id)
drivers/comedi/drivers/cb_das16_cs.c
342
struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
drivers/comedi/drivers/cb_das16_cs.c
348
board = das16cs_find_boardinfo(dev, link);
drivers/comedi/drivers/cb_das16_cs.c
354
link->config_flags |= CONF_AUTO_SET_IO | CONF_ENABLE_IRQ;
drivers/comedi/drivers/cb_das16_cs.c
358
dev->iobase = link->resource[0]->start;
drivers/comedi/drivers/cb_das16_cs.c
360
link->priv = dev;
drivers/comedi/drivers/cb_das16_cs.c
431
static int das16cs_pcmcia_attach(struct pcmcia_device *link)
drivers/comedi/drivers/cb_das16_cs.c
433
return comedi_pcmcia_auto_config(link, &driver_das16cs);
drivers/comedi/drivers/das08_cs.c
52
struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
drivers/comedi/drivers/das08_cs.c
60
link->config_flags |= CONF_AUTO_SET_IO;
drivers/comedi/drivers/das08_cs.c
64
iobase = link->resource[0]->start;
drivers/comedi/drivers/das08_cs.c
80
static int das08_pcmcia_attach(struct pcmcia_device *link)
drivers/comedi/drivers/das08_cs.c
82
return comedi_pcmcia_auto_config(link, &driver_das08_cs);
drivers/comedi/drivers/jr3_pci.c
141
set_u16(&sensor->transforms[num].link[i].link_type,
drivers/comedi/drivers/jr3_pci.c
142
transf->link[i].link_type);
drivers/comedi/drivers/jr3_pci.c
144
set_s16(&sensor->transforms[num].link[i].link_amount,
drivers/comedi/drivers/jr3_pci.c
145
transf->link[i].link_amount);
drivers/comedi/drivers/jr3_pci.c
147
if (transf->link[i].link_type == end_x_form)
drivers/comedi/drivers/jr3_pci.c
477
for (i = 0; i < ARRAY_SIZE(transf.link); i++) {
drivers/comedi/drivers/jr3_pci.c
478
transf.link[i].link_type = (enum link_types)0;
drivers/comedi/drivers/jr3_pci.c
479
transf.link[i].link_amount = 0;
drivers/comedi/drivers/jr3_pci.c
80
} link[8];
drivers/comedi/drivers/jr3_pci.h
276
} link[8];
drivers/comedi/drivers/ni_daq_700.c
211
struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
drivers/comedi/drivers/ni_daq_700.c
215
link->config_flags |= CONF_AUTO_SET_IO;
drivers/comedi/drivers/ni_daq_700.c
219
dev->iobase = link->resource[0]->start;
drivers/comedi/drivers/ni_daq_700.c
256
static int daq700_cs_attach(struct pcmcia_device *link)
drivers/comedi/drivers/ni_daq_700.c
258
return comedi_pcmcia_auto_config(link, &daq700_driver);
drivers/comedi/drivers/ni_daq_dio24.c
32
struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
drivers/comedi/drivers/ni_daq_dio24.c
36
link->config_flags |= CONF_AUTO_SET_IO;
drivers/comedi/drivers/ni_daq_dio24.c
40
dev->iobase = link->resource[0]->start;
drivers/comedi/drivers/ni_daq_dio24.c
58
static int dio24_cs_attach(struct pcmcia_device *link)
drivers/comedi/drivers/ni_daq_dio24.c
60
return comedi_pcmcia_auto_config(link, &driver_dio24);
drivers/comedi/drivers/ni_labpc_cs.c
57
struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
drivers/comedi/drivers/ni_labpc_cs.c
63
link->config_flags |= CONF_AUTO_SET_IO |
drivers/comedi/drivers/ni_labpc_cs.c
68
dev->iobase = link->resource[0]->start;
drivers/comedi/drivers/ni_labpc_cs.c
70
if (!link->irq)
drivers/comedi/drivers/ni_labpc_cs.c
73
return labpc_common_attach(dev, link->irq, IRQF_SHARED);
drivers/comedi/drivers/ni_labpc_cs.c
89
static int labpc_cs_attach(struct pcmcia_device *link)
drivers/comedi/drivers/ni_labpc_cs.c
91
return comedi_pcmcia_auto_config(link, &driver_labpc_cs);
drivers/comedi/drivers/ni_mio_cs.c
118
struct pcmcia_device *link)
drivers/comedi/drivers/ni_mio_cs.c
125
if (board->device_id == link->card_id)
drivers/comedi/drivers/ni_mio_cs.c
150
struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
drivers/comedi/drivers/ni_mio_cs.c
154
board = ni_getboardtype(dev, link);
drivers/comedi/drivers/ni_mio_cs.c
160
link->config_flags |= CONF_AUTO_SET_IO | CONF_ENABLE_IRQ;
drivers/comedi/drivers/ni_mio_cs.c
164
dev->iobase = link->resource[0]->start;
drivers/comedi/drivers/ni_mio_cs.c
166
link->priv = dev;
drivers/comedi/drivers/ni_mio_cs.c
167
ret = pcmcia_request_irq(link, ni_E_interrupt);
drivers/comedi/drivers/ni_mio_cs.c
170
dev->irq = link->irq;
drivers/comedi/drivers/ni_mio_cs.c
192
static int cs_attach(struct pcmcia_device *link)
drivers/comedi/drivers/ni_mio_cs.c
194
return comedi_pcmcia_auto_config(link, &driver_ni_mio_cs);
drivers/comedi/drivers/quatech_daqp_cs.c
700
struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
drivers/comedi/drivers/quatech_daqp_cs.c
709
link->config_flags |= CONF_AUTO_SET_IO | CONF_ENABLE_IRQ;
drivers/comedi/drivers/quatech_daqp_cs.c
713
dev->iobase = link->resource[0]->start;
drivers/comedi/drivers/quatech_daqp_cs.c
715
link->priv = dev;
drivers/comedi/drivers/quatech_daqp_cs.c
716
ret = pcmcia_request_irq(link, daqp_interrupt);
drivers/comedi/drivers/quatech_daqp_cs.c
718
dev->irq = link->irq;
drivers/comedi/drivers/quatech_daqp_cs.c
794
static int daqp_cs_suspend(struct pcmcia_device *link)
drivers/comedi/drivers/quatech_daqp_cs.c
796
struct comedi_device *dev = link->priv;
drivers/comedi/drivers/quatech_daqp_cs.c
806
static int daqp_cs_resume(struct pcmcia_device *link)
drivers/comedi/drivers/quatech_daqp_cs.c
808
struct comedi_device *dev = link->priv;
drivers/comedi/drivers/quatech_daqp_cs.c
817
static int daqp_cs_attach(struct pcmcia_device *link)
drivers/comedi/drivers/quatech_daqp_cs.c
819
return comedi_pcmcia_auto_config(link, &driver_daqp);
drivers/cpuidle/cpuidle-psci-domain.c
112
&psci_pd_providers, link) {
drivers/cpuidle/cpuidle-psci-domain.c
120
list_del(&pd_provider->link);
drivers/cpuidle/cpuidle-psci-domain.c
26
struct list_head link;
drivers/cpuidle/cpuidle-psci-domain.c
90
list_add(&pd_provider->link, &psci_pd_providers);
drivers/cpuidle/cpuidle-riscv-sbi.c
366
struct list_head link;
drivers/cpuidle/cpuidle-riscv-sbi.c
407
list_add(&pd_provider->link, &sbi_pd_providers);
drivers/cpuidle/cpuidle-riscv-sbi.c
428
list_for_each_entry_safe(pd_provider, it, &sbi_pd_providers, link) {
drivers/cpuidle/cpuidle-riscv-sbi.c
436
list_del(&pd_provider->link);
drivers/dma-buf/sw_sync.c
160
if (!list_empty(&pt->link)) {
drivers/dma-buf/sw_sync.c
161
list_del(&pt->link);
drivers/dma-buf/sw_sync.c
220
list_for_each_entry_safe(pt, next, &obj->pt_list, link) {
drivers/dma-buf/sw_sync.c
226
list_move_tail(&pt->link, &signalled);
drivers/dma-buf/sw_sync.c
234
list_for_each_entry_safe(pt, next, &signalled, link) {
drivers/dma-buf/sw_sync.c
235
list_del_init(&pt->link);
drivers/dma-buf/sw_sync.c
262
INIT_LIST_HEAD(&pt->link);
drivers/dma-buf/sw_sync.c
294
list_add_tail(&pt->link,
drivers/dma-buf/sw_sync.c
295
parent ? &rb_entry(parent, typeof(*pt), node)->link : &obj->pt_list);
drivers/dma-buf/sw_sync.c
333
list_for_each_entry_safe(pt, next, &obj->pt_list, link) {
drivers/dma-buf/sync_debug.c
78
struct sync_pt *pt = container_of(pos, struct sync_pt, link);
drivers/dma-buf/sync_debug.h
62
struct list_head link;
drivers/edac/edac_device.c
178
edac_dev = list_entry(item, struct edac_device_ctl_info, link);
drivers/edac/edac_device.c
212
rover = list_entry(item, struct edac_device_ctl_info, link);
drivers/edac/edac_device.c
223
list_add_tail_rcu(&edac_dev->link, insert_before);
drivers/edac/edac_device.c
247
list_del_rcu(&edac_device->link);
drivers/edac/edac_device.c
253
INIT_LIST_HEAD(&edac_device->link);
drivers/edac/edac_device.h
143
struct list_head link;
drivers/edac/edac_mc.c
436
mci = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_mc.c
503
mci = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_mc.c
533
p = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_mc.c
544
list_add_tail_rcu(&mci->link, insert_before);
drivers/edac/edac_mc.c
562
list_del_rcu(&mci->link);
drivers/edac/edac_mc.c
568
INIT_LIST_HEAD(&mci->link);
drivers/edac/edac_mc.c
581
mci = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_pci.c
112
rover = list_entry(item, struct edac_pci_ctl_info, link);
drivers/edac/edac_pci.c
123
list_add_tail_rcu(&pci->link, insert_before);
drivers/edac/edac_pci.c
148
list_del_rcu(&pci->link);
drivers/edac/edac_pci.c
154
INIT_LIST_HEAD(&pci->link);
drivers/edac/edac_pci.c
79
pci = list_entry(item, struct edac_pci_ctl_info, link);
drivers/edac/edac_pci.h
46
struct list_head link;
drivers/edac/thunderx_edac.c
1043
int link;
drivers/edac/thunderx_edac.c
1171
ctx->link = msix->entry;
drivers/edac/thunderx_edac.c
1172
ctx->reg_com_link_int = readq(ocx->regs + OCX_COM_LINKX_INT(ctx->link));
drivers/edac/thunderx_edac.c
1174
writeq(ctx->reg_com_link_int, ocx->regs + OCX_COM_LINKX_INT(ctx->link));
drivers/edac/thunderx_edac.c
1209
ctx->link, ctx->reg_com_link_int);
drivers/firewire/core-card.c
121
list_for_each_entry (desc, &descriptor_list, link) {
drivers/firewire/core-card.c
133
list_for_each_entry (desc, &descriptor_list, link) {
drivers/firewire/core-card.c
153
list_for_each_entry (card, &card_list, link) {
drivers/firewire/core-card.c
187
list_add_tail(&desc->link, &descriptor_list);
drivers/firewire/core-card.c
202
list_del(&desc->link);
drivers/firewire/core-card.c
655
list_add_tail(&card->link, &card_list);
drivers/firewire/core-card.c
784
list_del_init(&card->link);
drivers/firewire/core-cdev.c
1858
list_del(&client->link);
drivers/firewire/core-cdev.c
1879
list_for_each_entry_safe(event, next_event, &client->event_list, link)
drivers/firewire/core-cdev.c
192
struct list_head link;
drivers/firewire/core-cdev.c
307
INIT_LIST_HEAD(&client->link);
drivers/firewire/core-cdev.c
328
list_add_tail(&event->link, &client->event_list);
drivers/firewire/core-cdev.c
352
event = list_first_entry(&client->event_list, struct event, link);
drivers/firewire/core-cdev.c
353
list_del(&event->link);
drivers/firewire/core-cdev.c
405
list_for_each_entry(c, &device->client_list, link)
drivers/firewire/core-cdev.c
501
if (ret == 0 && list_empty(&client->link))
drivers/firewire/core-cdev.c
502
list_add_tail(&client->link, &client->device->client_list);
drivers/firewire/core-cdev.c
74
struct list_head link;
drivers/firewire/core-device.c
1437
list_empty(&card->link) ? 0 : SHUTDOWN_DELAY);
drivers/firewire/core-device.c
935
&& !list_empty(&device->card->link)) {
drivers/firewire/core-topology.c
215
child = fw_node(child->link.next);
drivers/firewire/core-topology.c
235
list_add_tail(&node->link, &stack);
drivers/firewire/core-topology.c
273
list_add_tail(&root->link, &list);
drivers/firewire/core-topology.c
275
list_for_each_entry(node, &list, link) {
drivers/firewire/core-topology.c
286
list_add_tail(&child->link, &list);
drivers/firewire/core-topology.c
293
list_for_each_entry_safe(node, next, &list, link)
drivers/firewire/core-topology.c
366
list_add_tail(&card->local_node->link, &list0);
drivers/firewire/core-topology.c
368
list_add_tail(&root->link, &list1);
drivers/firewire/core-topology.c
373
while (&node0->link != &list0) {
drivers/firewire/core-topology.c
407
list_add_tail(&node0->ports[i]->link, &list0);
drivers/firewire/core-topology.c
408
list_add_tail(&node1->ports[i]->link, &list1);
drivers/firewire/core-topology.c
43
INIT_LIST_HEAD(&node->link);
drivers/firewire/core-topology.c
433
node0 = fw_node(node0->link.next);
drivers/firewire/core-topology.c
434
next1 = fw_node(node1->link.next);
drivers/firewire/core-topology.c
88
return list_entry(l, struct fw_node, link);
drivers/firewire/core-transaction.c
1053
list_for_each_entry_rcu(handler, &address_handler_list, link) {
drivers/firewire/core-transaction.c
163
if (list_empty(&t->link))
drivers/firewire/core-transaction.c
179
if (list_empty(&t->link) || WARN_ON(t->is_split_transaction))
drivers/firewire/core-transaction.c
436
list_add_tail(&t->link, &card->transactions.list);
drivers/firewire/core-transaction.c
50
list_del_init(&entry->link);
drivers/firewire/core-transaction.c
563
list_for_each_entry_rcu(handler, list, link) {
drivers/firewire/core-transaction.c
584
list_for_each_entry_rcu(handler, list, link) {
drivers/firewire/core-transaction.c
63
list_for_each_entry_safe(t, tmp, &card->transactions.list, link) {
drivers/firewire/core-transaction.c
65
list_move(&t->link, &pending_list);
drivers/firewire/core-transaction.c
677
list_add_tail_rcu(&handler->link, &address_handler_list);
drivers/firewire/core-transaction.c
69
list_for_each_entry_safe(t, tmp, &pending_list, link) {
drivers/firewire/core-transaction.c
699
list_del_rcu(&handler->link);
drivers/firewire/core-transaction.c
70
list_del(&t->link);
drivers/firewire/core-transaction.c
86
list_for_each_entry(iter, &card->transactions.list, link) { \
drivers/firewire/core.h
216
struct list_head link;
drivers/firewire/nosy.c
110
struct list_head link;
drivers/firewire/nosy.c
147
list_empty(&client->lynx->link))
drivers/firewire/nosy.c
275
list_for_each_entry(tmp, &card_list, link)
drivers/firewire/nosy.c
290
INIT_LIST_HEAD(&client->link);
drivers/firewire/nosy.c
312
list_del_init(&client->link);
drivers/firewire/nosy.c
333
if (list_empty(&client->lynx->link))
drivers/firewire/nosy.c
370
if (list_empty(&client->link)) {
drivers/firewire/nosy.c
371
list_add_tail(&client->link, &client->lynx->client_list);
drivers/firewire/nosy.c
380
list_del_init(&client->link);
drivers/firewire/nosy.c
433
list_for_each_entry(client, &lynx->client_list, link)
drivers/firewire/nosy.c
453
list_for_each_entry(client, &lynx->client_list, link)
drivers/firewire/nosy.c
506
list_del_init(&lynx->link);
drivers/firewire/nosy.c
514
list_for_each_entry(client, &lynx->client_list, link)
drivers/firewire/nosy.c
662
list_add_tail(&lynx->link, &card_list);
drivers/firewire/nosy.c
82
struct list_head link;
drivers/firewire/sbp2.c
1180
list_for_each_entry(lu, &tgt->lu_list, link)
drivers/firewire/sbp2.c
1205
list_for_each_entry(lu, &tgt->lu_list, link) {
drivers/firewire/sbp2.c
121
struct list_head link;
drivers/firewire/sbp2.c
1224
list_for_each_entry_safe(lu, next, &tgt->lu_list, link) {
drivers/firewire/sbp2.c
1246
list_del(&lu->link);
drivers/firewire/sbp2.c
263
struct list_head link;
drivers/firewire/sbp2.c
437
list_for_each_entry(iter, &lu->orb_list, link) {
drivers/firewire/sbp2.c
441
list_del(&iter->link);
drivers/firewire/sbp2.c
478
list_del(&orb->link);
drivers/firewire/sbp2.c
502
list_add_tail(&orb->link, &lu->orb_list);
drivers/firewire/sbp2.c
525
list_for_each_entry_safe(orb, next, &list, link) {
drivers/firewire/sbp2.c
994
list_add_tail(&lu->link, &tgt->lu_list);
drivers/firmware/arm_scmi/driver.c
2604
struct device_link *link;
drivers/firmware/arm_scmi/driver.c
2606
link = device_link_add(consumer, supplier, DL_FLAG_AUTOREMOVE_CONSUMER);
drivers/firmware/arm_scmi/driver.c
2608
WARN_ON(!link);
drivers/firmware/arm_scmi/transports/optee.c
132
struct list_head link;
drivers/firmware/arm_scmi/transports/optee.c
413
list_add(&channel->link, &scmi_optee_private->channel_list);
drivers/firmware/arm_scmi/transports/optee.c
440
list_del(&channel->link);
drivers/firmware/samsung/exynos-acpm.c
708
struct device_link *link;
drivers/firmware/samsung/exynos-acpm.c
726
link = device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER);
drivers/firmware/samsung/exynos-acpm.c
727
if (!link) {
drivers/fsi/fsi-core.c
101
static int fsi_master_break(struct fsi_master *master, int link);
drivers/fsi/fsi-core.c
1036
static int fsi_slave_init(struct fsi_master *master, int link, uint8_t id)
drivers/fsi/fsi-core.c
1050
rc = fsi_master_read(master, link, id, 0, &data, sizeof(data));
drivers/fsi/fsi-core.c
1053
link, id, rc);
drivers/fsi/fsi-core.c
1060
trace_fsi_slave_invalid_cfam(master, link, cfam_id);
drivers/fsi/fsi-core.c
1062
link, id);
drivers/fsi/fsi-core.c
1067
cfam_id, master->idx, link, id);
drivers/fsi/fsi-core.c
1074
rc = fsi_master_write(master, link, id,
drivers/fsi/fsi-core.c
1080
link, id, rc);
drivers/fsi/fsi-core.c
1090
dev_set_name(&slave->dev, "slave@%02x:%02x", link, id);
drivers/fsi/fsi-core.c
1093
slave->dev.of_node = fsi_slave_find_of_node(master, link, id);
drivers/fsi/fsi-core.c
1098
slave->link = link;
drivers/fsi/fsi-core.c
1114
rc = fsi_master_write(master, link, id, FSI_SLAVE_BASE + FSI_SLBUS,
drivers/fsi/fsi-core.c
1118
"can't set slbus on slave:%02x:%02x %d\n", link, id,
drivers/fsi/fsi-core.c
1125
link, id, rc);
drivers/fsi/fsi-core.c
1151
master->link_config(master, link,
drivers/fsi/fsi-core.c
1191
static int fsi_master_read(struct fsi_master *master, int link,
drivers/fsi/fsi-core.c
1196
trace_fsi_master_read(master, link, slave_id, addr, size);
drivers/fsi/fsi-core.c
1200
rc = master->read(master, link, slave_id, addr, val, size);
drivers/fsi/fsi-core.c
1202
trace_fsi_master_rw_result(master, link, slave_id, addr, size,
drivers/fsi/fsi-core.c
1208
static int fsi_master_write(struct fsi_master *master, int link,
drivers/fsi/fsi-core.c
1213
trace_fsi_master_write(master, link, slave_id, addr, size, val);
drivers/fsi/fsi-core.c
1217
rc = master->write(master, link, slave_id, addr, val, size);
drivers/fsi/fsi-core.c
1219
trace_fsi_master_rw_result(master, link, slave_id, addr, size,
drivers/fsi/fsi-core.c
1225
static int fsi_master_link_disable(struct fsi_master *master, int link)
drivers/fsi/fsi-core.c
1228
return master->link_enable(master, link, false);
drivers/fsi/fsi-core.c
1233
static int fsi_master_link_enable(struct fsi_master *master, int link)
drivers/fsi/fsi-core.c
1236
return master->link_enable(master, link, true);
drivers/fsi/fsi-core.c
1244
static int fsi_master_break(struct fsi_master *master, int link)
drivers/fsi/fsi-core.c
1248
trace_fsi_master_break(master, link);
drivers/fsi/fsi-core.c
1251
rc = master->send_break(master, link);
drivers/fsi/fsi-core.c
1253
master->link_config(master, link, 16, 16);
drivers/fsi/fsi-core.c
1260
int link, rc;
drivers/fsi/fsi-core.c
1263
for (link = 0; link < master->n_links; link++) {
drivers/fsi/fsi-core.c
1264
rc = fsi_master_link_enable(master, link);
drivers/fsi/fsi-core.c
1267
"enable link %d failed: %d\n", link, rc);
drivers/fsi/fsi-core.c
1270
rc = fsi_master_break(master, link);
drivers/fsi/fsi-core.c
1272
fsi_master_link_disable(master, link);
drivers/fsi/fsi-core.c
1274
"break to link %d failed: %d\n", link, rc);
drivers/fsi/fsi-core.c
1278
rc = fsi_slave_init(master, link, 0);
drivers/fsi/fsi-core.c
1280
fsi_master_link_disable(master, link);
drivers/fsi/fsi-core.c
254
int rc, link;
drivers/fsi/fsi-core.c
257
link = slave->link;
drivers/fsi/fsi-core.c
260
rc = fsi_master_read(master, link, id, FSI_SLAVE_BASE + FSI_SISC,
drivers/fsi/fsi-core.c
265
rc = fsi_master_read(master, link, id, FSI_SLAVE_BASE + FSI_SSTAT,
drivers/fsi/fsi-core.c
274
return fsi_master_write(master, link, id, FSI_SLAVE_BASE + FSI_SISC,
drivers/fsi/fsi-core.c
321
return fsi_master_write(slave->master, slave->link, slave->id,
drivers/fsi/fsi-core.c
330
int rc, link;
drivers/fsi/fsi-core.c
337
link = slave->link;
drivers/fsi/fsi-core.c
352
rc = master->term(master, link, id);
drivers/fsi/fsi-core.c
354
rc = fsi_master_read(master, link, id, 0,
drivers/fsi/fsi-core.c
367
rc = fsi_master_break(master, link);
drivers/fsi/fsi-core.c
379
master->link_config(master, link,
drivers/fsi/fsi-core.c
397
rc = fsi_master_read(slave->master, slave->link,
drivers/fsi/fsi-core.c
422
rc = fsi_master_write(slave->master, slave->link,
drivers/fsi/fsi-core.c
566
slave->master->idx, slave->link,
drivers/fsi/fsi-core.c
685
int link, uint8_t id)
drivers/fsi/fsi-core.c
692
return addr == (((u64)link << 32) | id);
drivers/fsi/fsi-core.c
699
int link, uint8_t id)
drivers/fsi/fsi-core.c
708
if (fsi_slave_node_matches(np, link, id))
drivers/fsi/fsi-core.c
830
master->term(master, slave->link, slave->id);
drivers/fsi/fsi-core.c
870
master->link_config(master, slave->link,
drivers/fsi/fsi-core.c
97
static int fsi_master_read(struct fsi_master *master, int link,
drivers/fsi/fsi-core.c
99
static int fsi_master_write(struct fsi_master *master, int link,
drivers/fsi/fsi-master-aspeed.c
255
static int aspeed_master_read(struct fsi_master *master, int link,
drivers/fsi/fsi-master-aspeed.c
265
addr += link * FSI_HUB_LINK_SIZE;
drivers/fsi/fsi-master-aspeed.c
290
static int aspeed_master_write(struct fsi_master *master, int link,
drivers/fsi/fsi-master-aspeed.c
300
addr += link * FSI_HUB_LINK_SIZE;
drivers/fsi/fsi-master-aspeed.c
325
static int aspeed_master_link_enable(struct fsi_master *master, int link,
drivers/fsi/fsi-master-aspeed.c
332
idx = link / 32;
drivers/fsi/fsi-master-aspeed.c
333
bit = link % 32;
drivers/fsi/fsi-master-aspeed.c
354
static int aspeed_master_term(struct fsi_master *master, int link, uint8_t id)
drivers/fsi/fsi-master-aspeed.c
362
return aspeed_master_write(master, link, id, addr, &cmd, 4);
drivers/fsi/fsi-master-aspeed.c
365
static int aspeed_master_break(struct fsi_master *master, int link)
drivers/fsi/fsi-master-aspeed.c
373
return aspeed_master_write(master, link, 0, addr, &cmd, 4);
drivers/fsi/fsi-master-ast-cf.c
1042
static int fsi_master_acf_link_enable(struct fsi_master *_master, int link,
drivers/fsi/fsi-master-ast-cf.c
1048
if (link != 0)
drivers/fsi/fsi-master-ast-cf.c
1061
static int fsi_master_acf_link_config(struct fsi_master *_master, int link,
drivers/fsi/fsi-master-ast-cf.c
1066
if (link != 0)
drivers/fsi/fsi-master-ast-cf.c
597
static int fsi_master_acf_read(struct fsi_master *_master, int link,
drivers/fsi/fsi-master-ast-cf.c
605
if (link != 0)
drivers/fsi/fsi-master-ast-cf.c
621
static int fsi_master_acf_write(struct fsi_master *_master, int link,
drivers/fsi/fsi-master-ast-cf.c
629
if (link != 0)
drivers/fsi/fsi-master-ast-cf.c
647
int link, uint8_t id)
drivers/fsi/fsi-master-ast-cf.c
653
if (link != 0)
drivers/fsi/fsi-master-ast-cf.c
666
static int fsi_master_acf_break(struct fsi_master *_master, int link)
drivers/fsi/fsi-master-ast-cf.c
671
if (link != 0)
drivers/fsi/fsi-master-gpio.c
561
static int fsi_master_gpio_read(struct fsi_master *_master, int link,
drivers/fsi/fsi-master-gpio.c
568
if (link != 0)
drivers/fsi/fsi-master-gpio.c
580
static int fsi_master_gpio_write(struct fsi_master *_master, int link,
drivers/fsi/fsi-master-gpio.c
587
if (link != 0)
drivers/fsi/fsi-master-gpio.c
600
int link, uint8_t id)
drivers/fsi/fsi-master-gpio.c
606
if (link != 0)
drivers/fsi/fsi-master-gpio.c
618
static int fsi_master_gpio_break(struct fsi_master *_master, int link)
drivers/fsi/fsi-master-gpio.c
623
if (link != 0)
drivers/fsi/fsi-master-gpio.c
681
static int fsi_master_gpio_link_enable(struct fsi_master *_master, int link,
drivers/fsi/fsi-master-gpio.c
687
if (link != 0)
drivers/fsi/fsi-master-gpio.c
700
static int fsi_master_gpio_link_config(struct fsi_master *_master, int link,
drivers/fsi/fsi-master-gpio.c
705
if (link != 0)
drivers/fsi/fsi-master-hub.c
45
static int hub_master_read(struct fsi_master *master, int link,
drivers/fsi/fsi-master-hub.c
53
addr += hub->addr + (link * FSI_HUB_LINK_SIZE);
drivers/fsi/fsi-master-hub.c
57
static int hub_master_write(struct fsi_master *master, int link,
drivers/fsi/fsi-master-hub.c
65
addr += hub->addr + (link * FSI_HUB_LINK_SIZE);
drivers/fsi/fsi-master-hub.c
69
static int hub_master_break(struct fsi_master *master, int link)
drivers/fsi/fsi-master-hub.c
77
return hub_master_write(master, link, 0, addr, &cmd, sizeof(cmd));
drivers/fsi/fsi-master-hub.c
80
static int hub_master_link_enable(struct fsi_master *master, int link,
drivers/fsi/fsi-master-hub.c
88
idx = link / 32;
drivers/fsi/fsi-master-hub.c
89
bit = link % 32;
drivers/fsi/fsi-master-i2cr.c
187
static int i2cr_read(struct fsi_master *master, int link, uint8_t id, uint32_t addr, void *val,
drivers/fsi/fsi-master-i2cr.c
195
if (link || id || (addr & 0xffff0000) || !(size == 1 || size == 2 || size == 4))
drivers/fsi/fsi-master-i2cr.c
226
static int i2cr_write(struct fsi_master *master, int link, uint8_t id, uint32_t addr,
drivers/fsi/fsi-master-i2cr.c
233
if (link || id || (addr & 0xffff0000) || !(size == 1 || size == 2 || size == 4))
drivers/fsi/fsi-master.h
127
int (*read)(struct fsi_master *, int link, uint8_t id,
drivers/fsi/fsi-master.h
129
int (*write)(struct fsi_master *, int link, uint8_t id,
drivers/fsi/fsi-master.h
131
int (*term)(struct fsi_master *, int link, uint8_t id);
drivers/fsi/fsi-master.h
132
int (*send_break)(struct fsi_master *, int link);
drivers/fsi/fsi-master.h
133
int (*link_enable)(struct fsi_master *, int link,
drivers/fsi/fsi-master.h
135
int (*link_config)(struct fsi_master *, int link,
drivers/fsi/fsi-scom.c
68
struct list_head link;
drivers/fsi/fsi-slave.h
18
int link; /* FSI link# */
drivers/gpib/cb7210/cb7210.c
1136
static int cb_gpib_config(struct pcmcia_device *link);
drivers/gpib/cb7210/cb7210.c
1137
static void cb_gpib_release(struct pcmcia_device *link);
drivers/gpib/cb7210/cb7210.c
1185
static int cb_gpib_probe(struct pcmcia_device *link)
drivers/gpib/cb7210/cb7210.c
1195
info->p_dev = link;
drivers/gpib/cb7210/cb7210.c
1196
link->priv = info;
drivers/gpib/cb7210/cb7210.c
1199
link->resource[0]->end = 16;
drivers/gpib/cb7210/cb7210.c
1200
link->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
drivers/gpib/cb7210/cb7210.c
1201
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
drivers/gpib/cb7210/cb7210.c
1202
link->resource[1]->end = 16;
drivers/gpib/cb7210/cb7210.c
1203
link->resource[1]->flags &= ~IO_DATA_PATH_WIDTH;
drivers/gpib/cb7210/cb7210.c
1204
link->resource[1]->flags |= IO_DATA_PATH_WIDTH_16;
drivers/gpib/cb7210/cb7210.c
1205
link->io_lines = 10;
drivers/gpib/cb7210/cb7210.c
1208
link->config_flags = CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/gpib/cb7210/cb7210.c
1209
link->config_index = 1;
drivers/gpib/cb7210/cb7210.c
1210
link->config_regs = PRESENT_OPTION;
drivers/gpib/cb7210/cb7210.c
1213
curr_dev = link;
drivers/gpib/cb7210/cb7210.c
1214
ret = cb_gpib_config(link);
drivers/gpib/cb7210/cb7210.c
1232
static void cb_gpib_remove(struct pcmcia_device *link)
drivers/gpib/cb7210/cb7210.c
1234
struct local_info *info = link->priv;
drivers/gpib/cb7210/cb7210.c
1239
cb_gpib_release(link);
drivers/gpib/cb7210/cb7210.c
1245
static int cb_gpib_config_iteration(struct pcmcia_device *link, void *priv_data)
drivers/gpib/cb7210/cb7210.c
1247
return pcmcia_request_io(link);
drivers/gpib/cb7210/cb7210.c
1256
static int cb_gpib_config(struct pcmcia_device *link)
drivers/gpib/cb7210/cb7210.c
1260
retval = pcmcia_loop_config(link, &cb_gpib_config_iteration, NULL);
drivers/gpib/cb7210/cb7210.c
1262
dev_warn(&link->dev, "no configuration found\n");
drivers/gpib/cb7210/cb7210.c
1263
cb_gpib_release(link);
drivers/gpib/cb7210/cb7210.c
1271
retval = pcmcia_enable_device(link);
drivers/gpib/cb7210/cb7210.c
1273
dev_warn(&link->dev, "pcmcia_enable_device failed\n");
drivers/gpib/cb7210/cb7210.c
1274
cb_gpib_release(link);
drivers/gpib/cb7210/cb7210.c
1287
static void cb_gpib_release(struct pcmcia_device *link)
drivers/gpib/cb7210/cb7210.c
1289
pcmcia_disable_device(link);
drivers/gpib/cb7210/cb7210.c
1292
static int cb_gpib_suspend(struct pcmcia_device *link)
drivers/gpib/cb7210/cb7210.c
1294
if (link->open)
drivers/gpib/cb7210/cb7210.c
1295
dev_warn(&link->dev, "Device still open\n");
drivers/gpib/cb7210/cb7210.c
1300
static int cb_gpib_resume(struct pcmcia_device *link)
drivers/gpib/cb7210/cb7210.c
1302
return cb_gpib_config(link);
drivers/gpib/ines/ines_gpib.c
1005
static int ines_gpib_config(struct pcmcia_device *link);
drivers/gpib/ines/ines_gpib.c
1006
static void ines_gpib_release(struct pcmcia_device *link);
drivers/gpib/ines/ines_gpib.c
1057
static int ines_gpib_probe(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1068
info->p_dev = link;
drivers/gpib/ines/ines_gpib.c
1069
link->priv = info;
drivers/gpib/ines/ines_gpib.c
1072
link->resource[0]->end = 32;
drivers/gpib/ines/ines_gpib.c
1073
link->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
drivers/gpib/ines/ines_gpib.c
1074
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
drivers/gpib/ines/ines_gpib.c
1075
link->io_lines = 5;
drivers/gpib/ines/ines_gpib.c
1078
link->config_flags = CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/gpib/ines/ines_gpib.c
1081
curr_dev = link;
drivers/gpib/ines/ines_gpib.c
1082
return ines_gpib_config(link);
drivers/gpib/ines/ines_gpib.c
1091
static void ines_gpib_remove(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1093
struct local_info *info = link->priv;
drivers/gpib/ines/ines_gpib.c
1098
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1104
static int ines_gpib_config_iteration(struct pcmcia_device *link, void *priv_data)
drivers/gpib/ines/ines_gpib.c
1106
return pcmcia_request_io(link);
drivers/gpib/ines/ines_gpib.c
1114
static int ines_gpib_config(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1119
retval = pcmcia_loop_config(link, &ines_gpib_config_iteration, NULL);
drivers/gpib/ines/ines_gpib.c
1121
dev_warn(&link->dev, "no configuration found\n");
drivers/gpib/ines/ines_gpib.c
1122
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1126
dev_dbg(&link->dev, "ines_cs: manufacturer: 0x%x card: 0x%x\n",
drivers/gpib/ines/ines_gpib.c
1127
link->manf_id, link->card_id);
drivers/gpib/ines/ines_gpib.c
1133
link->resource[2]->flags |= WIN_MEMORY_TYPE_AM | WIN_DATA_WIDTH_8 | WIN_ENABLE;
drivers/gpib/ines/ines_gpib.c
1134
link->resource[2]->end = 0x1000;
drivers/gpib/ines/ines_gpib.c
1135
retval = pcmcia_request_window(link, link->resource[2], 250);
drivers/gpib/ines/ines_gpib.c
1137
dev_warn(&link->dev, "pcmcia_request_window failed\n");
drivers/gpib/ines/ines_gpib.c
1138
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1141
retval = pcmcia_map_mem_page(link, link->resource[2], 0);
drivers/gpib/ines/ines_gpib.c
1143
dev_warn(&link->dev, "pcmcia_map_mem_page failed\n");
drivers/gpib/ines/ines_gpib.c
1144
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1147
virt = ioremap(link->resource[2]->start, resource_size(link->resource[2]));
drivers/gpib/ines/ines_gpib.c
1148
writeb((link->resource[2]->start >> 2) & 0xff, virt + 0xf0); // IOWindow base
drivers/gpib/ines/ines_gpib.c
1155
retval = pcmcia_enable_device(link);
drivers/gpib/ines/ines_gpib.c
1157
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1169
static void ines_gpib_release(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1171
pcmcia_disable_device(link);
drivers/gpib/ines/ines_gpib.c
1174
static int ines_gpib_suspend(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1179
if (link->open)
drivers/gpib/ines/ines_gpib.c
1180
dev_err(&link->dev, "Device still open\n");
drivers/gpib/ines/ines_gpib.c
1186
static int ines_gpib_resume(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1196
return ines_gpib_config(link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1532
static int ni_gpib_config(struct pcmcia_device *link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1533
static void ni_gpib_release(struct pcmcia_device *link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1564
static int ni_gpib_probe(struct pcmcia_device *link)
drivers/gpib/tnt4882/tnt4882_gpib.c
1574
info->p_dev = link;
drivers/gpib/tnt4882/tnt4882_gpib.c
1575
link->priv = info;
drivers/gpib/tnt4882/tnt4882_gpib.c
1584
link->config_flags = CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/gpib/tnt4882/tnt4882_gpib.c
1587
curr_dev = link;
drivers/gpib/tnt4882/tnt4882_gpib.c
1588
return ni_gpib_config(link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1597
static void ni_gpib_remove(struct pcmcia_device *link)
drivers/gpib/tnt4882/tnt4882_gpib.c
1599
struct local_info_t *info = link->priv;
drivers/gpib/tnt4882/tnt4882_gpib.c
1604
ni_gpib_release(link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1610
static int ni_gpib_config_iteration(struct pcmcia_device *link, void *priv_data)
drivers/gpib/tnt4882/tnt4882_gpib.c
1614
retval = pcmcia_request_io(link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1626
static int ni_gpib_config(struct pcmcia_device *link)
drivers/gpib/tnt4882/tnt4882_gpib.c
1632
last_ret = pcmcia_loop_config(link, &ni_gpib_config_iteration, NULL);
drivers/gpib/tnt4882/tnt4882_gpib.c
1634
dev_warn(&link->dev, "no configuration found\n");
drivers/gpib/tnt4882/tnt4882_gpib.c
1635
ni_gpib_release(link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1639
last_ret = pcmcia_enable_device(link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1641
ni_gpib_release(link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1652
static void ni_gpib_release(struct pcmcia_device *link)
drivers/gpib/tnt4882/tnt4882_gpib.c
1654
pcmcia_disable_device(link);
drivers/gpib/tnt4882/tnt4882_gpib.c
1657
static int ni_gpib_suspend(struct pcmcia_device *link)
drivers/gpib/tnt4882/tnt4882_gpib.c
1662
if (link->open)
drivers/gpib/tnt4882/tnt4882_gpib.c
1663
dev_warn(&link->dev, "Device still open\n");
drivers/gpib/tnt4882/tnt4882_gpib.c
1669
static int ni_gpib_resume(struct pcmcia_device *link)
drivers/gpib/tnt4882/tnt4882_gpib.c
1679
return ni_gpib_config(link);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
5684
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h
148
next = block->link.next;
drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h
149
block = list_entry(next, struct drm_buddy_block, link);
drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h
75
link);
drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h
82
next = block->link.next;
drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h
84
block = list_entry(next, struct drm_buddy_block, link);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
168
list_for_each_entry_safe(userq_fence, tmp, &fence_drv->fences, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
179
list_del(&userq_fence->link);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
198
list_for_each_entry_safe(fence, tmp, &fence_drv->fences, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
206
list_del(&fence->link);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
251
INIT_LIST_HEAD(&userq_fence->link);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
292
list_add_tail(&userq_fence->link, &fence_drv->fences);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.h
39
struct list_head link;
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
291
list_for_each_entry(block, &vres->blocks, link)
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
412
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
58
return list_first_entry_or_null(list, struct drm_buddy_block, link);
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
588
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
649
list_for_each_entry(block, &vres->blocks, link)
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
70
while (head != block->link.next) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
74
block = list_entry(block->link.next, struct drm_buddy_block, link);
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
821
list_for_each_entry(block, &mgr->blocks, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
854
list_for_each_entry(block, &mgr->blocks, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
87
list_for_each_entry(block, head, link)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1212
struct kfd_iolink_properties *link)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1215
if (link->iolink_type == CRAT_IOLINK_TYPE_XGMI)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1227
link->flags |= CRAT_IOLINK_FLAGS_NO_ATOMICS_32_BIT |
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1233
link->flags |= CRAT_IOLINK_FLAGS_NO_ATOMICS_32_BIT |
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1317
struct kfd_iolink_properties *link, *inbound_link;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1324
list_for_each_entry(link, &dev->io_link_props, list) {
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1325
link->flags = CRAT_IOLINK_FLAGS_ENABLED;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1326
kfd_set_iolink_no_atomics(dev, NULL, link);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1328
link->node_to);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1335
link->iolink_type == CRAT_IOLINK_TYPE_XGMI) {
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1347
if (inbound_link->node_to != link->node_from)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1352
kfd_set_iolink_non_coherent(peer_dev, link, inbound_link);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1353
kfd_set_recommended_sdma_engines(peer_dev, link, inbound_link);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1358
list_for_each_entry(link, &dev->p2p_link_props, list) {
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1359
link->flags = CRAT_IOLINK_FLAGS_ENABLED;
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1360
kfd_set_iolink_no_atomics(dev, NULL, link);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1362
link->node_to);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1369
if (inbound_link->node_to != link->node_from)
drivers/gpu/drm/amd/amdkfd/kfd_topology.c
1374
kfd_set_iolink_non_coherent(peer_dev, link, inbound_link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10054
if (acrtc_state->stream->link->psr_settings.psr_feature_enabled ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10055
acrtc_state->stream->link->replay_settings.replay_feature_enabled) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10059
acrtc_state->stream->link->psr_settings.psr_version ==
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10069
if (acrtc_state->stream->link->psr_settings.psr_version >= DC_PSR_VERSION_SU_1 &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10076
acrtc_state->stream->link->psr_settings.psr_dirty_rects_change_timestamp_ns =
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10078
if (acrtc_state->stream->link->psr_settings.psr_allow_active)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10246
if (acrtc_state->stream->link->replay_settings.replay_allow_active)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10248
if (acrtc_state->stream->link->psr_settings.psr_allow_active)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
13553
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
13562
const bool result = execute_fused_io(dev, link->ctx, commands, count, timeout_us);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
173
static enum drm_mode_subconnector get_subconnector_type(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
175
switch (link->dpcd_caps.dongle_type) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
194
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
202
subconnector = get_subconnector_type(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3269
static void emulated_link_detect(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3274
struct dc_context *dc_ctx = link->ctx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3279
link->type = dc_connection_none;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3280
prev_sink = link->local_sink;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3285
switch (link->connector_signal) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3326
link->connector_signal);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3330
sink_init_data.link = link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3340
link->local_sink = sink;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3343
link->ctx,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3344
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
508
list_add_tail(&e->base.link, &adev_to_drm(adev)->vblank_event_list);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5153
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5180
link = (struct dc_link *)dm->backlight_link[bl_idx];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5202
rc = dc_link_set_backlight_level_nits(link, true, brightness,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5212
rc = dc_link_set_backlight_level(link, &backlight_level_params);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5247
struct dc_link *link = (struct dc_link *)dm->backlight_link[bl_idx];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5255
if (!dc_link_get_backlight_level_nits(link, &avg, &peak))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5260
ret = dc_link_get_backlight_level(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5404
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5407
if (!(link->connector_signal & (SIGNAL_TYPE_EDP | SIGNAL_TYPE_LVDS)) ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5408
link->type == dc_connection_none)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5419
dm->backlight_link[bl_idx] = link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5602
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5604
link = dc_get_link_at_index(dm->dc, i);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5606
if (link->connector_signal == SIGNAL_TYPE_VIRTUAL) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5620
link->psr_settings.psr_feature_enabled = false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5621
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5648
if (!dc_link_detect_connection_type(link, &new_connection_type))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5652
emulated_link_detect(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5659
ret = dc_link_detect(link, DETECT_REASON_BOOT);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5668
if (amdgpu_dm_set_replay_caps(link, aconnector))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5672
amdgpu_dm_set_psr_caps(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5675
link->psr_settings.psr_feature_enabled,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5676
link->psr_settings.psr_version,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5677
link->dpcd_caps.psr_info.psr_version,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5678
link->dpcd_caps.psr_info.psr_dpcd_caps.raw,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5679
link->dpcd_caps.psr_info.psr2_su_y_granularity_cap);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
612
bool replay_en = acrtc->dm_irq_params.stream->link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
613
bool psr_en = acrtc->dm_irq_params.stream->link->psr_settings.psr_feature_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
6892
create_fake_sink(struct drm_device *dev, struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
6897
sink_init_data.link = link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
6898
sink_init_data.sink_signal = link->connector_signal;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7099
if (sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_NONE ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7100
sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_HDMI_CONVERTER)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7124
verified_link_cap = dc_link_get_link_cap(stream->link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7125
link_bw_in_kbps = dc_link_bandwidth_kbps(stream->link, verified_link_cap);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
715
bool replay_en = acrtc->dm_irq_params.stream->link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
716
bool psr_en = acrtc->dm_irq_params.stream->link->psr_settings.psr_feature_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7201
if (sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_NONE) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7213
} else if (sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_HDMI_CONVERTER) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7275
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7284
link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7291
link = dm_wbcon->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7295
sink = create_fake_sink(dev, link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7419
stream->use_vsc_sdp_for_colorimetry = stream->link->dpcd_caps.dpcd_rev.raw >= 0x14 &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7420
stream->link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7455
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7466
if (!force && link->local_sink && link->type == dc_connection_analog_load)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7478
if (link->local_sink ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7479
dc_link_detect(link, DETECT_REASON_HPD))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7487
if (link->local_sink)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7488
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7490
link->local_sink = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7491
link->dpcd_sink_count = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7492
link->type = dc_connection_none;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7963
.link = aconnector->dc_link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8005
struct dc_link *link = (struct dc_link *)aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8011
if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8012
link->verified_link_cap.lane_count = LANE_COUNT_FOUR;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8013
link->verified_link_cap.link_rate = LINK_RATE_HIGH2;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
833
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8533
pbn_div = dm_mst_get_pbn_divider(stream->link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
857
link = adev->dm.dc->links[link_index];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
867
if (link && aconnector->dc_link == link) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8954
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8968
aconnector->dc_link = link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9002
link->link_enc->features.hdmi_ycbcr420_supported ? true : false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9006
link->link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9007
ASSERT(link->link_enc);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9008
if (link->link_enc)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9010
link->link_enc->features.dp_ycbcr420_supported ? true : false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9123
ddc_service->link->link_index,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9158
ddc_service->link->link_index);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9200
struct dc_link *link = dc_get_link_at_index(dc, link_index);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9204
link->priv = aconnector;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9207
i2c = create_i2c(link->ddc, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9217
drm_err(adev_to_drm(dm->adev), "Failed to register hw i2c %d\n", link->link_index);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9221
connector_type = to_drm_connector_type(link->connector_signal, link->link_id.id);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9244
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9256
amdgpu_dm_initialize_dp_connector(dm, aconnector, link->link_index);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9346
if (acrtc_state->stream->link->psr_settings.psr_version <
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9869
struct psr_settings *psr = &acrtc_state->stream->link->psr_settings;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9870
struct replay_settings *pr = &acrtc_state->stream->link->replay_settings;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9877
amdgpu_dm_link_setup_replay(acrtc_state->stream->link, aconn);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
1052
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
1099
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
865
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
523
if (stream_state->link->psr_settings.psr_version < DC_PSR_VERSION_SU_1)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
131
struct dc_link *link = vblank_work->stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
132
bool is_sr_active = (link->replay_settings.replay_allow_active ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
133
link->psr_settings.psr_allow_active);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
142
if (link->replay_settings.replay_feature_enabled && !vrr_active &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
146
if (link->psr_settings.psr_version < DC_PSR_VERSION_SU_1 && is_sr_active)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
148
} else if (link->psr_settings.psr_feature_enabled && !vrr_active &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
272
if (vblank_work->stream && vblank_work->stream->link && vblank_work->acrtc) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
312
struct psr_settings *psr = &acrtc_state->stream->link->psr_settings;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
313
struct replay_settings *pr = &acrtc_state->stream->link->replay_settings;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1011
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1015
if (!link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1018
if (link->type == dc_connection_none)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1021
if (!(link->connector_signal & SIGNAL_TYPE_EDP))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1025
if (link->replay_settings.config.replay_supported) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1029
sink_support_replay = amdgpu_dm_link_supports_replay(link, aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1031
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1033
sink_support_replay = amdgpu_dm_link_supports_replay(link, aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1041
seq_printf(m, "Config support: %s\n", str_yes_no(link->replay_settings.config.replay_supported));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1064
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1066
if (!link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1069
if (link->type == dc_connection_none)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1072
if (!(link->connector_signal & SIGNAL_TYPE_EDP))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1075
seq_printf(m, "Sink support: %s", str_yes_no(link->dpcd_caps.psr_info.psr_version != 0));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1076
if (link->dpcd_caps.psr_info.psr_version)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1077
seq_printf(m, " [0x%02x]", link->dpcd_caps.psr_info.psr_version);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1080
seq_printf(m, "Driver support: %s", str_yes_no(link->psr_settings.psr_feature_enabled));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1081
if (link->psr_settings.psr_version)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1082
seq_printf(m, " [0x%02x]", link->psr_settings.psr_version);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1281
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1283
seq_printf(m, "Internal: %u\n", link->is_internal_display);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1296
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1301
pipe_ctx = &link->dc->current_state->res_ctx.pipe_ctx[i];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1303
pipe_ctx->stream->link == link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1443
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1514
link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1516
if (link->local_sink) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1517
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1518
link->local_sink = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1521
link->dpcd_sink_count = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1522
link->type = dc_connection_none;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1523
link->dongle_max_pix_clk = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1529
dc_link_reset_cur_dp_mst_topology(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1579
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1681
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1765
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1865
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
193
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1949
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2049
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
212
link->cur_link_settings.lane_count,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2129
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
213
link->cur_link_settings.link_rate,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
214
link->cur_link_settings.link_spread);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
219
link->verified_link_cap.lane_count,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
220
link->verified_link_cap.link_rate,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
221
link->verified_link_cap.link_spread);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2226
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
226
link->reported_link_cap.lane_count,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
227
link->reported_link_cap.link_rate,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
228
link->reported_link_cap.link_spread);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2304
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
233
link->preferred_link_setting.lane_count,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
234
link->preferred_link_setting.link_rate,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
235
link->preferred_link_setting.link_spread);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2358
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2427
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2496
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
261
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
263
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2785
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2788
backlight = dc_link_get_backlight_level(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2804
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2807
backlight = dc_link_get_target_backlight_pwm(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2907
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2912
seq_printf(m, "%s\n", (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) ? "yes" :
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2913
(link->ep_type == DISPLAY_ENDPOINT_PHY) ? "no" : "unknown");
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3164
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3167
dc_link_get_replay_state(link, &state);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3180
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3184
link->dc->link_srv->edp_replay_residency(link, &residency, is_start, PR_RESIDENCY_MODE_PHY);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3194
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3197
link->dc->link_srv->edp_replay_residency(link, &residency, false, PR_RESIDENCY_MODE_PHY);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3209
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3212
dc_link_get_psr_state(link, &state);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3225
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3228
link->dc->link_srv->edp_get_psr_residency(link, &residency, PSR_RESIDENCY_MODE_PHY);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
326
dc_link_set_preferred_training_settings(dc, NULL, NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
334
prefer_link_settings.link_spread = link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
340
dc_link_set_preferred_training_settings(dc, &prefer_link_settings, NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3460
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3467
dm_helpers_dp_read_dpcd(link->ctx, link, DP_SUPPORTED_LINK_RATES,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3470
dpcd_rev = link->dpcd_caps.dpcd_rev.raw;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3500
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3502
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3546
if (param[1] >= link->dpcd_caps.edp_supported_link_rates_count)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3554
dc_link_set_preferred_training_settings(dc, NULL, NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3559
if (!dm_helpers_dp_read_dpcd(link->ctx, link, DP_SUPPORTED_LINK_RATES,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3563
dpcd_rev = link->dpcd_caps.dpcd_rev.raw;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3576
prefer_link_settings.link_spread = link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3584
NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
395
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
397
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4018
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4049
link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4050
dc_link_dp_receiver_power_ctrl(link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4052
link->mst_stream_alloc_table.stream_count = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4053
memset(link->mst_stream_alloc_table.stream_allocations, 0,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4054
sizeof(link->mst_stream_alloc_table.stream_allocations));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
460
dc_link_set_preferred_training_settings(dc, NULL, NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
468
prefer_link_settings.link_spread = link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
475
dc_link_set_preferred_training_settings(dc, &prefer_link_settings, NULL, link, true);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
539
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
553
link->cur_lane_setting[0].VOLTAGE_SWING,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
554
link->cur_lane_setting[0].PRE_EMPHASIS,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
555
link->cur_lane_setting[0].POST_CURSOR2);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
616
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
617
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
659
((link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN) &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
660
(link->test_pattern_enabled));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
666
link->preferred_link_setting.lane_count;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
668
link->preferred_link_setting.link_rate;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
670
link->preferred_link_setting.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
673
link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
675
link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
677
link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
691
dc_link_set_drive_settings(dc, &link_lane_settings, link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
759
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
766
bool supports_hpd = link->irq_source_hpd != DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
859
dc_link_enable_hpd(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
861
prefer_link_settings.lane_count = link->verified_link_cap.lane_count;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
862
prefer_link_settings.link_rate = link->verified_link_cap.link_rate;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
863
prefer_link_settings.link_spread = link->verified_link_cap.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
865
cur_link_settings.lane_count = link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
866
cur_link_settings.link_rate = link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
867
cur_link_settings.link_spread = link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
881
link_training_settings.hw_lane_settings[i] = link->cur_lane_setting[i];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
884
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
897
dc_link_disable_hpd(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
104
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
106
return dm_atomic_write_poll_read_aux(link, write, poll, read, poll_timeout_us, poll_mask_msb);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
44
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
47
link->dc->caps.i2c_speed_in_khz};
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
49
return dm_helpers_submit_i2c(link->ctx, link, &cmd);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
498
static bool enable_assr(void *handle, struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
518
link->link_enc_hw_inst;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
539
struct mod_hdcp_link *link = &hdcp_work[link_index].link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
55
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
551
memset(link, 0, sizeof(*link));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
562
link->mode = mod_hdcp_signal_type_to_operation_mode(sink->sink_signal);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
566
link->dig_be = config->dig_be;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
567
link->ddc_line = aconnector->dc_link->ddc_hw_inst + 1;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
569
link->link_enc_idx = config->link_enc_idx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
570
link->dio_output_id = config->dio_output_idx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
571
link->phy_idx = config->phy_idx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
575
link->hdcp_supported_informational = link_is_hdcp14;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
576
link->dp.rev = aconnector->dc_link->dpcd_caps.dpcd_rev.raw;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
577
link->dp.assr_enabled = config->assr_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
578
link->dp.mst_enabled = config->mst_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
579
link->dp.dp2_enabled = config->dp2_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
580
link->dp.usb4_enabled = config->usb4_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
582
link->adjust.auth_delay = 2;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
583
link->adjust.retry_limit = MAX_NUM_OF_ATTEMPTS;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
584
link->adjust.hdcp1.disable = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
585
link->adjust.hdcp2.use_fw_locality_check = (dc->caps.fused_io_supported || dc->debug.hdcp_lc_force_fw_enable);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
586
link->adjust.hdcp2.use_sw_locality_fallback = dc->debug.hdcp_lc_enable_sw_fallback;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
597
mod_hdcp_add_display(&hdcp_w->hdcp, link, display, &hdcp_w->output);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
60
link->dc->caps.i2c_speed_in_khz};
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
62
return dm_helpers_submit_i2c(link->ctx, link, &cmd);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
68
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
70
return dm_helpers_dp_write_dpcd(link->ctx, link, address, data, size);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
76
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
78
return dm_helpers_dp_read_dpcd(link->ctx, link, address, data, size);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
90
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
92
return dm_atomic_write_poll_read_i2c(link, write, poll, read, poll_timeout_us, poll_mask_msb);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.h
53
struct mod_hdcp_link link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1003
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1006
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1014
if (link->aux_mode)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1031
if (link->aux_mode && connector->edid_corrupt)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
105
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1054
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1064
if (link->aux_mode) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1069
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1080
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1086
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
109
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1097
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1101
if (!link->hpd_status) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1106
return amdgpu_dm_process_dmub_aux_transfer_sync(ctx, link->link_index, payload,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1111
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1115
return amdgpu_dm_process_dmub_set_config_sync(ctx, link->link_index, payload,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1156
struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1162
link->panel_config.dsc.disable_dsc_edp = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1164
if (dc_get_edp_link_panel_inst(ctx->dc, link, &panel_inst) && panel_inst == 1) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1165
link->panel_config.psr.disable_psr = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1166
link->panel_config.psr.disallow_psrsu = true;;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1167
link->panel_config.psr.disallow_replay = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1209
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1213
if (link->aux_access_disabled)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1216
if (!dm_helpers_dp_read_dpcd(link->ctx, link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1226
dm_helpers_dp_write_dpcd(link->ctx, link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1233
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1242
struct pipe_ctx *pipes = link->dc->current_state->res_ctx.pipe_ctx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1244
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1254
if (pipes[i].stream->link == link && !pipes[i].top_pipe &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1359
(struct dc_link *) link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1387
struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1409
enum adaptive_sync_type dm_get_adaptive_sync_support_type(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1411
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
180
fill_dc_mst_payload_table_from_drm(struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
188
link->mst_stream_alloc_table;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
232
const struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
314
fill_dc_mst_payload_table_from_drm(stream->link, enable, target_payload, proposed_table);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
324
const struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
332
const struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
517
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
520
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
551
struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
553
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
565
link->cur_link_settings.lane_count = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
573
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
579
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
590
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
595
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
606
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
609
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
641
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
649
return amdgpu_dm_execute_fused_io(dev, link, commands, count, timeout_us);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
808
if (!stream->link->link_status.link_active &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
809
memcmp(stream->link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
821
if (!stream->link->link_status.link_active) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
897
if (stream->sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_NONE) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
898
ret = dm_helpers_dp_write_dpcd(ctx, stream->link, DP_DSC_ENABLE, &enable_dsc, 1);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
902
} else if (stream->sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_HDMI_CONVERTER) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
903
ret = dm_helpers_dp_write_dpcd(ctx, stream->link, DP_DSC_ENABLE, &enable_dsc, 1);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
919
bool dm_helpers_is_dp_sink_present(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
922
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
930
dp_sink_present = dc_link_is_dp_sink_present(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1215
if (stream->link != dc_link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1246
dc_dsc_get_policy_for_timing(params[count].timing, 0, &dsc_policy, dc_link_get_highest_encoding_format(stream->link));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1390
if (stream->link != dc_link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1451
if (stream->link != dc_link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1523
if (!is_dsc_need_re_compute(state, dc_state, stream->link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1527
ret = compute_mst_dsc_configs_for_link(state, dc_state, stream->link, vars, mst_mgr,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1533
if (dc_state->streams[j]->link == stream->link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1587
if (!is_dsc_need_re_compute(state, dc_state, stream->link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1591
ret = compute_mst_dsc_configs_for_link(state, dc_state, stream->link, vars, mst_mgr,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1597
if (dc_state->streams[j]->link == stream->link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1650
if (dm_crtc_state->stream && dm_crtc_state->stream->link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1651
if (is_link_to_dschub(dm_crtc_state->stream->link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1786
dc_dsc_get_policy_for_timing(&stream->timing, 0, &dsc_policy, dc_link_get_highest_encoding_format(stream->link));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1792
&stream->timing, dc_link_get_highest_encoding_format(stream->link), bw_range);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1875
dc_link_get_highest_encoding_format(stream->link));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1876
cur_link_settings = stream->link->verified_link_cap;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1946
dc_dsc_get_default_config_option(stream->link->dc, &dsc_options);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1953
dc_link_get_highest_encoding_format(stream->link),
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
242
bool needs_dsc_aux_workaround(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
244
if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_90CC24 &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
245
(link->dpcd_caps.dpcd_rev.raw == DPCD_REV_14 || link->dpcd_caps.dpcd_rev.raw == DPCD_REV_12) &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
246
link->dpcd_caps.sink_count.bits.SINK_COUNT >= 2)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
253
static bool is_synaptics_cascaded_panamera(struct dc_link *link, struct drm_dp_mst_port *port)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
258
if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_90CC24 &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
259
IS_SYNAPTICS_CASCADED_PANAMERA(link->dpcd_caps.branch_dev_name, branch_vendor_data)) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
388
.link = aconnector->dc_link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
427
.link = aconnector->dc_link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
857
uint32_t dm_mst_get_pbn_divider(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
862
if (!link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
865
dividend = (uint64_t)dc_link_bandwidth_kbps(link, dc_link_get_link_cap(link)) * 100;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h
63
uint32_t dm_mst_get_pbn_divider(struct dc_link *link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h
87
bool needs_dsc_aux_workaround(struct dc_link *link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
108
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
117
link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
118
dc = link->ctx->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
120
if (link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
121
mod_power_calc_psr_configs(&psr_config, link, stream);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
130
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
131
if (!psr_su_set_dsc_slice_height(dc, link, stream, &psr_config))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
135
ret = dc_link_setup_psr(link, stream, &psr_config, &psr_context);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
138
DRM_DEBUG_DRIVER("PSR link: %d\n", link->psr_settings.psr_feature_enabled);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
150
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
183
dc_stream_set_static_screen_params(link->ctx->dc,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
192
if (link->psr_settings.psr_version < DC_PSR_VERSION_SU_1)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
195
dc_link_set_psr_allow_active(link, &psr_enable, false, false, &power_opt);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
197
if (link->ctx->dc->caps.ips_support)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
198
dc_allow_idle_optimizations(link->ctx->dc, true);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
213
return dc_link_set_psr_allow_active(stream->link, &psr_enable, wait, false, NULL);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
241
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
244
link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
245
if (!link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
247
if (link->psr_settings.psr_feature_enabled &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
248
link->psr_settings.psr_allow_active) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
268
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
271
if (link == NULL)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
275
dc_link_get_psr_state(link, &psr_state);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
33
static bool link_supports_psrsu(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
35
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
43
if (!is_psr_su_specific_panel(link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
46
if (!link->dpcd_caps.alpm_caps.bits.AUX_WAKE_ALPM_CAP ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
47
!link->dpcd_caps.psr_info.psr_dpcd_caps.bits.Y_COORDINATE_REQUIRED)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
50
if (link->dpcd_caps.psr_info.psr_dpcd_caps.bits.SU_GRANULARITY_REQUIRED &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
51
!link->dpcd_caps.psr_info.psr2_su_y_granularity_cap)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
66
void amdgpu_dm_set_psr_caps(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
68
if (!(link->connector_signal & SIGNAL_TYPE_EDP)) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
69
link->psr_settings.psr_feature_enabled = false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
73
if (link->type == dc_connection_none) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
74
link->psr_settings.psr_feature_enabled = false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
78
if (link->dpcd_caps.psr_info.psr_version == 0) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
79
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
80
link->psr_settings.psr_feature_enabled = false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
85
if (link_supports_psrsu(link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
86
link->psr_settings.psr_version = DC_PSR_VERSION_SU_1;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
88
link->psr_settings.psr_version = DC_PSR_VERSION_1;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
90
link->psr_settings.psr_feature_enabled = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
93
if (dc_get_edp_link_panel_inst(link->ctx->dc, link, &panel_inst) && panel_inst == 1) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
94
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
95
link->psr_settings.psr_feature_enabled = false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.h
35
void amdgpu_dm_set_psr_caps(struct dc_link *link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
108
link->ctx->dc->debug.visual_confirm == VISUAL_CONFIRM_REPLAY;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
110
init_replay_config(link, &pr_config);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
121
bool amdgpu_dm_link_setup_replay(struct dc_link *link, struct amdgpu_dm_connector *aconnector)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
125
if (link == NULL || aconnector == NULL)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
128
pr_config = &link->replay_settings.config;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
142
link->replay_settings.replay_feature_enabled = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
156
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
168
link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
170
if (link) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
171
link->dc->link_srv->dp_setup_replay(link, stream);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
172
link->dc->link_srv->edp_set_coasting_vtotal(link, stream->timing.v_total, 0);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
174
link->dc->link_srv->edp_set_replay_allow_active(link, &replay_active, wait, false, NULL);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
190
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
195
link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
197
if (link) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
199
link->dc->link_srv->edp_set_replay_allow_active(stream->link, &replay_active, true, false, NULL);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
42
bool amdgpu_dm_link_supports_replay(struct dc_link *link, struct amdgpu_dm_connector *aconnector)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
45
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
46
struct adaptive_sync_caps *as_caps = &link->dpcd_caps.adaptive_sync_caps;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
79
bool amdgpu_dm_set_replay_caps(struct dc_link *link, struct amdgpu_dm_connector *aconnector)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
83
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
86
if (link->replay_settings.config.replay_supported)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
89
if (!dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
92
if (link->panel_config.psr.disallow_replay)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
95
if (!amdgpu_dm_link_supports_replay(link, aconnector))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.h
42
bool amdgpu_dm_link_supports_replay(struct dc_link *link, struct amdgpu_dm_connector *aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.h
44
bool amdgpu_dm_set_replay_caps(struct dc_link *link, struct amdgpu_dm_connector *aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.h
45
bool amdgpu_dm_link_setup_replay(struct dc_link *link, struct amdgpu_dm_connector *aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
191
struct dc_link *link = dc_get_link_at_index(dc, link_index);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
194
wbcon->link = link;
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
329
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
334
link = p_dc->links[link_id];
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
339
return link;
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
381
struct dc_link *link = get_link_by_phy_id(bp->base.ctx->dc, dig_v1_7.phyid);
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
385
if (link) {
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
386
if (link->phy_transition_bitmask &&
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
396
process_phy_transition_init_params.display_port_link_rate = link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
397
process_phy_transition_init_params.transition_bitmask = link->phy_transition_bitmask;
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
399
dig_v1_7.skip_phy_ssc_reduction = link->wa_flags.skip_phy_ssc_reduction;
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c
158
stream->link->ddi_channel_mapping.raw;
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c
160
stream->link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c
162
stream->link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c
164
stream->link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c
166
stream->link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
493
static void dcn2_notify_link_rate_change(struct clk_mgr *clk_mgr_base, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
504
clk_mgr->cur_phyclk_req_table[link->link_index] = link->cur_link_settings.link_rate * LINK_RATE_REF_FREQ_IN_KHZ;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
545
static void rn_notify_link_rate_change(struct clk_mgr *clk_mgr_base, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
550
clk_mgr->cur_phyclk_req_table[link->link_index] = link->cur_link_settings.link_rate * LINK_RATE_REF_FREQ_IN_KHZ;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
71
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
74
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
75
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c
466
static void dcn30_notify_link_rate_change(struct clk_mgr *clk_mgr_base, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c
476
clk_mgr->cur_phyclk_req_table[link->link_index] = link->cur_link_settings.link_rate * LINK_RATE_REF_FREQ_IN_KHZ;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c
80
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c
83
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c
84
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c
102
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c
103
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c
99
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c
133
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c
136
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c
137
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c
75
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c
78
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c
79
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c
94
if (pipe->stream->link->link_enc && pipe->stream->link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c
95
pipe->stream->link->link_enc->funcs->is_dig_enabled(pipe->stream->link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c
87
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c
90
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c
91
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
174
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
177
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
178
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
324
static uint8_t get_lowest_dpia_index(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
326
const struct dc *dc_struct = link->dc;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
350
const struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
354
if (!link)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
357
lowest_dpia_index = get_lowest_dpia_index(link);
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
358
if (link->link_index < lowest_dpia_index)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
361
hr_index = (link->link_index - lowest_dpia_index) / 2;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
365
&stream->timing, dc_link_get_highest_encoding_format(link));
drivers/gpu/drm/amd/display/dc/core/dc.c
1443
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/dc/core/dc.c
1458
if (stream->link->local_sink &&
drivers/gpu/drm/amd/display/dc/core/dc.c
1459
stream->link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1460
link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
1463
if (link != NULL && link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1467
enc_inst = link->link_enc->funcs->get_dig_frontend(link->link_enc);
drivers/gpu/drm/amd/display/dc/core/dc.c
1481
if (link->link_status.link_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1775
if (!streams[i]->link->link_state_valid)
drivers/gpu/drm/amd/display/dc/core/dc.c
1791
struct dc_link *link = sink->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
1805
if (!link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1810
enc_inst = link->link_enc->funcs->get_dig_frontend(link->link_enc);
drivers/gpu/drm/amd/display/dc/core/dc.c
1839
if (tg_inst != link->link_enc->preferred_engine) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1922
if (dc_is_dp_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1982
if (link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1987
if (link->dpcd_caps.channel_coding_cap.bits.DP_128b_132b_SUPPORTED) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1992
if (dc->link_srv->edp_is_ilr_optimization_required(link, crtc_timing)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
2264
const struct dc_link *link = context->streams[i]->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
2294
CONN_MSG_MODE(link, "{%dx%d, %dx%d@%dKhz}",
drivers/gpu/drm/amd/display/dc/core/dc.c
240
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/core/dc.c
252
link = dc->link_srv->create_link(&link_init_params);
drivers/gpu/drm/amd/display/dc/core/dc.c
254
if (link) {
drivers/gpu/drm/amd/display/dc/core/dc.c
255
dc->links[dc->link_count] = link;
drivers/gpu/drm/amd/display/dc/core/dc.c
256
link->dc = dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
267
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/core/dc.c
275
link = dc->link_srv->create_link(&link_init_params);
drivers/gpu/drm/amd/display/dc/core/dc.c
276
if (link) {
drivers/gpu/drm/amd/display/dc/core/dc.c
280
dc->links[dc->link_count] = link;
drivers/gpu/drm/amd/display/dc/core/dc.c
281
link->dc = dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
287
struct dc_link *link = kzalloc_obj(*link);
drivers/gpu/drm/amd/display/dc/core/dc.c
290
if (link == NULL) {
drivers/gpu/drm/amd/display/dc/core/dc.c
295
link->link_index = dc->link_count;
drivers/gpu/drm/amd/display/dc/core/dc.c
296
dc->links[dc->link_count] = link;
drivers/gpu/drm/amd/display/dc/core/dc.c
299
link->ctx = dc->ctx;
drivers/gpu/drm/amd/display/dc/core/dc.c
300
link->dc = dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
301
link->connector_signal = SIGNAL_TYPE_VIRTUAL;
drivers/gpu/drm/amd/display/dc/core/dc.c
302
link->link_id.type = OBJECT_TYPE_CONNECTOR;
drivers/gpu/drm/amd/display/dc/core/dc.c
303
link->link_id.id = CONNECTOR_ID_VIRTUAL;
drivers/gpu/drm/amd/display/dc/core/dc.c
304
link->link_id.enum_id = ENUM_ID_1;
drivers/gpu/drm/amd/display/dc/core/dc.c
305
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/core/dc.c
306
link->replay_settings.config.replay_version = DC_REPLAY_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/core/dc.c
307
link->link_enc = kzalloc_obj(*link->link_enc);
drivers/gpu/drm/amd/display/dc/core/dc.c
309
if (!link->link_enc) {
drivers/gpu/drm/amd/display/dc/core/dc.c
314
link->link_status.dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/core/dc.c
320
enc_init.connector = link->link_id;
drivers/gpu/drm/amd/display/dc/core/dc.c
324
virtual_link_encoder_construct(link->link_enc, &enc_init);
drivers/gpu/drm/amd/display/dc/core/dc.c
3718
pipe_ctx->stream->link,
drivers/gpu/drm/amd/display/dc/core/dc.c
3785
dc->link_srv->dp_set_test_pattern(stream->link,
drivers/gpu/drm/amd/display/dc/core/dc.c
3808
} else if (pipe_ctx->stream->link->wa_flags.blank_stream_on_ocs_change && stream_update->output_color_space
drivers/gpu/drm/amd/display/dc/core/dc.c
3840
if ((stream->link->psr_settings.psr_version == DC_PSR_VERSION_SU_1
drivers/gpu/drm/amd/display/dc/core/dc.c
3841
|| stream->link->psr_settings.psr_version == DC_PSR_VERSION_1)
drivers/gpu/drm/amd/display/dc/core/dc.c
3845
if (stream->link->replay_settings.config.replay_supported)
drivers/gpu/drm/amd/display/dc/core/dc.c
3868
if (!dc->config.frame_update_cmd_version2 && !dc_get_edp_link_panel_inst(dc, stream->link, &panel_inst))
drivers/gpu/drm/amd/display/dc/core/dc.c
3929
if (!dc->config.frame_update_cmd_version2 && !dc_get_edp_link_panel_inst(dc, stream->link, &panel_inst))
drivers/gpu/drm/amd/display/dc/core/dc.c
4264
if (should_use_dmub_inbox1_lock(dc, stream->link)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
4533
if (should_use_dmub_inbox1_lock(dc, stream->link)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
5626
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/core/dc.c
5629
link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
5630
if (!link)
drivers/gpu/drm/amd/display/dc/core/dc.c
5633
if (link->psr_settings.psr_feature_enabled) {
drivers/gpu/drm/amd/display/dc/core/dc.c
5634
if (enable && !link->psr_settings.psr_allow_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
5636
if (!dc_link_set_psr_allow_active(link, &allow_active, false, false, NULL))
drivers/gpu/drm/amd/display/dc/core/dc.c
5638
} else if (!enable && link->psr_settings.psr_allow_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
5640
if (!dc_link_set_psr_allow_active(link, &allow_active, true, false, NULL))
drivers/gpu/drm/amd/display/dc/core/dc.c
5656
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/core/dc.c
5659
link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
5660
if (!link)
drivers/gpu/drm/amd/display/dc/core/dc.c
5663
if (link->replay_settings.replay_feature_enabled) {
drivers/gpu/drm/amd/display/dc/core/dc.c
5664
if (active && !link->replay_settings.replay_allow_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
5666
if (!dc_link_set_replay_allow_active(link, &allow_active,
drivers/gpu/drm/amd/display/dc/core/dc.c
5669
} else if (!active && link->replay_settings.replay_allow_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
5671
if (!dc_link_set_replay_allow_active(link, &allow_active,
drivers/gpu/drm/amd/display/dc/core/dc.c
6047
bool dc_smart_power_oled_enable(const struct dc_link *link, bool enable, uint16_t peak_nits,
drivers/gpu/drm/amd/display/dc/core/dc.c
6051
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
6056
struct resource_context *res_ctx = &link->ctx->dc->current_state->res_ctx;
drivers/gpu/drm/amd/display/dc/core/dc.c
6060
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/core/dc.c
6067
res_ctx->pipe_ctx[i].stream->link &&
drivers/gpu/drm/amd/display/dc/core/dc.c
6068
res_ctx->pipe_ctx[i].stream->link == link &&
drivers/gpu/drm/amd/display/dc/core/dc.c
6069
res_ctx->pipe_ctx[i].stream->link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/core/dc.c
6097
cmd.smart_power_oled_enable.data.digfe_inst = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/core/dc.c
6098
cmd.smart_power_oled_enable.data.digbe_inst = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/core/dc.c
6110
bool dc_smart_power_oled_get_max_cll(const struct dc_link *link, unsigned int *pCurrent_MaxCLL)
drivers/gpu/drm/amd/display/dc/core/dc.c
6112
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
6118
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/core/dc.c
6334
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
6338
if (link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/core/dc.c
6341
if (link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/core/dc.c
6361
if (edp_links[i] == link)
drivers/gpu/drm/amd/display/dc/core/dc.c
6389
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
6392
if (link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/core/dc.c
6412
if (edp_links[i] == link)
drivers/gpu/drm/amd/display/dc/core/dc.c
6525
bool dc_get_host_router_index(const struct dc_link *link, unsigned int *host_router_index)
drivers/gpu/drm/amd/display/dc/core/dc.c
6529
if (!link || !host_router_index || link->ep_type != DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/core/dc.c
6532
dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
6534
if (link->link_index < dc->lowest_dpia_link_index)
drivers/gpu/drm/amd/display/dc/core/dc.c
6537
*host_router_index = (link->link_index - dc->lowest_dpia_link_index) / dc->caps.num_of_dpias_per_host_router;
drivers/gpu/drm/amd/display/dc/core/dc.c
838
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
843
if (link->dc->current_state->res_ctx.pipe_ctx[i].stream ==
drivers/gpu/drm/amd/display/dc/core/dc.c
845
pipes = &link->dc->current_state->res_ctx.pipe_ctx[i];
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
471
if (pipe_ctx && pipe_ctx->stream && pipe_ctx->stream->link) {
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
472
if (pipe_ctx->stream->link->connector_signal == SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
473
edp_link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
768
dmub_hw_lock_mgr_does_link_require_lock(dc, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
141
.link_id = stream->link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
142
.ep_type = stream->link->ep_type},
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
204
if (stream_assigned && stream != stream_assigned && stream->link == stream_assigned->link)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
227
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
234
.link_id = link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
235
.ep_type = link->ep_type};
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
243
link_enc = link->dc->res_pool->link_encoders[assignment.eng_id - ENGINE_ID_DIGA];
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
311
if (stream->link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
319
eng_id = stream->link->eng_id;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
333
if (!stream->link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
343
if (stream == prev_stream && stream->link == prev_stream->link &&
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
362
if (!stream->link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
371
ASSERT(stream->link->is_dig_mapping_flexible != true);
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
381
link_enc = get_link_enc_used_by_link(state, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
384
if (stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
385
stream->link->dpia_preferred_eng_id != ENGINE_ID_UNKNOWN)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
386
eng_id_req = stream->link->dpia_preferred_eng_id;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
457
is_mappable = stream->link->is_dig_mapping_flexible;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
46
if (link_enc && ((uint32_t)stream->link->connector_signal & link_enc->output_signals)) {
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
485
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
491
link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
493
return link;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
498
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
505
.link_id = link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
506
.ep_type = link->ep_type};
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
514
link_enc = link->dc->res_pool->link_encoders[assignment.eng_id - ENGINE_ID_DIGA];
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
551
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
558
if (link->is_dig_mapping_flexible &&
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
559
link->dc->res_pool->funcs->link_encs_assign) {
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
560
link_enc = link_enc_cfg_get_link_enc_used_by_link(link->ctx->dc, link);
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
563
link->ctx->dc);
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
565
link_enc = link->link_enc;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
579
.link_id = stream->link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
580
.ep_type = stream->link->ep_type};
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
590
link_enc = stream->link->dc->res_pool->link_encoders[assignment.eng_id - ENGINE_ID_DIGA];
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
598
bool link_enc_cfg_is_link_enc_avail(struct dc *dc, enum engine_id eng_id, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
607
.link_id = link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
608
.ep_type = link->ep_type};
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
102
bool dc_link_is_hdcp14(struct dc_link *link, enum signal_type signal)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
104
return link->dc->link_srv->is_hdcp1x_supported(link, signal);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
107
bool dc_link_is_hdcp22(struct dc_link *link, enum signal_type signal)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
109
return link->dc->link_srv->is_hdcp2x_supported(link, signal);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
112
void dc_link_clear_dprx_states(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
114
link->dc->link_srv->clear_dprx_states(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
117
bool dc_link_reset_cur_dp_mst_topology(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
119
return link->dc->link_srv->reset_cur_dp_mst_topology(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
123
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
126
return link->dc->link_srv->dp_link_bandwidth_kbps(link, link_settings);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
130
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
133
return link->dc->link_srv->dp_required_hblank_size_bytes(link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
149
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
151
return link->dc->link_srv->update_dsc_config(pipe_ctx);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
179
struct dc_link *link = dc->links[link_index];
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
180
struct ddc_service *ddc = link->ddc;
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
203
void dc_link_dp_handle_automated_test(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
205
link->dc->link_srv->dp_handle_automated_test(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
209
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
216
return link->dc->link_srv->dp_set_test_pattern(link, test_pattern,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
223
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
227
dc->link_srv->get_cur_link_res(link, &link_res);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
228
dc->link_srv->dp_set_drive_settings(link, &link_res, lt_settings);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
233
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
235
dc->link_srv->dp_set_preferred_link_settings(dc, link_setting, link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
241
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
245
lt_overrides, link, skip_immediate_retrain);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
248
bool dc_dp_trace_is_initialized(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
250
return link->dc->link_srv->dp_trace_is_initialized(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
253
void dc_dp_trace_set_is_logged_flag(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
257
link->dc->link_srv->dp_trace_set_is_logged_flag(link, in_detection, is_logged);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
260
bool dc_dp_trace_is_logged(struct dc_link *link, bool in_detection)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
262
return link->dc->link_srv->dp_trace_is_logged(link, in_detection);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
265
unsigned long long dc_dp_trace_get_lt_end_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
268
return link->dc->link_srv->dp_trace_get_lt_end_timestamp(link, in_detection);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
271
const struct dp_trace_lt_counts *dc_dp_trace_get_lt_counts(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
274
return link->dc->link_srv->dp_trace_get_lt_counts(link, in_detection);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
277
unsigned int dc_dp_trace_get_link_loss_count(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
279
return link->dc->link_srv->dp_trace_get_link_loss_count(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
283
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
288
return link->dc->link_srv->add_remote_sink(link, edid, len, init_data);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
291
void dc_link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
293
link->dc->link_srv->remove_remote_sink(link, sink);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
300
const struct dc *dc = ddc->link->dc;
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
311
bool dc_link_decide_edp_link_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
314
return link->dc->link_srv->edp_decide_link_settings(link, link_setting, req_bw);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
318
bool dc_link_dp_get_max_link_enc_cap(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
321
return link->dc->link_srv->dp_get_max_link_enc_cap(link, max_link_enc_cap);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
325
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
327
return link->dc->link_srv->mst_decide_link_encoding_format(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
330
const struct dc_link_settings *dc_link_get_link_cap(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
332
return link->dc->link_srv->dp_get_verified_link_cap(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
335
enum dc_link_encoding_format dc_link_get_highest_encoding_format(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
337
if (dc_is_dp_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
338
if (link->dpcd_caps.dongle_type >= DISPLAY_DONGLE_DP_DVI_DONGLE &&
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
339
link->dpcd_caps.dongle_type <= DISPLAY_DONGLE_DP_HDMI_MISMATCHED_DONGLE)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
341
else if (link->dc->link_srv->dp_get_encoding_format(&link->verified_link_cap) ==
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
344
else if (link->dc->link_srv->dp_get_encoding_format(&link->verified_link_cap) ==
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
347
} else if (dc_is_hdmi_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
353
bool dc_link_is_dp_sink_present(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
355
return link->dc->link_srv->dp_is_sink_present(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
358
bool dc_link_is_fec_supported(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
360
return link->dc->link_srv->dp_is_fec_supported(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
364
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
366
link->dc->link_srv->dp_overwrite_extended_receiver_cap(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
369
bool dc_link_should_enable_fec(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
371
return link->dc->link_srv->dp_should_enable_fec(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
375
struct dc_link *link, int peak_bw)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
377
link->dc->link_srv->dpia_handle_usb4_bandwidth_allocation_for_link(link, peak_bw);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
381
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
384
return link->dc->link_srv->dp_parse_link_loss_status(link, hpd_irq_dpcd_data);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
387
bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
389
return link->dc->link_srv->dp_should_allow_hpd_rx_irq(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
392
void dc_link_dp_handle_link_loss(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
394
link->dc->link_srv->dp_handle_link_loss(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
398
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
401
return link->dc->link_srv->dp_read_hpd_rx_irq_data(link, irq_data);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
404
bool dc_link_handle_hpd_rx_irq(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
408
return link->dc->link_srv->dp_handle_hpd_rx_irq(link, out_hpd_irq_dpcd_data,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
412
void dc_link_dp_receiver_power_ctrl(struct dc_link *link, bool on)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
414
link->dc->link_srv->dpcd_write_rx_power_ctrl(link, on);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
417
enum lttpr_mode dc_link_decide_lttpr_mode(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
420
return link->dc->link_srv->dp_decide_lttpr_mode(link, link_setting);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
423
void dc_link_edp_panel_backlight_power_on(struct dc_link *link, bool wait_for_hpd)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
425
link->dc->link_srv->edp_panel_backlight_power_on(link, wait_for_hpd);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
428
int dc_link_get_backlight_level(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
430
return link->dc->link_srv->edp_get_backlight_level(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
433
bool dc_link_get_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
437
return link->dc->link_srv->edp_get_backlight_level_nits(link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
442
bool dc_link_set_backlight_level(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
445
return link->dc->link_srv->edp_set_backlight_level(link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
449
bool dc_link_set_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
454
return link->dc->link_srv->edp_set_backlight_level_nits(link, isHDR,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
458
int dc_link_get_target_backlight_pwm(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
460
return link->dc->link_srv->edp_get_target_backlight_pwm(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
463
bool dc_link_get_psr_state(const struct dc_link *link, enum dc_psr_state *state)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
465
return link->dc->link_srv->edp_get_psr_state(link, state);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
468
bool dc_link_set_psr_allow_active(struct dc_link *link, const bool *allow_active,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
471
return link->dc->link_srv->edp_set_psr_allow_active(link, allow_active, wait,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
475
bool dc_link_setup_psr(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
479
return link->dc->link_srv->edp_setup_psr(link, stream, psr_config, psr_context);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
482
bool dc_link_set_replay_allow_active(struct dc_link *link, const bool *allow_active,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
485
return link->dc->link_srv->edp_set_replay_allow_active(link, allow_active, wait,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
489
bool dc_link_get_replay_state(const struct dc_link *link, uint64_t *state)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
491
return link->dc->link_srv->edp_get_replay_state(link, state);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
494
bool dc_link_set_pr_enable(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
496
return link->dc->link_srv->dp_pr_enable(link, enable);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
499
bool dc_link_update_pr_state(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
502
return link->dc->link_srv->dp_pr_update_state(link, update_state_data);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
505
bool dc_link_set_pr_general_cmd(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
508
return link->dc->link_srv->dp_pr_set_general_cmd(link, general_cmd_data);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
511
bool dc_link_get_pr_state(const struct dc_link *link, uint64_t *state)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
513
return link->dc->link_srv->dp_pr_get_state(link, state);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
516
bool dc_link_wait_for_t12(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
518
return link->dc->link_srv->edp_wait_for_t12(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
521
bool dc_link_get_hpd_state(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
523
return link->dc->link_srv->get_hpd_state(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
526
void dc_link_enable_hpd(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
528
link->dc->link_srv->enable_hpd(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
531
void dc_link_disable_hpd(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
533
link->dc->link_srv->disable_hpd(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
536
void dc_link_enable_hpd_filter(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
538
link->dc->link_srv->enable_hpd_filter(link, enable);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
546
void dc_link_get_alpm_support(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
550
link->dc->link_srv->edp_get_alpm_support(link, auxless_support, auxwake_support);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
67
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
74
if (link->connector_signal != SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
78
if (link == edp_links[i])
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
85
bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
87
return link->dc->link_srv->detect_link(link, reason);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
90
bool dc_link_detect_connection_type(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
93
return link->dc->link_srv->detect_connection_type(link, type);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
96
const struct dc_link_status *dc_link_get_status(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
98
return link->dc->link_srv->get_status(link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2658
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2664
res_ctx->hpo_dp_link_enc_to_link_idx[i] == link->link_index)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2714
enc_index = find_acquired_hpo_dp_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2721
acquire_hpo_dp_link_enc(res_ctx, stream->link->link_index, enc_index);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2736
enc_index = find_acquired_hpo_dp_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2746
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2752
res_ctx->dio_link_enc_to_link_idx[i] == link->link_index)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2758
static inline int find_fixed_dio_link_enc(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2761
return link->eng_id;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2765
const struct dc_link *link, const struct resource_pool *pool, struct dc_stream_state *stream)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2788
if (link->dpia_preferred_eng_id == i) {
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2825
static bool is_dio_enc_acquired_by_other_link(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2829
const struct dc *dc = link->dc;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2834
res_ctx->dio_link_enc_to_link_idx[enc_index] != link->link_index) {
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2873
enc_index = find_acquired_dio_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2878
if (stream->link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2879
enc_index = find_free_dio_link_enc(res_ctx, stream->link, pool, stream);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2883
enc_index = find_fixed_dio_link_enc(stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2888
if (enc_index >= 0 && is_dio_enc_acquired_by_other_link(stream->link, enc_index, &link_index)) {
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2899
acquire_dio_link_enc(res_ctx, stream->link->link_index, enc_index);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2914
if (stream->link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2915
enc_index = find_acquired_dio_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3673
&& stream_has_pll->link->connector_signal
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3734
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3740
if (!link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3743
inst = link->link_enc->funcs->get_dig_frontend(link->link_enc);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5003
if (false == pipe_ctx_old->stream->link->link_state_valid &&
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5167
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5177
if (link->ep_type == DISPLAY_ENDPOINT_PHY &&
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5178
!link->link_enc->funcs->validate_output_with_stream(
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5179
link->link_enc, stream))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5187
link,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5288
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5293
if (link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5294
enc_index = find_acquired_dio_link_enc_for_link(res_ctx, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5296
enc_index = link->eng_id;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5299
enc_index = find_free_dio_link_enc(res_ctx, link, pool, NULL);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5310
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5315
enc_index = find_acquired_hpo_dp_link_enc_for_link(res_ctx, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5326
bool get_temp_dp_link_res(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5330
const struct dc *dc = link->dc;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5336
link_res->hpo_dp_link_enc = get_temp_hpo_dp_link_enc(res_ctx, dc->res_pool, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5342
dc->res_pool, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5461
const struct link_hwss *get_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5467
if (can_use_hpo_dp_link_hwss(link, link_res))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5485
return (requires_fixed_vs_pe_retimer_hpo_link_hwss(link) ?
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5487
else if (can_use_dpia_link_hwss(link, link_res))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5489
else if (can_use_dio_link_hwss(link, link_res))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5490
return (requires_fixed_vs_pe_retimer_dio_link_hwss(link)) ?
drivers/gpu/drm/amd/display/dc/core/dc_sink.c
37
struct dc_link *link = init_params->link;
drivers/gpu/drm/amd/display/dc/core/dc_sink.c
39
if (!link)
drivers/gpu/drm/amd/display/dc/core/dc_sink.c
43
sink->link = link;
drivers/gpu/drm/amd/display/dc/core/dc_sink.c
44
sink->ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/core/dc_sink.c
48
sink->sink_id = init_params->link->ctx->dc_sink_id_count;
drivers/gpu/drm/amd/display/dc/core/dc_sink.c
51
init_params->link->ctx->dc_sink_id_count++;
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
51
stream->signal = stream->link->connector_signal;
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
74
stream->link = dc_sink_data->link;
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
915
stream->link->link_index);
drivers/gpu/drm/amd/display/dc/dc.h
2013
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2044
bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason);
drivers/gpu/drm/amd/display/dc/dc.h
2069
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2073
void dc_link_enable_hpd(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2076
void dc_link_disable_hpd(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2088
bool dc_link_detect_connection_type(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2095
bool dc_link_get_hpd_state(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2098
const struct dc_link_status *dc_link_get_status(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2114
void dc_link_enable_hpd_filter(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/dc.h
2154
bool dc_link_is_hdcp14(struct dc_link *link, enum signal_type signal);
drivers/gpu/drm/amd/display/dc/dc.h
2155
bool dc_link_is_hdcp22(struct dc_link *link, enum signal_type signal);
drivers/gpu/drm/amd/display/dc/dc.h
2173
void dc_link_dp_handle_automated_test(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2178
void dc_link_dp_handle_link_loss(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2184
bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2191
bool dc_link_check_link_loss_status(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2201
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2211
void dc_link_clear_dprx_states(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2217
bool dc_link_reset_cur_dp_mst_topology(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2225
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2243
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2295
bool dc_link_decide_edp_link_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2302
bool dc_link_dp_get_max_link_enc_cap(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2313
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2322
const struct dc_link_settings *dc_link_get_link_cap(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2330
enum dc_link_encoding_format dc_link_get_highest_encoding_format(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2337
bool dc_link_is_dp_sink_present(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2348
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2365
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2379
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2396
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2400
bool dc_link_is_fec_supported(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2406
bool dc_link_should_enable_fec(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2411
enum lttpr_mode dc_link_decide_lttpr_mode(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2422
void dc_link_dp_receiver_power_ctrl(struct dc_link *link, bool on);
drivers/gpu/drm/amd/display/dc/dc.h
2430
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2432
void dc_link_edp_panel_backlight_power_on(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2443
bool dc_link_set_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2448
bool dc_link_get_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2454
int dc_link_get_target_backlight_pwm(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2489
bool dc_link_set_pr_enable(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/dc.h
2499
bool dc_link_update_pr_state(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2510
bool dc_link_set_pr_general_cmd(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2521
bool dc_link_get_pr_state(const struct dc_link *link, uint64_t *state);
drivers/gpu/drm/amd/display/dc/dc.h
2527
bool dc_link_wait_for_t12(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2533
bool dc_dp_trace_is_initialized(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2538
bool dc_dp_trace_is_logged(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2545
void dc_dp_trace_set_is_logged_flag(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2555
unsigned long long dc_dp_trace_get_lt_end_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2563
const struct dp_trace_lt_counts *dc_dp_trace_get_lt_counts(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2567
unsigned int dc_dp_trace_get_link_loss_count(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2582
void dc_link_set_usb4_req_bw_req(struct dc_link *link, int req_bw);
drivers/gpu/drm/amd/display/dc/dc.h
2594
struct dc_link *link, int peak_bw);
drivers/gpu/drm/amd/display/dc/dc.h
2607
void dc_link_get_alpm_support(struct dc_link *link, bool *auxless_support,
drivers/gpu/drm/amd/display/dc/dc.h
2672
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dc.h
2689
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dc.h
2729
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2790
bool dc_smart_power_oled_enable(const struct dc_link *link, bool enable, uint16_t peak_nits,
drivers/gpu/drm/amd/display/dc/dc.h
2792
bool dc_smart_power_oled_get_max_cll(const struct dc_link *link, unsigned int *pCurrent_MaxCLL);
drivers/gpu/drm/amd/display/dc/dc.h
2825
bool dc_get_host_router_index(const struct dc_link *link, unsigned int *host_router_index);
drivers/gpu/drm/amd/display/dc/dc_ddc_types.h
191
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
1022
if ((pipe_ctx->stream->link->psr_settings.psr_version == DC_PSR_VERSION_SU_1 ||
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
1023
pipe_ctx->stream->link->psr_settings.psr_version == DC_PSR_VERSION_1) &&
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
1027
if (pipe_ctx->stream->link->replay_settings.config.replay_supported)
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
1046
pipe_ctx->stream->link, &panel_inst))
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
543
if (!dc_get_edp_link_panel_inst(dc, pipe_ctx->stream->link, &panel_inst) &&
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
102
if (!link)
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
106
const uint32_t ddc_line = link->ddc->ddc_pin->pin_data->en;
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
116
const bool result = atomic_write_poll_read(link, commands, poll_timeout_us, poll_mask_msb);
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
123
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
131
if (!link)
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
134
const uint32_t ddc_line = link->ddc->ddc_pin->pin_data->en;
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
143
const bool result = atomic_write_poll_read(link, commands, poll_timeout_us, poll_mask_msb);
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
60
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
87
if (!dm_helpers_execute_fused_io(link->ctx, link, commands, count, timeout_us))
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
94
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc_fused_io.h
13
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc_fused_io.h
22
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc_stream.h
196
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dc_types.h
1475
const struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
632
return dm_helper_dmub_aux_transfer_sync(ddc->ctx, ddc->link, payload, operation_result);
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
730
ddc && ddc->link ? ddc->link->link_index : UINT_MAX,
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
738
(ddc->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) ? true : false,
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
739
ddc->link->ddc_hw_inst);
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
756
ddc && ddc->link ? ddc->link->link_index : UINT_MAX,
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
767
(ddc->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) ? true : false,
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
768
ddc->link->ddc_hw_inst);
drivers/gpu/drm/amd/display/dc/dce/dce_clk_mgr.c
528
stream->link->ddi_channel_mapping.raw;
drivers/gpu/drm/amd/display/dc/dce/dce_clk_mgr.c
530
stream->link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/dce/dce_clk_mgr.c
532
stream->link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/dce/dce_clk_mgr.c
534
stream->link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/dce/dce_clk_mgr.c
536
stream->link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
169
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
181
link->link_enc->funcs->psr_program_dp_dphy_fast_training(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
229
link->link_enc->funcs->psr_program_secondary_packet(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
600
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
616
link->link_enc->funcs->psr_program_dp_dphy_fast_training(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
664
link->link_enc->funcs->psr_program_secondary_packet(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c
991
stream->link->connector_signal,
drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
901
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
950
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
108
return dmub_hw_lock_mgr_does_link_require_lock(dc, link);
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
64
bool dmub_hw_lock_mgr_does_link_require_lock(const struct dc *dc, const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
66
if (!link)
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
69
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1)
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
72
if (link->replay_settings.replay_feature_enabled && dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
75
if (link->psr_settings.psr_version == DC_PSR_VERSION_1) {
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
91
const struct dc_link *link = context->streams[i]->link;
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
93
if (dmub_hw_lock_mgr_does_link_require_lock(dc, link))
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
99
bool should_use_dmub_inbox1_lock(const struct dc *dc, const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.h
48
bool should_use_dmub_inbox1_lock(const struct dc *dc, const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.h
49
bool dmub_hw_lock_mgr_does_link_require_lock(const struct dc *dc, const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
145
if (stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED)
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
151
switch (stream->link->psr_settings.psr_version) {
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
293
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
302
struct resource_context *res_ctx = &link->ctx->dc->current_state->res_ctx;
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
307
res_ctx->pipe_ctx[i].stream->link == link &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
308
res_ctx->pipe_ctx[i].stream->link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
323
link->link_enc->funcs->psr_program_dp_dphy_fast_training(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
327
link->link_enc->funcs->psr_program_secondary_packet(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
357
copy_settings_data->use_phy_fsm = link->ctx->dc->debug.psr_power_use_phy_fsm;
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
378
copy_settings_data->fec_enable_status = (link->fec_state == dc_link_fec_enabled);
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
379
copy_settings_data->fec_enable_delay_in100us = link->dc->debug.fec_enable_delay_in100us;
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
389
link->dpcd_caps.sink_dev_id == DP_DEVICE_ID_38EC11 &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
390
!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_1,
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
392
link->psr_settings.force_ffu_mode = 1;
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
394
copy_settings_data->force_ffu_mode = link->psr_settings.force_ffu_mode || psr_context->os_request_force_ffu;
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
396
if (((link->dpcd_caps.fec_cap.bits.FEC_CAPABLE &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
397
!link->dc->debug.disable_fec) &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
398
(link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
399
!link->panel_config.dsc.disable_dsc_edp &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
400
link->dc->caps.edp_dsc_support)) &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
401
link->dpcd_caps.sink_dev_id == DP_DEVICE_ID_38EC11 &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
402
(!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_1,
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
404
!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_2,
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
410
if (link->psr_settings.psr_version == DC_PSR_VERSION_1 &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
411
link->dpcd_caps.sink_dev_id == DP_DEVICE_ID_0022B9 &&
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
412
!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_3,
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
419
if (link->dpcd_caps.sink_dev_id == DP_BRANCH_DEVICE_ID_001CF8)
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
423
link->psr_settings.power_down_phy_before_disable_stream;
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h
40
bool (*psr_copy_settings)(struct dmub_psr *dmub, struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
116
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
125
struct resource_context *res_ctx = &link->ctx->dc->current_state->res_ctx;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
131
res_ctx->pipe_ctx[i].stream->link &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
132
res_ctx->pipe_ctx[i].stream->link == link &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
133
res_ctx->pipe_ctx[i].stream->link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
162
copy_settings_data->dpphy_inst = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
167
copy_settings_data->debug.u32All = link->replay_settings.config.debug_flags;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
168
copy_settings_data->pixel_deviation_per_line = link->dpcd_caps.pr_info.pixel_deviation_per_line;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
169
copy_settings_data->max_deviation_line = link->dpcd_caps.pr_info.max_deviation_line;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
170
copy_settings_data->smu_optimizations_en = link->replay_settings.replay_smu_opt_enable;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
171
copy_settings_data->replay_timing_sync_supported = link->replay_settings.config.replay_timing_sync_supported;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
172
copy_settings_data->replay_support_fast_resync_in_ultra_sleep_mode = link->replay_settings.config.replay_support_fast_resync_in_ultra_sleep_mode;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
177
copy_settings_data->flags.bitfields.fec_enable_status = (link->fec_state == dc_link_fec_enabled);
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
180
if (((link->dpcd_caps.fec_cap.bits.FEC_CAPABLE &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
181
!link->dc->debug.disable_fec) &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
182
(link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
183
!link->panel_config.dsc.disable_dsc_edp &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
184
link->dc->caps.edp_dsc_support)) &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
185
link->dpcd_caps.sink_dev_id == DP_DEVICE_ID_38EC11 &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
186
(!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_1,
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
188
!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_2,
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
194
copy_settings_data->flags.bitfields.alpm_mode = (enum dmub_alpm_mode)link->replay_settings.config.alpm_mode;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
195
if (link->replay_settings.config.alpm_mode == DC_ALPM_AUXLESS) {
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
203
copy_settings_data->auxless_alpm_data.lttpr_count = link->dc->link_srv->dp_get_lttpr_count(link);
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.h
23
bool (*replay_copy_settings)(struct dmub_replay *dmub, struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_link_encoder.c
802
stream->link->connector_signal,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.c
1027
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.c
904
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.c
935
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_DISABLE_DP_VID_STREAM);
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.c
954
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_FIFO_STEER_RESET);
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.c
959
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.h
677
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.h
681
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn20/dcn20_stream_encoder.c
469
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn20/dcn20_stream_encoder.c
549
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/dio/dcn20/dcn20_stream_encoder.h
107
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
469
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
471
link = link_enc_cfg_get_link_using_link_enc(enc->ctx->dc, enc->preferred_engine);
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
486
if (link) {
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
487
dpia_control.dpia_id = link->ddc_hw_inst;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
488
dpia_control.fec_rdy = link->dc->link_srv->dp_should_enable_fec(link);
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
516
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
518
link = link_enc_cfg_get_link_using_link_enc(enc->ctx->dc, enc->preferred_engine);
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
533
if (link) {
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
534
dpia_control.dpia_id = link->ddc_hw_inst;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
535
dpia_control.fec_rdy = link->dc->link_srv->dp_should_enable_fec(link);
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
562
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
567
link = link_enc_cfg_get_link_using_link_enc(enc->ctx->dc, enc->preferred_engine);
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
580
if (link) {
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
581
dpia_control.dpia_id = link->ddc_hw_inst;
drivers/gpu/drm/amd/display/dc/dio/dcn314/dcn314_dio_stream_encoder.c
287
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn314/dcn314_dio_stream_encoder.c
290
enc1_stream_encoder_dp_blank(link, enc);
drivers/gpu/drm/amd/display/dc/dio/dcn314/dcn314_dio_stream_encoder.c
298
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn314/dcn314_dio_stream_encoder.c
384
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_ENABLE_DP_VID_STREAM);
drivers/gpu/drm/amd/display/dc/dio/dcn314/dcn314_dio_stream_encoder.h
327
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn314/dcn314_dio_stream_encoder.h
331
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn32/dcn32_dio_stream_encoder.c
245
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn32/dcn32_dio_stream_encoder.c
346
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_ENABLE_DP_VID_STREAM);
drivers/gpu/drm/amd/display/dc/dio/dcn32/dcn32_dio_stream_encoder.h
202
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn35/dcn35_dio_stream_encoder.c
277
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn35/dcn35_dio_stream_encoder.c
364
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_ENABLE_DP_VID_STREAM);
drivers/gpu/drm/amd/display/dc/dio/dcn401/dcn401_dio_stream_encoder.c
264
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn401/dcn401_dio_stream_encoder.c
373
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_ENABLE_DP_VID_STREAM);
drivers/gpu/drm/amd/display/dc/dio/dcn401/dcn401_dio_stream_encoder.h
222
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
70
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
74
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_cp_psp.h
51
bool (*enable_assr)(void *handle, struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
120
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
125
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
129
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
136
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
146
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
153
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
158
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
175
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
181
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
186
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
212
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
215
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
220
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
223
enum adaptive_sync_type dm_get_adaptive_sync_support_type(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
225
enum dc_edid_status dm_helpers_get_sbios_edid(struct dc_link *link, struct dc_edid *edid);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
63
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
73
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
89
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
96
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
1082
struct dc_link *link = context->streams[0]->sink->link;
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
1086
bool is_pwrseq0 = (link && link->link_index == 0);
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
1087
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
1088
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) && !link->panel_config.psr.disable_psr);
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
1089
bool is_replay = link && link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
1749
if (context->res_ctx.pipe_ctx[i].stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED) {
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c
594
struct dc_link *link = context->streams[0]->sink->link;
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c
595
bool is_pwrseq0 = link && link->link_index == 0;
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c
596
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c
597
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) && !link->panel_config.psr.disable_psr);
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c
598
bool is_replay = link && link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
625
struct dc_link *link = context->streams[0]->sink->link;
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
626
bool is_pwrseq0 = link && link->link_index == 0;
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
627
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
628
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) && !link->panel_config.psr.disable_psr);
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
629
bool is_replay = link && link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/dc/dml2_0/dml2_wrapper_fpu.c
370
if (!context->streams[0]->sink->link->dc->caps.is_apu) {
drivers/gpu/drm/amd/display/dc/dml2_0/dml2_wrapper_fpu.c
382
if (!context->streams[0]->sink->link->dc->caps.is_apu) {
drivers/gpu/drm/amd/display/dc/dml2_0/dml2_wrapper_fpu.c
390
if (!context->streams[0]->sink->link->dc->caps.is_apu) {
drivers/gpu/drm/amd/display/dc/dml2_0/dml2_wrapper_fpu.c
488
if (context->streams[0]->sink->link->dc->caps.is_apu)
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
114
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
123
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
146
switch (message_info->link) {
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
178
i2c_command.speed = link->ddc->ctx->dc->caps.i2c_speed_in_khz;
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
181
link->ctx,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
182
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
230
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
263
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
272
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
293
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
299
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
316
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
325
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
338
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
350
if (link &&
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
351
(link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_VGA_CONVERTER ||
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
352
link->dpcd_caps.dongle_caps.dongle_type == DISPLAY_DONGLE_DP_VGA_CONVERTER)) {
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
36
link->ctx->logger
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
384
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
401
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
409
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
415
link,
drivers/gpu/drm/amd/display/dc/hubp/dcn20/dcn20_hubp.c
1104
if (param->stream->link->psr_settings.psr_version >= DC_PSR_VERSION_SU_1 &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1001
ctx->dc->link_srv->edp_receiver_ready_T7(link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1015
pwrseq_instance, link->link_powered_externally);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1019
pwrseq_instance, link->link_powered_externally);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1024
if (enable && link->dpcd_sink_ext_caps.bits.oled &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1025
!link->dc->config.edp_no_power_sequencing &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1026
!link->local_sink->edid_caps.panel_patch.oled_optimize_display_on) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1027
post_T7_delay += link->panel_config.pps.extra_post_t7_ms;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1031
if (link->dpcd_sink_ext_caps.bits.oled ||
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1032
link->dpcd_sink_ext_caps.bits.hdr_aux_backlight_control == 1 ||
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1033
link->dpcd_sink_ext_caps.bits.sdr_aux_backlight_control == 1)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1034
ctx->dc->link_srv->edp_backlight_enable_aux(link, enable);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1038
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1046
ctx->dc->link_srv->edp_add_delay_for_T9(link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1053
pre_T11_delay += link->panel_config.pps.extra_pre_t11_ms;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1075
link_hwss = get_link_hwss(pipe_ctx->stream->link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1114
link_hwss = get_link_hwss(pipe_ctx->stream->link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1139
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1141
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1150
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1193
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1194
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1201
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, &params);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1203
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1204
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1211
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1212
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1217
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1218
if (!link->skip_implict_edp_power_control && hws)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1219
hws->funcs.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1220
link->dc->hwss.set_abm_immediate_disable(pipe_ctx);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1223
if (link->dc->link_srv->dp_is_128b_132b_signal(pipe_ctx)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1228
pipe_ctx->stream_res.stream_enc->funcs->dp_blank(link, pipe_ctx->stream_res.stream_enc);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1240
!link->dc->config.edp_no_power_sequencing) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1248
link->dc->link_srv->edp_receiver_ready_T9(link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1285
const struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1288
dp_link_info->encoding = link->dc->link_srv->dp_get_encoding_format(
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1294
link_bw_kbps = dc_fixpt_from_int(dc_link_bandwidth_kbps(link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1301
link->dc->link_srv->dp_is_fec_supported(link)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1538
stream->link->phy_state.symclk_ref_cnts.otg = 1;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1539
if (stream->link->phy_state.symclk_state == SYMCLK_OFF_TX_OFF)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1540
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1542
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1574
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1580
link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1672
dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_CONNECT_DIG_FE_OTG);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1680
((link->dc->config.smart_mux_version && link->dc->is_switch_in_progress_dest)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1681
|| link->is_dds || link->skip_implict_edp_power_control)) &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1707
pipe_ctx->stream->link->psr_settings.psr_feature_enabled = false;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1708
pipe_ctx->stream->link->replay_settings.replay_feature_enabled = false;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1720
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1721
struct link_encoder *link_enc = link->link_enc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1722
enum signal_type signal = link->connector_signal;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1724
dc->link_srv->blank_dp_stream(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1728
if (link->ep_type == DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1731
if (link->fec_state == dc_link_fec_enabled) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1734
link->fec_state = dc_link_fec_not_ready;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1737
link->link_status.link_active = false;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1738
memset(&link->cur_link_settings, 0, sizeof(link->cur_link_settings));
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1928
if (edp_link != edp_streams[0]->link)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2229
if (!pipe_ctx->stream->link)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2233
if (pipe_ctx->stream->link->connector_signal != SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2237
if (pipe_ctx->stream->link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2241
if (pipe_ctx->stream->link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2338
pipe_ctx_old->stream->link->phy_state.symclk_ref_cnts.otg = 0;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2510
pipe_ctx->stream->link->link_state_valid) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2837
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2839
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2859
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2861
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2862
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2863
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3183
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3184
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3186
struct panel_cntl *panel_cntl = link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3208
link->panel_cntl->inst);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3216
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3220
pipe_ctx->stream->link->panel_cntl->inst);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3229
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3236
void dce110_enable_lvds_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3241
link->link_enc->funcs->enable_lvds_output(
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3242
link->link_enc,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3245
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3248
void dce110_enable_tmds_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3255
link->link_enc->funcs->enable_tmds_output(
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3256
link->link_enc,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3261
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3265
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3268
link->link_enc->funcs->enable_analog_output(
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3269
link->link_enc,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3274
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3280
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3283
link->dc->current_state->res_ctx.pipe_ctx;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3285
link->dc->res_pool->dp_clock_source;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3286
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3294
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3295
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3305
pipes[i].stream->link == link) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3322
dc->clk_mgr->funcs->notify_link_rate_change(dc->clk_mgr, link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3329
link_hwss->ext.enable_dp_link_output(link, link_res, signal,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3332
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3337
dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_ENABLE_LINK_PHY);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3340
void dce110_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3344
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3345
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3349
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3350
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3351
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3355
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3356
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3364
dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_DISABLE_LINK_PHY);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
666
pipe_ctx->stream->link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
668
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
669
const struct dc *dc = link->dc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
670
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
711
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
714
struct dc_context *ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
715
struct graphics_object_id connector = link->link_enc->connector;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
739
if (link->panel_config.pps.extra_t3_ms > 0) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
740
int extra_t3_in_ms = link->panel_config.pps.extra_t3_ms;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
748
if (!(link->dc->link_srv->get_hpd_state(link) ^ power_up)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
764
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
767
struct dc_context *ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
773
if (dal_graphics_object_id_get_connector_id(link->link_enc->connector)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
779
if (!link->panel_cntl)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
782
link->panel_cntl->funcs->is_panel_powered_on(link->panel_cntl)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
789
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link)), 1000000);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
794
ctx->dc->link_srv->dp_trace_get_edp_poweron_timestamp(link)), 1000000);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
800
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link),
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
801
ctx->dc->link_srv->dp_trace_get_edp_poweron_timestamp(link),
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
811
if (link->local_sink != NULL)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
813
link->panel_config.pps.extra_t12_ms;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
816
if (ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link) != 0) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
848
cntl.transmitter = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
849
cntl.connector_obj_id = link->link_enc->connector;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
852
cntl.hpd_sel = link->link_enc->hpd_source;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
853
pwrseq_instance = link->panel_cntl->pwrseq_inst;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
861
pwrseq_instance, link->link_powered_externally);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
865
pwrseq_instance, link->link_powered_externally);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
876
ctx->dc->link_srv->dp_trace_set_edp_power_timestamp(link, power_up);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
881
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link),
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
882
ctx->dc->link_srv->dp_trace_get_edp_poweron_timestamp(link));
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
896
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
898
struct dc_context *ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
900
if (dal_graphics_object_id_get_connector_id(link->link_enc->connector)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
906
if (!link->panel_cntl)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
909
if (!link->panel_cntl->funcs->is_panel_powered_on(link->panel_cntl) &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
910
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link) != 0) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
917
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link)), 1000000);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
919
t12_duration += link->panel_config.pps.extra_t12_ms; // Add extra T12
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
931
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
934
struct dc_context *ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
937
unsigned int pre_T11_delay = (link->dpcd_sink_ext_caps.bits.oled ? OLED_PRE_T11_DELAY : 0);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
938
unsigned int post_T7_delay = (link->dpcd_sink_ext_caps.bits.oled ? OLED_POST_T7_DELAY : 0);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
940
if (dal_graphics_object_id_get_connector_id(link->link_enc->connector)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
946
if (link->panel_cntl && !(link->dpcd_sink_ext_caps.bits.oled ||
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
947
link->dpcd_sink_ext_caps.bits.hdr_aux_backlight_control == 1 ||
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
948
link->dpcd_sink_ext_caps.bits.sdr_aux_backlight_control == 1)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
949
bool is_backlight_on = link->panel_cntl->funcs->is_panel_backlight_on(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
970
cntl.transmitter = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
971
cntl.connector_obj_id = link->link_enc->connector;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
974
cntl.hpd_sel = link->link_enc->hpd_source;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
989
if (link->panel_cntl)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
990
pwrseq_instance = link->panel_cntl->pwrseq_inst;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
993
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.h
101
void dce110_enable_tmds_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.h
108
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.h
79
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.h
83
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.h
87
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.h
94
void dce110_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.h
97
void dce110_enable_lvds_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce60/dce60_hwseq.c
89
if (!pipe_ctx->stream->link)
drivers/gpu/drm/amd/display/dc/hwss/dce60/dce60_hwseq.c
93
if (pipe_ctx->stream->link->connector_signal != SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/hwss/dce60/dce60_hwseq.c
97
if (pipe_ctx->stream->link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1212
stream->link->phy_state.symclk_ref_cnts.otg = 1;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1213
if (stream->link->phy_state.symclk_state == SYMCLK_OFF_TX_OFF)
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1214
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1216
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1288
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1295
link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1302
if (!pipe_ctx->stream->dpms_off || link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1335
pipe_ctx->stream->link->phy_state.symclk_ref_cnts.otg = 0;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1820
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1823
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1826
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1827
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1828
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1829
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1830
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1831
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1865
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1867
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1868
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1869
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1926
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1928
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1929
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
2249
if (pipe->stream && should_use_dmub_inbox1_lock(dc, pipe->stream->link)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
3500
if (stream->link && stream->link->ddc) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
3502
stream->link->ddc->dongle_type;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4028
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4029
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4039
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, &params);
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4042
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4043
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.h
173
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.h
176
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.h
178
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.h
181
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
1213
if (stream->link->test_pattern_enabled)
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
1445
if (pipe->stream && should_use_dmub_inbox1_lock(dc, pipe->stream->link)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2750
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2751
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2766
if (link->dc->link_srv->dp_is_128b_132b_signal(pipe_ctx)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2777
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, &params);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2780
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2781
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2802
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2803
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2819
if (!pipe_ctx->stream->dpms_off || link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2860
link->phy_state.symclk_ref_cnts.otg = 0;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2861
if (link->phy_state.symclk_state == SYMCLK_ON_TX_OFF) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2862
link_hwss->disable_link_output(link,
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2864
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3008
pipe_ctx->stream->link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3011
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3016
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3027
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3039
phyd32clk = get_phyd32clk_src(link);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3040
if (link->cur_link_settings.link_rate == LINK_RATE_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3047
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3048
&& link->cur_link_settings.link_rate == LINK_RATE_UNKNOWN
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3049
&& !link->link_status.link_active) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3076
dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_UPDATE_INFO_FRAME);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
785
static enum phyd32clk_clock_source get_phyd32clk_src(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
787
switch (link->link_enc->transmitter) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
897
stream->link->phy_state.symclk_ref_cnts.otg = 1;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
898
if (stream->link->phy_state.symclk_state == SYMCLK_OFF_TX_OFF)
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
899
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
901
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn201/dcn201_hwseq.c
267
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn201/dcn201_hwseq.c
269
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn201/dcn201_hwseq.c
599
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn201/dcn201_hwseq.c
600
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dcn201/dcn201_hwseq.c
612
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, &params);
drivers/gpu/drm/amd/display/dc/hwss/dcn201/dcn201_hwseq.c
615
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dcn201/dcn201_hwseq.c
616
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c
182
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c
215
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c
249
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
710
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
712
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
715
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
716
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
717
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
718
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
719
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
720
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
765
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
767
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
768
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
785
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
787
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
788
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
789
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
969
stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED &&
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
163
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
165
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
168
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
171
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
172
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
173
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
174
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
175
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
176
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
228
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
230
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
231
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
232
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
514
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
525
link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
530
if ((!pipe_ctx->stream->dpms_off || link->link_status.link_active) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
531
(link->connector_signal == SIGNAL_TYPE_EDP)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
553
link->phy_state.symclk_ref_cnts.otg = 0;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
556
if (link->phy_state.symclk_state == SYMCLK_ON_TX_OFF) {
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
557
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
559
link_hwss->disable_link_output(link, &pipe_ctx->link_res, pipe_ctx->stream->signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
560
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
572
if (!pipe_ctx->stream->dpms_off || link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
583
((link->dc->config.smart_mux_version && link->dc->is_switch_in_progress_dest)
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
584
|| link->is_dds || link->skip_implict_edp_power_control)) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
711
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
392
&& pipe->stream->link && pipe->stream->link->link_enc
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
393
&& pipe->stream->link->link_enc->funcs->is_dig_enabled
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
394
&& pipe->stream->link->link_enc->funcs->is_dig_enabled(pipe->stream->link->link_enc)
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
466
static void apply_symclk_on_tx_off_wa(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
483
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
487
if (link->phy_state.symclk_ref_cnts.otg > 0) {
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
490
if (pipe_ctx->stream && pipe_ctx->stream->link == link && pipe_ctx->top_pipe == NULL) {
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
497
link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
504
void dcn314_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
508
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
509
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
513
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
514
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
515
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
519
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
520
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
528
dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_DISABLE_LINK_PHY);
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
530
apply_symclk_on_tx_off_wa(link);
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.h
48
void dcn314_disable_link_output(struct dc_link *link, const struct link_resource *link_res, enum signal_type signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1315
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1316
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1330
if (link->dc->link_srv->dp_is_128b_132b_signal(pipe_ctx)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1344
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, &params);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1347
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1348
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1364
static void apply_symclk_on_tx_off_wa(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1381
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1385
if (link->phy_state.symclk_ref_cnts.otg > 0) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1388
if (resource_is_pipe_type(pipe_ctx, OPP_HEAD) && pipe_ctx->stream->link == link) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1395
link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1402
void dcn32_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1406
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1407
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1411
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1412
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1413
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1417
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1418
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1427
dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_DISABLE_LINK_PHY);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1429
apply_symclk_on_tx_off_wa(link);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1613
pipe_ctx->stream->link->link_state_valid) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
211
(dc->current_state->streams[i]->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED))
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
274
dc->current_state->streams[i]->link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
713
pipe->stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
846
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
848
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
851
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
852
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
853
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
854
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
855
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
856
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
857
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
927
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
929
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
930
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
947
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
949
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
950
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
951
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.h
96
void dcn32_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1500
const struct dc *dc = pipe_ctx->stream->link->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1731
static void disable_link_output_symclk_on_tx_off(struct dc_link *link, enum dp_link_encoding link_encoding)
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1733
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1739
if (pipe_ctx->stream && pipe_ctx->stream->link == link && pipe_ctx->top_pipe == NULL) {
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1750
void dcn35_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1754
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1755
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1759
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1760
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1761
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1765
if (dc_is_tmds_signal(signal) && link->phy_state.symclk_ref_cnts.otg > 0) {
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1766
disable_link_output_symclk_on_tx_off(link, DP_UNKNOWN_ENCODING);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1767
link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1769
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1770
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1780
dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_DISABLE_LINK_PHY);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
196
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
198
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
201
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
204
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
205
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
206
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
207
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
208
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
209
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
262
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
264
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
265
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
266
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
540
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
542
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
543
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
575
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
576
bool is_psr = link && !link->panel_config.psr.disable_psr &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
577
(link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
578
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
579
bool is_replay = link && link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
590
if (link && link->link_index != 0)
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.h
111
void dcn35_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.h
50
void dcn35_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1008
dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_UPDATE_INFO_FRAME);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1029
static void disable_link_output_symclk_on_tx_off(struct dc_link *link, enum dp_link_encoding link_encoding)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1031
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1037
if (pipe_ctx->stream && pipe_ctx->stream->link == link && pipe_ctx->top_pipe == NULL) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1048
void dcn401_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1052
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1053
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1057
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1058
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1059
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1063
if (dc_is_tmds_signal(signal) && link->phy_state.symclk_ref_cnts.otg > 0) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1064
disable_link_output_symclk_on_tx_off(link, DP_UNKNOWN_ENCODING);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1065
link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1067
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1068
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1072
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1073
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1074
link->dc->hwss.edp_power_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1078
dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_DISABLE_LINK_PHY);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1243
(dc->current_state->streams[i]->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED))
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1296
dc->current_state->streams[i]->link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1764
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1765
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1774
if (link->dc->link_srv->dp_is_128b_132b_signal(pipe_ctx)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1779
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, &params);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1782
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1783
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1968
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1969
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1983
if (!pipe_ctx->stream->dpms_off || link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2025
link->phy_state.symclk_ref_cnts.otg = 0;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2026
if (link->phy_state.symclk_state == SYMCLK_ON_TX_OFF) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2027
link_hwss->disable_link_output(link,
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2029
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
210
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
212
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
215
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
218
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
219
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
220
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
221
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
222
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
223
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
224
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
294
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
296
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
298
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
299
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
3138
if (stream->link->test_pattern_enabled)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
315
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
317
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
318
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
319
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
3971
pipe->stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
748
stream->link->phy_state.symclk_ref_cnts.otg = 1;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
749
if (stream->link->phy_state.symclk_state == SYMCLK_OFF_TX_OFF)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
750
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
752
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
899
static enum phyd32clk_clock_source get_phyd32clk_src(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
901
switch (link->link_enc->transmitter) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
928
pipe_ctx->stream->link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
933
*phyd32clk = get_phyd32clk_src(pipe_ctx->stream->link);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
959
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
960
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
971
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
979
if (link->cur_link_settings.link_rate == LINK_RATE_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.h
59
void dcn401_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1032
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1172
void (*enable_dp_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1177
void (*enable_tmds_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1183
void (*enable_lvds_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1187
void (*enable_analog_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1189
void (*disable_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
996
void (*edp_power_control)(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
997
void (*edp_wait_for_hpd_ready)(struct dc_link *link, bool power_up);
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
998
void (*edp_wait_for_T12)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer_private.h
115
void (*edp_backlight_control)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/core_types.h
229
enum dc_status (*update_dc_state_for_encoder_switch)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/core_types.h
76
void (*link_init)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h
312
void (*notify_link_rate_change)(struct clk_mgr *clk_mgr, struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h
67
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
184
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
188
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h
100
struct link_encoder *link_enc_cfg_get_link_enc(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h
108
bool link_enc_cfg_is_link_enc_avail(struct dc *dc, enum engine_id eng_id, struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h
94
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_hwss.h
54
void (*enable_dp_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_hwss.h
59
void (*set_dp_link_test_pattern)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_hwss.h
62
void (*set_dp_lane_settings)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_hwss.h
66
void (*update_stream_allocation_table)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_hwss.h
80
void (*disable_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
103
void (*destroy_link)(struct dc_link **link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
107
bool (*detect_link)(struct dc_link *link, enum dc_detect_reason reason);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
108
bool (*detect_connection_type)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
111
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
115
void (*remove_remote_sink)(struct dc_link *link, struct dc_sink *sink);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
116
bool (*get_hpd_state)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
117
void (*enable_hpd)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
118
void (*disable_hpd)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
119
void (*enable_hpd_filter)(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
120
bool (*reset_cur_dp_mst_topology)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
121
const struct dc_link_status *(*get_status)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
122
bool (*is_hdcp1x_supported)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
124
bool (*is_hdcp2x_supported)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
126
void (*clear_dprx_states)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
132
void (*get_cur_link_res)(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
139
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
142
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
149
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
156
void (*resume)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
159
void (*blank_dp_stream)(struct dc_link *link, bool hw_init);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
194
bool (*dp_is_sink_present)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
195
bool (*dp_is_fec_supported)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
197
bool (*dp_get_max_link_enc_cap)(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
200
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
203
bool (*dp_should_enable_fec)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
211
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
212
bool (*edp_decide_link_settings)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
215
bool (*dp_overwrite_extended_receiver_cap)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
216
enum lttpr_mode (*dp_decide_lttpr_mode)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
218
uint8_t (*dp_get_lttpr_count)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
219
void (*edp_get_alpm_support)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
225
struct dc_link *link, int peak_bw);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
227
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
230
void (*dpcd_write_rx_power_ctrl)(struct dc_link *link, bool on);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
235
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
237
bool (*dp_should_allow_hpd_rx_irq)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
238
void (*dp_handle_link_loss)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
240
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
242
bool (*dp_handle_hpd_rx_irq)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
250
struct dc_link *link, bool wait_for_hpd);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
251
int (*edp_get_backlight_level)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
252
bool (*edp_get_backlight_level_nits)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
255
bool (*edp_set_backlight_level)(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
257
bool (*edp_set_backlight_level_nits)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
261
int (*edp_get_target_backlight_pwm)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
263
const struct dc_link *link, enum dc_psr_state *state);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
265
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
270
bool (*edp_setup_psr)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
275
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
279
const struct dc_link *link, uint32_t *residency, enum psr_residency_mode mode);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
282
const struct dc_link *link, uint64_t *state);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
286
bool (*edp_send_replay_cmd)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
290
struct dc_link *link, uint32_t coasting_vtotal, uint16_t frame_skip_number);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
291
bool (*edp_replay_residency)(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
294
bool (*edp_set_replay_power_opt_and_coasting_vtotal)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
297
bool (*edp_wait_for_t12)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
298
bool (*edp_is_ilr_optimization_required)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
300
bool (*edp_backlight_enable_aux)(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
301
void (*edp_add_delay_for_T9)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
302
bool (*edp_receiver_ready_T9)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
303
bool (*edp_receiver_ready_T7)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
304
bool (*edp_power_alpm_dpcd_enable)(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
305
bool (*dp_setup_replay)(struct dc_link *link, const struct dc_stream_state *stream);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
306
bool (*dp_pr_get_panel_inst)(const struct dc *dc, const struct dc_link *link, unsigned int *inst_out);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
307
bool (*dp_pr_enable)(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
308
bool (*dp_pr_update_state)(struct dc_link *link, struct dmub_cmd_pr_update_state_data *update_state_data);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
309
bool (*dp_pr_set_general_cmd)(struct dc_link *link, struct dmub_cmd_pr_general_cmd_data *general_cmd_data);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
310
bool (*dp_pr_get_state)(const struct dc_link *link, uint64_t *state);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
311
void (*edp_set_panel_power)(struct dc_link *link, bool powerOn);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
315
void (*dp_handle_automated_test)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
317
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
325
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
329
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
334
bool (*dp_trace_is_initialized)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
335
void (*dp_trace_set_is_logged_flag)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
338
bool (*dp_trace_is_logged)(struct dc_link *link, bool in_detection);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
340
struct dc_link *link, bool in_detection);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
342
struct dc_link *link, bool in_detection);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
343
unsigned int (*dp_trace_get_link_loss_count)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
344
void (*dp_trace_set_edp_power_timestamp)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
346
uint64_t (*dp_trace_get_edp_poweron_timestamp)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
347
uint64_t (*dp_trace_get_edp_poweroff_timestamp)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
349
struct dc_link *link, uint8_t dp_test_mode);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
95
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/inc/resource.h
603
bool get_temp_dp_link_res(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/resource.h
620
const struct link_hwss *get_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/resource.h
662
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
1002
link->preferred_training_settings = *lt_overrides;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
1004
memset(&link->preferred_training_settings, 0, sizeof(link->preferred_training_settings));
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
1007
link->preferred_link_setting = *link_setting;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
1009
link->preferred_link_setting.lane_count = LANE_COUNT_UNKNOWN;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
1010
link->preferred_link_setting.link_rate = LINK_RATE_UNKNOWN;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
1013
if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
1014
link->type == dc_connection_mst_branch)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
1015
dm_helpers_dp_mst_update_branch_bandwidth(dc->ctx, link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
1019
dp_set_preferred_link_settings(dc, &link->preferred_link_setting, link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
103
if (needs_divider_update && link->dc->res_pool->funcs->update_dc_state_for_encoder_switch) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
104
link->dc->res_pool->funcs->update_dc_state_for_encoder_switch(link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
111
link->dc->link_srv->dp_get_encoding_format(&pipes[i]->link_config.dp_link_settings),
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
116
link, &pipes[i]->link_res);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
128
if (link->dc->config.disable_hbr_audio_dp2 &&
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
130
link->dc->link_srv->dp_is_128b_132b_signal(pipes[i]))
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
138
if (was_hpo_acquired != is_hpo_acquired && link->dc->hwss.setup_hpo_hw_control)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
139
link->dc->hwss.setup_hpo_hw_control(link->dc->hwseq, is_hpo_acquired);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
147
if (state->streams[i] && state->streams[i]->link && state->streams[i]->link == link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
152
if (streams_on_link[i] && streams_on_link[i]->link && streams_on_link[i]->link == link) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
160
static void dp_test_send_link_training(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
166
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
171
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
183
link->verified_link_cap.lane_count = link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
184
link->verified_link_cap.link_rate = link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
186
dp_retrain_link_dp_test(link, &link_settings, false);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
189
static void dp_test_get_audio_test_data(struct dc_link *link, bool disable_video)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
196
struct pipe_ctx *pipes = link->dc->current_state->res_ctx.pipe_ctx;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
205
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
211
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
227
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
262
link->audio_test_data.flags.test_requested = 1;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
263
link->audio_test_data.flags.disable_video = disable_video;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
264
link->audio_test_data.sampling_rate = sampling_rate_in_hz;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
265
link->audio_test_data.channel_count = channel_count;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
266
link->audio_test_data.pattern_type = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
270
link->audio_test_data.pattern_period[modes] = dpcd_pattern_period[modes].bits.pattern_period;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
279
static void dp_test_send_phy_test_pattern(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
301
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
306
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
312
link_training_settings.link_settings = link->cur_link_settings;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
314
link_training_settings.lttpr_mode = dp_decide_lttpr_mode(link, &link->cur_link_settings);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
316
if (((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) == AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN) &&
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
319
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
329
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
350
test_pattern = (link->dc->caps.force_dp_tps4_for_cp2520 == 1) ?
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
356
test_pattern = (link->dc->caps.force_dp_tps4_for_cp2520 == 1) ?
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
40
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
412
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
421
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
431
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
438
(unsigned int)(link->cur_link_settings.lane_count);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
442
if (link_dp_get_encoding_format(&link->cur_link_settings) ==
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
453
} else if (link_dp_get_encoding_format(&link->cur_link_settings) ==
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
473
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
481
static void set_crtc_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
496
resource_build_test_pattern_params(&link->dc->current_state->res_ctx,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
513
} else if (link->dc->hwss.set_disp_pattern_generator) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
529
link->dc->hwss.set_disp_pattern_generator(link->dc,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
553
} else if (link->dc->hwss.set_disp_pattern_generator) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
561
link->dc->hwss.set_disp_pattern_generator(link->dc,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
581
void dp_handle_automated_test(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
590
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
598
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
602
dp_test_send_link_training(link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
615
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
620
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
624
test_response.bits.ACK = dm_helpers_dp_handle_test_pattern_request(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
629
dp_test_get_audio_test_data(link, test_request.bits.TEST_AUDIO_DISABLED_VIDEO);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
634
dp_test_send_phy_test_pattern(link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
641
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
648
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
65
static void dp_retrain_link_dp_test(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
656
struct pipe_ctx *pipes = link->dc->current_state->res_ctx.pipe_ctx;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
671
pipes[i].stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
680
link->pending_test_pattern = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
683
if (link->test_pattern_enabled && test_pattern ==
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
686
set_crtc_test_pattern(link, pipe_ctx, test_pattern, test_pattern_color_space);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
687
dp_set_hw_test_pattern(link, &pipe_ctx->link_res, test_pattern,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
692
link->dc->hwss.unblank_stream(
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
694
&link->verified_link_cap);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
70
struct dc_state *state = link->dc->current_state;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
700
link->test_pattern_enabled = false;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
701
link->current_test_pattern = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
702
link->pending_test_pattern = DP_TEST_PATTERN_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
711
if (((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) == AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN) &&
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
714
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
718
dp_set_hw_lane_settings(link, &pipe_ctx->link_res, p_link_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
720
dpcd_set_lane_settings(link, p_link_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
730
link->dc->hwss.blank_stream(pipe_ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
733
dp_set_hw_test_pattern(link, &pipe_ctx->link_res, test_pattern,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
739
link->test_pattern_enabled = true;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
74
bool was_hpo_acquired = resource_is_hpo_acquired(link->dc->current_state);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
740
link->current_test_pattern = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
741
link->pending_test_pattern = DP_TEST_PATTERN_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
743
dpcd_set_link_settings(link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
81
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
816
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_12) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
818
core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
83
needs_divider_update = (link->dc->link_srv->dp_get_encoding_format(link_setting) !=
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
832
core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
836
} else if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_10 ||
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
837
link->dpcd_caps.dpcd_rev.raw == 0) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
84
link->dc->link_srv->dp_get_encoding_format((const struct dc_link_settings *) &link->cur_link_settings))
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
845
core_link_read_dpcd(link, DP_TRAINING_PATTERN_SET,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
849
core_link_write_dpcd(link, DP_TRAINING_PATTERN_SET,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
85
|| link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
881
if (should_use_dmub_inbox1_lock(pipe_ctx->stream->link->dc, pipe_ctx->stream->link)) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
888
dmub_hw_lock_mgr_cmd(link->ctx->dmub_srv,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
89
link_get_master_pipes_with_dpms_on(link, state, &count, pipes);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
899
link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
915
link->dc->hwss.update_info_frame(pipe_ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
919
set_crtc_test_pattern(link, pipe_ctx, test_pattern, test_pattern_color_space);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
929
if (should_use_dmub_inbox1_lock(pipe_ctx->stream->link->dc, pipe_ctx->stream->link)) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
936
dmub_hw_lock_mgr_cmd(link->ctx->dmub_srv,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
946
link->test_pattern_enabled = true;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
947
link->current_test_pattern = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
948
link->pending_test_pattern = DP_TEST_PATTERN_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
95
link->dc,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
956
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
963
link->preferred_link_setting = store_settings;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
969
if (!dc_is_dp_signal(link->connector_signal) ||
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
970
link->dongle_max_pix_clk > 0)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
975
if (pipe->stream && pipe->stream->link) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
976
if (pipe->stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
992
dp_retrain_link_dp_test(link, &store_settings, false);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
998
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.h
28
void dp_handle_automated_test(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.h
30
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.h
38
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.h
42
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
101
link->dp_trace.detect_lt_trace.result = result;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
103
link->dp_trace.commit_lt_trace.result = result;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
106
void dp_trace_set_lt_start_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
110
link->dp_trace.detect_lt_trace.timestamps.start = dm_get_timestamp(link->dc->ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
112
link->dp_trace.commit_lt_trace.timestamps.start = dm_get_timestamp(link->dc->ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
115
void dp_trace_set_lt_end_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
119
link->dp_trace.detect_lt_trace.timestamps.end = dm_get_timestamp(link->dc->ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
121
link->dp_trace.commit_lt_trace.timestamps.end = dm_get_timestamp(link->dc->ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
124
unsigned long long dp_trace_get_lt_end_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
128
return link->dp_trace.detect_lt_trace.timestamps.end;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
130
return link->dp_trace.commit_lt_trace.timestamps.end;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
133
const struct dp_trace_lt_counts *dp_trace_get_lt_counts(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
137
return &link->dp_trace.detect_lt_trace.counts;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
139
return &link->dp_trace.commit_lt_trace.counts;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
142
unsigned int dp_trace_get_link_loss_count(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
144
return link->dp_trace.link_loss_count;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
147
void dp_trace_set_edp_power_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
152
link->dp_trace.edp_trace_power_timestamps.poweroff = dm_get_timestamp(link->dc->ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
154
link->dp_trace.edp_trace_power_timestamps.poweron = dm_get_timestamp(link->dc->ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
157
uint64_t dp_trace_get_edp_poweron_timestamp(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
159
return link->dp_trace.edp_trace_power_timestamps.poweron;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
162
uint64_t dp_trace_get_edp_poweroff_timestamp(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
164
return link->dp_trace.edp_trace_power_timestamps.poweroff;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
167
void dp_trace_source_sequence(struct dc_link *link, uint8_t dp_test_mode)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
169
if (link != NULL && link->dc->debug.enable_driver_sequence_debug)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
170
core_link_write_dpcd(link, DP_SOURCE_SEQUENCE,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
28
void dp_trace_init(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
30
memset(&link->dp_trace, 0, sizeof(link->dp_trace));
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
31
link->dp_trace.is_initialized = true;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
34
void dp_trace_reset(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
36
memset(&link->dp_trace, 0, sizeof(link->dp_trace));
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
39
bool dp_trace_is_initialized(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
41
return link->dp_trace.is_initialized;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
44
void dp_trace_detect_lt_init(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
46
memset(&link->dp_trace.detect_lt_trace, 0, sizeof(link->dp_trace.detect_lt_trace));
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
49
void dp_trace_commit_lt_init(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
51
memset(&link->dp_trace.commit_lt_trace, 0, sizeof(link->dp_trace.commit_lt_trace));
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
54
void dp_trace_link_loss_increment(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
56
link->dp_trace.link_loss_count++;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
59
void dp_trace_lt_fail_count_update(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
64
link->dp_trace.detect_lt_trace.counts.fail = fail_count;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
66
link->dp_trace.commit_lt_trace.counts.fail = fail_count;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
69
void dp_trace_lt_total_count_increment(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
73
link->dp_trace.detect_lt_trace.counts.total++;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
75
link->dp_trace.commit_lt_trace.counts.total++;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
78
void dp_trace_set_is_logged_flag(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
83
link->dp_trace.detect_lt_trace.is_logged = is_logged;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
85
link->dp_trace.commit_lt_trace.is_logged = is_logged;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
88
bool dp_trace_is_logged(struct dc_link *link, bool in_detection)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
91
return link->dp_trace.detect_lt_trace.is_logged;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
93
return link->dp_trace.commit_lt_trace.is_logged;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.c
96
void dp_trace_lt_result_update(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
29
void dp_trace_init(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
30
void dp_trace_reset(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
31
bool dp_trace_is_initialized(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
32
void dp_trace_detect_lt_init(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
33
void dp_trace_commit_lt_init(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
34
void dp_trace_link_loss_increment(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
35
void dp_trace_lt_fail_count_update(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
38
void dp_trace_lt_total_count_increment(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
40
void dp_trace_set_is_logged_flag(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
43
bool dp_trace_is_logged(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
45
void dp_trace_lt_result_update(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
48
void dp_trace_set_lt_start_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
50
void dp_trace_set_lt_end_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
52
unsigned long long dp_trace_get_lt_end_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
54
const struct dp_trace_lt_counts *dp_trace_get_lt_counts(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
56
unsigned int dp_trace_get_link_loss_count(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
57
void dp_trace_set_edp_power_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
59
uint64_t dp_trace_get_edp_poweron_timestamp(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
60
uint64_t dp_trace_get_edp_poweroff_timestamp(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_trace.h
61
void dp_trace_source_sequence(struct dc_link *link, uint8_t dp_test_mode);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
111
pipe_ctx->stream->link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
120
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
135
link->dpcd_caps.dprx_feature.bits.SST_SPLIT_SDP_CAP);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
153
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
157
void enable_dio_dp_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
165
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
166
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
182
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
186
void disable_dio_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
192
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
193
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
200
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
204
void set_dio_dp_link_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
210
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
211
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
218
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_SET_SOURCE_PATTERN);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
221
void set_dio_dp_lane_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
228
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
229
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
238
void update_dio_stream_allocation_table(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
244
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
245
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
281
pipe_ctx->stream->link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
301
pipe_ctx->stream->link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
332
bool can_use_dio_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
335
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
336
return link->link_enc != NULL;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
55
link_enc = link_enc_cfg_get_link_enc(pipe_ctx->stream->link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
65
pipe_ctx->stream->ctx->dc->link_srv->dp_trace_source_sequence(pipe_ctx->stream->link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
86
link_enc = link_enc_cfg_get_link_enc(pipe_ctx->stream->link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.h
33
bool can_use_dio_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.h
40
void enable_dio_dp_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.h
45
void disable_dio_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.h
48
void set_dio_dp_link_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.h
51
void set_dio_dp_lane_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.h
59
void update_dio_stream_allocation_table(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
104
if (link->current_test_pattern == DP_TEST_PATTERN_80BIT_CUSTOM ||
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
105
link->current_test_pattern == DP_TEST_PATTERN_D102)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
107
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
118
link_hwss->ext.set_dp_link_test_pattern(link, link_res, &hw_tp_params);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
120
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
126
static void set_dio_fixed_vs_pe_retimer_dp_link_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
132
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
133
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
136
link, link_res, tp_params, get_dio_link_hwss())) {
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
139
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_SET_SOURCE_PATTERN);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
142
void enable_dio_fixed_vs_pe_retimer_program_4lane_output(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
150
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
152
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
154
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
156
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
158
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
162
static void enable_dio_fixed_vs_pe_retimer_dp_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
169
enable_dio_fixed_vs_pe_retimer_program_4lane_output(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
171
enable_dio_dp_link_output(link, link_res, signal, clock_source, link_settings);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
191
bool requires_fixed_vs_pe_retimer_dio_link_hwss(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
193
return ((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) == AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
29
uint8_t dp_dio_fixed_vs_pe_retimer_lane_cfg_to_hw_cfg(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
32
if (link->cur_link_settings.lane_count == LANE_COUNT_FOUR)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
38
void dp_dio_fixed_vs_pe_retimer_exit_manual_automation(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
40
const uint8_t dp_type = dp_dio_fixed_vs_pe_retimer_lane_cfg_to_hw_cfg(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
52
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
54
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
56
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
58
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
60
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
62
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
64
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
66
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
68
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
70
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
74
static bool set_dio_fixed_vs_pe_retimer_dp_link_test_pattern_override(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
83
if (!link->dpcd_caps.lttpr_caps.main_link_channel_coding.bits.DP_128b_132b_SUPPORTED)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
89
if (IS_DP_PHY_SQUARE_PATTERN(link->current_test_pattern))
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c
91
dp_dio_fixed_vs_pe_retimer_exit_manual_automation(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.h
30
uint32_t dp_dio_fixed_vs_pe_retimer_get_lttpr_write_address(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.h
31
uint8_t dp_dio_fixed_vs_pe_retimer_lane_cfg_to_hw_cfg(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.h
32
void dp_dio_fixed_vs_pe_retimer_exit_manual_automation(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.h
33
void enable_dio_fixed_vs_pe_retimer_program_4lane_output(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.h
34
bool requires_fixed_vs_pe_retimer_dio_link_hwss(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
100
uint8_t fec_rdy = link->dc->link_srv->dp_should_enable_fec(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
107
link->ddc_hw_inst,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
113
enable_dio_dp_link_output(link, link_res, signal, clock_source, link_settings);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
117
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
121
static void disable_dpia_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
126
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
128
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
129
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
132
if (link->dc->config.enable_dpia_pre_training || link->dc->config.unify_link_enc_assignment) {
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
136
link_enc->funcs->disable_dpia_output(link_enc, link->ddc_hw_inst, digmode);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
143
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
164
bool can_use_dpia_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
167
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
168
return link->is_dig_mapping_flexible && link->dc->res_pool->funcs->link_encs_assign;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
170
return link->is_dig_mapping_flexible && link_res->dio_link_enc != NULL;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
31
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
34
static void update_dpia_stream_allocation_table(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
42
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
44
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
45
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
50
status = dc_process_dmub_set_mst_slots(link->dc, link->link_index,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
60
static void set_dio_dpia_link_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
69
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
70
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
76
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_SET_SOURCE_PATTERN);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
79
static void set_dio_dpia_lane_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
86
static void enable_dpia_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
93
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
95
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
96
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
99
if (link->dc->config.enable_dpia_pre_training || link->dc->config.unify_link_enc_assignment) {
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.h
34
bool can_use_dpia_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
103
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
107
void enable_hpo_dp_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
118
if (link->dc->res_pool->dccg->funcs->set_symclk32_le_root_clock_gating)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
119
link->dc->res_pool->dccg->funcs->set_symclk32_le_root_clock_gating(
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
120
link->dc->res_pool->dccg,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
126
link->link_enc->transmitter,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
127
link->link_enc->hpd_source);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
130
void disable_hpo_dp_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
142
if (link->dc->res_pool->dccg->funcs->set_symclk32_le_root_clock_gating)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
143
link->dc->res_pool->dccg->funcs->set_symclk32_le_root_clock_gating(
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
144
link->dc->res_pool->dccg,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
149
static void set_hpo_dp_link_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
155
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_SET_SOURCE_PATTERN);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
158
static void set_hpo_dp_lane_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
169
void update_hpo_dp_stream_allocation_table(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
218
bool can_use_hpo_dp_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
31
#define DC_LOGGER link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
56
pipe_ctx->stream->link, link_settings);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
94
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.h
42
void enable_hpo_dp_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.h
47
void disable_hpo_dp_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.h
50
void update_hpo_dp_stream_allocation_table(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.h
58
bool can_use_hpo_dp_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
100
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
102
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
104
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
107
if (link->cur_link_settings.lane_count == LANE_COUNT_FOUR)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
108
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
111
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
114
if (link->cur_link_settings.lane_count == LANE_COUNT_FOUR)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
115
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
118
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
122
static bool dp_hpo_fixed_vs_pe_retimer_set_override_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
129
if (!link->dpcd_caps.lttpr_caps.main_link_channel_coding.bits.DP_128b_132b_SUPPORTED)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
137
if (link->current_test_pattern == DP_TEST_PATTERN_80BIT_CUSTOM ||
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
138
link->current_test_pattern == DP_TEST_PATTERN_D102)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
139
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
142
else if (IS_DP_PHY_SQUARE_PATTERN(link->current_test_pattern))
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
143
dp_dio_fixed_vs_pe_retimer_exit_manual_automation(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
152
link_hwss->ext.set_dp_link_test_pattern(link, link_res, &hw_tp_params);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
154
dp_hpo_fixed_vs_pe_retimer_program_override_test_pattern(link, tp_params);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
159
static void set_hpo_fixed_vs_pe_retimer_dp_link_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
164
link, link_res, tp_params, get_hpo_dp_link_hwss())) {
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
169
link->dc->link_srv->dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_SET_SOURCE_PATTERN);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
176
static void set_hpo_fixed_vs_pe_retimer_dp_lane_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
182
if (IS_DP_PHY_PATTERN(link->pending_test_pattern)) {
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
184
if (IS_DP_PHY_SQUARE_PATTERN(link->pending_test_pattern)) {
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
185
dp_hpo_fixed_vs_pe_retimer_set_tx_ffe(link, &lane_settings[0]);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
195
static void enable_hpo_fixed_vs_pe_retimer_dp_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
202
enable_dio_fixed_vs_pe_retimer_program_4lane_output(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
204
enable_hpo_dp_link_output(link, link_res, signal, clock_source, link_settings);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
225
bool requires_fixed_vs_pe_retimer_hpo_link_hwss(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
227
return requires_fixed_vs_pe_retimer_dio_link_hwss(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
29
static void dp_hpo_fixed_vs_pe_retimer_set_tx_ffe(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
54
const uint8_t dp_type = dp_dio_fixed_vs_pe_retimer_lane_cfg_to_hw_cfg(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
62
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
64
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
66
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
68
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
70
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
74
static void dp_hpo_fixed_vs_pe_retimer_program_override_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
92
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
94
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
96
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c
98
link->dc->link_srv->configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.h
30
bool requires_fixed_vs_pe_retimer_hpo_link_hwss(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_virtual.c
40
static void virtual_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1004
if (!link_detect_connection_type(link, &new_connection_type)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1009
prev_sink = link->local_sink;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1012
memcpy(&prev_dpcd_caps, &link->dpcd_caps, sizeof(struct dpcd_caps));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1015
link_disconnect_sink(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1017
link->type = new_connection_type;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1018
link->link_state_valid = false;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1021
switch (link->connector_signal) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1056
detect_edp_sink_caps(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1057
read_current_link_settings_on_detect(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1063
link->dpcd_caps.sink_dev_id == DP_BRANCH_DEVICE_ID_0022B9 &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1064
memcmp(&link->dpcd_caps.branch_dev_name, DP_SINK_BRANCH_DEV_NAME_7580,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1065
sizeof(link->dpcd_caps.branch_dev_name)) == 0) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1068
if (!link->dpcd_caps.set_power_state_capable_edp)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1069
link->wa_flags.dp_keep_receiver_powered = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1080
if (link->ep_type == DISPLAY_ENDPOINT_PHY &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1081
link->link_enc->features.flags.bits.DP_IS_USB_C == 1) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1084
if (!wait_for_entering_dp_alt_mode(link))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1088
if (!detect_dp(link, &sink_caps, reason)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1096
if (link->type == dc_connection_sst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1097
link->dpcd_caps.sink_count.bits.SINK_COUNT == 0) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1105
if (link->type == dc_connection_sst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1106
is_dp_active_dongle(link) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1107
(link->dpcd_caps.dongle_type !=
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1112
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1113
link->reported_link_cap.link_rate > LINK_RATE_HIGH3)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1114
link->reported_link_cap.link_rate = LINK_RATE_HIGH3;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1116
if (link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dp_tunneling
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1117
&& link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dpia_bw_alloc
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1118
&& link->dpcd_caps.usb4_dp_tun_info.driver_bw_cap.bits.driver_bw_alloc_support) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1119
if (link_dpia_enable_usb4_dp_bw_alloc_mode(link) == false)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1120
link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dpia_bw_alloc = false;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1127
link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1133
if (link->dpcd_caps.sink_count.bits.SINK_COUNT)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1134
link->dpcd_sink_count =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1135
link->dpcd_caps.sink_count.bits.SINK_COUNT;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1137
link->dpcd_sink_count = 1;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1139
set_ddc_transaction_type(link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1142
link->aux_mode =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1143
link_is_in_aux_transaction_mode(link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1145
sink_init_data.link = link;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1156
sink->link->dongle_max_pix_clk = sink_caps.max_hdmi_pixel_clock;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1160
link->local_sink = sink;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1162
edid_status = dm_helpers_read_local_edid(link->ctx,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1163
link, sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1177
if (dc_connector_supports_analog(link->link_id.id)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1181
if (link->type != dc_connection_analog_load) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1184
link_disconnect_sink(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1189
link->link_index);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1191
link->type = dc_connection_analog_load;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1206
if (dc_is_hdmi_signal(link->connector_signal) ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1207
dc_is_dvi_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1214
if (link->type == dc_connection_sst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1215
link->dpcd_caps.dongle_type ==
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1224
link_disconnect_sink(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1241
link->ctx->dc->debug.hdmi20_disable = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1244
link->dpcd_sink_ext_caps.raw = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1246
if (dc_is_hdmi_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1247
read_scdc_caps(link->ddc, link->local_sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1249
if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1256
query_hdcp_capability(sink->sink_signal, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1260
link_disconnect_remap(prev_sink, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1266
query_hdcp_capability(sink->sink_signal, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1270
if ((link->link_id.id == CONNECTOR_ID_DUAL_LINK_DVII ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1271
link->link_id.id == CONNECTOR_ID_SINGLE_LINK_DVII) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1280
dc_is_dvi_signal(link->connector_signal) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1285
if (link->local_sink && dc_is_dp_signal(sink_caps.signal))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1286
dp_trace_init(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1290
CONN_DATA_DETECT(link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1329
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1332
dc_ctx->dc->res_pool->funcs->get_panel_config_defaults(&link->panel_config);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1334
dm_helpers_init_panel_settings(dc_ctx, &link->panel_config, sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1336
dm_helpers_override_panel_settings(dc_ctx, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1339
if (link->reported_link_cap.link_rate == LINK_RATE_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1340
link->panel_config.ilr.optimize_edp_link_rate = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1341
link->reported_link_cap.link_rate = get_max_edp_link_rate(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1346
link->type = dc_connection_none;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1348
memset(&link->hdcp_caps, 0, sizeof(struct hdcp_caps));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1354
link->dongle_max_pix_clk = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1356
dc_link_clear_dprx_states(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1357
dp_trace_reset(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1361
link->link_index, sink,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1383
static bool link_detect_connection_type_analog(struct dc_link *link, enum dc_connection_type *type)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1386
ASSERT(dc_connector_supports_analog(link->link_id.id));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1388
if (link_detect_ddc_probe(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1393
if (link_detect_dac_load_detect(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1409
bool link_detect_connection_type(struct dc_link *link, enum dc_connection_type *type)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1411
if (link->connector_signal == SIGNAL_TYPE_LVDS) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1424
if (dc_connector_supports_analog(link->link_id.id))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1425
return link_detect_connection_type_analog(link, type);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1427
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1429
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1430
link->dc->hwss.edp_power_control(link, true);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1431
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1435
if (link->ep_type != DISPLAY_ENDPOINT_PHY) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1436
if (link->is_hpd_pending || !dpia_query_hpd_status(link))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1445
if (link_get_hpd_state(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1450
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1452
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1453
link->dc->hwss.edp_power_control(link, false);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1460
bool link_detect(struct dc_link *link, enum dc_detect_reason reason)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1464
enum dc_connection_type pre_link_type = link->type;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1466
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1468
is_local_sink_detect_success = detect_link_and_local_sink(link, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1470
if (is_local_sink_detect_success && link->local_sink)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1471
verify_link_capability(link, link->local_sink, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1474
link->link_index, is_local_sink_detect_success, pre_link_type, link->type);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1476
if (is_local_sink_detect_success && link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1477
dc_is_dp_signal(link->local_sink->sink_signal) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1478
link->dpcd_caps.is_mst_capable)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1479
is_delegated_to_mst_top_mgr = discover_dp_mst_topology(link, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1482
link->type != dc_connection_mst_branch)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1483
is_delegated_to_mst_top_mgr = link_reset_cur_dp_mst_topology(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1488
void link_clear_dprx_states(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1490
memset(&link->dprx_states, 0, sizeof(link->dprx_states));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1493
bool link_is_hdcp14(struct dc_link *link, enum signal_type signal)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1500
ret = link->hdcp_caps.bcaps.bits.HDCP_CAPABLE;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1517
bool link_is_hdcp22(struct dc_link *link, enum signal_type signal)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1524
ret = (link->hdcp_caps.bcaps.bits.HDCP_CAPABLE &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1525
link->hdcp_caps.rx_caps.fields.byte0.hdcp_capable &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1526
(link->hdcp_caps.rx_caps.fields.version == 0x2)) ? 1 : 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1531
ret = (link->hdcp_caps.rx_caps.fields.version == 0x4) ? 1:0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1540
const struct dc_link_status *link_get_status(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1542
return &link->link_status;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1562
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1580
if (!init_data->link) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1594
link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1599
link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1619
void link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1623
if (!link->sink_count) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1628
for (i = 0; i < link->sink_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1629
if (link->remote_sinks[i] == sink) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1631
link->remote_sinks[i] = NULL;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1634
while (i < link->sink_count - 1) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1635
link->remote_sinks[i] = link->remote_sinks[i+1];
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1638
link->remote_sinks[i] = NULL;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1639
link->sink_count--;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
170
static enum signal_type link_detect_sink_signal_type(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
177
if (link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
180
enc_id = link->link_enc->id;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
181
result = get_basic_signal_type(enc_id, link->link_id);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
184
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
200
switch (link->link_id.id) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
206
aud_support = &link->dc->res_pool->audio_support;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
223
if (!dm_helpers_is_dp_sink_present(link))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
272
if (ddc_service->link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
273
!ddc_service->link->local_sink->edid_caps.scdc_present)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
314
ddc->link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
334
struct dc_link *link = ddc->link;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
359
CONN_DATA_DETECT(ddc->link, type2_dongle_buf, sizeof(type2_dongle_buf),
drivers/gpu/drm/amd/display/dc/link/link_detection.c
408
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
416
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
423
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
440
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
447
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
468
static void link_disconnect_sink(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
470
if (link->local_sink) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
471
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
472
link->local_sink = NULL;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
475
link->dpcd_sink_count = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
479
static void link_disconnect_remap(struct dc_sink *prev_sink, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
481
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
482
link->local_sink = prev_sink;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
485
static void query_hdcp_capability(enum signal_type signal, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
492
memset(link->hdcp_caps.rx_caps.raw, 0,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
493
sizeof(link->hdcp_caps.rx_caps.raw));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
495
if ((link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
496
link->ddc->transaction_type ==
drivers/gpu/drm/amd/display/dc/link/link_detection.c
498
link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
499
msg22.data = link->hdcp_caps.rx_caps.raw;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
500
msg22.length = sizeof(link->hdcp_caps.rx_caps.raw);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
503
msg22.data = &link->hdcp_caps.rx_caps.fields.version;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
504
msg22.length = sizeof(link->hdcp_caps.rx_caps.fields.version);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
508
msg22.link = HDCP_LINK_PRIMARY;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
510
dc_process_hdcp_msg(signal, link, &msg22);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
513
msg14.data = &link->hdcp_caps.bcaps.raw;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
514
msg14.length = sizeof(link->hdcp_caps.bcaps.raw);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
517
msg14.link = HDCP_LINK_PRIMARY;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
520
dc_process_hdcp_msg(signal, link, &msg14);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
524
static void read_current_link_settings_on_detect(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
536
status = core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
546
link->cur_link_settings.lane_count =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
55
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/link_detection.c
555
core_link_read_dpcd(link, DP_LINK_BW_SET,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
559
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
563
core_link_read_dpcd(link, DP_LINK_RATE_SET,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
567
if (link_rate_set < link->dpcd_caps.edp_supported_link_rates_count) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
568
link->cur_link_settings.link_rate =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
569
link->dpcd_caps.edp_supported_link_rates[link_rate_set];
drivers/gpu/drm/amd/display/dc/link/link_detection.c
570
link->cur_link_settings.link_rate_set = link_rate_set;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
571
link->cur_link_settings.use_link_rate_set = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
578
link->cur_link_settings.link_rate = link_bw_set;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
579
link->cur_link_settings.use_link_rate_set = false;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
582
core_link_read_dpcd(link, DP_MAX_DOWNSPREAD,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
584
link->cur_link_settings.link_spread =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
589
static bool detect_dp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
593
struct audio_support *audio_support = &link->dc->res_pool->audio_support;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
595
sink_caps->signal = link_detect_sink_signal_type(link, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
601
if (!detect_dp_sink_caps(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
605
if (is_dp_branch_device(link))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
607
link->type = dc_connection_sst_branch;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
609
if (link->dc->debug.disable_dp_plus_plus_wa &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
610
link->link_enc->features.flags.bits.IS_UHBR20_CAPABLE)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
614
sink_caps->signal = dp_passive_dongle_detection(link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
617
link->dpcd_caps.dongle_type = sink_caps->dongle_type;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
618
link->dpcd_caps.is_dongle_type_one = sink_caps->is_dongle_type_one;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
619
link->dpcd_caps.dpcd_rev.raw = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
620
link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.raw = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
641
static bool wait_for_entering_dp_alt_mode(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
656
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
663
if (!link->link_enc->funcs->is_in_alt_mode)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
666
is_in_alt_mode = link->link_enc->funcs->is_in_alt_mode(link->link_enc);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
667
DC_LOG_DC("DP Alt mode state on HPD: %d Link=%d\n", is_in_alt_mode, link->link_index);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
672
enter_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
677
if (link->link_enc->funcs->is_in_alt_mode(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
678
finish_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
680
dm_get_elapse_time_in_ns(link->ctx,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
688
finish_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
689
time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx, finish_timestamp,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
696
static void apply_dpia_mst_dsc_always_on_wa(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
701
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
702
link->type == dc_connection_mst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
703
link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_90CC24 &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
704
link->dpcd_caps.branch_hw_revision == DP_BRANCH_HW_REV_20 &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
705
link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
706
!link->dc->debug.dpia_debug.bits.disable_mst_dsc_work_around)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
707
link->wa_flags.dpia_mst_dsc_always_on = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
709
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
710
link->type == dc_connection_mst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
711
link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_90CC24 &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
712
link->dpcd_caps.branch_vendor_specific_data[2] == MST_HUB_ID_0x5A &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
713
link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
714
!link->dc->debug.dpia_debug.bits.disable_mst_dsc_work_around) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
715
link->wa_flags.dpia_mst_dsc_always_on = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
719
static void revert_dpia_mst_dsc_always_on_wa(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
722
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
723
link->wa_flags.dpia_mst_dsc_always_on = false;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
726
static bool discover_dp_mst_topology(struct dc_link *link, enum dc_detect_reason reason)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
728
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
731
link->link_index);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
733
link->type = dc_connection_mst_branch;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
734
apply_dpia_mst_dsc_always_on_wa(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
736
dm_helpers_dp_update_branch_info(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
737
if (dm_helpers_dp_mst_start_top_mgr(link->ctx,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
738
link, (reason == DETECT_REASON_BOOT || reason == DETECT_REASON_RESUMEFROMS3S4))) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
739
link_disconnect_sink(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
741
link->type = dc_connection_sst_branch;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
744
return link->type == dc_connection_mst_branch;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
747
bool link_reset_cur_dp_mst_topology(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
749
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
752
link->link_index);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
754
revert_dpia_mst_dsc_always_on_wa(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
755
return dm_helpers_dp_mst_stop_top_mgr(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
785
static void verify_link_capability_destructive(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
790
should_prepare_phy_clocks_for_link_verification(link->dc, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
793
prepare_phy_clocks_for_destructive_link_verification(link->dc);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
795
if (dc_is_dp_signal(link->local_sink->sink_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
797
dp_get_max_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
798
link_set_all_streams_dpms_off_for_link(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
800
link, &known_limit_link_setting,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
807
restore_phy_clocks_for_destructive_link_verification(link->dc);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
810
static void verify_link_capability_non_destructive(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
812
if (dc_is_dp_signal(link->local_sink->sink_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
813
if (dc_is_embedded_signal(link->local_sink->sink_signal) ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
814
link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
818
link->verified_link_cap = link->reported_link_cap;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
820
link->verified_link_cap = dp_get_max_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
824
static bool should_verify_link_capability_destructively(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
831
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
832
is_link_enc_unavailable = link->link_enc &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
833
link->dc->res_pool->funcs->link_encs_assign &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
835
link->ctx->dc,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
836
link->link_enc->preferred_engine,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
837
link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
839
if (dc_is_dp_signal(link->local_sink->sink_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
840
max_link_cap = dp_get_max_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
843
if (link->dc->debug.skip_detection_link_training ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
844
dc_is_embedded_signal(link->local_sink->sink_signal) ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
845
(link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
846
!link->dc->config.enable_dpia_pre_training)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
850
if (link->dpcd_caps.is_mst_capable ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
860
static void verify_link_capability(struct dc_link *link, struct dc_sink *sink,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
863
if (should_verify_link_capability_destructively(link, reason))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
864
verify_link_capability_destructive(link, sink, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
866
verify_link_capability_non_destructive(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
904
static bool link_detect_ddc_probe(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
906
if (!link->ddc)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
910
bool ddc_probed = i2c_read(link->ddc, 0x50, edid_header, sizeof(edid_header));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
933
static bool link_detect_dac_load_detect(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
935
struct dc_bios *bios = link->ctx->dc_bios;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
936
struct link_encoder *link_enc = link->link_enc;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
966
static bool detect_link_and_local_sink(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
973
struct audio_support *aud_support = &link->dc->res_pool->audio_support;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
976
struct dc_context *dc_ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
984
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
986
if (dc_is_virtual_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
989
if (((link->connector_signal == SIGNAL_TYPE_LVDS ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
990
link->connector_signal == SIGNAL_TYPE_EDP) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
991
(!link->dc->config.allow_edp_hotplug_detection)) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
992
link->local_sink) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
994
if (link->connector_signal == SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
995
(link->dpcd_sink_ext_caps.bits.oled == 1)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
996
dpcd_set_source_specific_data(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
998
set_default_brightness_aux(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.h
29
bool link_detect(struct dc_link *link, enum dc_detect_reason reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.h
30
bool link_detect_connection_type(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.h
33
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.h
37
void link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.h
38
bool link_reset_cur_dp_mst_topology(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/link_detection.h
39
const struct dc_link_status *link_get_status(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/link_detection.h
40
bool link_is_hdcp14(struct dc_link *link, enum signal_type signal);
drivers/gpu/drm/amd/display/dc/link/link_detection.h
41
bool link_is_hdcp22(struct dc_link *link, enum signal_type signal);
drivers/gpu/drm/amd/display/dc/link/link_detection.h
42
void link_clear_dprx_states(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1057
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1063
core_link_read_dpcd(link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1072
core_link_write_dpcd(link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1081
static void log_vcp_x_y(const struct dc_link *link, struct fixed31_32 avg_time_slots_per_mtp)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1085
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1105
if (link->type == dc_connection_mst_branch)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1124
uint32_t link_rate_in_mbytes_per_sec = dp_link_bandwidth_kbps(stream->link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1125
&stream->link->cur_link_settings);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1178
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1191
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1203
static bool poll_for_allocation_change_trigger(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
121
void link_blank_dp_stream(struct dc_link *link, bool hw_init)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1211
enum dc_connection_type display_connected = (link->type != dc_connection_none);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1215
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1217
if (!display_connected || link->aux_access_disabled)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1220
get_lane_status(link, link->cur_link_settings.lane_count, dpcd_lane_status, &lane_status_updated);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1222
if (!dp_is_cr_done(link->cur_link_settings.lane_count, dpcd_lane_status) ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1223
!dp_is_ch_eq_done(link->cur_link_settings.lane_count, dpcd_lane_status) ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1224
!dp_is_symbol_locked(link->cur_link_settings.lane_count, dpcd_lane_status) ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1232
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
124
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
125
enum signal_type signal = link->connector_signal;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1255
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1268
link->mst_stream_alloc_table.stream_count < 2);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1273
for (j = 0; j < link->mst_stream_alloc_table.stream_count; j++) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1275
&link->mst_stream_alloc_table.stream_allocations[j];
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1287
if (j == link->mst_stream_alloc_table.stream_count) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
129
if (link->ep_type == DISPLAY_ENDPOINT_PHY &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1298
link->mst_stream_alloc_table.stream_count =
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
130
link->link_enc->funcs->get_dig_frontend &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1301
link->mst_stream_alloc_table.stream_allocations[i] =
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1306
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
131
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1312
&link->mst_stream_alloc_table;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
132
int fe = link->link_enc->funcs->get_dig_frontend(link->link_enc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1334
static void print_mst_streams(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1338
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1342
link->mst_stream_alloc_table.stream_count);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1346
(void *) link->mst_stream_alloc_table.stream_allocations[i].stream_enc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1348
(void *) link->mst_stream_alloc_table.stream_allocations[i].hpo_dp_stream_enc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1350
link->mst_stream_alloc_table.stream_allocations[i].vcp_id);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1352
link->mst_stream_alloc_table.stream_allocations[i].slot_count);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1359
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1362
bool mst_mode = (link->type == dc_connection_mst_branch);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1363
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1365
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
137
dc->res_pool->stream_enc[j]->funcs->dp_blank(link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1392
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1403
remove_stream_from_alloc_table(link, pipe_ctx->stream_res.stream_enc,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1407
print_mst_streams(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1411
link_dp_get_encoding_format(&link->cur_link_settings) == DP_UNKNOWN_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1416
link_hwss->ext.update_stream_allocation_table(link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1417
&link->mst_stream_alloc_table);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1437
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
144
if (((!dc->is_switch_in_progress_dest) && ((!link->wa_flags.dp_keep_receiver_powered) || hw_init)) &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1443
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1444
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
145
(link->type != dc_connection_none))
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1458
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
146
dpcd_write_rx_power_ctrl(link, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1466
print_mst_streams(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1472
link_dp_get_encoding_format(&link->cur_link_settings) == DP_UNKNOWN_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1477
link_hwss->ext.update_stream_allocation_table(link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1479
&link->mst_stream_alloc_table);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
150
void link_set_all_streams_dpms_off_for_link(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1500
log_vcp_x_y(link, avg_time_slots_per_mtp);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1506
&link->cur_link_settings,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1514
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1518
dp_link_bandwidth_kbps(link, &link->cur_link_settings));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1524
dc_link_get_highest_encoding_format(link)));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1534
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
154
struct dc_state *state = link->dc->current_state;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1546
enum dc_connection_type display_connected = (link->type != dc_connection_none);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1547
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1550
avg_time_slots_per_mtp = link_calculate_sst_avg_time_slots_per_mtp(stream, link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1564
if (!display_connected || link->aux_access_disabled)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1570
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1578
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1585
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1591
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1601
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1614
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
164
link_get_master_pipes_with_dpms_on(link, state, &count, pipes);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1644
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1648
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1649
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1655
log_vcp_x_y(link, avg_time_slots_per_mtp);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1669
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1692
link_hwss->ext.update_stream_allocation_table(link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1696
if (!poll_for_allocation_change_trigger(link)) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1702
if (allocate && link_dp_get_encoding_format(&link->cur_link_settings) ==
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1704
avg_time_slots_per_mtp = link_calculate_sst_avg_time_slots_per_mtp(stream, link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1706
log_vcp_x_y(link, avg_time_slots_per_mtp);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1713
&link->cur_link_settings,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1726
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1731
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1732
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1743
&link->cur_link_settings,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1759
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
176
dc_commit_updates_for_stream(link->ctx->dc, NULL, 0,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1768
print_mst_streams(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1774
link_dp_get_encoding_format(&link->cur_link_settings) == DP_UNKNOWN_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1779
link_hwss->ext.update_stream_allocation_table(link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1780
&link->mst_stream_alloc_table);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1793
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1799
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1800
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1810
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1816
print_mst_streams(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1822
link_dp_get_encoding_format(&link->cur_link_settings) == DP_UNKNOWN_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1827
link_hwss->ext.update_stream_allocation_table(link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1828
&link->mst_stream_alloc_table);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
184
dp_disable_link_phy(link, &link_res, link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1851
&link->cur_link_settings,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1857
static void disable_link_dp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1861
struct dc_link_settings link_settings = link->cur_link_settings;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1864
link->mst_stream_alloc_table.stream_count > 0)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1868
dp_disable_link_phy(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
187
void link_resume(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1870
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1871
if (!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1872
link->dc->hwss.edp_power_control(link, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1875
if (signal == SIGNAL_TYPE_DISPLAY_PORT_MST && link->sink_count == 0)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1877
enable_mst_on_sink(link, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1881
dp_set_fec_enable(link, link_res, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1882
dp_set_fec_ready(link, link_res, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1886
static void disable_link(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
189
if (link->connector_signal != SIGNAL_TYPE_VIRTUAL)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1891
disable_link_dp(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1893
link->dc->hwss.disable_link_output(link, link_res, SIGNAL_TYPE_DISPLAY_PORT);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1895
link->dc->hwss.disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
190
program_hpd_filter(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1900
if (link->mst_stream_alloc_table.stream_count <= 0)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1901
link->link_status.link_active = false;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1903
link->link_status.link_active = false;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1910
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1918
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1930
unsigned short masked_chip_caps = pipe_ctx->stream->link->chip_caps &
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1951
stream->link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1955
memset(&stream->link->cur_link_settings, 0,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
196
static bool is_master_pipe_for_link(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1969
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1977
read_scdc_data(link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1986
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1999
if (((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) == AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN) &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
200
pipe->stream->link == link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2014
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2015
!link->dc->config.enable_dpia_pre_training)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2024
link->dc->debug.set_mst_en_for_sst) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2025
enable_mst_on_sink(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2026
} else if (link->dpcd_caps.is_mst_capable &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2029
enable_mst_on_sink(link, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2034
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2035
link->dc->hwss.edp_power_control(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2036
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2050
dpcd_set_source_specific_data(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2051
if (link->dpcd_sink_ext_caps.raw != 0) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2052
post_oui_delay += link->panel_config.pps.extra_post_OUI_ms;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2057
dpcd_write_cable_id_to_dprx(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2065
set_default_brightness_aux(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
207
void link_get_master_pipes_with_dpms_on(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2078
if (link->preferred_training_settings.fec_enable)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2079
fec_enable = *link->preferred_training_settings.fec_enable;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2084
dp_set_fec_enable(link, &pipe_ctx->link_res, fec_enable);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2087
if (link->dpcd_sink_ext_caps.bits.oled == 1 ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2088
link->dpcd_sink_ext_caps.bits.sdr_aux_backlight_control == 1 ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2089
link->dpcd_sink_ext_caps.bits.hdr_aux_backlight_control == 1) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2091
set_default_brightness_aux(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2092
if (link->dpcd_sink_ext_caps.bits.oled == 1)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2094
edp_backlight_enable_aux(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2096
edp_backlight_enable_aux(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2113
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2119
memset(&stream->link->cur_link_settings, 0,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2122
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2133
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2139
if (link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2143
core_link_read_dpcd(link, DP_MSTM_CTRL, &mstm_cntl, 1);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2145
dm_helpers_dp_mst_clear_payload_allocation_table(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2150
dm_helpers_dp_mst_poll_pending_down_reply(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2153
enable_mst_on_sink(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2162
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2164
link->dc->hwss.enable_analog_link_output(
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2165
link, pipe_ctx->stream->timing.pix_clk_100hz);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2172
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2174
link->dc->hwss.enable_dp_link_output(link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2188
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
219
if (is_master_pipe_for_link(link, pipe) &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2192
link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2200
if (link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2201
disable_link(link, &pipe_ctx->link_res, pipe_ctx->stream->signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2235
pipe_ctx->stream->link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2243
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2246
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2248
if (!link->dpia_bw_alloc_config.bw_alloc_enabled)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2255
for (i = 0; i < link->sink_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2256
if (link->remote_sinks[i] == NULL)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2259
if (stream->sink->sink_id != link->remote_sinks[i]->sink_id)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2260
req_bw += link->dpia_bw_alloc_config.remote_sink_req_bw[i];
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2265
link->dpia_bw_alloc_config.remote_sink_req_bw[sink_index] = bw;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2268
link->dpia_bw_alloc_config.dp_overhead = link_dpia_get_dp_overhead(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2269
req_bw += link->dpia_bw_alloc_config.dp_overhead;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2271
link_dp_dpia_allocate_usb4_bandwidth_for_stream(link, req_bw);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2276
for (i = 0; i < link->sink_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2277
if (link->remote_sinks[i] == NULL)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2280
(const char *)(&link->remote_sinks[i]->edid_caps.display_name[0]),
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2281
link->dpia_bw_alloc_config.remote_sink_req_bw[i]);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2293
dc_link_get_highest_encoding_format(stream->sink->link));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2313
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2315
enum dp_panel_mode panel_mode_dp = dp_get_panel_mode(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2319
ASSERT(is_master_pipe_for_link(link, pipe_ctx));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2331
pipe_ctx->stream->signal, link->link_index, link->sink_count);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2358
unsigned short masked_chip_caps = link->chip_caps &
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2362
link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2389
disable_link(pipe_ctx->stream->link, &pipe_ctx->link_res, pipe_ctx->stream->signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2393
disable_link(pipe_ctx->stream->link, &pipe_ctx->link_res, pipe_ctx->stream->signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2395
edp_set_panel_assr(link, pipe_ctx, &panel_mode_dp, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2410
if (link->connector_signal == SIGNAL_TYPE_EDP && dc->debug.psp_disabled_wa) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2412
enum dp_panel_mode panel_mode = dp_get_panel_mode(pipe_ctx->stream->link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2414
link->panel_mode = panel_mode;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2424
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2429
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2435
ASSERT(is_master_pipe_for_link(link, pipe_ctx));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2448
link->link_index,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2449
link->sink_count);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2454
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2465
pipe_ctx->stream->link->link_state_valid = true;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2487
dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_UPDATE_INFO_FRAME);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2511
if (link->is_dds) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2514
dpcd_set_source_specific_data(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2528
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && link->is_hpd_pending) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2529
DC_LOG_DEBUG("%s, Link%d HPD is pending, not enable it.\n", __func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2545
if (link->replay_settings.config.replay_supported && !dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2546
dp_setup_replay(link, stream);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2552
pipe_ctx->stream->link->link_index,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2562
if (false == stream->link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2563
disable_link(stream->link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2619
link->is_display_mux_present)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2623
&pipe_ctx->stream->link->cur_link_settings);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
343
pipe_ctx->stream->link, &cmd))
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
396
pipe_ctx->stream->link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
446
pipe_ctx->stream->link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
669
dp_get_panel_mode(pipe_ctx->stream->link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
674
link_enc = link_enc_cfg_get_link_enc(pipe_ctx->stream->link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
692
config.dig_be = pipe_ctx->stream->link->link_enc_hw_inst;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
700
if (pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
701
config.dio_output_idx = pipe_ctx->stream->link->link_id.enum_id - ENUM_ID_1;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
708
pipe_ctx->stream->link->dc, link_enc->transmitter);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
709
if (pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
718
config.usb4_enabled = (pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) ?
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
738
static void enable_mst_on_sink(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
742
core_link_read_dpcd(link, DP_MSTM_CTRL, &mstmCntl, 1);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
748
core_link_write_dpcd(link, DP_MSTM_CTRL, &mstmCntl, 1);
drivers/gpu/drm/amd/display/dc/link/link_dpms.h
34
void link_resume(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.h
37
void link_blank_dp_stream(struct dc_link *link, bool hw_init);
drivers/gpu/drm/amd/display/dc/link/link_dpms.h
38
void link_set_all_streams_dpms_off_for_link(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.h
39
void link_get_master_pipes_with_dpms_on(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.h
49
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
370
static void link_destruct(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
374
if (link->ddc)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
375
link_destroy_ddc_service(&link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
377
if (link->panel_cntl)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
378
link->panel_cntl->funcs->destroy(&link->panel_cntl);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
380
if (link->link_enc && !link->is_dig_mapping_flexible) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
385
if (link->link_id.id != CONNECTOR_ID_VIRTUAL && link->eng_id != ENGINE_ID_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
386
link->dc->res_pool->link_encoders[link->eng_id - ENGINE_ID_DIGA] = NULL;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
387
link->dc->res_pool->dig_link_enc_count--;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
389
link->link_enc->funcs->destroy(&link->link_enc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
392
if (link->local_sink)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
393
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
395
for (i = 0; i < link->sink_count; ++i)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
396
dc_sink_release(link->remote_sinks[i]);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
399
static enum channel_id get_ddc_line(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
406
ddc = get_ddc_pin(link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
443
static enum engine_id find_analog_engine(struct dc_link *link, struct graphics_object_id *enc)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
445
struct dc_bios *bp = link->ctx->dc_bios;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
450
bp_result = bp->funcs->get_src_obj(bp, link->link_id, i, enc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
475
static bool construct_phy(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
492
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
493
link->irq_source_hpd_rx = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
494
link->irq_source_read_request = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
495
link->link_status.dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
497
link->dc = init_params->dc;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
498
link->ctx = dc_ctx;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
499
link->link_index = init_params->link_index;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
501
memset(&link->preferred_training_settings, 0,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
503
memset(&link->preferred_link_setting, 0,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
506
link->link_id =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
509
link->ep_type = DISPLAY_ENDPOINT_PHY;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
511
DC_LOG_DC("BIOS object table - link_id: %d", link->link_id.id);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
516
bp_funcs->get_src_obj(bios, link->link_id, 0, &link_encoder);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
518
link_analog_engine = find_analog_engine(link, &enc_init_data.analog_encoder);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
522
DC_LOG_WARNING("link_id %d has unsupported encoder\n", link->link_id.id);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
527
bios->funcs->get_disp_connector_caps_info(bios, link->link_id, &disp_connect_caps_info);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
528
link->is_internal_display = disp_connect_caps_info.INTERNAL_DISPLAY;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
529
DC_LOG_DC("BIOS object table - is_internal_display: %d", link->is_internal_display);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
532
if (link->link_id.type != OBJECT_TYPE_CONNECTOR) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
535
link->link_id.type, OBJECT_TYPE_CONNECTOR);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
539
if (link->dc->res_pool->funcs->link_init)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
540
link->dc->res_pool->funcs->link_init(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
542
ddc_service_init_data.ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
543
ddc_service_init_data.id = link->link_id;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
544
ddc_service_init_data.link = link;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
545
link->ddc = link_create_ddc_service(&ddc_service_init_data);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
547
if (!link->ddc) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
552
if (!link->ddc->ddc_pin) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
557
link->ddc_hw_inst =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
558
dal_ddc_get_line(get_ddc_pin(link->ddc));
drivers/gpu/drm/amd/display/dc/link/link_factory.c
561
enc_init_data.connector = link->link_id;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
562
enc_init_data.channel = get_ddc_line(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
566
if (link->ctx->dce_version <= DCN_VERSION_4_01)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
567
enc_init_data.hpd_gpio = link_get_hpd_gpio(link->ctx->dc_bios, link->link_id,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
568
link->ctx->gpio_service);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
574
link->irq_source_hpd = dal_irq_get_source(enc_init_data.hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
575
enc_init_data.hpd_source = get_hpd_line(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
576
link->hpd_src = enc_init_data.hpd_source;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
583
if (link->ctx->dc_bios->funcs->get_hpd_info(link->ctx->dc_bios, link->link_id, &hpd_info) == BP_RESULT_OK) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
584
link->hpd_src = hpd_info.hpd_int_gpio_uid - 1;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
585
link->irq_source_hpd = DC_IRQ_SOURCE_HPD1 + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
586
enc_init_data.hpd_source = link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
594
link->link_enc =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
595
link->dc->res_pool->funcs->link_enc_create(dc_ctx, &enc_init_data);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
597
if (!link->link_enc) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
602
DC_LOG_DC("BIOS object table - DP_IS_USB_C: %d", link->link_enc->features.flags.bits.DP_IS_USB_C);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
603
DC_LOG_DC("BIOS object table - IS_DP2_CAPABLE: %d", link->link_enc->features.flags.bits.IS_DP2_CAPABLE);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
605
switch (link->link_id.id) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
607
link->connector_signal = SIGNAL_TYPE_HDMI_TYPE_A;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
609
if (link->link_enc->hpd_gpio)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
610
link->irq_source_read_request =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
611
dal_irq_get_read_request(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
612
else if (link->hpd_src != HPD_SOURCEID_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
613
link->irq_source_read_request = DC_IRQ_SOURCE_DCI2C_RR_DDC1 + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
617
link->connector_signal = SIGNAL_TYPE_DVI_SINGLE_LINK;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
621
link->connector_signal = SIGNAL_TYPE_DVI_DUAL_LINK;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
624
link->connector_signal = SIGNAL_TYPE_RGB;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
629
link->connector_signal = SIGNAL_TYPE_DISPLAY_PORT;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
631
if (link->link_enc->hpd_gpio)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
632
link->irq_source_hpd_rx =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
633
dal_irq_get_rx_source(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
634
else if (link->hpd_src != HPD_SOURCEID_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
635
link->irq_source_hpd_rx = DC_IRQ_SOURCE_HPD1RX + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
641
if (!(!link->dc->config.smart_mux_version || dc_ctx->dc_edp_id_count == 0))
drivers/gpu/drm/amd/display/dc/link/link_factory.c
644
link->connector_signal = SIGNAL_TYPE_EDP;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
645
if (!link->dc->config.allow_edp_hotplug_detection
drivers/gpu/drm/amd/display/dc/link/link_factory.c
646
&& !is_smartmux_suported(link))
drivers/gpu/drm/amd/display/dc/link/link_factory.c
647
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
649
switch (link->dc->config.allow_edp_hotplug_detection) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
651
if (link->link_enc->hpd_gpio) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
652
link->irq_source_hpd_rx =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
653
dal_irq_get_rx_source(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
654
} else if (link->hpd_src != HPD_SOURCEID_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
655
link->irq_source_hpd_rx = DC_IRQ_SOURCE_HPD1RX + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
659
if (link->link_index == 0) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
660
if (link->link_enc->hpd_gpio) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
661
link->irq_source_hpd_rx =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
662
dal_irq_get_rx_source(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
663
} else if (link->hpd_src != HPD_SOURCEID_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
664
link->irq_source_hpd_rx = DC_IRQ_SOURCE_HPD1RX + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
667
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
670
if (link->link_index == 1) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
671
if (link->link_enc->hpd_gpio) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
672
link->irq_source_hpd_rx =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
673
dal_irq_get_rx_source(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
674
} else if (link->hpd_src != HPD_SOURCEID_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
675
link->irq_source_hpd_rx = DC_IRQ_SOURCE_HPD1RX + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
678
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
681
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
686
link->connector_signal = SIGNAL_TYPE_LVDS;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
690
link->link_id.id);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
696
signal_type_to_string(link->connector_signal));
drivers/gpu/drm/amd/display/dc/link/link_factory.c
701
link->eng_id = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
702
link->dc->res_pool->link_encoders[link->eng_id - ENGINE_ID_DIGA] = link->link_enc;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
703
link->dc->res_pool->dig_link_enc_count++;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
705
link->link_enc_hw_inst = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
707
if (link->dc->res_pool->funcs->panel_cntl_create &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
708
(link->link_id.id == CONNECTOR_ID_EDP ||
drivers/gpu/drm/amd/display/dc/link/link_factory.c
709
link->link_id.id == CONNECTOR_ID_LVDS)) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
712
panel_cntl_init_data.eng_id = link->eng_id;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
713
link->panel_cntl =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
714
link->dc->res_pool->funcs->panel_cntl_create(
drivers/gpu/drm/amd/display/dc/link/link_factory.c
718
if (link->panel_cntl == NULL) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
725
link->link_id, i,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
726
&link->device_tag) != BP_RESULT_OK) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
735
link->device_tag.dev_id))
drivers/gpu/drm/amd/display/dc/link/link_factory.c
737
if (link->device_tag.dev_id.device_type == DEVICE_TYPE_CRT &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
738
link->connector_signal != SIGNAL_TYPE_RGB)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
740
if (link->device_tag.dev_id.device_type == DEVICE_TYPE_LCD &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
741
link->connector_signal == SIGNAL_TYPE_RGB)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
744
DC_LOG_DC("BIOS object table - device_tag.acpi_device: %d", link->device_tag.acpi_device);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
745
DC_LOG_DC("BIOS object table - device_tag.dev_id.device_type: %d", link->device_tag.dev_id.device_type);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
746
DC_LOG_DC("BIOS object table - device_tag.dev_id.enum_id: %d", link->device_tag.dev_id.enum_id);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
756
if (path->device_connector_id.enum_id == link->link_id.enum_id &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
757
path->device_connector_id.id == link->link_id.id &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
758
path->device_connector_id.type == link->link_id.type) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
759
if (link->device_tag.acpi_device != 0 &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
760
path->device_acpi_enum == link->device_tag.acpi_device) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
761
link->ddi_channel_mapping = path->channel_mapping;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
762
link->chip_caps = path->caps;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
764
link->ddi_channel_mapping.raw);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
766
link->chip_caps);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
768
link->device_tag.dev_id.raw_device_tag) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
769
link->ddi_channel_mapping = path->channel_mapping;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
770
link->chip_caps = path->caps;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
772
link->ddi_channel_mapping.raw);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
774
link->chip_caps);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
777
if ((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) == AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
778
link->bios_forced_drive_settings.VOLTAGE_SWING =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
780
link->bios_forced_drive_settings.PRE_EMPHASIS =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
797
program_hpd_filter(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
799
link->psr_settings.psr_vtotal_control_support = false;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
800
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
801
link->replay_settings.config.replay_version = DC_REPLAY_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
810
if (link->ddc)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
811
link_destroy_ddc_service(&link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
812
if (link->panel_cntl)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
813
link->panel_cntl->funcs->destroy(&link->panel_cntl);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
814
if (link->link_enc)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
815
link->link_enc->funcs->destroy(&link->link_enc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
821
static bool construct_dpia(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
830
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
831
link->irq_source_hpd_rx = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
832
link->link_status.dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
834
link->dc = init_params->dc;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
835
link->ctx = dc_ctx;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
836
link->link_index = init_params->link_index;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
838
memset(&link->preferred_training_settings, 0,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
840
memset(&link->preferred_link_setting, 0,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
844
link->link_id.type = OBJECT_TYPE_CONNECTOR;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
845
link->link_id.id = CONNECTOR_ID_DISPLAY_PORT;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
846
link->link_id.enum_id = ENUM_ID_1 + init_params->connector_index;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
847
link->is_internal_display = false;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
848
link->connector_signal = SIGNAL_TYPE_DISPLAY_PORT;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
851
link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
853
link->ep_type = DISPLAY_ENDPOINT_USB4_DPIA;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
854
link->is_dig_mapping_flexible = true;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
858
ddc_service_init_data.ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
859
ddc_service_init_data.id = link->link_id;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
860
ddc_service_init_data.link = link;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
864
link->ddc = link_create_ddc_service(&ddc_service_init_data);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
865
if (!link->ddc) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
871
link->ddc_hw_inst = init_params->connector_index;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
874
if (link->dc->res_pool->funcs->get_preferred_eng_id_dpia)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
875
link->dpia_preferred_eng_id = link->dc->res_pool->funcs->get_preferred_eng_id_dpia(link->ddc_hw_inst);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
879
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
880
link->replay_settings.config.replay_version = DC_REPLAY_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
888
static bool link_construct(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
893
return construct_dpia(link, init_params);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
895
return construct_phy(link, init_params);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
900
struct dc_link *link = kzalloc_obj(*link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
902
if (NULL == link)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
905
if (false == link_construct(link, init_params))
drivers/gpu/drm/amd/display/dc/link/link_factory.c
908
return link;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
911
kfree(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
917
void link_destroy(struct dc_link **link)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
919
link_destruct(*link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
920
kfree(*link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
921
*link = NULL;
drivers/gpu/drm/amd/display/dc/link/link_factory.h
29
void link_destroy(struct dc_link **link);
drivers/gpu/drm/amd/display/dc/link/link_hwss_hpo_frl.c
43
&stream->link->frl_link_settings.borrow_params,
drivers/gpu/drm/amd/display/dc/link/link_hwss_hpo_frl.c
53
bool can_use_hpo_frl_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_resource.c
102
link = dc->links[i];
drivers/gpu/drm/amd/display/dc/link/link_resource.c
103
if (link->type != dc_connection_none &&
drivers/gpu/drm/amd/display/dc/link/link_resource.c
104
link_dp_get_encoding_format(&link->verified_link_cap) == DP_128b_132b_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_resource.c
109
link->verified_link_cap.link_rate = LINK_RATE_HIGH3;
drivers/gpu/drm/amd/display/dc/link/link_resource.c
32
void link_get_cur_link_res(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_resource.c
41
pipe = &link->dc->current_state->res_ctx.pipe_ctx[i];
drivers/gpu/drm/amd/display/dc/link/link_resource.c
42
if (pipe->stream && pipe->stream->link && pipe->top_pipe == NULL) {
drivers/gpu/drm/amd/display/dc/link/link_resource.c
43
if (pipe->stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/link_resource.c
54
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/link/link_resource.c
62
link = dc->links[i];
drivers/gpu/drm/amd/display/dc/link/link_resource.c
63
if (link->link_status.link_active &&
drivers/gpu/drm/amd/display/dc/link/link_resource.c
64
link_dp_get_encoding_format(&link->reported_link_cap) == DP_128b_132b_ENCODING &&
drivers/gpu/drm/amd/display/dc/link/link_resource.c
65
link_dp_get_encoding_format(&link->cur_link_settings) != DP_128b_132b_ENCODING)
drivers/gpu/drm/amd/display/dc/link/link_resource.c
77
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/link/link_resource.c
88
link = dc->links[i];
drivers/gpu/drm/amd/display/dc/link/link_resource.c
89
if (link->type != dc_connection_none &&
drivers/gpu/drm/amd/display/dc/link/link_resource.c
90
link_dp_get_encoding_format(&link->verified_link_cap) == DP_128b_132b_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_resource.c
95
link->verified_link_cap.link_rate = LINK_RATE_HIGH3;
drivers/gpu/drm/amd/display/dc/link/link_resource.h
30
void link_get_cur_link_res(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
231
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
245
if (dp_should_enable_fec(link)) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
268
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
271
dc_link_get_highest_encoding_format(link));
drivers/gpu/drm/amd/display/dc/link/link_validation.c
275
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
285
!link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED &&
drivers/gpu/drm/amd/display/dc/link/link_validation.c
286
dal_graphics_object_id_get_connector_id(link->link_id) != CONNECTOR_ID_VIRTUAL)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
295
link_setting = dp_get_verified_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/link_validation.c
303
req_bw = dc_bandwidth_in_kbps_from_timing(timing, dc_link_get_highest_encoding_format(link));
drivers/gpu/drm/amd/display/dc/link/link_validation.c
304
max_bw = dp_link_bandwidth_kbps(link, link_setting);
drivers/gpu/drm/amd/display/dc/link/link_validation.c
306
bool is_max_uncompressed_pixel_rate_exceeded = link->dpcd_caps.max_uncompressed_pixel_rate_cap.bits.valid &&
drivers/gpu/drm/amd/display/dc/link/link_validation.c
307
timing->pix_clk_100hz > link->dpcd_caps.max_uncompressed_pixel_rate_cap.bits.max_uncompressed_pixel_rate_cap * 10000;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
334
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
337
uint32_t max_pix_clk = stream->link->dongle_max_pix_clk * 10;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
338
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
343
if (link->remote_sinks[0] && link->remote_sinks[0]->sink_signal == SIGNAL_TYPE_VIRTUAL)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
358
link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
401
const struct dc_link *link;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
408
link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
410
if (!(link && (stream->signal == SIGNAL_TYPE_DISPLAY_PORT
drivers/gpu/drm/amd/display/dc/link/link_validation.c
414
if ((link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) && (link->hpd_status == false))
drivers/gpu/drm/amd/display/dc/link/link_validation.c
422
timing_bw = dp_get_timing_bandwidth_kbps(&stream->timing, link);
drivers/gpu/drm/amd/display/dc/link/link_validation.c
428
if (dpia_link_sets[j].link == NULL) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
432
dpia_link_sets[j].link = link;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
435
if (is_new_slot || (dpia_link_sets[j].link == link)) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
544
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
562
const bool is_mst = (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT);
drivers/gpu/drm/amd/display/dc/link/link_validation.c
572
if (link_encoding == DP_8b_10b_ENCODING && link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT)
drivers/gpu/drm/amd/display/dc/link/link_validation.h
31
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.h
37
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.h
42
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
119
ddc_service->link = init_data->link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
131
if (ddc_service->link != NULL)
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
215
struct dc_link *link = ddc->link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
217
if (link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_VGA_CONVERTER &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
218
link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_0080E1 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
219
(link->dpcd_caps.branch_fw_revision[0] < 0x01 ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
220
(link->dpcd_caps.branch_fw_revision[0] == 0x01 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
221
link->dpcd_caps.branch_fw_revision[1] < 0x40)) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
222
!memcmp(link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
224
sizeof(link->dpcd_caps.branch_dev_name)))
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
229
if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_0080E1 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
230
!memcmp(link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
232
sizeof(link->dpcd_caps.branch_dev_name)))
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
235
if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_006037 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
236
!memcmp(link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
238
sizeof(link->dpcd_caps.branch_dev_name)))
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
392
ddc->link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
413
uint32_t link_get_fixed_vs_pe_retimer_write_address(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
418
switch (link->dpcd_caps.lttpr_caps.phy_repeater_cnt) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
454
uint32_t link_get_fixed_vs_pe_retimer_read_address(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
456
return link_get_fixed_vs_pe_retimer_write_address(link) + 4;
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
464
.address = link_get_fixed_vs_pe_retimer_write_address(ddc->link),
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
482
.address = link_get_fixed_vs_pe_retimer_read_address(ddc->link),
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
508
if (((ddc->link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) == AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
509
!ddc->link->dc->debug.disable_fixed_vs_aux_timeout_wa &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
515
core_link_write_dpcd(ddc->link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
524
if (ddc->link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
551
if (ddc_service->link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
552
(ddc_service->link->local_sink->edid_caps.panel_patch.skip_scdc_overwrite ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
553
!ddc_service->link->local_sink->edid_caps.scdc_present))
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
585
if (ddc_service->link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
586
ddc_service->link->local_sink->edid_caps.panel_patch.skip_scdc_overwrite)
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.h
85
uint32_t link_get_fixed_vs_pe_retimer_read_address(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.h
86
uint32_t link_get_fixed_vs_pe_retimer_write_address(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1006
dc_link_get_highest_encoding_format(link));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1007
edp_decide_link_settings(link, &tmp_link_setting, orig_req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1010
decide_edp_link_settings_with_dsc(link, link_setting, req_bw, max_link_rate);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1012
edp_decide_link_settings(link, link_setting, req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1015
decide_dp_link_settings(link, link_setting, req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1033
enum dp_link_encoding mst_decide_link_encoding_format(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1037
if (!dc_is_dp_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1040
if (link->preferred_link_setting.lane_count !=
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1042
link->preferred_link_setting.link_rate !=
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1044
link_settings = link->preferred_link_setting;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1046
decide_mst_link_settings(link, &link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1052
static void read_dp_device_vendor_id(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1058
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1063
link->dpcd_caps.branch_dev_id =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1069
link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
107
bool is_dp_active_dongle(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1074
static enum dc_status wake_up_aux_channel(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1081
status = core_link_read_dpcd(link, DP_SET_POWER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
109
return (link->dpcd_caps.dongle_type >= DISPLAY_DONGLE_DP_VGA_CONVERTER) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1098
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
110
(link->dpcd_caps.dongle_type <= DISPLAY_DONGLE_DP_HDMI_CONVERTER);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1105
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1117
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1124
core_link_read_dpcd(link, DP_REGULATED_AUTONOMOUS_MODE_SUPPORTED_AND_HDMI_LINK_TRAINING_STATUS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1127
link->dpcd_caps.dongle_caps.dp_hdmi_regulated_autonomous_mode_support =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
113
bool is_dp_branch_device(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1130
if (link->dpcd_caps.dongle_caps.dp_hdmi_regulated_autonomous_mode_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1133
core_link_read_dpcd(link, DP_PCON_HDMI_TX_LINK_STATUS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1138
if (core_link_read_dpcd(link, DP_PCON_HDMI_POST_FRL_STATUS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1141
if (link->dpcd_caps.dongle_caps.dp_hdmi_regulated_autonomous_mode_support &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
115
return link->dpcd_caps.is_branch_dev;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1150
link->dpcd_caps.dongle_caps.dp_hdmi_frl_max_link_bw_in_kbps = intersect_frl_link_bw_support(
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1151
link->dpcd_caps.dongle_caps.dp_hdmi_frl_max_link_bw_in_kbps,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1154
link->dpcd_caps.dongle_caps.dp_hdmi_frl_max_link_bw_in_kbps);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1159
uint8_t data, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1162
memset(&link->dpcd_caps.dongle_caps, 0, sizeof(link->dpcd_caps.dongle_caps));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1166
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_NONE;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1167
set_dongle_type(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1168
link->dpcd_caps.dongle_type);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1169
link->dpcd_caps.is_branch_dev = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1174
link->dpcd_caps.is_branch_dev = ds_port.fields.PORT_PRESENT;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1178
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_VGA_CONVERTER;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1183
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_DVI_CONVERTER;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1186
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_NONE;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1190
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_11) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1194
if (core_link_read_dpcd(link, DP_DOWNSTREAM_PORT_0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1200
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_NONE;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1203
link->dpcd_caps.dongle_type =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1207
link->dpcd_caps.dongle_type =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1213
link->dpcd_caps.dongle_type =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1216
link->dpcd_caps.dongle_caps.dongle_type = link->dpcd_caps.dongle_type;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1223
link->dpcd_caps.dongle_caps.dp_hdmi_max_pixel_clk_in_khz =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1226
link->dpcd_caps.dongle_caps.is_dp_hdmi_s3d_converter =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1231
link->dpcd_caps.dongle_caps.is_dp_hdmi_ycbcr422_pass_through =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1233
link->dpcd_caps.dongle_caps.is_dp_hdmi_ycbcr420_pass_through =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1235
link->dpcd_caps.dongle_caps.is_dp_hdmi_ycbcr422_converter =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1237
link->dpcd_caps.dongle_caps.is_dp_hdmi_ycbcr420_converter =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1241
link->dpcd_caps.dongle_caps.dp_hdmi_max_bpc =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1245
if (link->dc->caps.dp_hdmi21_pcon_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1247
link->dpcd_caps.dongle_caps.dp_hdmi_frl_max_link_bw_in_kbps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1251
read_and_intersect_post_frl_lt_status(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1253
if (link->dpcd_caps.dongle_caps.dp_hdmi_frl_max_link_bw_in_kbps > 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1254
link->dpcd_caps.dongle_caps.extendedCapValid = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1257
if (link->dpcd_caps.dongle_caps.dp_hdmi_max_pixel_clk_in_khz != 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1258
link->dpcd_caps.dongle_caps.extendedCapValid = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1266
set_dongle_type(link->ddc, link->dpcd_caps.dongle_type);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1272
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1277
link->dpcd_caps.branch_hw_revision =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1281
link->dpcd_caps.branch_fw_revision,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1287
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1289
(uint8_t *)link->dpcd_caps.branch_vendor_specific_data,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1290
sizeof(link->dpcd_caps.branch_vendor_specific_data));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1292
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_14 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1293
link->dpcd_caps.dongle_type != DISPLAY_DONGLE_NONE) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1297
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1301
link->dpcd_caps.dongle_caps.dfp_cap_ext.supported = dfp_cap_ext.fields.supported;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1302
link->dpcd_caps.dongle_caps.dfp_cap_ext.max_pixel_rate_in_mps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1305
link->dpcd_caps.dongle_caps.dfp_cap_ext.max_video_h_active_width =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1308
link->dpcd_caps.dongle_caps.dfp_cap_ext.max_video_v_active_height =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1311
link->dpcd_caps.dongle_caps.dfp_cap_ext.encoding_format_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1313
link->dpcd_caps.dongle_caps.dfp_cap_ext.rgb_color_depth_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1315
link->dpcd_caps.dongle_caps.dfp_cap_ext.ycbcr444_color_depth_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1317
link->dpcd_caps.dongle_caps.dfp_cap_ext.ycbcr422_color_depth_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1319
link->dpcd_caps.dongle_caps.dfp_cap_ext.ycbcr420_color_depth_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1321
DC_LOG_DP2("DFP capability extension is read at link %d", link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1322
DC_LOG_DP2("\tdfp_cap_ext.supported = %s", link->dpcd_caps.dongle_caps.dfp_cap_ext.supported ? "true" : "false");
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1323
DC_LOG_DP2("\tdfp_cap_ext.max_pixel_rate_in_mps = %d", link->dpcd_caps.dongle_caps.dfp_cap_ext.max_pixel_rate_in_mps);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1324
DC_LOG_DP2("\tdfp_cap_ext.max_video_h_active_width = %d", link->dpcd_caps.dongle_caps.dfp_cap_ext.max_video_h_active_width);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1325
DC_LOG_DP2("\tdfp_cap_ext.max_video_v_active_height = %d", link->dpcd_caps.dongle_caps.dfp_cap_ext.max_video_v_active_height);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1329
static void apply_usbc_combo_phy_reset_wa(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1337
enum clock_source_id dp_cs_id = get_clock_source_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1339
dp_enable_link_phy(link, &link_res, link->connector_signal,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1341
dp_disable_link_phy(link, &link_res, link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1344
bool dp_overwrite_extended_receiver_cap(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1357
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1365
link->dpcd_caps.dpcd_rev.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1374
get_active_converter_info(ds_port.byte, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1379
link->dpcd_caps.allow_invalid_MSA_timing_param =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1382
link->dpcd_caps.max_ln_count.raw = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1385
link->dpcd_caps.max_down_spread.raw = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1388
link->reported_link_cap.lane_count =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1389
link->dpcd_caps.max_ln_count.bits.MAX_LANE_COUNT;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1390
link->reported_link_cap.link_rate = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1392
link->reported_link_cap.link_spread =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1393
link->dpcd_caps.max_down_spread.bits.MAX_DOWN_SPREAD ?
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1398
link->dpcd_caps.panel_mode_edp =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1400
link->dpcd_caps.dpcd_display_control_capable =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1406
void dpcd_set_source_specific_data(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1408
if (!link->dc->vendor_signature.is_valid) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1413
if (link->is_dds) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1420
core_link_read_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1424
core_link_write_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1429
(uint8_t)(link->ctx->asic_id.chip_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1431
(uint8_t)(link->ctx->asic_id.chip_id >> 8);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1433
(uint8_t)(link->ctx->dce_version);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1437
core_link_read_dpcd(link, DP_SOURCE_OUI,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1449
core_link_write_dpcd(link, DP_SOURCE_OUI,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1454
core_link_write_dpcd(link, DP_SOURCE_OUI+0x03,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1458
if (link->ctx->dce_version >= DCN_VERSION_2_0 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1459
link->dc->caps.min_horizontal_blanking_period != 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1461
uint8_t hblank_size = (uint8_t)link->dc->caps.min_horizontal_blanking_period;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1463
result_write_min_hblank = core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1471
link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1472
link->ctx->dce_version,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1474
link->dc->caps.min_horizontal_blanking_period,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1475
link->dpcd_caps.branch_dev_id,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1476
link->dpcd_caps.branch_dev_name[0],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1477
link->dpcd_caps.branch_dev_name[1],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1478
link->dpcd_caps.branch_dev_name[2],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1479
link->dpcd_caps.branch_dev_name[3],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1480
link->dpcd_caps.branch_dev_name[4],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1481
link->dpcd_caps.branch_dev_name[5]);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1483
core_link_write_dpcd(link, DP_SOURCE_OUI,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1484
link->dc->vendor_signature.data.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1485
sizeof(link->dc->vendor_signature.data.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1489
void dpcd_write_cable_id_to_dprx(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1491
if (!link->dpcd_caps.channel_coding_cap.bits.DP_128b_132b_SUPPORTED ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1492
link->dpcd_caps.cable_id.raw == 0 ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1493
link->dprx_states.cable_id_written)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1496
core_link_write_dpcd(link, DP_CABLE_ATTRIBUTES_UPDATED_BY_DPTX,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1497
&link->dpcd_caps.cable_id.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1498
sizeof(link->dpcd_caps.cable_id.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1500
link->dprx_states.cable_id_written = 1;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1503
static bool get_usbc_cable_id(struct dc_link *link, union dp_cable_id *cable_id)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1507
if (!link->ctx->dmub_srv ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1508
link->ep_type != DISPLAY_ENDPOINT_PHY ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1509
link->link_enc->features.flags.bits.DP_IS_USB_C == 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1516
link->dc, link->link_enc->transmitter);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1517
if (dc_wake_and_execute_dmub_cmd(link->dc->ctx, &cmd, DM_DMUB_WAIT_TYPE_WAIT_WITH_REPLY) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1525
static void retrieve_cable_id(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1529
link->dpcd_caps.cable_id.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1530
core_link_read_dpcd(link, DP_CABLE_ATTRIBUTES_UPDATED_BY_DPRX,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1531
&link->dpcd_caps.cable_id.raw, sizeof(uint8_t));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1533
if (get_usbc_cable_id(link, &usbc_cable_id))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1534
link->dpcd_caps.cable_id = intersect_cable_id(
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1535
&link->dpcd_caps.cable_id, &usbc_cable_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1538
bool read_is_mst_supported(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1545
if (link->preferred_training_settings.mst_enable &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1546
*link->preferred_training_settings.mst_enable == false) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1553
st = core_link_read_dpcd(link, DP_DPCD_REV, &rev.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1558
st = core_link_read_dpcd(link, DP_MSTM_CAP,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1571
static bool dpcd_read_sink_ext_caps(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1576
if (!link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1579
if (core_link_read_dpcd(link, DP_SOURCE_SINK_CAP, &dpcd_data, 1) != DC_OK)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1582
link->dpcd_sink_ext_caps.raw = dpcd_data;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1583
if (link->is_dds && !link->dpcd_sink_ext_caps.bits.oled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1584
link->dpcd_sink_ext_caps.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1588
if (core_link_read_dpcd(link, DP_EDP_GENERAL_CAP_2, &edp_general_cap2, 1) != DC_OK)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1591
link->dpcd_caps.panel_luminance_control = (edp_general_cap2 & DP_EDP_PANEL_LUMINANCE_CONTROL_CAPABLE) != 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1596
static void retrieve_vesa_replay_su_info(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1600
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1604
link->dpcd_caps.vesa_replay_su_info.pr_su_x_granularity = dpcd_data;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1606
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1610
link->dpcd_caps.vesa_replay_su_info.pr_su_x_granularity |= (dpcd_data << 8);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1612
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1616
link->dpcd_caps.vesa_replay_su_info.pr_su_y_granularity = dpcd_data;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1618
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1622
link->dpcd_caps.vesa_replay_su_info.pr_su_y_granularity_extended_caps = dpcd_data;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1624
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1628
link->dpcd_caps.vesa_replay_su_info.pr_su_y_granularity_extended_caps |= (dpcd_data << 8);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1631
enum dc_status dp_retrieve_lttpr_cap(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1640
bool vbios_lttpr_interop = link->dc->caps.vbios_lttpr_aware;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1642
if (!vbios_lttpr_interop || !link->dc->caps.extended_aux_timeout_support)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1649
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1654
link->dpcd_caps.lttpr_caps.revision.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1658
link->dpcd_caps.lttpr_caps.max_link_rate =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1662
link->dpcd_caps.lttpr_caps.phy_repeater_cnt =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1666
link->dpcd_caps.lttpr_caps.max_lane_count =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1670
link->dpcd_caps.lttpr_caps.mode =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1674
link->dpcd_caps.lttpr_caps.max_ext_timeout =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1677
link->dpcd_caps.lttpr_caps.main_link_channel_coding.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1681
link->dpcd_caps.lttpr_caps.supported_128b_132b_rates.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1685
link->dpcd_caps.lttpr_caps.alpm.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1689
lttpr_count = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1693
if (((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) == AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1699
link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1700
link->dpcd_caps.lttpr_caps.phy_repeater_cnt = 0x80;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1702
DC_LOG_DC("lttpr_caps forced phy_repeater_cnt = %d\n", link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1705
is_lttpr_present = dp_is_lttpr_present(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1710
CONN_DATA_DETECT(link, lttpr_dpcd_data, sizeof(lttpr_dpcd_data), "LTTPR Caps: ");
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1715
core_link_read_dpcd(link, (DP_LTTPR_IEEE_OUI + closest_lttpr_offset),
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1716
link->dpcd_caps.lttpr_caps.lttpr_ieee_oui, sizeof(link->dpcd_caps.lttpr_caps.lttpr_ieee_oui));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1717
core_link_read_dpcd(link, (DP_LTTPR_DEVICE_ID + closest_lttpr_offset),
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1718
link->dpcd_caps.lttpr_caps.lttpr_device_id, sizeof(link->dpcd_caps.lttpr_caps.lttpr_device_id));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1721
CONN_DATA_DETECT(link, link->dpcd_caps.lttpr_caps.lttpr_ieee_oui, sizeof(link->dpcd_caps.lttpr_caps.lttpr_ieee_oui),
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1723
CONN_DATA_DETECT(link, link->dpcd_caps.lttpr_caps.lttpr_device_id, sizeof(link->dpcd_caps.lttpr_caps.lttpr_device_id),
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1726
CONN_DATA_DETECT(link, link->dpcd_caps.lttpr_caps.lttpr_ieee_oui, sizeof(link->dpcd_caps.lttpr_caps.lttpr_ieee_oui),
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1728
CONN_DATA_DETECT(link, link->dpcd_caps.lttpr_caps.lttpr_device_id, sizeof(link->dpcd_caps.lttpr_caps.lttpr_device_id),
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1736
static bool retrieve_link_cap(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1769
try_to_configure_aux_timeout(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1772
status = dp_retrieve_lttpr_cap(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1775
status = wake_up_aux_channel(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1777
dp_retrieve_lttpr_cap(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1782
if (dp_is_lttpr_present(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1783
configure_lttpr_mode_transparent(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1787
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1789
&link->dpcd_caps.lttpr_caps.phy_repeater_cnt,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1790
sizeof(link->dpcd_caps.lttpr_caps.phy_repeater_cnt));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1793
dpcd_set_source_specific_data(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1802
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1816
if (!dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1817
try_to_configure_aux_timeout(link->ddc, LINK_AUX_DEFAULT_TIMEOUT_PERIOD);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1826
link->dpcd_caps.ext_receiver_cap_field_present =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1835
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1849
link->dpcd_caps.dpcd_rev.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1852
if (link->dpcd_caps.ext_receiver_cap_field_present) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1855
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1863
link->dpcd_caps.dprx_feature.raw = dpcd_dprx_data;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1872
link, DP_DPRX_FEATURE_ENUMERATION_LIST_CONT_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1878
link->dpcd_caps.adaptive_sync_caps.dp_adap_sync_caps.raw = dpcd_dprx_data;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1885
link->dpcd_caps.dprx_feature.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1900
read_dp_device_vendor_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1903
link->dpcd_caps.is_mst_capable = read_is_mst_supported(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1904
DC_LOG_DC("%s: MST_Support: %s\n", __func__, str_yes_no(link->dpcd_caps.is_mst_capable));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1907
if (link->dpcd_caps.is_mst_capable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1908
link->wa_flags.dp_mot_reset_segment = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1910
link->wa_flags.dp_mot_reset_segment = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1912
get_active_converter_info(ds_port.byte, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1914
dp_wa_power_up_0010FA(link, dpcd_data, sizeof(dpcd_data));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1919
link->dpcd_caps.allow_invalid_MSA_timing_param =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1922
link->dpcd_caps.max_ln_count.raw = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1925
link->dpcd_caps.max_down_spread.raw = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1928
link->reported_link_cap.lane_count =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1929
link->dpcd_caps.max_ln_count.bits.MAX_LANE_COUNT;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1930
link->reported_link_cap.link_rate = get_link_rate_from_max_link_bw(
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1932
link->reported_link_cap.link_spread =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1933
link->dpcd_caps.max_down_spread.bits.MAX_DOWN_SPREAD ?
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1938
link->dpcd_caps.panel_mode_edp =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1940
link->dpcd_caps.dpcd_display_control_capable =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1942
link->dpcd_caps.channel_coding_cap.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1944
link->test_pattern_enabled = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1945
link->compliance_test_state.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1947
link->dpcd_caps.receive_port0_cap.raw[0] =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1949
link->dpcd_caps.receive_port0_cap.raw[1] =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1953
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1955
&link->dpcd_caps.sink_count.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1956
sizeof(link->dpcd_caps.sink_count.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1959
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1964
link->dpcd_caps.sink_dev_id =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1970
link->dpcd_caps.sink_dev_id_str,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1975
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1980
link->dpcd_caps.sink_hw_revision =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1984
link->dpcd_caps.sink_fw_revision,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1997
if ((link->dpcd_caps.sink_dev_id == 0x0010fa) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1998
!memcmp(link->dpcd_caps.sink_dev_id_str, str_mbp_2018,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2000
(!memcmp(link->dpcd_caps.sink_fw_revision, fwrev_mbp_2018,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2002
!memcmp(link->dpcd_caps.sink_fw_revision, fwrev_mbp_2018_vega,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2004
link->reported_link_cap.link_rate = LINK_RATE_RBR2;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2008
memset(&link->dpcd_caps.dsc_caps, '\0',
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2009
sizeof(link->dpcd_caps.dsc_caps));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2010
memset(&link->dpcd_caps.fec_cap, '\0', sizeof(link->dpcd_caps.fec_cap));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2012
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_14) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2014
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2016
&link->dpcd_caps.fec_cap.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2017
sizeof(link->dpcd_caps.fec_cap.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2022
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2024
link->dpcd_caps.dsc_caps.dsc_basic_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2025
sizeof(link->dpcd_caps.dsc_caps.dsc_basic_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2027
is_fec_supported = link->dpcd_caps.fec_cap.bits.FEC_CAPABLE;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2028
is_dsc_basic_supported = link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2029
is_dsc_passthrough_supported = link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_PASSTHROUGH_SUPPORT;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2037
if (link->dpcd_caps.dongle_type != DISPLAY_DONGLE_NONE) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2039
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2041
link->dpcd_caps.dsc_caps.dsc_branch_decoder_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2042
sizeof(link->dpcd_caps.dsc_caps.dsc_branch_decoder_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2046
DC_LOG_DSC("DSC branch decoder capability is read at link %d", link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2048
link->dpcd_caps.dsc_caps.dsc_branch_decoder_caps.fields.BRANCH_OVERALL_THROUGHPUT_0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2050
link->dpcd_caps.dsc_caps.dsc_branch_decoder_caps.fields.BRANCH_OVERALL_THROUGHPUT_1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2052
link->dpcd_caps.dsc_caps.dsc_branch_decoder_caps.fields.BRANCH_MAX_LINE_WIDTH);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2058
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2059
link->dc->debug.dpia_debug.bits.enable_force_tbt3_work_around &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2060
link->dpcd_caps.is_branch_dev &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2061
link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_90CC24 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2062
link->dpcd_caps.branch_hw_revision == DP_BRANCH_HW_REV_10 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2063
(link->dpcd_caps.fec_cap.bits.FEC_CAPABLE ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2064
link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2068
link->wa_flags.dpia_forced_tbt3_mode = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2069
memset(&link->dpcd_caps.dsc_caps, '\0', sizeof(link->dpcd_caps.dsc_caps));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2070
memset(&link->dpcd_caps.fec_cap, '\0', sizeof(link->dpcd_caps.fec_cap));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2071
DC_LOG_DSC("Clear DSC SUPPORT for USB4 link(%d) in TBT3 compatibility mode", link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2073
link->wa_flags.dpia_forced_tbt3_mode = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2076
if (!dpcd_read_sink_ext_caps(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2077
link->dpcd_sink_ext_caps.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2079
if (link->dpcd_caps.channel_coding_cap.bits.DP_128b_132b_SUPPORTED) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2080
DC_LOG_DP2("128b/132b encoding is supported at link %d", link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2083
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2085
&link->dpcd_caps.dp_128b_132b_supported_link_rates.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2086
sizeof(link->dpcd_caps.dp_128b_132b_supported_link_rates.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2087
if (link->dpcd_caps.dp_128b_132b_supported_link_rates.bits.UHBR20)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2088
link->reported_link_cap.link_rate = LINK_RATE_UHBR20;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2089
else if (link->dpcd_caps.dp_128b_132b_supported_link_rates.bits.UHBR13_5)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2090
link->reported_link_cap.link_rate = LINK_RATE_UHBR13_5;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2091
else if (link->dpcd_caps.dp_128b_132b_supported_link_rates.bits.UHBR10)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2092
link->reported_link_cap.link_rate = LINK_RATE_UHBR10;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2095
DC_LOG_DP2("128b/132b supported link rates is read at link %d", link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2097
link->reported_link_cap.link_rate / 100,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2098
link->reported_link_cap.link_rate % 100);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2100
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2102
&link->dpcd_caps.fallback_formats.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2103
sizeof(link->dpcd_caps.fallback_formats.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2104
DC_LOG_DP2("sink video fallback format is read at link %d", link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2105
if (link->dpcd_caps.fallback_formats.bits.dp_1920x1080_60Hz_24bpp_support)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2107
if (link->dpcd_caps.fallback_formats.bits.dp_1280x720_60Hz_24bpp_support)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2109
if (link->dpcd_caps.fallback_formats.bits.dp_1024x768_60Hz_24bpp_support)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2111
if (link->dpcd_caps.fallback_formats.raw == 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2113
link->dpcd_caps.fallback_formats.bits.dp_1920x1080_60Hz_24bpp_support = 1;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2116
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2118
&link->dpcd_caps.fec_cap1.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2119
sizeof(link->dpcd_caps.fec_cap1.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2120
DC_LOG_DP2("FEC CAPABILITY 1 is read at link %d", link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2121
if (link->dpcd_caps.fec_cap1.bits.AGGREGATED_ERROR_COUNTERS_CAPABLE)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2125
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2127
link->dpcd_caps.max_uncompressed_pixel_rate_cap.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2128
sizeof(link->dpcd_caps.max_uncompressed_pixel_rate_cap.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2130
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2132
&link->dpcd_caps.vesa_replay_caps_supported.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2133
sizeof(link->dpcd_caps.vesa_replay_caps_supported.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2135
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2137
&link->dpcd_caps.vesa_replay_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2138
sizeof(link->dpcd_caps.vesa_replay_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2141
retrieve_vesa_replay_su_info(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2144
status = dpcd_get_tunneling_device_data(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2148
retrieve_cable_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2149
dpcd_write_cable_id_to_dprx(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2152
CONN_DATA_DETECT(link, dpcd_data, sizeof(dpcd_data), "Rx Caps: ");
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2157
bool detect_dp_sink_caps(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2159
return retrieve_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2162
void detect_edp_sink_caps(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2171
retrieve_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2172
link->dpcd_caps.edp_supported_link_rates_count = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2179
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_13) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2181
core_link_read_dpcd(link, DP_SUPPORTED_LINK_RATES,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2195
link->dpcd_caps.edp_supported_link_rates[link->dpcd_caps.edp_supported_link_rates_count] = link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2196
link->dpcd_caps.edp_supported_link_rates_count++;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2201
core_link_read_dpcd(link, DP_EDP_BACKLIGHT_ADJUSTMENT_CAP,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2204
link->dpcd_caps.dynamic_backlight_capable_edp =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2207
core_link_read_dpcd(link, DP_EDP_GENERAL_CAP_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2210
link->dpcd_caps.set_power_state_capable_edp =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2213
set_default_brightness_aux(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2215
core_link_read_dpcd(link, DP_EDP_DPCD_REV,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2216
&link->dpcd_caps.edp_rev,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2217
sizeof(link->dpcd_caps.edp_rev));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2221
if (link->dpcd_caps.edp_rev >= DP_EDP_13) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2222
core_link_read_dpcd(link, DP_PSR_SUPPORT,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2223
&link->dpcd_caps.psr_info.psr_version,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2224
sizeof(link->dpcd_caps.psr_info.psr_version));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2225
if (link->dpcd_caps.sink_dev_id == DP_BRANCH_DEVICE_ID_001CF8)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2226
core_link_read_dpcd(link, DP_FORCE_PSRSU_CAPABILITY,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2227
&link->dpcd_caps.psr_info.force_psrsu_cap,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2228
sizeof(link->dpcd_caps.psr_info.force_psrsu_cap));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2229
core_link_read_dpcd(link, DP_PSR_CAPS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2230
&link->dpcd_caps.psr_info.psr_dpcd_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2231
sizeof(link->dpcd_caps.psr_info.psr_dpcd_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2232
if (link->dpcd_caps.psr_info.psr_dpcd_caps.bits.Y_COORDINATE_REQUIRED) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2233
core_link_read_dpcd(link, DP_PSR2_SU_Y_GRANULARITY,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2234
&link->dpcd_caps.psr_info.psr2_su_y_granularity_cap,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2235
sizeof(link->dpcd_caps.psr_info.psr2_su_y_granularity_cap));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2242
if (link->dpcd_caps.dpcd_rev.raw >= DP_EDP_14)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2243
core_link_read_dpcd(link, DP_RECEIVER_ALPM_CAP,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2244
&link->dpcd_caps.alpm_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2245
sizeof(link->dpcd_caps.alpm_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2250
core_link_read_dpcd(link, DP_SINK_PR_PIXEL_DEVIATION_PER_LINE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2251
&link->dpcd_caps.pr_info.pixel_deviation_per_line,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2252
sizeof(link->dpcd_caps.pr_info.pixel_deviation_per_line));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2253
core_link_read_dpcd(link, DP_SINK_PR_MAX_NUMBER_OF_DEVIATION_LINE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2254
&link->dpcd_caps.pr_info.max_deviation_line,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2255
sizeof(link->dpcd_caps.pr_info.max_deviation_line));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2260
if (link->dpcd_sink_ext_caps.bits.emission_output)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2261
core_link_read_dpcd(link, DP_SINK_EMISSION_RATE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2262
(uint8_t *)&link->dpcd_caps.edp_oled_emission_rate,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2263
sizeof(link->dpcd_caps.edp_oled_emission_rate));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2268
core_link_read_dpcd(link, DP_SINK_DRR_GRANULARITY,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2269
(uint8_t *)&link->dpcd_caps.drr_granularity,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2270
sizeof(link->dpcd_caps.drr_granularity));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2276
if (link->dpcd_caps.dpcd_rev.raw >= DP_EDP_14)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2278
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2280
(uint8_t *)&link->dpcd_caps.mso_cap_sst_links_supported,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2281
sizeof(link->dpcd_caps.mso_cap_sst_links_supported));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2285
core_link_read_dpcd(link, DP_EDP_GENERAL_CAP_2,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2286
(uint8_t *)&link->dpcd_caps.dp_edp_general_cap_2,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2287
sizeof(link->dpcd_caps.dp_edp_general_cap_2));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2290
bool dp_get_max_link_enc_cap(const struct dc_link *link, struct dc_link_settings *max_link_enc_cap)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2292
struct resource_context *res_ctx = &link->dc->current_state->res_ctx;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2293
struct resource_pool *res_pool = link->dc->res_pool;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2294
struct link_encoder *link_enc = get_temp_dio_link_enc(res_ctx, res_pool, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2301
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2302
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2317
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2319
if (link->preferred_link_setting.lane_count != LANE_COUNT_UNKNOWN &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2320
link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2321
return &link->preferred_link_setting;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2322
return &link->verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2325
struct dc_link_settings dp_get_max_link_cap(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2331
struct resource_context *res_ctx = &link->dc->current_state->res_ctx;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2332
struct resource_pool *res_pool = link->dc->res_pool;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2333
struct link_encoder *link_enc = get_temp_dio_link_enc(res_ctx, res_pool, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2336
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2337
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2345
if (link->reported_link_cap.lane_count < max_link_cap.lane_count)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2347
link->reported_link_cap.lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2348
if (link->reported_link_cap.link_rate < max_link_cap.link_rate)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2350
link->reported_link_cap.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2351
if (link->reported_link_cap.link_spread <
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2354
link->reported_link_cap.link_spread;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2356
if (!link->dpcd_caps.dp_128b_132b_supported_link_rates.bits.UHBR13_5)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2374
cable_max_link_rate = get_cable_max_link_rate(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2376
if (!link->dc->debug.ignore_cable_id &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2381
if (!link->dpcd_caps.cable_id.bits.UHBR13_5_CAPABILITY &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2382
link->dpcd_caps.cable_id.bits.CABLE_TYPE >= 2)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2389
if (dp_is_lttpr_present(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2392
if (link->dpcd_caps.lttpr_caps.revision.raw >= DPCD_REV_14) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2393
lttpr_max_lane_count = get_lttpr_max_lane_count(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2398
lttpr_max_link_rate = get_lttpr_max_link_rate(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2403
if (!link->dpcd_caps.lttpr_caps.supported_128b_132b_rates.bits.UHBR13_5)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2418
link->dc->debug.disable_uhbr)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2425
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2433
enum clock_source_id dp_cs_id = get_clock_source_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2442
if (dp_is_lttpr_present(link) && link->dpcd_caps.lttpr_caps.max_ext_timeout > 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2443
uint8_t grant = link->dpcd_caps.lttpr_caps.max_ext_timeout & 0x80;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2445
core_link_write_dpcd(link, DP_PHY_REPEATER_EXTENDED_WAIT_TIMEOUT, &grant, sizeof(grant));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2449
if (!get_temp_dp_link_res(link, &link_res, &cur_link_settings))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2454
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2456
link->connector_signal,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2461
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2469
if (dp_read_hpd_rx_irq_data(link, &irq_data) == DC_OK &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2471
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2480
dp_trace_lt_total_count_increment(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2481
dp_trace_lt_result_update(link, status, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2482
dp_disable_link_phy(link, &link_res, link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2483
} while (!success && decide_fallback_link_setting(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2486
link->verified_link_cap = success ?
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2492
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2501
dp_trace_detect_lt_init(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2504
__func__, link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2508
if (link->link_enc && link->link_enc->features.flags.bits.DP_IS_USB_C &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2509
link->dc->debug.usbc_combo_phy_reset_wa)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2510
apply_usbc_combo_phy_reset_wa(link, known_limit_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2512
dp_trace_set_lt_start_timestamp(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2516
memset(&link->verified_link_cap, 0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2518
if (link->link_enc && (!link_detect_connection_type(link, &type) || type == dc_connection_none)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2519
link->verified_link_cap = fail_safe_link_settings;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2521
} else if (dp_verify_link_cap(link, known_limit_link_setting, &fail_count)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2522
last_verified_link_cap = link->verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2528
link->verified_link_cap = last_verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2535
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && link->is_hpd_pending)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2541
dp_trace_lt_fail_count_update(link, fail_count, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2542
dp_trace_set_lt_end_timestamp(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2545
__func__, link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2555
bool dp_is_sink_present(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2563
dal_graphics_object_id_get_connector_id(link->link_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2570
ddc = get_ddc_pin(link->ddc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2614
uint8_t dp_get_lttpr_count(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2616
if (dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2617
return dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2622
void edp_get_alpm_support(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2626
bool lttpr_present = dp_is_lttpr_present(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2634
if (!dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2637
if (link->dpcd_caps.alpm_caps.bits.AUX_LESS_ALPM_CAP) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2639
if (link->dpcd_caps.lttpr_caps.alpm.bits.AUX_LESS_ALPM_SUPPORTED)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2645
if (link->dpcd_caps.alpm_caps.bits.AUX_WAKE_ALPM_CAP) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
282
static enum clock_source_id get_clock_source_id(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
285
struct clock_source *dp_cs = link->dc->res_pool->dp_clock_source;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
300
static void dp_wa_power_up_0010FA(struct dc_link *link, uint8_t *dpcd_data,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
305
if (!link->dpcd_caps.dpcd_rev.raw) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
307
dpcd_write_rx_power_ctrl(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
308
core_link_read_dpcd(link, DP_DPCD_REV,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
310
link->dpcd_caps.dpcd_rev.raw = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
313
} while (retry++ < 4 && !link->dpcd_caps.dpcd_rev.raw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
316
if (link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_VGA_CONVERTER) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
317
switch (link->dpcd_caps.branch_dev_id) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
326
link->wa_flags.dp_keep_receiver_powered = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
331
link->wa_flags.dp_keep_receiver_powered = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
335
link->wa_flags.dp_keep_receiver_powered = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
338
bool dp_is_fec_supported(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
343
struct resource_context *res_ctx = &link->dc->current_state->res_ctx;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
344
struct resource_pool *res_pool = link->dc->res_pool;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
345
struct link_encoder *link_enc = get_temp_dio_link_enc(res_ctx, res_pool, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
347
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
348
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
351
return (dc_is_dp_signal(link->connector_signal) && link_enc &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
353
link->dpcd_caps.fec_cap.bits.FEC_CAPABLE);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
356
bool dp_should_enable_fec(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
360
if (link->dc->debug.disable_fec)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
362
else if (link->fec_state == dc_link_fec_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
364
else if (link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT_MST &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
365
link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
366
link->local_sink->edid_caps.panel_patch.disable_fec)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
368
else if (link->connector_signal == SIGNAL_TYPE_EDP
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
369
&& (link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
371
|| link->panel_config.dsc.disable_dsc_edp
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
372
|| !link->dc->caps.edp_dsc_support))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
375
return !force_disable && dp_is_fec_supported(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
387
bool dp_is_lttpr_present(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
390
uint32_t lttpr_count = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
392
link->dpcd_caps.lttpr_caps.max_lane_count > 0 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
393
link->dpcd_caps.lttpr_caps.max_lane_count <= 4);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
429
static enum dc_lane_count get_lttpr_max_lane_count(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
433
if (link->dpcd_caps.lttpr_caps.max_lane_count <= LANE_COUNT_DP_MAX)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
434
lttpr_max_lane_count = link->dpcd_caps.lttpr_caps.max_lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
437
if (link->dpia_bw_alloc_config.bw_alloc_enabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
438
link->dpia_bw_alloc_config.nrd_max_lane_count > 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
439
lttpr_max_lane_count = link->dpia_bw_alloc_config.nrd_max_lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
444
static enum dc_link_rate get_lttpr_max_link_rate(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
449
switch (link->dpcd_caps.lttpr_caps.max_link_rate) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
454
lttpr_max_link_rate = link->dpcd_caps.lttpr_caps.max_link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
459
if (link->dpia_bw_alloc_config.bw_alloc_enabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
460
link->dpia_bw_alloc_config.nrd_max_link_rate > 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
461
lttpr_max_link_rate = link->dpia_bw_alloc_config.nrd_max_link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
463
if (link->dpcd_caps.lttpr_caps.supported_128b_132b_rates.bits.UHBR20)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
465
else if (link->dpcd_caps.lttpr_caps.supported_128b_132b_rates.bits.UHBR13_5)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
467
else if (link->dpcd_caps.lttpr_caps.supported_128b_132b_rates.bits.UHBR10)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
473
static enum dc_link_rate get_cable_max_link_rate(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
477
if (link->dpcd_caps.cable_id.bits.UHBR10_20_CAPABILITY & DP_UHBR20) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
479
} else if (link->dpcd_caps.cable_id.bits.UHBR13_5_CAPABILITY) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
481
} else if (link->dpcd_caps.cable_id.bits.UHBR10_20_CAPABILITY & DP_UHBR10) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
483
if (link->dpcd_caps.cable_id.bits.CABLE_TYPE < 2) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
517
static enum dc_link_rate reduce_link_rate(const struct dc_link *link, enum dc_link_rate link_rate)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
531
if (link->connector_signal == SIGNAL_TYPE_EDP && link->dc->debug.support_eDP1_5)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
564
static enum dc_link_rate increase_link_rate(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
57
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
584
return link->dpcd_caps.dp_128b_132b_supported_link_rates.bits.UHBR13_5 ?
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
593
static void increase_edp_link_rate(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
597
if (current_link_setting->link_rate_set < link->dpcd_caps.edp_supported_link_rates_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
600
link->dpcd_caps.edp_supported_link_rates[current_link_setting->link_rate_set];
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
606
current_link_setting->link_rate = increase_link_rate(link, current_link_setting->link_rate);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
611
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
638
link->dpcd_caps.dp_128b_132b_supported_link_rates.bits.UHBR13_5 == 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
669
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
675
link->dc->debug.force_dp2_lt_fallback_method)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
676
return decide_fallback_link_setting_max_bw_policy(link, max,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
686
cur->link_rate = reduce_link_rate(link, cur->link_rate);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
708
cur->link_rate = reduce_link_rate(link, cur->link_rate);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
724
cur->link_rate = reduce_link_rate(link, cur->link_rate);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
742
static bool decide_dp_link_settings(struct dc_link *link, struct dc_link_settings *link_setting, uint32_t req_bw)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
750
if (req_bw > dp_link_bandwidth_kbps(link, &link->verified_link_cap))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
758
link->verified_link_cap.link_rate) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
760
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
768
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
774
increase_link_rate(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
784
bool edp_decide_link_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
795
if (!edp_is_ilr_optimization_enabled(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
796
*link_setting = link->verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
802
initial_link_setting.link_rate = link->dpcd_caps.edp_supported_link_rates[0];
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
813
link->verified_link_cap.link_rate) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
815
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
823
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
828
increase_edp_link_rate(link, &current_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
834
bool decide_edp_link_settings_with_dsc(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
845
policy = link->panel_config.dsc.force_dsc_edp_policy;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
847
max_link_rate = link->verified_link_cap.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
852
if (!edp_is_ilr_optimization_enabled(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
861
if (req_bw > dp_link_bandwidth_kbps(link, &link->verified_link_cap))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
871
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
880
increase_edp_link_rate(link, &current_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
883
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
894
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
899
increase_edp_link_rate(link, &current_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
911
initial_link_setting.link_rate = link->dpcd_caps.edp_supported_link_rates[0];
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
924
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
933
increase_edp_link_rate(link, &current_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
935
if (current_link_setting.lane_count < link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
942
link->dpcd_caps.edp_supported_link_rates[current_link_setting.link_rate_set];
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
949
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
954
increase_edp_link_rate(link, &current_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
963
static bool decide_mst_link_settings(const struct dc_link *link, struct dc_link_settings *link_setting)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
965
*link_setting = link->verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
972
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
973
uint32_t req_bw = dc_bandwidth_in_kbps_from_timing(&stream->timing, dc_link_get_highest_encoding_format(link));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
978
link->preferred_link_setting.lane_count != LANE_COUNT_UNKNOWN &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
979
link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
983
*link_setting = link->preferred_link_setting;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
988
decide_mst_link_settings(link, link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
992
} else if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
997
if (link->panel_config.dsc.force_dsc_edp_policy) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
103
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
109
bool dp_overwrite_extended_receiver_cap(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
111
uint8_t dp_get_lttpr_count(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
113
void edp_get_alpm_support(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
31
bool detect_dp_sink_caps(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
33
void detect_edp_sink_caps(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
35
struct dc_link_settings dp_get_max_link_cap(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
37
bool dp_get_max_link_enc_cap(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
41
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
46
enum dc_status dp_retrieve_lttpr_cap(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
54
bool dp_is_sink_present(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
56
bool dp_is_lttpr_present(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
58
bool dp_is_fec_supported(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
60
bool is_dp_active_dongle(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
62
bool is_dp_branch_device(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
64
void dpcd_write_cable_id_to_dprx(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
66
bool dp_should_enable_fec(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
72
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
81
bool edp_decide_link_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
84
bool decide_edp_link_settings_with_dsc(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
89
enum dp_link_encoding mst_decide_link_encoding_format(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
91
void dpcd_set_source_specific_data(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
94
bool read_is_mst_supported(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.h
97
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
108
link->dpcd_caps.usb4_dp_tun_info.usb4_topology_id[i] = dpcd_topology_data[i];
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
114
bool dpia_query_hpd_status(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
117
struct dc_dmub_srv *dmub_srv = link->ctx->dmub_srv;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
122
cmd.query_hpd.data.instance = link->link_id.enum_id - ENUM_ID_1;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
131
link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
132
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
133
link->hpd_status,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
135
link->hpd_status = cmd.query_hpd.data.result;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
139
link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
140
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
142
link->hpd_status);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
143
link->hpd_status = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
146
return link->hpd_status;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
152
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
158
link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dp_tunneling;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
160
if (link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dpia_bw_alloc
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
161
&& link->dpcd_caps.usb4_dp_tun_info.driver_bw_cap.bits.driver_bw_alloc_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
163
dp_tunnel_setting->cm_id = link->dpcd_caps.usb4_dp_tun_info.usb4_driver_id & 0x0F;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
164
dp_tunnel_setting->group_id = link->dpcd_caps.usb4_dp_tun_info.dpia_tunnel_info.bits.group_id;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
165
dp_tunnel_setting->estimated_bw = link->dpia_bw_alloc_config.estimated_bw;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
166
dp_tunnel_setting->allocated_bw = link->dpia_bw_alloc_config.allocated_bw;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
167
dp_tunnel_setting->bw_granularity = link->dpia_bw_alloc_config.bw_granularity;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
40
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
49
enum dc_status dpcd_get_tunneling_device_data(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
57
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
65
link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
68
if (link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dp_tunneling == false)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
71
link->dpcd_caps.usb4_dp_tun_info.dpia_info.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
73
link->dpcd_caps.usb4_dp_tun_info.usb4_driver_id =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
76
if (link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dpia_bw_alloc) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
77
status = core_link_read_dpcd(link, USB4_DRIVER_BW_CAPABILITY,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
83
link->dpcd_caps.usb4_dp_tun_info.driver_bw_cap.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
85
link->dpcd_caps.usb4_dp_tun_info.dpia_tunnel_info.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
92
__func__, link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
93
link->dpcd_caps.usb4_dp_tun_info.usb4_driver_id,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
94
link->dpcd_caps.usb4_dp_tun_info.dpia_info.bits.dpia_num,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
95
link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dpia_bw_alloc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
96
link->dpcd_caps.usb4_dp_tun_info.driver_bw_cap.bits.driver_bw_alloc_support);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
99
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.h
35
enum dc_status dpcd_get_tunneling_device_data(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.h
40
bool dpia_query_hpd_status(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
102
static int get_estimated_bw(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
107
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
112
return bw_estimated_bw * (Kbps_TO_Gbps / link->dpia_bw_alloc_config.bw_granularity);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
115
static int get_non_reduced_max_link_rate(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
120
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
128
static int get_non_reduced_max_lane_count(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
133
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
146
static void retrieve_usb4_dp_bw_allocation_info(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
148
reset_bw_alloc_struct(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
151
link->dpia_bw_alloc_config.bw_granularity = get_bw_granularity(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
152
link->dpia_bw_alloc_config.estimated_bw = get_estimated_bw(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
153
link->dpia_bw_alloc_config.nrd_max_link_rate = get_non_reduced_max_link_rate(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
154
link->dpia_bw_alloc_config.nrd_max_lane_count = get_non_reduced_max_lane_count(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
157
__func__, link->dpia_bw_alloc_config.bw_granularity,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
158
link->dpia_bw_alloc_config.estimated_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
160
__func__, link->dpia_bw_alloc_config.nrd_max_link_rate,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
161
link->dpia_bw_alloc_config.nrd_max_lane_count);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
172
static void dpia_bw_alloc_unplug(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
174
if (link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
176
__func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
177
reset_bw_alloc_struct(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
181
static void link_dpia_send_bw_alloc_request(struct dc_link *link, int req_bw)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
186
if (link->dpia_bw_alloc_config.bw_granularity == 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
187
DC_LOG_ERROR("%s: Link[%d]: bw_granularity is zero!", __func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
191
temp = req_bw * link->dpia_bw_alloc_config.bw_granularity;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
198
request_bw = request_reg_val * (Kbps_TO_Gbps / link->dpia_bw_alloc_config.bw_granularity);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
200
if (request_bw > link->dpia_bw_alloc_config.estimated_bw) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
202
__func__, link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
203
req_bw, request_bw, link->dpia_bw_alloc_config.estimated_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
204
req_bw = link->dpia_bw_alloc_config.estimated_bw;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
206
temp = req_bw * link->dpia_bw_alloc_config.bw_granularity;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
212
link->dpia_bw_alloc_config.allocated_bw = request_bw;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
213
DC_LOG_DC("%s: Link[%d]: Request BW: %d", __func__, link->link_index, request_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
215
core_link_write_dpcd(link, REQUESTED_BW,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
223
bool link_dpia_enable_usb4_dp_bw_alloc_mode(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
230
if (core_link_write_dpcd(link, DPTX_BW_ALLOCATION_MODE_CONTROL, &val, sizeof(uint8_t)) == DC_OK) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
231
DC_LOG_DEBUG("%s: link[%d] DPTX BW allocation mode enabled", __func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
233
retrieve_usb4_dp_bw_allocation_info(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
236
link->dpia_bw_alloc_config.nrd_max_link_rate
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
237
&& link->dpia_bw_alloc_config.nrd_max_lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
238
link->reported_link_cap.link_rate = link->dpia_bw_alloc_config.nrd_max_link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
239
link->reported_link_cap.lane_count = link->dpia_bw_alloc_config.nrd_max_lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
242
link->dpia_bw_alloc_config.bw_alloc_enabled = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
245
if (link->dc->debug.dpia_debug.bits.enable_usb4_bw_zero_alloc_patch) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
253
link_dp_dpia_allocate_usb4_bandwidth_for_stream(link, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
256
DC_LOG_DEBUG("%s: link[%d] failed to enable DPTX BW allocation mode", __func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
269
void link_dp_dpia_handle_bw_alloc_status(struct dc_link *link, uint8_t status)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
273
__func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
278
__func__, link->link_index, link->dpia_bw_alloc_config.estimated_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
280
link_dpia_send_bw_alloc_request(link, link->dpia_bw_alloc_config.estimated_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
284
link->dpia_bw_alloc_config.bw_granularity = get_bw_granularity(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
287
__func__, link->link_index, link->dpia_bw_alloc_config.bw_granularity);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
291
link->dpia_bw_alloc_config.estimated_bw = get_estimated_bw(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
294
__func__, link->link_index, link->dpia_bw_alloc_config.estimated_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
298
link, DP_TUNNELING_STATUS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
306
void dpia_handle_usb4_bandwidth_allocation_for_link(struct dc_link *link, int peak_bw)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
308
if (link && link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dp_tunneling
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
309
&& link->dpia_bw_alloc_config.bw_alloc_enabled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
312
link->dpia_bw_alloc_config.link_max_bw = peak_bw;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
314
link_dpia_send_bw_alloc_request(link, peak_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
316
dpia_bw_alloc_unplug(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
320
void link_dp_dpia_allocate_usb4_bandwidth_for_stream(struct dc_link *link, int req_bw)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
322
link->dpia_bw_alloc_config.estimated_bw = get_estimated_bw(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
325
__func__, link->link_index, link->hpd_status,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
326
link->dpia_bw_alloc_config.allocated_bw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
327
link->dpia_bw_alloc_config.estimated_bw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
330
if (link_dp_is_bw_alloc_available(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
331
link_dpia_send_bw_alloc_request(link, req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
336
uint32_t link_dpia_get_dp_overhead(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
34
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
340
if ((link->type == dc_connection_mst_branch) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
341
!link->dpcd_caps.channel_coding_cap.bits.DP_128b_132b_SUPPORTED) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
345
const struct dc_link_settings *link_cap = dc_link_get_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
371
const struct dc_link *link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
385
link = dpia_link_sets[i].link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
389
if ((link == NULL) || (dp_tunnel_settings == NULL) || dp_tunnel_settings->bw_granularity == 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
392
if (link->type == dc_connection_mst_branch)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
393
link_required_bw += link_dpia_get_dp_overhead(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
49
static bool link_dp_is_bw_alloc_available(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
51
return (link && link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dp_tunneling
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
52
&& link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dpia_bw_alloc
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
53
&& link->dpcd_caps.usb4_dp_tun_info.driver_bw_cap.bits.driver_bw_alloc_support);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
56
static void reset_bw_alloc_struct(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
58
link->dpia_bw_alloc_config.bw_alloc_enabled = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
59
link->dpia_bw_alloc_config.link_verified_bw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
60
link->dpia_bw_alloc_config.link_max_bw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
61
link->dpia_bw_alloc_config.allocated_bw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
62
link->dpia_bw_alloc_config.estimated_bw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
63
link->dpia_bw_alloc_config.bw_granularity = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
64
link->dpia_bw_alloc_config.dp_overhead = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
65
link->dpia_bw_alloc_config.nrd_max_lane_count = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
66
link->dpia_bw_alloc_config.nrd_max_link_rate = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
68
link->dpia_bw_alloc_config.remote_sink_req_bw[i] = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
69
DC_LOG_DEBUG("reset usb4 bw alloc of link(%d)\n", link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
76
static uint8_t get_bw_granularity(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
81
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.h
58
bool link_dpia_enable_usb4_dp_bw_alloc_mode(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.h
69
void link_dp_dpia_allocate_usb4_bandwidth_for_stream(struct dc_link *link, int req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.h
80
void dpia_handle_usb4_bandwidth_allocation_for_link(struct dc_link *link, int peak_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.h
89
uint32_t link_dpia_get_dp_overhead(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.h
99
void link_dp_dpia_handle_bw_alloc_status(struct dc_link *link, uint8_t status);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
107
dpcd_result = core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
124
static bool handle_hpd_irq_psr_sink(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
128
if (!link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
132
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
133
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
144
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
145
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
162
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
163
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
169
if (link->psr_settings.psr_allow_active) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
171
edp_set_psr_allow_active(link, &allow_active, true, false, NULL);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
173
edp_set_psr_allow_active(link, &allow_active, true, false, NULL);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
190
static void handle_hpd_irq_vesa_replay_sink(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
194
if (!link->replay_settings.replay_feature_enabled ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
195
link->replay_settings.config.replay_version != DC_VESA_PANEL_REPLAY)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
199
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
200
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
212
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
213
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
219
if (link->replay_settings.replay_allow_active) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
220
dp_pr_enable(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
221
dp_pr_enable(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
226
static void handle_hpd_irq_replay_sink(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
234
if (!link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
237
if (link->replay_settings.config.replay_version != DC_FREESYNC_REPLAY) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
238
handle_hpd_irq_vesa_replay_sink(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
244
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
245
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
262
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
263
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
273
link->replay_settings.config.replay_error_status.raw |= replay_error_status.raw;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
277
link->replay_settings.replay_desync_error_fail_count++;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
279
if (link->replay_settings.config.force_disable_desync_error_check)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
284
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
285
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
292
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
293
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
299
if (link->replay_settings.replay_allow_active) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
301
edp_set_replay_allow_active(link, &allow_active, true, false, NULL);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
303
edp_set_replay_allow_active(link, &allow_active, true, false, NULL);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
308
void dp_handle_link_loss(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
311
struct dc_state *state = link->dc->current_state;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
315
link_get_master_pipes_with_dpms_on(link, state, &count, pipes);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
322
if (link->skip_fallback_on_link_loss) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
324
link->verified_link_cap.lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
326
link->verified_link_cap.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
328
link->verified_link_cap.link_spread;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
330
link_set_dpms_on(link->dc->current_state, pipes[i]);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
334
static void dp_handle_tunneling_irq(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
340
link, DP_TUNNELING_STATUS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
346
__func__, link->link_index, tunneling_status);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
349
link_dp_dpia_handle_bw_alloc_status(link, tunneling_status);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
354
link, DP_LINK_SERVICE_IRQ_VECTOR_ESI0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
358
static void read_dpcd204h_on_irq_hpd(struct dc_link *link, union hpd_irq_data *irq_data)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
364
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
378
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
391
if (link->dpcd_caps.dpcd_rev.raw < DPCD_REV_14) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
393
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
398
if (link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dp_tunneling) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
400
link, DP_LINK_SERVICE_IRQ_VECTOR_ESI0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
410
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
430
if (link->wa_flags.read_dpcd204h_on_irq_hpd)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
431
read_dpcd204h_on_irq_hpd(link, irq_data);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
438
bool dp_should_allow_hpd_rx_irq(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
447
if ((link->cur_link_settings.lane_count != LANE_COUNT_UNKNOWN) ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
448
is_dp_branch_device(link) ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
449
link->dpia_bw_alloc_config.bw_alloc_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
45
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
455
bool dp_handle_hpd_rx_irq(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
474
__func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
482
result = dp_read_hpd_rx_irq_data(link, &hpd_irq_dpcd_data);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
49
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
494
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
495
!link->dc->config.enable_dpia_pre_training)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
496
link->skip_fallback_on_link_loss = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
500
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
508
dc_link_dp_handle_automated_test(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
512
if (!dp_should_allow_hpd_rx_irq(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
514
__func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
518
if (handle_hpd_irq_psr_sink(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
522
handle_hpd_irq_replay_sink(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
547
if ((link->connector_signal != SIGNAL_TYPE_EDP) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
549
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
552
CONN_DATA_LINK_LOSS(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
560
dp_handle_link_loss(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
566
dp_trace_link_loss_increment(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
569
if (link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dp_tunneling) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
571
dp_handle_tunneling_irq(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
574
if (link->type == dc_connection_sst_branch &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
576
!= link->dpcd_sink_count)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
62
if (link->cur_link_settings.lane_count == 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
68
for (lane = 0; lane < link->cur_link_settings.lane_count; lane++) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
90
if (link_dp_get_encoding_format(&link->cur_link_settings) == DP_128b_132b_ENCODING &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.h
31
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.h
33
bool dp_should_allow_hpd_rx_irq(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.h
34
void dp_handle_link_loss(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.h
36
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.h
38
bool dp_handle_hpd_rx_irq(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
101
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
105
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
109
if (!(link->replay_settings.config.replay_supported))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
112
dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
120
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
123
replay_context.aux_inst = link->ddc->ddc_pin->hw_info.ddc_channel;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
124
replay_context.digbe_inst = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
125
replay_context.digfe_inst = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
145
link->replay_settings.replay_feature_enabled = dp_pr_copy_settings(link, &replay_context);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
147
if (link->replay_settings.replay_feature_enabled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
148
if (dc_is_embedded_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
163
if (link->dpcd_caps.vesa_replay_caps.bits.SU_Y_GRANULARITY_EXT_CAP_SUPPORTED)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
168
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
172
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
178
alpm_config.bits.ENABLE = link->replay_settings.config.alpm_mode != DC_ALPM_UNSUPPORTED ? 1 : 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
180
if (link->replay_settings.config.alpm_mode == DC_ALPM_AUXLESS) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
186
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
187
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
193
if (link->replay_settings.config.frame_skip_supported)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
196
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
206
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
209
if (!dc || !link || !inst_out)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
213
return dc_get_edp_link_panel_inst(dc, link, inst_out);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
215
if (!dc_is_dp_sst_signal(link->connector_signal)) /* only supoprt DP sst (eDP included) for now */
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
220
dc->current_state->res_ctx.pipe_ctx[i].stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
234
bool dp_setup_replay(struct dc_link *link, const struct dc_stream_state *stream)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
236
if (!link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
238
if (link->replay_settings.config.replay_version == DC_VESA_PANEL_REPLAY)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
239
return dp_setup_panel_replay(link, stream);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
240
else if (link->replay_settings.config.replay_version == DC_FREESYNC_REPLAY)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
241
return edp_setup_freesync_replay(link, stream);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
246
bool dp_pr_enable(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
248
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
252
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
255
if (enable && !dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
256
dp_pr_set_static_screen_param(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
258
if (link->replay_settings.replay_allow_active != enable) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
270
link->replay_settings.replay_allow_active = enable;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
275
bool dp_pr_copy_settings(struct dc_link *link, struct replay_context *replay_context)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
277
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
282
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
287
dc->current_state->res_ctx.pipe_ctx[i].stream->link &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
288
dc->current_state->res_ctx.pipe_ctx[i].stream->link == link &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
289
dc_is_dp_sst_signal(dc->current_state->res_ctx.pipe_ctx[i].stream->link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
317
cmd.pr_copy_settings.data.dpphy_inst = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
320
cmd.pr_copy_settings.data.flags.bitfields.fec_enable_status = (link->fec_state == dc_link_fec_enabled);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
322
cmd.pr_copy_settings.data.debug.u32All = link->replay_settings.config.debug_flags;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
324
cmd.pr_copy_settings.data.su_granularity_needed = link->dpcd_caps.vesa_replay_caps.bits.PR_SU_GRANULARITY_NEEDED;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
325
cmd.pr_copy_settings.data.su_x_granularity = link->dpcd_caps.vesa_replay_su_info.pr_su_x_granularity;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
326
cmd.pr_copy_settings.data.su_y_granularity = link->dpcd_caps.vesa_replay_su_info.pr_su_y_granularity;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
328
link->dpcd_caps.vesa_replay_su_info.pr_su_y_granularity_extended_caps;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
335
if (dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
34
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
345
bool dp_pr_update_state(struct dc_link *link, struct dmub_cmd_pr_update_state_data *update_state_data)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
347
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
351
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
366
bool dp_pr_set_general_cmd(struct dc_link *link, struct dmub_cmd_pr_general_cmd_data *general_cmd_data)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
368
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
372
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
387
bool dp_pr_get_state(const struct dc_link *link, uint64_t *state)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
389
const struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
394
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
51
static void dp_pr_set_static_screen_param(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
54
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
56
if (!dc_is_dp_sst_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
61
dc->current_state->res_ctx.pipe_ctx[i].stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
79
static bool dp_setup_panel_replay(struct dc_link *link, const struct dc_stream_state *stream)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
97
if (!link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.h
30
bool dp_setup_replay(struct dc_link *link, const struct dc_stream_state *stream);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.h
31
bool dp_pr_get_panel_inst(const struct dc *dc, const struct dc_link *link, unsigned int *inst_out);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.h
32
bool dp_pr_enable(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.h
33
bool dp_pr_copy_settings(struct dc_link *link, struct replay_context *replay_context);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.h
34
bool dp_pr_update_state(struct dc_link *link, struct dmub_cmd_pr_update_state_data *update_state_data);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.h
35
bool dp_pr_set_general_cmd(struct dc_link *link, struct dmub_cmd_pr_general_cmd_data *general_cmd_data);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.h
36
bool dp_pr_get_state(const struct dc_link *link, uint64_t *state);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
103
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
107
!is_immediate_downstream(link, offset) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
108
(!((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) == AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN) ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
113
link_hwss->ext.set_dp_lane_settings(link, link_res,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
117
memmove(link->cur_lane_setting,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
119
sizeof(link->cur_lane_setting));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
123
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
128
dp_set_hw_lane_settings(link, link_res, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
135
dpcd_set_lane_settings(link, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
138
enum dc_status dp_set_fec_ready(struct dc_link *link, const struct link_resource *link_res, bool ready)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
149
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
150
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
155
if (ready && dp_should_enable_fec(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
158
status = core_link_write_dpcd(link, DP_FEC_CONFIGURATION,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
163
link->fec_state = dc_link_fec_ready;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
166
if (link->fec_state == dc_link_fec_ready) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
168
if (link->type != dc_connection_none)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
169
core_link_write_dpcd(link, DP_FEC_CONFIGURATION,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
173
link->fec_state = dc_link_fec_not_ready;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
180
void dp_set_fec_enable(struct dc_link *link, const struct link_resource *link_res, bool enable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
184
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
185
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
190
if (enable && dp_should_enable_fec(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
191
if (link->fec_state == dc_link_fec_ready) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
201
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
204
if (link->fec_state == dc_link_fec_enabled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
206
link->fec_state = dc_link_fec_ready;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
42
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
44
void dpcd_write_rx_power_ctrl(struct dc_link *link, bool on)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
50
if (link->sync_lt_in_progress)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
53
core_link_write_dpcd(link, DP_SET_POWER, &state,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
59
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
65
link->cur_link_settings = *link_settings;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
66
link->dc->hwss.enable_dp_link_output(link, link_res, signal,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
68
dpcd_write_rx_power_ctrl(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
71
void dp_disable_link_phy(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
75
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
77
if (!link->wa_flags.dp_keep_receiver_powered &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
78
!link->skip_implict_edp_power_control &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
79
link->type != dc_connection_none)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
80
dpcd_write_rx_power_ctrl(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
82
dc->hwss.disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
84
memset(&link->cur_link_settings, 0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
85
sizeof(link->cur_link_settings));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
88
dc->clk_mgr->funcs->notify_link_rate_change(dc->clk_mgr, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
91
static inline bool is_immediate_downstream(struct dc_link *link, uint32_t offset)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
93
return (dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt) ==
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c
98
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.h
31
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.h
37
void dp_disable_link_phy(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.h
42
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.h
48
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.h
52
enum dc_status dp_set_fec_ready(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.h
55
void dp_set_fec_enable(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.h
58
void dpcd_write_rx_power_ctrl(struct dc_link *link, bool on);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1005
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1017
static enum link_training_result dpcd_exit_training_mode(struct dc_link *link, enum dp_link_encoding encoding)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1022
uint8_t lttpr_count = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1029
status = dpcd_set_training_pattern(link, DP_TRAINING_PATTERN_VIDEOIDLE);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1031
if (dp_check_dpcd_reqeust_status(link, status))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1037
if ((core_link_read_dpcd(link, DP_SINK_STATUS, &sink_status, 1) == DC_OK) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1047
enum dc_status dpcd_configure_channel_coding(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1056
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1069
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1077
link, training_pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1080
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1094
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1113
if (link->ep_type == DISPLAY_ENDPOINT_PHY &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1116
link->dpcd_caps.max_ln_count.bits.POST_LT_ADJ_REQ_SUPPORTED;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1119
status = core_link_write_dpcd(link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1124
status = core_link_write_dpcd(link, DP_LANE_COUNT_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1129
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_13 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1136
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1139
core_link_read_dpcd(link, DP_SUPPORTED_LINK_RATES,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1142
status = core_link_write_dpcd(link, DP_LINK_BW_SET, &rate, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1146
status = core_link_write_dpcd(link, DP_LINK_RATE_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1153
status = core_link_write_dpcd(link, DP_LINK_BW_SET, &rate, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1184
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1196
status = core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1226
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1246
dp_training_pattern_to_dpcd_training_pattern(link, pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1249
dp_initialize_scrambling_data_symbols(link, pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1254
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1256
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1326
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1332
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1340
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1347
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1353
void start_clock_recovery_pattern_early(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1360
dp_set_hw_training_pattern(link, link_res, lt_settings->pattern_for_cr, offset);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1361
dp_set_hw_lane_settings(link, link_res, lt_settings, offset);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1366
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1372
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1378
pattern_param.dp_panel_mode = dp_get_panel_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1381
link_hwss->ext.set_dp_link_test_pattern(link, link_res, &pattern_param);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1385
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1415
dp_set_hw_test_pattern(link, link_res, test_pattern, NULL, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1421
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1447
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1483
dp_set_drive_settings(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1509
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1517
dp_set_hw_test_pattern(link, link_res, DP_TEST_PATTERN_VIDEO_MODE, NULL, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1524
if (link->dpcd_caps.max_ln_count.bits.POST_LT_ADJ_REQ_SUPPORTED != 1 ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1529
if (link->connector_signal != SIGNAL_TYPE_EDP && status == LINK_TRAINING_SUCCESS) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1531
if (!link->skip_fallback_on_link_loss)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1532
status = dp_check_link_loss_status(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1538
perform_post_lt_adj_req_sequence(link, link_res, lt_settings) == false)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1546
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1555
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1567
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1573
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1574
&link->preferred_training_settings,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1578
dpcd_exit_training_mode(link, encoding);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1581
dpcd_configure_lttpr_mode(link, &lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1583
dp_set_fec_ready(link, link_res, lt_settings.should_set_fec_ready);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1584
dpcd_configure_channel_coding(link, &lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1590
if (((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) == AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN) && encoding == DP_8b_10b_ENCODING)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1591
status = dp_perform_fixed_vs_pe_training_sequence(link, link_res, &lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1593
status = dp_perform_8b_10b_link_training(link, link_res, &lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1595
status = dp_perform_128b_132b_link_training(link, link_res, &lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1600
if ((dpcd_exit_training_mode(link, encoding) != LINK_TRAINING_SUCCESS || status == LINK_TRAINING_ABORT) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1601
link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1602
dpia_training_abort(link, &lt_settings, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1606
status = dp_transition_to_video_idle(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1612
dp_log_training_result(link, &lt_settings, status);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1614
link->ctx->dc->debug_data.ltFailCount++;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1629
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1630
enum dp_panel_mode panel_mode = dp_get_panel_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1634
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1641
dp_trace_commit_lt_init(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1650
dp_trace_set_lt_start_timestamp(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1655
__func__, link->link_index, (unsigned int)j + 1, attempts,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1660
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1672
edp_set_panel_assr(link, pipe_ctx, &panel_mode, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1674
dp_set_panel_mode(link, panel_mode);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1676
if (link->aux_access_disabled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1677
dp_perform_link_training_skip_aux(link, &pipe_ctx->link_res, &cur_link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1680
if (!link->dc->config.consolidated_dpia_dp_lt && link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1682
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1689
dp_set_hw_test_pattern(link, &pipe_ctx->link_res, DP_TEST_PATTERN_VIDEO_MODE, NULL, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1693
link->verified_link_cap.link_rate = link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1694
link->verified_link_cap.lane_count = link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1695
dm_helpers_dp_mst_update_branch_bandwidth(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
170
CONN_MSG_LT(link, "%sx%d %s VS=%d, PE=%d, DS=%s",
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1700
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1706
dp_trace_lt_total_count_increment(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1707
dp_trace_lt_result_update(link, status, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1708
dp_trace_set_lt_end_timestamp(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1712
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1714
link->verified_link_cap.link_rate = link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1715
link->verified_link_cap.lane_count = link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1716
dm_helpers_dp_mst_update_branch_bandwidth(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1723
dp_trace_lt_fail_count_update(link, fail_count, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1724
if (link->ep_type == DISPLAY_ENDPOINT_PHY) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1732
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1734
!link->dc->config.enable_dpia_pre_training) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1744
__func__, link->link_index, (unsigned int)j + 1, attempts,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1750
__func__, link->link_index, (unsigned int)j + 1, attempts,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1755
dp_disable_link_phy(link, &pipe_ctx->link_res, signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1761
if (link_detect_connection_type(link, &type) && type == dc_connection_none) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1788
decide_fallback_link_setting(link, &max_link_settings,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
180
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1800
link_bw = dp_link_bandwidth_kbps(link, &cur_link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1808
__func__, link->link_index, req_bw, link_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
207
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
272
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
519
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
52
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
526
(link->skip_fallback_on_link_loss && retries));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
530
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
535
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
539
return dpia_get_eq_aux_rd_interval(link, lt_settings, offset);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
542
link->dpcd_caps.lttpr_caps.aux_rd_interval[offset - 1]);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
547
bool dp_check_dpcd_reqeust_status(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
550
return (status != DC_OK && link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
554
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
564
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
570
for (lane = 0; lane < link->cur_link_settings.lane_count; lane++) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
59
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
595
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
617
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
704
void dp_get_lttpr_mode_override(struct dc_link *link, enum lttpr_mode *override)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
706
if (!dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
709
if (link->dc->debug.lttpr_mode_override == LTTPR_MODE_TRANSPARENT) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
711
} else if (link->dc->debug.lttpr_mode_override == LTTPR_MODE_NON_TRANSPARENT) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
713
} else if (link->dc->debug.lttpr_mode_override == LTTPR_MODE_NON_LTTPR) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
720
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
727
if (!link->dp_ss_off && overrides->downspread != NULL)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
739
if (link->wa_flags.force_dp_ffe_preset && !dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
740
lt_settings->ffe_preset = &link->forced_dp_ffe_preset;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
744
if ((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
746
lt_settings->voltage_swing = &link->bios_forced_drive_settings.VOLTAGE_SWING;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
747
lt_settings->pre_emphasis = &link->bios_forced_drive_settings.PRE_EMPHASIS;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
780
if (link->preferred_training_settings.fec_enable != NULL)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
781
lt_settings->should_set_fec_ready = *link->preferred_training_settings.fec_enable;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
784
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && link->dc->debug.dpia_debug.bits.force_non_lttpr)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
787
dp_get_lttpr_mode_override(link, &lt_settings->lttpr_mode);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
802
enum dc_dp_training_pattern decide_eq_training_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
808
struct dpcd_caps *rx_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
813
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
814
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
839
enum lttpr_mode dp_decide_lttpr_mode(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
845
return dp_decide_8b_10b_lttpr_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
847
return dp_decide_128b_132b_lttpr_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
891
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
897
decide_8b_10b_training_settings(link, link_res, link_settings, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
899
decide_128b_132b_training_settings(link, link_res, link_settings, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
903
enum dc_status configure_lttpr_mode_transparent(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
908
return core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
915
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
925
const struct dc *dc = link->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
931
result = core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
939
link->dpcd_caps.lttpr_caps.mode = repeater_mode;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
947
result = core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
953
link->dpcd_caps.lttpr_caps.mode = repeater_mode;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
957
repeater_cnt = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
962
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && repeater_cnt > 0 && repeater_cnt < MAX_REPEATER_CNT)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
963
link->dpcd_caps.lttpr_caps.aux_rd_interval[--repeater_cnt] = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
969
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
971
(uint8_t *)&link->dpcd_caps.lttpr_caps.aux_rd_interval[repeater_id - 1],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
972
sizeof(link->dpcd_caps.lttpr_caps.aux_rd_interval[repeater_id - 1]));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
973
link->dpcd_caps.lttpr_caps.aux_rd_interval[repeater_id - 1] &= 0x7F;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
981
enum dc_status dpcd_configure_lttpr_mode(struct dc_link *link, struct link_training_settings *lt_settings)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
986
status = configure_lttpr_mode_transparent(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
989
status = configure_lttpr_mode_non_transparent(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
994
void repeater_training_done(struct dc_link *link, uint32_t offset)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
100
void start_clock_recovery_pattern_early(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
106
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
120
enum dc_dp_training_pattern decide_eq_training_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
124
enum lttpr_mode dp_decide_lttpr_mode(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
127
void dp_get_lttpr_mode_override(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
131
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
137
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
165
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
170
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
174
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
178
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
189
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
193
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
198
bool dp_check_dpcd_reqeust_status(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
40
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
46
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
52
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
59
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
64
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
70
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
74
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
81
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
89
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
92
enum dc_status configure_lttpr_mode_transparent(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
95
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.h
98
void repeater_training_done(struct dc_link *link, uint32_t offset);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
104
dpcd_set_lt_pattern_and_lane_settings(link, lt_settings,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
109
dp_wait_for_training_aux_rd_interval(link, aux_rd_interval);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
111
status = dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
115
dpcd_128b_132b_get_aux_rd_interval(link, &aux_rd_interval);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
127
dp_set_hw_lane_settings(link, link_res, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
128
dpcd_128b_132b_set_lane_settings(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
145
dp_wait_for_training_aux_rd_interval(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
148
status = dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
157
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
170
dpcd_set_training_pattern(link, lt_settings->pattern_for_cds);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
174
dp_wait_for_training_aux_rd_interval(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
177
status = dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
196
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
203
if (link->dc->debug.legacy_dp2_lt) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
206
decide_8b_10b_training_settings(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
210
return dp_perform_8b_10b_link_training(link, link_res, &legacy_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
213
dpcd_set_link_settings(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
216
result = dp_perform_128b_132b_channel_eq_done_sequence(link, link_res, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
222
result = dp_perform_128b_132b_cds_done_sequence(link, link_res, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
230
void decide_128b_132b_training_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
239
lt_settings->link_settings.link_spread = link->dp_ss_off ? LINK_SPREAD_DISABLED :
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
243
lt_settings->pattern_for_eq = decide_eq_training_pattern(link, link_res, link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
250
link->dpcd_caps.lttpr_caps.phy_repeater_cnt) + 1) * 20000;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
252
lt_settings->lttpr_mode = dp_decide_128b_132b_lttpr_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
257
enum lttpr_mode dp_decide_128b_132b_lttpr_mode(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
261
if (dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
37
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
40
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
43
enum dc_status status = core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
55
static void dpcd_128b_132b_get_aux_rd_interval(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
62
core_link_read_dpcd(link, DP_128B132B_TRAINING_AUX_RD_INTERVAL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
72
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
86
dp_set_hw_training_pattern(link, link_res, lt_settings->pattern_for_cr, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
89
dpcd_set_training_pattern(link, lt_settings->pattern_for_cr);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
92
dpcd_128b_132b_get_aux_rd_interval(link, &aux_rd_interval);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
93
dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
97
dp_set_hw_lane_settings(link, link_res, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
98
dp_set_hw_training_pattern(link, link_res, lt_settings->pattern_for_eq, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.h
32
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.h
36
void decide_128b_132b_training_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.h
41
enum lttpr_mode dp_decide_128b_132b_lttpr_mode(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
114
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
133
lt_settings->link_settings.link_spread = link->dp_ss_off ?
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
135
lt_settings->eq_pattern_time = get_eq_training_aux_rd_interval(link, link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
137
lt_settings->pattern_for_eq = decide_eq_training_pattern(link, link_res, link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
142
lt_settings->lttpr_mode = dp_decide_8b_10b_lttpr_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
143
lt_settings->cr_pattern_time = get_cr_training_aux_rd_interval(link, link_setting, lt_settings->lttpr_mode);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
149
if ((link->chip_caps & AMD_EXT_DISPLAY_PATH_CAPS__EXT_CHIP_MASK) ==
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
155
enum lttpr_mode dp_decide_8b_10b_lttpr_mode(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
157
bool is_lttpr_present = dp_is_lttpr_present(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
158
bool vbios_lttpr_force_non_transparent = link->dc->caps.vbios_lttpr_enable;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
159
bool vbios_lttpr_aware = link->dc->caps.vbios_lttpr_aware;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
174
if (link->dc->config.allow_lttpr_non_transparent_mode.bits.DP1_4A &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
175
link->dc->caps.extended_aux_timeout_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
184
static void set_link_settings_and_perform_early_tps2_retimer_pre_lt_sequence(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
207
dp_set_hw_training_pattern(link, link_res, DP_TRAINING_PATTERN_SEQUENCE_2, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
209
dp_set_hw_lane_settings(link, link_res, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
213
dpcd_set_link_settings(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
215
core_link_write_dpcd(link, DP_TRAINING_PATTERN_SET_PHY_REPEATER1 + closest_lttpr_address_offset, &dpcd_pattern.raw, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
221
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
242
if (!link->ctx->dc->work_arounds.lt_early_cr_pattern)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
243
dp_set_hw_training_pattern(link, link_res, lt_settings->pattern_for_cr, offset);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
256
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
266
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
272
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
280
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
287
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
294
if (dp_check_dpcd_reqeust_status(link, status))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
341
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
36
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
361
dp_set_hw_training_pattern(link, link_res, tr_pattern, offset);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
366
dp_set_hw_lane_settings(link, link_res, lt_settings, offset);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
375
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
379
dpcd_set_lane_settings(link, lt_settings, offset);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
382
wait_time_microsec = dp_get_eq_aux_rd_interval(link, lt_settings, offset, retries_ch_eq);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
385
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
392
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
399
if (dp_check_dpcd_reqeust_status(link, status))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
411
dp_check_interlane_aligned(dpcd_lane_status_updated, link, retries_ch_eq))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
424
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
430
uint8_t repeater_cnt = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
434
if (link->ctx->dc->work_arounds.lt_early_cr_pattern)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
435
start_clock_recovery_pattern_early(link, link_res, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
439
set_link_settings_and_perform_early_tps2_retimer_pre_lt_sequence(link, link_res, lt_settings, repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
441
dpcd_set_link_settings(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
451
status = perform_8b_10b_clock_recovery_sequence(link, link_res, lt_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
454
repeater_training_done(link, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
458
status = perform_8b_10b_channel_equalization_sequence(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
465
repeater_training_done(link, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
479
status = perform_8b_10b_clock_recovery_sequence(link, link_res, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
481
status = perform_8b_10b_channel_equalization_sequence(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
49
static int32_t get_cr_training_aux_rd_interval(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
58
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_12)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
60
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
64
else if (dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
78
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
86
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
91
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_12)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
93
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c
97
else if (dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.h
38
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.h
43
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.h
49
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.h
54
enum lttpr_mode dp_decide_8b_10b_lttpr_mode(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.h
57
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
32
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
34
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
41
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
46
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
47
&link->preferred_training_settings,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
53
dp_set_hw_training_pattern(link, link_res, lt_settings.pattern_for_cr, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
56
dp_set_hw_lane_settings(link, link_res, &lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
59
dp_wait_for_training_aux_rd_interval(link, lt_settings.cr_pattern_time);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
64
dp_set_hw_training_pattern(link, link_res, lt_settings.pattern_for_eq, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
67
dp_set_hw_lane_settings(link, link_res, &lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
70
dp_wait_for_training_aux_rd_interval(link, lt_settings.eq_pattern_time);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
75
dp_set_hw_test_pattern(link, link_res, DP_TEST_PATTERN_VIDEO_MODE, NULL, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.c
77
dp_log_training_result(link, &lt_settings, LINK_TRAINING_SUCCESS);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_auxless.h
32
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1001
lt_settings.lttpr_mode = dp_decide_lttpr_mode(link, &link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1004
result = dpia_configure_link(link, link_res, link_setting, &lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1009
repeater_cnt = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1016
result = dpia_training_cr_phase(link, link_res, &lt_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1021
result = dpia_training_eq_phase(link, link_res, &lt_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1026
result = dpia_training_end(link, &lt_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1038
if (!link->skip_fallback_on_link_loss)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1039
result = dp_check_link_loss_status(link, &lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1041
dpia_training_abort(link, &lt_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1043
dpia_training_end(link, &lt_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
108
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
112
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
117
dp_get_lttpr_mode_override(link, &lt_settings->lttpr_mode);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
119
status = dpcd_configure_channel_coding(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
120
if (status != DC_OK && link->is_hpd_pending)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
124
status = dpcd_configure_lttpr_mode(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
125
if (status != DC_OK && link->is_hpd_pending)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
129
status = dpcd_set_link_settings(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
130
if (status != DC_OK && link->is_hpd_pending)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
134
if (link->preferred_training_settings.fec_enable != NULL)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
135
fec_enable = *link->preferred_training_settings.fec_enable;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
138
status = dp_set_fec_ready(link, link_res, fec_enable);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
141
if (status != DC_OK && link->is_hpd_pending)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
148
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
159
if (!link->ddc->ddc_pin && !link->aux_access_disabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
160
(dm_helpers_dmub_set_config_sync(link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
161
link, &payload, &set_config_result) == -1)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
172
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
235
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
249
dp_training_pattern_to_dpcd_training_pattern(link, pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
252
dp_initialize_scrambling_data_symbols(link, pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
268
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
288
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
306
repeater_cnt = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
326
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
329
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
351
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
358
status = dpcd_set_lt_pattern(link, lt_settings->pattern_for_cr, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
371
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
374
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
382
status = dpcd_set_lane_settings(link, lt_settings, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
388
dp_wait_for_training_aux_rd_interval(link, wait_time_microsec);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
392
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
437
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
44
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
456
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
485
status = dpcd_set_lt_pattern(link, lt_settings->pattern_for_cr, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
492
dp_wait_for_training_aux_rd_interval(link, wait_time_microsec);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
496
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
539
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
555
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
563
result = dpia_training_cr_non_transparent(link, link_res, lt_settings, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
565
result = dpia_training_cr_transparent(link, link_res, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
583
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
609
repeater_cnt = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
627
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
634
status = dpcd_set_lt_pattern(link, tr_pattern, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
647
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
650
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
658
status = dpcd_set_lane_settings(link, lt_settings, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
670
wait_time_microsec = dpia_get_eq_aux_rd_interval(link, lt_settings, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
672
dp_wait_for_training_aux_rd_interval(link, wait_time_microsec);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
676
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
694
dp_is_symbol_locked(link->cur_link_settings.lane_count, dpcd_lane_status) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
708
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
729
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
743
wait_time_microsec = dpia_get_eq_aux_rd_interval(link, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
748
status = dpcd_set_lt_pattern(link, tr_pattern, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
755
dp_wait_for_training_aux_rd_interval(link, wait_time_microsec);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
759
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
777
dp_is_symbol_locked(link->cur_link_settings.lane_count, dpcd_lane_status)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
781
if (dp_is_interlane_aligned(dpcd_lane_status_updated) || (link->skip_fallback_on_link_loss && retries_eq)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
794
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
810
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
818
result = dpia_training_eq_non_transparent(link, link_res, lt_settings, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
820
result = dpia_training_eq_transparent(link, link_res, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
827
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
839
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
860
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
870
repeater_cnt = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
877
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
884
status = dpcd_clear_lt_pattern(link, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
892
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
902
status = dpcd_clear_lt_pattern(link, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
910
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
920
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
925
if (link->dc->debug.dpia_debug.bits.extend_aux_rd_interval)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
931
link->dpcd_caps.lttpr_caps.aux_rd_interval[hop - 1]);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
942
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
951
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
953
link->is_hpd_pending);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
956
if (link->is_hpd_pending)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
963
core_link_write_dpcd(link, dpcd_tps_offset, &data, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
964
core_link_write_dpcd(link, DP_LINK_BW_SET, &data, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
965
core_link_write_dpcd(link, DP_LANE_COUNT_SET, &data, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
967
if (!link->dc->config.consolidated_dpia_dp_lt)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
968
core_link_send_set_config(link, DPIA_SET_CFG_SET_LINK, data);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
972
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
98
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
982
repeater_cnt = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
985
dc_process_dmub_dpia_set_tps_notification(link->ctx->dc, link->link_index, pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
989
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.h
39
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.h
45
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.h
50
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.h
55
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
101
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
118
apply_toggle_rate_wa = ((link->vendor_specific_lttpr_link_rate_wa == target_rate) || (link->vendor_specific_lttpr_link_rate_wa == 0));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
125
if (link->ctx->dc->work_arounds.lt_early_cr_pattern)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
126
start_clock_recovery_pattern_early(link, link_res, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
129
dpcd_set_link_settings(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
134
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
140
link->vendor_specific_lttpr_link_rate_wa = target_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
147
repeater_cnt = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
151
status = perform_8b_10b_clock_recovery_sequence(link, link_res, lt_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
154
repeater_training_done(link, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
158
status = perform_8b_10b_channel_equalization_sequence(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
163
repeater_training_done(link, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
177
status = perform_8b_10b_clock_recovery_sequence(link, link_res, lt_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
179
status = perform_8b_10b_channel_equalization_sequence(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
190
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
196
link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
223
status = perform_fixed_vs_pe_nontransparent_training_sequence(link, link_res, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
229
pre_disable_intercept_delay_ms = link->dc->debug.fixed_vs_aux_delay_config_wa;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
233
pre_disable_intercept_delay_ms = link->dc->debug.fixed_vs_aux_delay_config_wa * 2;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
238
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
240
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
242
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
246
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
262
link->dpcd_caps.max_ln_count.bits.POST_LT_ADJ_REQ_SUPPORTED;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
265
core_link_write_dpcd(link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
268
core_link_write_dpcd(link, DP_LANE_COUNT_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
274
if (memcmp("\x00\x00\x00", &link->dpcd_caps.lttpr_caps.lttpr_ieee_oui[0], 3) == 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
278
if (link->vendor_specific_lttpr_link_rate_wa == rate || link->vendor_specific_lttpr_link_rate_wa == 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
280
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
286
link->vendor_specific_lttpr_link_rate_wa = rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
289
core_link_write_dpcd(link, DP_LINK_BW_SET, &rate, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
301
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
306
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
308
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
310
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
312
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
314
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
345
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
356
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
364
if (link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
369
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
385
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
387
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
391
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
400
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
407
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
42
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
45
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
460
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
463
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
471
dp_set_hw_training_pattern(link, link_res, tr_pattern, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
478
dp_set_hw_lane_settings(link, link_res, lt_settings, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
491
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
493
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
503
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
507
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
512
dpcd_set_lane_settings(link, lt_settings, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
518
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
525
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
55
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
58
link_query_fixed_vs_pe_retimer(link->ddc, &dprx_vs, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
60
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
63
link_query_fixed_vs_pe_retimer(link->ddc, &dprx_pe, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
73
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
90
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
93
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c
96
link_configure_fixed_vs_pe_retimer(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.h
32
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.h
37
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.h
42
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
198
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
219
status = internal_link_read_dpcd(link, partitioned_address, &extended_data[data_index], partition_size);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
231
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
242
status = internal_link_write_dpcd(link, address, &data[data_index], partition_size);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
45
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
50
if (!link->aux_access_disabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
51
!dm_helpers_dp_read_dpcd(link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
52
link, address, data, size)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
60
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
65
if (!link->aux_access_disabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
66
!dm_helpers_dp_write_dpcd(link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
67
link, address, data, size)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.h
32
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.h
38
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1004
if (!link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1008
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
101
enum dp_panel_mode dp_get_panel_mode(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1012
if (!(link->replay_settings.config.replay_supported))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1015
link->replay_settings.config.replay_error_status.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1017
dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1024
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1027
replay_context.aux_inst = link->ddc->ddc_pin->hw_info.ddc_channel;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1028
replay_context.digbe_inst = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1029
replay_context.digfe_inst = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1049
replay_context.os_request_force_ffu = link->replay_settings.config.os_request_force_ffu;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1051
link->replay_settings.replay_feature_enabled =
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1052
replay->funcs->replay_copy_settings(replay, link, &replay_context, panel_inst);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1053
if (link->replay_settings.replay_feature_enabled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1057
link->replay_settings.config.replay_timing_sync_supported;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1059
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1064
alpm_config.bits.ENABLE = link->replay_settings.config.alpm_mode != DC_ALPM_UNSUPPORTED ? 1 : 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1066
if (link->replay_settings.config.alpm_mode == DC_ALPM_AUXLESS) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
107
if (link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1072
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1073
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1079
link->replay_settings.config.replay_video_conferencing_optimization_enabled = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
109
switch (link->dpcd_caps.branch_dev_id) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1090
bool edp_send_replay_cmd(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1094
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1101
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1103
if (dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1115
bool edp_set_coasting_vtotal(struct dc_link *link, uint32_t coasting_vtotal, uint16_t frame_skip_number)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1117
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1124
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1127
if (coasting_vtotal && (link->replay_settings.coasting_vtotal != coasting_vtotal ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1128
link->replay_settings.frame_skip_number != frame_skip_number)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1130
link->replay_settings.coasting_vtotal = coasting_vtotal;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1131
link->replay_settings.frame_skip_number = frame_skip_number;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1137
bool edp_replay_residency(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1140
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1144
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1150
if (replay != NULL && link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1158
bool edp_set_replay_power_opt_and_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1161
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1165
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1169
if (power_opts && link->replay_settings.replay_power_opt_active != *power_opts &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1171
(link->replay_settings.coasting_vtotal != coasting_vtotal ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1172
link->replay_settings.frame_skip_number != frame_skip_number))) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1173
if (link->replay_settings.replay_feature_enabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1177
link->replay_settings.replay_power_opt_active = *power_opts;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1178
link->replay_settings.coasting_vtotal = coasting_vtotal;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1179
link->replay_settings.frame_skip_number = frame_skip_number;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
118
link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1189
static struct abm *get_abm_from_stream_res(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1192
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1199
if (stream && stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1207
int edp_get_backlight_level(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1209
struct abm *abm = get_abm_from_stream_res(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
121
link->dpcd_caps.
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1210
struct panel_cntl *panel_cntl = link->panel_cntl;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1211
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1226
int edp_get_target_backlight_pwm(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1228
struct abm *abm = get_abm_from_stream_res(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1236
bool is_smartmux_suported(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1238
if (link->dc->caps.is_apu)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1240
if (!link->dc->config.smart_mux_version)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1246
static void edp_set_assr_enable(const struct dc *pDC, struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1260
link_enc_index = link->link_enc->transmitter - TRANSMITTER_UNIPHY_A;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1268
phy_type = ((dp_get_panel_mode(link) == DP_PANEL_MODE_EDP) ? 1 : 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1270
phy_id = resource_transmitter_to_phy_idx(pDC, link->link_enc->transmitter);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1283
void edp_set_panel_assr(struct dc_link *link, struct pipe_ctx *pipe_ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1292
if (link->dc->config.use_assr_psp_message) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1293
edp_set_assr_enable(link->dc, link, link_res, enable);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1302
result = cp_psp->funcs.enable_assr(cp_psp->handle, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1304
if (!result && link->panel_mode != DP_PANEL_MODE_EDP)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
132
if (strncmp(link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
135
link->dpcd_caps.
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
145
if (link->dpcd_caps.panel_mode_edp &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
146
(link->connector_signal == SIGNAL_TYPE_EDP ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
147
(link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
148
link->is_internal_display))) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
155
bool edp_set_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
160
if (!link || (link->connector_signal != SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
161
link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
164
if (link->is_dds && !link->dpcd_caps.panel_luminance_control)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
168
if (link->backlight_control_type == BACKLIGHT_CONTROL_VESA_AUX &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
169
!link->dc->caps.dmub_caps.aux_backlight_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
180
core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_CONTROL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
184
core_link_write_dpcd(link, DP_SOURCE_BACKLIGHT_CONTROL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
188
core_link_read_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
193
if (core_link_write_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
198
if (core_link_write_dpcd(link, DP_EDP_PANEL_TARGET_LUMINANCE_VALUE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
202
} else if (link->backlight_control_type == BACKLIGHT_CONTROL_AMD_AUX) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
211
if (link->dpcd_sink_ext_caps.bits.oled == 1)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
215
core_link_read_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
220
core_link_write_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
224
if (core_link_write_dpcd(link, DP_SOURCE_BACKLIGHT_LEVEL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
229
if (core_link_write_dpcd(link, DP_SOURCE_BACKLIGHT_CONTROL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
237
bool edp_get_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
245
if (!link || (link->connector_signal != SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
246
link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
249
if (link->is_dds)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
251
if (!core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_CURRENT_PEAK,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
269
bool edp_backlight_enable_aux(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
273
if (!link || (link->connector_signal != SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
274
link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
277
if (link->is_dds)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
279
if (core_link_write_dpcd(link, DP_SOURCE_BACKLIGHT_ENABLE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
288
static bool read_default_bl_aux(struct dc_link *link, uint32_t *backlight_millinits)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
290
if (!link || (link->connector_signal != SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
291
link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
294
if (!link->dpcd_caps.panel_luminance_control) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
295
if (!core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_LEVEL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
303
if (!core_link_read_dpcd(link, DP_EDP_PANEL_TARGET_LUMINANCE_VALUE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
312
bool set_default_brightness_aux(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
316
if (link && link->dpcd_sink_ext_caps.bits.oled == 1) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
317
if (!read_default_bl_aux(link, &default_backlight))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
323
return edp_set_backlight_level_nits(link, true,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
329
bool edp_is_ilr_optimization_enabled(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
331
if (link->dpcd_caps.edp_supported_link_rates_count == 0 || !link->panel_config.ilr.optimize_edp_link_rate)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
336
enum dc_link_rate get_max_edp_link_rate(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
339
enum dc_link_rate max_non_ilr_rate = dp_get_max_link_cap(link).link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
341
for (int i = 0; i < link->dpcd_caps.edp_supported_link_rates_count; i++) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
342
if (max_ilr_rate < link->dpcd_caps.edp_supported_link_rates[i])
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
343
max_ilr_rate = link->dpcd_caps.edp_supported_link_rates[i];
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
349
bool edp_is_ilr_optimization_required(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
358
ASSERT(link || crtc_timing); // invalid input
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
360
if (!edp_is_ilr_optimization_enabled(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
365
core_link_read_dpcd(link, DP_LINK_BW_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
374
core_link_read_dpcd(link, DP_LINK_RATE_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
378
core_link_read_dpcd(link, DP_LANE_COUNT_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
381
req_bw = dc_bandwidth_in_kbps_from_timing(crtc_timing, dc_link_get_highest_encoding_format(link));
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
384
edp_decide_link_settings(link, &link_setting, req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
386
decide_edp_link_settings_with_dsc(link, &link_setting, req_bw, LINK_RATE_UNKNOWN);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
388
if (link->dpcd_caps.edp_supported_link_rates[link_rate_set] != link_setting.link_rate ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
398
void edp_panel_backlight_power_on(struct dc_link *link, bool wait_for_hpd)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
400
if (link->connector_signal != SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
403
link->dc->hwss.edp_power_control(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
405
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
406
if (link->dc->hwss.edp_backlight_control)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
407
link->dc->hwss.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
410
void edp_set_panel_power(struct dc_link *link, bool powerOn)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
414
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
415
link->dc->hwss.edp_power_control(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
416
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
419
if (link->dc->hwss.edp_backlight_control)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
420
link->dc->hwss.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
423
dpcd_write_rx_power_ctrl(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
426
dpcd_write_rx_power_ctrl(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
429
if (link->dc->hwss.edp_backlight_control)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
430
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
433
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
434
link->dc->hwss.edp_power_control(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
438
bool edp_wait_for_t12(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
44
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
440
if (link->connector_signal == SIGNAL_TYPE_EDP && link->dc->hwss.edp_wait_for_T12) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
441
link->dc->hwss.edp_wait_for_T12(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
449
void edp_add_delay_for_T9(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
451
if (link && link->panel_config.pps.extra_delay_backlight_off > 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
452
fsleep(link->panel_config.pps.extra_delay_backlight_off * 1000);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
455
bool edp_receiver_ready_T9(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
462
result = core_link_read_dpcd(link, DP_EDP_DPCD_REV, &edpRev, sizeof(edpRev));
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
468
result = core_link_read_dpcd(link, DP_SINK_STATUS, &sinkstatus, sizeof(sinkstatus));
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
480
bool edp_receiver_ready_T7(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
491
result = core_link_read_dpcd(link, DP_EDP_DPCD_REV, &edpRev, sizeof(edpRev));
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
495
enter_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
498
result = core_link_read_dpcd(link, DP_SINK_STATUS, &sinkstatus, sizeof(sinkstatus));
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
504
finish_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
505
time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx, finish_timestamp, enter_timestamp);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
509
if (link && link->panel_config.pps.extra_t7_ms > 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
510
fsleep(link->panel_config.pps.extra_t7_ms * 1000);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
515
bool edp_power_alpm_dpcd_enable(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
520
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
524
ret = dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
531
static struct pipe_ctx *get_pipe_from_link(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
534
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
539
if (dc->current_state->res_ctx.pipe_ctx[i].stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
54
void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
549
bool edp_set_backlight_level(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
552
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
559
if (dc_is_embedded_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
560
struct pipe_ctx *pipe_ctx = get_pipe_from_link(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
562
if (link->panel_cntl)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
563
link->panel_cntl->stored_backlight_registers.USER_LEVEL = backlight_pwm_u16_16;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
584
bool edp_set_psr_allow_active(struct dc_link *link, const bool *allow_active,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
587
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
595
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
598
if ((allow_active != NULL) && (*allow_active == true) && (link->type == dc_connection_none)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
604
if (power_opts && link->psr_settings.psr_power_opt != *power_opts) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
605
link->psr_settings.psr_power_opt = *power_opts;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
607
if (psr != NULL && link->psr_settings.psr_feature_enabled && psr->funcs->psr_set_power_opt)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
608
psr->funcs->psr_set_power_opt(psr, link->psr_settings.psr_power_opt, panel_inst);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
611
if (psr != NULL && link->psr_settings.psr_feature_enabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
616
if (allow_active && link->psr_settings.psr_allow_active != *allow_active) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
617
link->psr_settings.psr_allow_active = *allow_active;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
619
if (!link->psr_settings.psr_allow_active)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
622
if (psr != NULL && link->psr_settings.psr_feature_enabled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
623
psr->funcs->psr_enable(psr, link->psr_settings.psr_allow_active, wait, panel_inst);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
625
link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
626
dmcu->funcs->set_psr_enable(dmcu, link->psr_settings.psr_allow_active, wait);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
633
bool edp_get_psr_state(const struct dc_link *link, enum dc_psr_state *state)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
635
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
640
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
643
if (psr != NULL && link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
645
else if (dmcu != NULL && link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
652
transmitter_to_phy_id(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
654
struct dc_context *dc_ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
655
enum transmitter transmitter_value = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
688
bool edp_setup_psr(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
703
if (!link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
711
if (link->panel_config.psr.read_psrcap_again) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
713
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
714
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
716
&link->dpcd_caps.psr_info.psr_version,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
717
sizeof(link->dpcd_caps.psr_info.psr_version));
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
723
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
724
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
729
if (link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
732
dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
739
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
74
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
748
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
770
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
771
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
776
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
777
edp_power_alpm_dpcd_enable(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
787
if (link->psr_settings.psr_vtotal_control_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
790
core_link_write_dpcd(link, DP_SINK_PSR_ACTIVE_VTOTAL_CONTROL_MODE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
795
psr_context->channel = link->ddc->ddc_pin->hw_info.ddc_channel;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
796
psr_context->transmitterId = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
797
psr_context->engineId = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
815
psr_context->smuPhyId = transmitter_to_phy_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
834
link->dc->res_pool->timing_generator_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
849
if (link->ctx->asic_id.chip_family >= FAMILY_RV) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
850
switch (link->ctx->asic_id.chip_family) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
86
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
890
link->psr_settings.psr_feature_enabled = psr->funcs->psr_copy_settings(psr,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
891
link, psr_context, panel_inst);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
892
link->psr_settings.psr_power_opt = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
893
link->psr_settings.psr_allow_active = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
895
link->psr_settings.psr_feature_enabled = dmcu->funcs->setup_psr(dmcu, link, psr_context);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
901
if (link->psr_settings.psr_feature_enabled == 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
908
void edp_get_psr_residency(const struct dc_link *link, uint32_t *residency, enum psr_residency_mode mode)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
910
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
914
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
918
if (psr != NULL && link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
923
bool edp_set_sink_vtotal_in_psr_active(const struct dc_link *link, uint16_t psr_vtotal_idle, uint16_t psr_vtotal_su)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
925
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
928
if (psr == NULL || !link->psr_settings.psr_feature_enabled || !link->psr_settings.psr_vtotal_control_support)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
936
bool edp_set_replay_allow_active(struct dc_link *link, const bool *allow_active,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
939
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
94
link->panel_mode = panel_mode;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
946
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
950
if (power_opts && link->replay_settings.replay_power_opt_active != *power_opts) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
951
if (replay != NULL && link->replay_settings.replay_feature_enabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
954
link->replay_settings.replay_power_opt_active = *power_opts;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
959
if (allow_active && link->replay_settings.replay_allow_active != *allow_active) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
96
link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
962
if (replay != NULL && link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
964
link->replay_settings.replay_allow_active = *allow_active;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
97
link->dpcd_caps.panel_mode_edp,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
970
bool edp_get_replay_state(const struct dc_link *link, uint64_t *state)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
972
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
977
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
980
if (replay != NULL && link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
988
bool edp_setup_freesync_replay(struct dc_link *link, const struct dc_stream_state *stream)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
30
enum dp_panel_mode dp_get_panel_mode(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
31
void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
32
bool set_default_brightness_aux(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
33
bool is_smartmux_suported(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
34
void edp_panel_backlight_power_on(struct dc_link *link, bool wait_for_hpd);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
35
int edp_get_backlight_level(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
36
bool edp_get_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
39
bool edp_set_backlight_level(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
41
bool edp_set_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
45
int edp_get_target_backlight_pwm(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
46
bool edp_get_psr_state(const struct dc_link *link, enum dc_psr_state *state);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
47
bool edp_set_psr_allow_active(struct dc_link *link, const bool *allow_active,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
49
bool edp_setup_psr(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
52
bool edp_set_sink_vtotal_in_psr_active(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
54
void edp_get_psr_residency(const struct dc_link *link, uint32_t *residency, enum psr_residency_mode mode);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
57
bool edp_send_replay_cmd(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
60
bool edp_set_coasting_vtotal(struct dc_link *link, uint32_t coasting_vtotal, uint16_t frame_skip_number);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
61
bool edp_replay_residency(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
63
bool edp_get_replay_state(const struct dc_link *link, uint64_t *state);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
64
bool edp_set_replay_power_opt_and_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
66
bool edp_wait_for_t12(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
67
bool edp_is_ilr_optimization_required(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
69
bool edp_is_ilr_optimization_enabled(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
70
enum dc_link_rate get_max_edp_link_rate(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
71
bool edp_backlight_enable_aux(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
72
void edp_add_delay_for_T9(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
73
bool edp_receiver_ready_T9(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
74
bool edp_receiver_ready_T7(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
75
bool edp_power_alpm_dpcd_enable(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
76
bool edp_setup_freesync_replay(struct dc_link *link, const struct dc_stream_state *stream);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
77
void edp_set_panel_power(struct dc_link *link, bool powerOn);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h
78
void edp_set_panel_assr(struct dc_link *link, struct pipe_ctx *pipe_ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
106
return link->link_enc->funcs->program_hpd_filter(link->link_enc, delay_on_connect_in_ms, delay_on_disconnect_in_ms);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
132
enum hpd_source_id get_hpd_line(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
140
if (link->ctx && link->ctx->dce_version <= DCN_VERSION_4_01) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
141
hpd = link_get_hpd_gpio(link->ctx->dc_bios, link->link_id,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
142
link->ctx->gpio_service);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
36
bool link_get_hpd_state(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
38
if (link->link_enc)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
39
return link->link_enc->funcs->get_hpd_state(link->link_enc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
44
void link_enable_hpd(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
46
if (link->link_enc)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
47
link->link_enc->funcs->enable_hpd(link->link_enc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
50
void link_disable_hpd(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
52
if (link->link_enc)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
53
link->link_enc->funcs->disable_hpd(link->link_enc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
56
void link_enable_hpd_filter(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
59
link->is_hpd_filter_disabled = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
60
program_hpd_filter(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
62
link->is_hpd_filter_disabled = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
63
if (link->link_enc)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
64
link->link_enc->funcs->program_hpd_filter(link->link_enc, 0, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
68
bool program_hpd_filter(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
73
if (link->is_hpd_filter_disabled || !link->link_enc) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
74
ASSERT(link->link_enc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
79
switch (link->connector_signal) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.h
31
enum hpd_source_id get_hpd_line(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.h
41
bool program_hpd_filter(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.h
45
bool dpia_query_hpd_status(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.h
46
bool link_get_hpd_state(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.h
50
void link_enable_hpd(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.h
51
void link_disable_hpd(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.h
52
void link_enable_hpd_filter(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
1012
if (j >= 0 && link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT)
drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
978
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
979
enum engine_id preferred_engine = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
984
if (dc_is_rgb_signal(stream->signal) && link->link_enc->analog_engine != ENGINE_ID_UNKNOWN)
drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
985
preferred_engine = link->link_enc->analog_engine;
drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
1213
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
1223
link->link_enc->preferred_engine)
drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
897
pixel_clk_params->encoder_object_id = stream->link->link_enc->id;
drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
899
pixel_clk_params->encoder_object_id = stream->link->link_enc->analog_id;
drivers/gpu/drm/amd/display/dc/resource/dce112/dce112_resource.c
855
switch (stream->link->link_enc->transmitter) {
drivers/gpu/drm/amd/display/dc/resource/dce112/dce112_resource.c
980
if (stream && stream->link && stream->link->link_enc)
drivers/gpu/drm/amd/display/dc/resource/dce120/dce120_resource.c
1274
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1034
pixel_clk_params->encoder_object_id = stream->link->link_enc->id;
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1268
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1280
if (link->ep_type == DISPLAY_ENDPOINT_PHY && pool->stream_enc[i]->id ==
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1281
link->link_enc->preferred_engine)
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1284
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && pool->stream_enc[i]->id ==
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1285
link->dpia_preferred_eng_id)
drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
1257
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
1268
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
2787
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn201/dcn201_resource.c
1091
static void dcn201_link_init(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/resource/dcn201/dcn201_resource.c
1093
if (link->ctx->dc_bios->integrated_info)
drivers/gpu/drm/amd/display/dc/resource/dcn201/dcn201_resource.c
1094
link->dp_ss_off = !link->ctx->dc_bios->integrated_info->dp_ss_control;
drivers/gpu/drm/amd/display/dc/resource/dcn30/dcn30_resource.c
2637
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn302/dcn302_resource.c
1536
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn303/dcn303_resource.c
1468
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2279
enum dc_status dcn31_update_dc_state_for_encoder_switch(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2285
struct dc_state *state = link->dc->current_state;
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2289
if (link->dc->hwss.calculate_pix_rate_divider) {
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2291
if (state->streams[i] && state->streams[i]->link && state->streams[i]->link == link)
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2292
link->dc->hwss.calculate_pix_rate_divider((struct dc *)link->dc, state, state->streams[i]);
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2296
if (link->dc->res_pool->funcs->build_pipe_pix_clk_params)
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2297
link->dc->res_pool->funcs->build_pipe_pix_clk_params(&pipes[i]);
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.h
69
enum dc_status dcn31_update_dc_state_for_encoder_switch(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c
2557
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource_helpers.c
237
if (pipe->stream && pipe->stream->link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED) {
drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c
2051
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
1733
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
1743
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
2249
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/include/hdcp_msg_types.h
100
enum hdcp_link link;
drivers/gpu/drm/amd/display/include/logger_interface.h
103
#define CONN_MSG_LT(link, ...) \
drivers/gpu/drm/amd/display/include/logger_interface.h
105
(void)(link); \
drivers/gpu/drm/amd/display/include/logger_interface.h
109
#define CONN_MSG_MODE(link, ...) \
drivers/gpu/drm/amd/display/include/logger_interface.h
111
(void)(link); \
drivers/gpu/drm/amd/display/include/logger_interface.h
91
#define CONN_DATA_DETECT(link, hex_data, hex_len, ...) \
drivers/gpu/drm/amd/display/include/logger_interface.h
93
(void)(link); \
drivers/gpu/drm/amd/display/include/logger_interface.h
97
#define CONN_DATA_LINK_LOSS(link, hex_data, hex_len, ...) \
drivers/gpu/drm/amd/display/include/logger_interface.h
99
(void)(link); \
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
32
const uint8_t retry_limit = hdcp->connection.link.adjust.retry_limit;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
321
struct mod_hdcp_link *link, struct mod_hdcp_display *display,
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
361
hdcp->connection.link = *link;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
371
callback_in_ms(hdcp->connection.link.adjust.auth_delay * 1000, output);
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
414
callback_in_ms(hdcp->connection.link.adjust.auth_delay * 1000,
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
44
hdcp->connection.link.adjust.hdcp1.disable = 1;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
442
if (memcmp(link_adjust, &hdcp->connection.link.adjust,
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
450
if (memcmp(link_adjust, &hdcp->connection.link.adjust,
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
471
hdcp->connection.link.adjust = *link_adjust;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
48
hdcp->connection.link.adjust.hdcp2.disable = 1;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
499
query->link = &hdcp->connection.link;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
508
if (query->link->adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_0)
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
510
else if (query->link->adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_1)
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
68
!hdcp->connection.link.adjust.hdcp1.disable &&
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
88
!hdcp->connection.link.adjust.hdcp2.disable &&
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h
168
struct mod_hdcp_link link;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h
395
return (hdcp->connection.link.mode == MOD_HDCP_MODE_DP);
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h
400
return (hdcp->connection.link.mode == MOD_HDCP_MODE_DP &&
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h
401
hdcp->connection.link.dp.mst_enabled);
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h
406
return (hdcp->connection.link.mode == MOD_HDCP_MODE_DEFAULT);
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_execution.c
242
if (!hdcp->connection.link.adjust.hdcp1.postpone_encryption)
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
158
struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
233
} else if (conn->hdcp1_retry_count < conn->link.adjust.hdcp1.min_auth_retries_wa) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
35
struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c
484
if (hdcp->connection.link.adjust.hdcp2.use_fw_locality_check) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
35
struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
389
struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_ddc.c
683
uint32_t cp_irq_addrs = (hdcp->connection.link.dp.rev >= 0x14)
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
127
struct mod_hdcp_link *link = &hdcp->connection.link;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
145
dtm_cmd->dtm_in_message.topology_update_v2.ddc_line = link->ddc_line;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
146
dtm_cmd->dtm_in_message.topology_update_v2.dig_be = link->dig_be;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
149
dtm_cmd->dtm_in_message.topology_update_v2.is_assr = link->dp.assr_enabled;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
174
struct mod_hdcp_link *link = &hdcp->connection.link;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
192
dtm_cmd->dtm_in_message.topology_update_v3.ddc_line = link->ddc_line;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
193
dtm_cmd->dtm_in_message.topology_update_v3.link_enc = link->link_enc_idx;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
196
dtm_cmd->dtm_in_message.topology_update_v3.is_assr = link->dp.assr_enabled;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
203
dtm_cmd->dtm_in_message.topology_update_v3.phy_id = link->phy_idx;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
204
dtm_cmd->dtm_in_message.topology_update_v3.link_hdcp_cap = link->hdcp_supported_informational;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
205
dtm_cmd->dtm_in_message.topology_update_v3.dio_output_type = link->dp.usb4_enabled ?
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
208
dtm_cmd->dtm_in_message.topology_update_v3.dio_output_id = link->dio_output_id;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
524
if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_0)
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
527
else if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_1)
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
530
else if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_MAX)
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h
317
const struct mod_hdcp_link *link;
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h
341
struct mod_hdcp_link *link, struct mod_hdcp_display *display,
drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
309
if (stream->link->psr_settings.psr_version == DC_PSR_VERSION_SU_1)
drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
311
else if (stream->link->replay_settings.config.replay_supported)
drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
313
else if (stream->link->psr_settings.psr_version == DC_PSR_VERSION_1)
drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
321
if (stream->link->replay_settings.config.replay_version == DC_VESA_PANEL_REPLAY)
drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
595
if (stream && stream->link->replay_settings.config.replay_supported &&
drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
596
stream->link->replay_settings.config.replay_version == DC_VESA_PANEL_REPLAY)
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1012
void set_replay_defer_update_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1016
link->replay_settings.defer_update_coasting_vtotal_table[type] = vtotal;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1019
void update_replay_coasting_vtotal_from_defer(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1022
link->replay_settings.coasting_vtotal_table[type] =
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1023
link->replay_settings.defer_update_coasting_vtotal_table[type];
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1024
link->replay_settings.frame_skip_number_table[type] =
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1025
link->replay_settings.defer_frame_skip_number_table[type];
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1028
void set_replay_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1032
link->replay_settings.coasting_vtotal_table[type] = vtotal;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1035
void set_replay_low_rr_full_screen_video_src_vtotal(struct dc_link *link, uint16_t vtotal)
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1037
link->replay_settings.low_rr_full_screen_video_pseudo_vtotal = vtotal;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1040
void calculate_replay_link_off_frame_count(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1046
if (!link || link->replay_settings.config.replay_version != DC_FREESYNC_REPLAY)
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1049
max_deviation_line = link->dpcd_caps.pr_info.max_deviation_line;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1050
pixel_deviation_per_line = link->dpcd_caps.pr_info.pixel_deviation_per_line;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1057
link->replay_settings.link_off_frame_count = max_link_off_frame_count;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1082
void reset_replay_dsync_error_count(struct dc_link *link)
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
1084
link->replay_settings.replay_desync_error_fail_count = 0;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
818
bool is_psr_su_specific_panel(struct dc_link *link)
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
821
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
878
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
885
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
914
link->psr_settings.psr_frame_capture_indication_req = true;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
915
link->psr_settings.psr_sdp_transmit_line_num_deadline = num_vblank_lines;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
920
link->psr_settings.psr_frame_capture_indication_req = false;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
921
link->psr_settings.psr_sdp_transmit_line_num_deadline = sdp_tx_deadline_in_us / line_time_in_us;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
924
psr_config->psr_sdp_transmit_line_num_deadline = link->psr_settings.psr_sdp_transmit_line_num_deadline;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
928
psr_config->psr_frame_capture_indication_req = link->psr_settings.psr_frame_capture_indication_req;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
930
!link->dpcd_caps.psr_info.psr_dpcd_caps.bits.LINK_TRAINING_ON_EXIT_NOT_REQUIRED;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
933
void init_replay_config(struct dc_link *link, struct replay_config *pr_config)
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
935
link->replay_settings.config = *pr_config;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
943
bool psr_su_set_dsc_slice_height(struct dc *dc, struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
951
if (!(link->connector_signal & SIGNAL_TYPE_EDP) ||
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
953
link->panel_config.dsc.disable_dsc_edp ||
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
954
!link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT ||
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
978
void set_replay_frame_skip_number(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
987
if (link == NULL)
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
990
if (false == link->replay_settings.config.frame_skip_supported)
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
997
frame_skip_number_array = link->replay_settings.defer_frame_skip_number_table;
drivers/gpu/drm/amd/display/modules/power/power_helpers.c
999
frame_skip_number_array = link->replay_settings.frame_skip_number_table;
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
56
void init_replay_config(struct dc_link *link, struct replay_config *pr_config);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
57
void set_replay_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
60
void set_replay_defer_update_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
63
void set_replay_frame_skip_number(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
68
void update_replay_coasting_vtotal_from_defer(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
70
void set_replay_low_rr_full_screen_video_src_vtotal(struct dc_link *link, uint16_t vtotal);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
71
void calculate_replay_link_off_frame_count(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
74
bool is_psr_su_specific_panel(struct dc_link *link);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
76
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
80
bool psr_su_set_dsc_slice_height(struct dc *dc, struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
86
void reset_replay_dsync_error_count(struct dc_link *link);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
87
void change_replay_to_psr(struct dc_link *link);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
88
void change_psr_to_replay(struct dc_link *link);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1002
phy_cfg.dp.lanes = mhdp->link.num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1014
cdns_mhdp_adjust_lt(mhdp, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1017
r = drm_dp_clock_recovery_ok(link_status, mhdp->link.num_lanes);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1021
if (drm_dp_channel_eq_ok(link_status, mhdp->link.num_lanes)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1046
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1074
*cr_done = drm_dp_clock_recovery_ok(after_cr, mhdp->link.num_lanes);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1076
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1123
phy_cfg.dp.lanes = mhdp->link.num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1135
cdns_mhdp_adjust_lt(mhdp, mhdp->link.num_lanes, 100,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1179
static void cdns_mhdp_lower_link_rate(struct cdns_mhdp_link *link)
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1181
switch (drm_dp_link_rate_to_bw_code(link->rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1183
link->rate = drm_dp_bw_code_to_link_rate(DP_LINK_BW_1_62);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1186
link->rate = drm_dp_bw_code_to_link_rate(DP_LINK_BW_2_7);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1189
link->rate = drm_dp_bw_code_to_link_rate(DP_LINK_BW_5_4);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1203
if (drm_dp_link_rate_to_bw_code(mhdp->link.rate) !=
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1207
cdns_mhdp_lower_link_rate(&mhdp->link);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1210
} else if (mhdp->link.num_lanes > 1) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1213
mhdp->link.num_lanes >>= 1;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1214
mhdp->link.rate = cdns_mhdp_max_link_rate(mhdp);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1228
if (mhdp->link.num_lanes > 1) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1231
mhdp->link.num_lanes >>= 1;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1234
} else if (drm_dp_link_rate_to_bw_code(mhdp->link.rate) !=
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1238
cdns_mhdp_lower_link_rate(&mhdp->link);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1239
mhdp->link.num_lanes = cdns_mhdp_max_num_lanes(mhdp);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1249
mhdp->link.num_lanes, mhdp->link.rate / 100);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1263
reg32 |= CDNS_DP_NUM_LANES(mhdp->link.num_lanes);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1333
mhdp->sink.link_rate = mhdp->link.rate;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1334
mhdp->sink.lanes_cnt = mhdp->link.num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1335
mhdp->sink.enhanced = !!(mhdp->link.capabilities &
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1378
mhdp->link.revision = dpcd[0];
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1379
mhdp->link.rate = drm_dp_bw_code_to_link_rate(dpcd[1]);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1380
mhdp->link.num_lanes = dpcd[2] & DP_MAX_LANE_COUNT_MASK;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1383
mhdp->link.capabilities |= DP_LINK_CAP_ENHANCED_FRAMING;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1386
drm_dp_link_power_up(&mhdp->aux, mhdp->link.revision);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1390
mhdp->link.rate = cdns_mhdp_max_link_rate(mhdp);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1391
mhdp->link.num_lanes = cdns_mhdp_max_num_lanes(mhdp);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1433
drm_dp_link_power_down(&mhdp->aux, mhdp->link.revision);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1558
if (!cdns_mhdp_bandwidth_ok(mhdp, mode, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1559
mhdp->link.rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1877
rate = mhdp->link.rate / 1000;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1882
available_bandwidth = mhdp->link.num_lanes * rate;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1892
line_thresh = line_thresh1 - line_thresh2 / (s32)mhdp->link.num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1976
if (!cdns_mhdp_bandwidth_ok(mhdp, mode, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1977
mhdp->link.rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2128
if (!cdns_mhdp_bandwidth_ok(mhdp, mode, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2129
mhdp->link.rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2131
__func__, mode->name, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2132
mhdp->link.rate / 100);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2224
mhdp->link.rate = mhdp->host.link_rate;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2225
mhdp->link.num_lanes = mhdp->host.lanes_cnt;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2243
drm_dp_channel_eq_ok(status, mhdp->link.num_lanes) &&
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2244
drm_dp_clock_recovery_ok(status, mhdp->link.num_lanes))
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2276
if (!cdns_mhdp_bandwidth_ok(mhdp, current_mode, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2277
mhdp->link.rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2479
mhdp->link.rate = mhdp->host.link_rate;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2480
mhdp->link.num_lanes = mhdp->host.lanes_cnt;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
557
struct cdns_mhdp_link *link)
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
562
values[0] = drm_dp_link_rate_to_bw_code(link->rate);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
563
values[1] = link->num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
565
if (link->capabilities & DP_LINK_CAP_ENHANCED_FRAMING)
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
826
CDNS_DP_LANE_EN_LANES(mhdp->link.num_lanes));
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
828
cdns_mhdp_link_configure(&mhdp->aux, &mhdp->link);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
829
phy_cfg.dp.link_rate = mhdp->link.rate / 100;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
830
phy_cfg.dp.lanes = mhdp->link.num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
871
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
936
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
959
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
969
mhdp->link.num_lanes, mhdp->link.rate / 100,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h
381
struct cdns_mhdp_link link;
drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c
458
imx8qxp_ldb_check_chno_and_dual_link(struct ldb_channel *ldb_ch, int link)
drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c
460
if ((link == DRM_LVDS_DUAL_LINK_ODD_EVEN_PIXELS && ldb_ch->chno != 0) ||
drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c
461
(link == DRM_LVDS_DUAL_LINK_EVEN_ODD_PIXELS && ldb_ch->chno != 1))
drivers/gpu/drm/bridge/ite-it6505.c
1631
if (it6505->link.revision >= 0x12)
drivers/gpu/drm/bridge/ite-it6505.c
1640
struct it6505_drm_dp_link *link = &it6505->link;
drivers/gpu/drm/bridge/ite-it6505.c
1648
memset(link, 0, sizeof(*link));
drivers/gpu/drm/bridge/ite-it6505.c
1650
link->revision = it6505->dpcd[0];
drivers/gpu/drm/bridge/ite-it6505.c
1651
link->rate = drm_dp_bw_code_to_link_rate(it6505->dpcd[1]);
drivers/gpu/drm/bridge/ite-it6505.c
1652
link->num_lanes = it6505->dpcd[2] & DP_MAX_LANE_COUNT_MASK;
drivers/gpu/drm/bridge/ite-it6505.c
1655
link->capabilities = DP_ENHANCED_FRAME_CAP;
drivers/gpu/drm/bridge/ite-it6505.c
1658
link->revision >> 4, link->revision & 0x0F);
drivers/gpu/drm/bridge/ite-it6505.c
1661
link->rate / 100000, link->rate / 1000 % 100);
drivers/gpu/drm/bridge/ite-it6505.c
1663
it6505->link_rate_bw_code = drm_dp_link_rate_to_bw_code(link->rate);
drivers/gpu/drm/bridge/ite-it6505.c
1669
it6505->lane_count = link->num_lanes;
drivers/gpu/drm/bridge/ite-it6505.c
1679
it6505->enable_enhanced_frame = link->capabilities;
drivers/gpu/drm/bridge/ite-it6505.c
2518
drm_dp_link_power_up(&it6505->aux, it6505->link.revision);
drivers/gpu/drm/bridge/ite-it6505.c
2849
drm_dp_link_power_up(&it6505->aux, it6505->link.revision);
drivers/gpu/drm/bridge/ite-it6505.c
3172
drm_dp_link_power_up(&it6505->aux, it6505->link.revision);
drivers/gpu/drm/bridge/ite-it6505.c
3184
drm_dp_link_power_down(&it6505->aux, it6505->link.revision);
drivers/gpu/drm/bridge/ite-it6505.c
433
struct it6505_drm_dp_link link;
drivers/gpu/drm/bridge/parade-ps8640.c
106
struct device_link *link;
drivers/gpu/drm/bridge/parade-ps8640.c
514
ps_bridge->link = device_link_add(bridge->dev->dev, dev, DL_FLAG_STATELESS);
drivers/gpu/drm/bridge/parade-ps8640.c
515
if (!ps_bridge->link) {
drivers/gpu/drm/bridge/parade-ps8640.c
530
device_link_del(ps_bridge->link);
drivers/gpu/drm/bridge/parade-ps8640.c
542
if (ps_bridge->link)
drivers/gpu/drm/bridge/parade-ps8640.c
543
device_link_del(ps_bridge->link);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1004
if (!drm_dp_clock_recovery_ok(status, link->lanes)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1010
if (!drm_dp_channel_eq_ok(status, link->lanes)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1023
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1026
if (link->caps.fast_training) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1027
if (dw_dp_link_train_valid(&link->train)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1147
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1154
if (!link->vsc_sdp_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1223
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1306
link_bandwidth = (link->rate / 1000) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1324
t1 = (4 * 1000 / 9) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1328
t1 = (1000 / 2) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1331
t1 = (1000 / 3) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1333
t1 = (3000 / 16) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1338
t1 = (2000 / 5) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1340
t1 = (4000 / 15) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1345
t1 = (1000 / 6) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1347
t1 = (1000 / 3) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1349
t1 = (2000 / 9) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1355
t1 = (1000 / 6) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1357
t1 = (1000 / 4) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1364
t2 = (link->rate / 4) * 1000 / (mode->clock / 2);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1366
t2 = (link->rate / 4) * 1000 / mode->clock;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1384
hblank_interval = hblank * (link->rate / 4) / mode->clock;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1580
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1584
link->vsc_sdp_supported &&
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1594
if (!link->vsc_sdp_supported &&
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1598
if (!dw_dp_bandwidth_ok(dp, mode, min_bpp, link->lanes, link->rate))
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1606
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1609
if (!dw_dp_link_train_valid(&link->train))
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1616
return !drm_dp_channel_eq_ok(link_status, dp->link.lanes);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1621
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1624
drm_dp_link_power_down(&dp->aux, dp->link.revision);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1630
link->train.clock_recovered = false;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1631
link->train.channel_equalized = false;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1642
ret = drm_dp_link_power_up(&dp->aux, dp->link.revision);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1767
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1790
!link->vsc_sdp_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1797
if (!dw_dp_bandwidth_ok(dp, &mode, fmt->bpp, link->lanes, link->rate))
drivers/gpu/drm/bridge/synopsys/dw-dp.c
328
struct dw_dp_link link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
498
static void dw_dp_link_reset(struct dw_dp_link *link)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
500
link->vsc_sdp_supported = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
501
link->sink_count = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
502
link->revision = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
503
link->rate = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
504
link->lanes = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
506
dw_dp_link_caps_reset(&link->caps);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
507
memset(link->dpcd, 0, sizeof(link->dpcd));
drivers/gpu/drm/bridge/synopsys/dw-dp.c
512
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
515
dw_dp_link_reset(link);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
517
ret = drm_dp_read_dpcd_caps(&dp->aux, link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
521
drm_dp_read_desc(&dp->aux, &link->desc, drm_dp_is_branch(link->dpcd));
drivers/gpu/drm/bridge/synopsys/dw-dp.c
523
if (drm_dp_read_sink_count_cap(connector, link->dpcd, &link->desc)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
528
link->sink_count = ret;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
531
if (!link->sink_count)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
535
link->vsc_sdp_supported = drm_dp_vsc_sdp_supported(&dp->aux, link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
537
link->revision = link->dpcd[DP_DPCD_REV];
drivers/gpu/drm/bridge/synopsys/dw-dp.c
538
link->rate = min_t(u32, min(dp->plat_data.max_link_rate,
drivers/gpu/drm/bridge/synopsys/dw-dp.c
540
drm_dp_max_link_rate(link->dpcd));
drivers/gpu/drm/bridge/synopsys/dw-dp.c
541
link->lanes = min_t(u8, phy_get_bus_width(dp->phy),
drivers/gpu/drm/bridge/synopsys/dw-dp.c
542
drm_dp_max_lane_count(link->dpcd));
drivers/gpu/drm/bridge/synopsys/dw-dp.c
544
link->caps.enhanced_framing = drm_dp_enhanced_frame_cap(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
545
link->caps.tps3_supported = drm_dp_tps3_supported(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
546
link->caps.tps4_supported = drm_dp_tps4_supported(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
547
link->caps.fast_training = drm_dp_fast_training_cap(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
548
link->caps.channel_coding = drm_dp_channel_coding_supported(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
549
link->caps.ssc = !!(link->dpcd[DP_MAX_DOWNSPREAD] & DP_MAX_DOWNSPREAD_0_5);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
556
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
557
struct dw_dp_link_train_set *train_set = &link->train.adjust;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
558
unsigned int lanes = dp->link.lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
630
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
634
ret = dw_dp_phy_configure(dp, link->rate, link->lanes, link->caps.ssc);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
638
buf[0] = drm_dp_link_rate_to_bw_code(link->rate);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
639
buf[1] = link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
641
if (link->caps.enhanced_framing) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
654
buf[0] = link->caps.ssc ? DP_SPREAD_AMP_0_5 : 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
655
buf[1] = link->caps.channel_coding ? DP_SET_ANSI_8B10B : 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
743
static bool dw_dp_link_get_adjustments(struct dw_dp_link *link,
drivers/gpu/drm/bridge/synopsys/dw-dp.c
746
struct dw_dp_link_train_set *adj = &link->train.adjust;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
752
for (i = 0; i < link->lanes; i++) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
786
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
801
drm_dp_link_train_clock_recovery_delay(&dp->aux, link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
809
if (drm_dp_clock_recovery_ok(status, link->lanes)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
810
link->train.clock_recovered = true;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
818
adj_changed = dw_dp_link_get_adjustments(link, status);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
833
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
838
if (link->caps.tps4_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
840
else if (link->caps.tps3_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
853
drm_dp_link_train_channel_eq_delay(&dp->aux, link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
859
if (!drm_dp_clock_recovery_ok(status, link->lanes)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
861
link->train.clock_recovered = false;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
865
if (drm_dp_channel_eq_ok(status, link->lanes)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
866
link->train.channel_equalized = true;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
870
dw_dp_link_get_adjustments(link, status);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
878
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
883
switch (link->rate) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
887
link->rate = 162000;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
890
link->rate = 270000;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
893
link->rate = 540000;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
897
if (!dw_dp_bandwidth_ok(dp, &state->mode, state->bpp, link->lanes,
drivers/gpu/drm/bridge/synopsys/dw-dp.c
898
link->rate))
drivers/gpu/drm/bridge/synopsys/dw-dp.c
906
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
910
dw_dp_link_train_init(&link->train);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
913
link->lanes, (link->lanes > 1) ? "s" : "", link->rate / 100);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
927
if (!link->train.clock_recovered) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
945
if (!link->train.channel_equalized) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
964
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
969
dw_dp_link_train_init(&link->train);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
972
link->lanes, (link->lanes > 1) ? "s" : "", link->rate / 100);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
986
if (link->caps.tps4_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
988
else if (link->caps.tps3_supported)
drivers/gpu/drm/bridge/tc358767.c
1009
out_bw = tc->link.num_lanes * tc->link.rate;
drivers/gpu/drm/bridge/tc358767.c
1116
(tc->link.spread ? DP0_SRCCTRL_SSCG : 0) |
drivers/gpu/drm/bridge/tc358767.c
1117
((tc->link.rate != 162000) ? DP0_SRCCTRL_BW27 : 0) |
drivers/gpu/drm/bridge/tc358767.c
1128
if (tc->link.num_lanes == 2)
drivers/gpu/drm/bridge/tc358767.c
1169
if (tc->assr != tc->link.assr) {
drivers/gpu/drm/bridge/tc358767.c
1186
tc->link.scrambler_dis = true;
drivers/gpu/drm/bridge/tc358767.c
1191
tmp[0] = drm_dp_link_rate_to_bw_code(tc->link.rate);
drivers/gpu/drm/bridge/tc358767.c
1192
tmp[1] = tc->link.num_lanes;
drivers/gpu/drm/bridge/tc358767.c
1194
if (drm_dp_enhanced_frame_cap(tc->link.dpcd))
drivers/gpu/drm/bridge/tc358767.c
1202
tmp[0] = tc->link.spread ? DP_SPREAD_AMP_0_5 : 0x00;
drivers/gpu/drm/bridge/tc358767.c
1245
(drm_dp_enhanced_frame_cap(tc->link.dpcd) ?
drivers/gpu/drm/bridge/tc358767.c
1310
tmp[0] = tc->link.scrambler_dis ? DP_LINK_SCRAMBLING_DISABLE : 0x00;
drivers/gpu/drm/bridge/tc358767.c
1329
if (tc->link.num_lanes == 2) {
drivers/gpu/drm/bridge/tc358767.c
1519
if (drm_dp_enhanced_frame_cap(tc->link.dpcd))
drivers/gpu/drm/bridge/tc358767.c
1700
avail = tc->link.num_lanes * tc->link.rate;
drivers/gpu/drm/bridge/tc358767.c
379
struct tc_edp_link link;
drivers/gpu/drm/bridge/tc358767.c
570
if (tc->link.scrambler_dis)
drivers/gpu/drm/bridge/tc358767.c
572
if (tc->link.spread)
drivers/gpu/drm/bridge/tc358767.c
574
if (tc->link.num_lanes == 2)
drivers/gpu/drm/bridge/tc358767.c
576
if (tc->link.rate != 162000)
drivers/gpu/drm/bridge/tc358767.c
843
ret = drm_dp_dpcd_read(&tc->aux, DP_DPCD_REV, tc->link.dpcd,
drivers/gpu/drm/bridge/tc358767.c
848
revision = tc->link.dpcd[DP_DPCD_REV];
drivers/gpu/drm/bridge/tc358767.c
849
rate = drm_dp_max_link_rate(tc->link.dpcd);
drivers/gpu/drm/bridge/tc358767.c
850
num_lanes = drm_dp_max_lane_count(tc->link.dpcd);
drivers/gpu/drm/bridge/tc358767.c
857
tc->link.rate = rate;
drivers/gpu/drm/bridge/tc358767.c
864
tc->link.num_lanes = num_lanes;
drivers/gpu/drm/bridge/tc358767.c
869
tc->link.spread = reg & DP_MAX_DOWNSPREAD_0_5;
drivers/gpu/drm/bridge/tc358767.c
875
tc->link.scrambler_dis = false;
drivers/gpu/drm/bridge/tc358767.c
880
tc->link.assr = reg & DP_ALTERNATE_SCRAMBLER_RESET_ENABLE;
drivers/gpu/drm/bridge/tc358767.c
884
(tc->link.rate == 162000) ? "1.62Gbps" : "2.7Gbps",
drivers/gpu/drm/bridge/tc358767.c
885
tc->link.num_lanes,
drivers/gpu/drm/bridge/tc358767.c
886
drm_dp_enhanced_frame_cap(tc->link.dpcd) ?
drivers/gpu/drm/bridge/tc358767.c
889
tc->link.spread ? "0.5%" : "0.0%",
drivers/gpu/drm/bridge/tc358767.c
890
tc->link.scrambler_dis ? "disabled" : "enabled");
drivers/gpu/drm/bridge/tc358767.c
892
tc->link.assr, tc->assr);
drivers/gpu/drm/drm_buddy.c
1008
link);
drivers/gpu/drm/drm_buddy.c
1039
list_del(&block->link);
drivers/gpu/drm/drm_buddy.c
1056
list_add(&block->link, blocks);
drivers/gpu/drm/drm_buddy.c
1210
list_add_tail(&block->link, &allocated);
drivers/gpu/drm/drm_buddy.c
1229
block = list_last_entry(&allocated, typeof(*block), link);
drivers/gpu/drm/drm_buddy.c
1230
list_move(&block->link, &temp);
drivers/gpu/drm/drm_buddy.c
550
list_for_each_entry_safe(block, on, objects, link) {
drivers/gpu/drm/drm_buddy.c
843
list_add_tail(&block->link, &allocated);
drivers/gpu/drm/drm_file.c
215
list_for_each_entry_safe(e, et, &file_priv->event_list, link) {
drivers/gpu/drm/drm_file.c
216
list_del(&e->link);
drivers/gpu/drm/drm_file.c
557
struct drm_pending_event, link);
drivers/gpu/drm/drm_file.c
559
list_del(&e->link);
drivers/gpu/drm/drm_file.c
586
list_add(&e->link, &file_priv->event_list);
drivers/gpu/drm/drm_file.c
771
list_add_tail(&e->link,
drivers/gpu/drm/drm_mm.c
169
struct rb_node **link, *rb;
drivers/gpu/drm/drm_mm.c
187
link = &hole_node->rb.rb_right;
drivers/gpu/drm/drm_mm.c
191
link = &mm->interval_tree.rb_root.rb_node;
drivers/gpu/drm/drm_mm.c
195
while (*link) {
drivers/gpu/drm/drm_mm.c
196
rb = *link;
drivers/gpu/drm/drm_mm.c
201
link = &parent->rb.rb_left;
drivers/gpu/drm/drm_mm.c
203
link = &parent->rb.rb_right;
drivers/gpu/drm/drm_mm.c
208
rb_link_node(&node->rb, rb, link);
drivers/gpu/drm/drm_mm.c
224
struct rb_node **link = &root->rb_root.rb_node, *rb = NULL;
drivers/gpu/drm/drm_mm.c
228
while (*link) {
drivers/gpu/drm/drm_mm.c
229
rb = *link;
drivers/gpu/drm/drm_mm.c
231
link = &rb->rb_left;
drivers/gpu/drm/drm_mm.c
233
link = &rb->rb_right;
drivers/gpu/drm/drm_mm.c
238
rb_link_node(&node->rb_hole_size, rb, link);
drivers/gpu/drm/drm_mm.c
248
struct rb_node **link = &root->rb_node, *rb_parent = NULL;
drivers/gpu/drm/drm_mm.c
252
while (*link) {
drivers/gpu/drm/drm_mm.c
253
rb_parent = *link;
drivers/gpu/drm/drm_mm.c
258
link = &parent->rb_hole_addr.rb_left;
drivers/gpu/drm/drm_mm.c
260
link = &parent->rb_hole_addr.rb_right;
drivers/gpu/drm/drm_mm.c
263
rb_link_node(&node->rb_hole_addr, rb_parent, link);
drivers/gpu/drm/drm_pagemap.c
801
struct llist_node link;
drivers/gpu/drm/drm_pagemap.c
817
llist_add(&dev_hold->link, &drm_pagemap_unhold_list);
drivers/gpu/drm/drm_pagemap.c
837
llist_for_each_entry_safe(dev_hold, next, node, link) {
drivers/gpu/drm/drm_pagemap.c
858
init_llist_node(&dev_hold->link);
drivers/gpu/drm/drm_pagemap_util.c
481
list_del(&peer->link);
drivers/gpu/drm/drm_pagemap_util.c
535
list_for_each_entry(cur_peer, &owner_list->peers, link) {
drivers/gpu/drm/drm_pagemap_util.c
553
list_add_tail(&peer->link, &owner_list->peers);
drivers/gpu/drm/drm_pagemap_util.c
556
list_add_tail(&peer->link, &cur_peer->link);
drivers/gpu/drm/drm_vblank.c
1123
list_add_tail(&e->base.link, &dev->vblank_event_list);
drivers/gpu/drm/drm_vblank.c
1381
list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) {
drivers/gpu/drm/drm_vblank.c
1387
list_del(&e->base.link);
drivers/gpu/drm/drm_vblank.c
1669
list_add_tail(&e->base.link, &dev->vblank_event_list);
drivers/gpu/drm/drm_vblank.c
1888
list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) {
drivers/gpu/drm/drm_vblank.c
1897
list_del(&e->base.link);
drivers/gpu/drm/drm_vblank.c
2150
list_add_tail(&e->base.link, &dev->vblank_event_list);
drivers/gpu/drm/exynos/exynos_drm_g2d.c
376
list_add_tail(&node->event->base.link, &file_priv->event_list);
drivers/gpu/drm/exynos/exynos_drm_g2d.c
923
struct drm_exynos_pending_g2d_event, base.link);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_comm.h
41
struct hibmc_dp_link link;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
177
dp_dev->link.cap.lanes = 0x2;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
178
dp_dev->link.cap.link_rate = DP_LINK_BW_8_1;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
21
lane_num = dp->link.cap.lanes;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
252
if (!dp_dev->link.status.channel_equalized) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
268
dp->dp_dev->link.status.clock_recovered = false;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
269
dp->dp_dev->link.status.channel_equalized = false;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
274
return dp->dp_dev->link.cap.link_rate;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
279
return dp->dp_dev->link.cap.lanes;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
28
rate_ks = dp->link.cap.link_rate * HIBMC_DP_LINK_RATE_CAL;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
56
fclk = dp->link.cap.link_rate * HIBMC_DP_LINK_RATE_CAL;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
78
HIBMC_DP_SYNC_DELAY(dp->link.cap.lanes));
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
110
u8 *train_set = dp->link.train_set;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
122
for (i = 0; i < dp->link.cap.lanes; i++)
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
125
ret = hibmc_dp_serdes_set_tx_cfg(dp, dp->link.train_set);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
129
ret = drm_dp_dpcd_write(dp->aux, DP_TRAINING_LANE0_SET, train_set, dp->link.cap.lanes);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
130
if (ret != dp->link.cap.lanes) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
14
switch (dp->link.cap.link_rate) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
144
for (lane = 0; lane < dp->link.cap.lanes; lane++)
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
148
if (memcmp(dp->link.train_set, train_set, HIBMC_DP_LANE_NUM_MAX)) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
149
memcpy(dp->link.train_set, train_set, HIBMC_DP_LANE_NUM_MAX);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
160
switch (dp->link.cap.link_rate) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
162
dp->link.cap.link_rate = DP_LINK_BW_1_62;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
165
dp->link.cap.link_rate = DP_LINK_BW_2_7;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
168
dp->link.cap.link_rate = DP_LINK_BW_5_4;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
183
switch (dp->link.cap.lanes) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
185
dp->link.cap.lanes--;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
221
if (drm_dp_clock_recovery_ok(lane_status, dp->link.cap.lanes)) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
223
dp->link.status.clock_recovered = true;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
229
dp->link.status.clock_recovered = false;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
235
ret = hibmc_dp_serdes_set_tx_cfg(dp, dp->link.train_set);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
239
ret = drm_dp_dpcd_write(dp->aux, DP_TRAINING_LANE0_SET, dp->link.train_set,
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
240
dp->link.cap.lanes);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
241
if (ret != dp->link.cap.lanes) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
250
dp->link.status.clock_recovered = false;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
274
if (!drm_dp_clock_recovery_ok(lane_status, dp->link.cap.lanes)) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
277
dp->link.status.clock_recovered = false;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
281
if (drm_dp_channel_eq_ok(lane_status, dp->link.cap.lanes)) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
282
dp->link.status.channel_equalized = true;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
289
ret = hibmc_dp_serdes_set_tx_cfg(dp, dp->link.train_set);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
294
dp->link.train_set, dp->link.cap.lanes);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
295
if (ret != dp->link.cap.lanes) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
320
if ((dp->link.status.clock_recovered && !dp->link.status.channel_equalized)) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
330
dp->link.cap.link_rate = dp->dpcd[DP_MAX_LINK_RATE];
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
331
if (dp->link.cap.link_rate > DP_LINK_BW_8_1 || !dp->link.cap.link_rate)
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
332
dp->link.cap.link_rate = DP_LINK_BW_8_1;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
334
dp->link.cap.lanes = dp->dpcd[DP_MAX_LANE_COUNT] & DP_MAX_LANE_COUNT_MASK;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
335
if (dp->link.cap.lanes > HIBMC_DP_LANE_NUM_MAX)
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
336
dp->link.cap.lanes = HIBMC_DP_LANE_NUM_MAX;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
341
struct hibmc_dp_link *link = &dp->link;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
35
dp->link.cap.lanes == 0x2 ? 0x3 : 0x1);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
367
if (!link->status.clock_recovered) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
37
dp->link.cap.lanes == 0x2 ? 0x1 : 0);
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
378
if (!link->status.channel_equalized) {
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
43
buf[0] = dp->link.cap.link_rate;
drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c
44
buf[1] = DP_LANE_COUNT_ENHANCED_FRAME_EN | dp->link.cap.lanes;
drivers/gpu/drm/i915/display/g4x_dp.c
507
intel_dp->link.active = false;
drivers/gpu/drm/i915/display/intel_ddi.c
3579
intel_dp->link.active = false;
drivers/gpu/drm/i915/display/intel_display_types.h
1850
} link;
drivers/gpu/drm/i915/display/intel_display_types.h
604
} link;
drivers/gpu/drm/i915/display/intel_dp.c
1552
int len = intel_dp_common_len_rate_limit(intel_dp, intel_dp->link.force_rate);
drivers/gpu/drm/i915/display/intel_dp.c
1565
if (intel_dp->link.force_rate)
drivers/gpu/drm/i915/display/intel_dp.c
1568
len = intel_dp_common_len_rate_limit(intel_dp, intel_dp->link.max_rate);
drivers/gpu/drm/i915/display/intel_dp.c
1576
if (intel_dp->link.force_rate)
drivers/gpu/drm/i915/display/intel_dp.c
1766
for (bpp = fxp_q4_to_int(limits->link.max_bpp_x16);
drivers/gpu/drm/i915/display/intel_dp.c
1767
bpp >= fxp_q4_to_int(limits->link.min_bpp_x16);
drivers/gpu/drm/i915/display/intel_dp.c
2146
!connector->link.force_bpp_x16 && !connector->mst.dp->force_dsc_fractional_bpp_en)
drivers/gpu/drm/i915/display/intel_dp.c
2224
min_bpp_x16 = limits->link.min_bpp_x16;
drivers/gpu/drm/i915/display/intel_dp.c
2225
max_bpp_x16 = limits->link.max_bpp_x16;
drivers/gpu/drm/i915/display/intel_dp.c
2597
limits->link.min_bpp_x16 = fxp_q4_from_int(limits->pipe.min_bpp);
drivers/gpu/drm/i915/display/intel_dp.c
2599
limits->link.min_bpp_x16 =
drivers/gpu/drm/i915/display/intel_dp.c
2612
limits->link.max_bpp_x16 = max_link_bpp_x16;
drivers/gpu/drm/i915/display/intel_dp.c
2623
FXP_Q4_ARGS(limits->link.min_bpp_x16),
drivers/gpu/drm/i915/display/intel_dp.c
2624
FXP_Q4_ARGS(limits->link.max_bpp_x16));
drivers/gpu/drm/i915/display/intel_dp.c
2626
if (limits->link.min_bpp_x16 <= 0 ||
drivers/gpu/drm/i915/display/intel_dp.c
2627
limits->link.min_bpp_x16 > limits->link.max_bpp_x16)
drivers/gpu/drm/i915/display/intel_dp.c
3490
intel_dp->link.active = false;
drivers/gpu/drm/i915/display/intel_dp.c
3498
intel_dp->link.max_lane_count = intel_dp_max_common_lane_count(intel_dp);
drivers/gpu/drm/i915/display/intel_dp.c
3499
intel_dp->link.max_rate = intel_dp_max_common_rate(intel_dp);
drivers/gpu/drm/i915/display/intel_dp.c
3500
intel_dp->link.mst_probed_lane_count = 0;
drivers/gpu/drm/i915/display/intel_dp.c
3501
intel_dp->link.mst_probed_rate = 0;
drivers/gpu/drm/i915/display/intel_dp.c
3502
intel_dp->link.retrain_disabled = false;
drivers/gpu/drm/i915/display/intel_dp.c
3503
intel_dp->link.seq_train_failures = 0;
drivers/gpu/drm/i915/display/intel_dp.c
3854
intel_dp->link.active = true;
drivers/gpu/drm/i915/display/intel_dp.c
396
return clamp(intel_dp->link.force_lane_count, 1, intel_dp_max_common_lane_count(intel_dp));
drivers/gpu/drm/i915/display/intel_dp.c
403
if (intel_dp->link.force_lane_count)
drivers/gpu/drm/i915/display/intel_dp.c
406
lane_count = intel_dp->link.max_lane_count;
drivers/gpu/drm/i915/display/intel_dp.c
421
if (intel_dp->link.force_lane_count)
drivers/gpu/drm/i915/display/intel_dp.c
5403
if (!link_ok || intel_dp->link.force_retrain)
drivers/gpu/drm/i915/display/intel_dp.c
5438
if (!intel_dp->link.active)
drivers/gpu/drm/i915/display/intel_dp.c
5452
if (intel_dp->link.force_retrain)
drivers/gpu/drm/i915/display/intel_dp.c
5471
if (intel_dp->link.retrain_disabled)
drivers/gpu/drm/i915/display/intel_dp.c
5474
if (intel_dp->link.seq_train_failures)
drivers/gpu/drm/i915/display/intel_dp.c
5613
str_yes_no(intel_dp->link.force_retrain));
drivers/gpu/drm/i915/display/intel_dp.c
5619
intel_dp->link.force_retrain = false;
drivers/gpu/drm/i915/display/intel_dp.c
746
ARRAY_SIZE(intel_dp->link.configs)))
drivers/gpu/drm/i915/display/intel_dp.c
749
intel_dp->link.num_configs = intel_dp->num_common_rates * num_common_lane_configs;
drivers/gpu/drm/i915/display/intel_dp.c
751
lc = &intel_dp->link.configs[0];
drivers/gpu/drm/i915/display/intel_dp.c
761
sort_r(intel_dp->link.configs, intel_dp->link.num_configs,
drivers/gpu/drm/i915/display/intel_dp.c
762
sizeof(intel_dp->link.configs[0]),
drivers/gpu/drm/i915/display/intel_dp.c
772
if (drm_WARN_ON(display->drm, idx < 0 || idx >= intel_dp->link.num_configs))
drivers/gpu/drm/i915/display/intel_dp.c
775
lc = &intel_dp->link.configs[idx];
drivers/gpu/drm/i915/display/intel_dp.c
788
for (i = 0; i < intel_dp->link.num_configs; i++) {
drivers/gpu/drm/i915/display/intel_dp.c
789
const struct intel_dp_link_config *lc = &intel_dp->link.configs[i];
drivers/gpu/drm/i915/display/intel_dp.c
830
link_rate > intel_dp->link.max_rate)
drivers/gpu/drm/i915/display/intel_dp.h
37
} link;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1142
intel_dp->link.active = true;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1158
intel_dp->link.seq_train_failures < MAX_SEQ_TRAIN_FAILURES) {
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1159
int delay_ms = intel_dp->link.seq_train_failures ? 0 : 2000;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1220
if ((intel_dp->link.force_rate &&
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1221
intel_dp->link.force_rate != link_rate) ||
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1222
(intel_dp->link.force_lane_count &&
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1223
intel_dp->link.force_lane_count != lane_count))
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1243
if (intel_dp->link.force_rate)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1264
if (intel_dp->link.force_lane_count)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1336
intel_dp->link.max_rate = new_link_rate;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1337
intel_dp->link.max_lane_count = new_lane_count;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1670
if (intel_dp->link.force_train_failure) {
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1671
intel_dp->link.force_train_failure--;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1674
intel_dp->link.seq_train_failures = 0;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1678
intel_dp->link.seq_train_failures++;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1697
if (intel_dp->link.seq_train_failures < MAX_SEQ_TRAIN_FAILURES)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1703
intel_dp->link.retrain_disabled = true;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
171
if (intel_dp->link.active) {
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1745
if (intel_dp->link.active)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1747
force_rate = intel_dp->link.force_rate;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1819
intel_dp->link.force_rate = rate;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1843
if (intel_dp->link.active)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1845
force_lane_count = intel_dp->link.force_lane_count;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1921
intel_dp->link.force_lane_count = lane_count;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1942
*val = intel_dp->link.max_rate;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1961
*val = intel_dp->link.max_lane_count;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1980
*val = intel_dp->link.force_train_failure;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2001
intel_dp->link.force_train_failure = val;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2022
*val = intel_dp->link.force_retrain;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2040
intel_dp->link.force_retrain = val;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2063
seq_printf(m, "%s\n", str_yes_no(intel_dp->link.retrain_disabled));
drivers/gpu/drm/i915/display/intel_dp_mst.c
1130
return intel_dp->link.mst_probed_rate == link_rate &&
drivers/gpu/drm/i915/display/intel_dp_mst.c
1131
intel_dp->link.mst_probed_lane_count == lane_count;
drivers/gpu/drm/i915/display/intel_dp_mst.c
1137
intel_dp->link.mst_probed_rate = link_rate;
drivers/gpu/drm/i915/display/intel_dp_mst.c
1138
intel_dp->link.mst_probed_lane_count = lane_count;
drivers/gpu/drm/i915/display/intel_dp_mst.c
2052
if (intel_dp->link.active)
drivers/gpu/drm/i915/display/intel_dp_mst.c
454
limits->link.min_bpp_x16,
drivers/gpu/drm/i915/display/intel_dp_mst.c
455
limits->link.max_bpp_x16,
drivers/gpu/drm/i915/display/intel_dp_mst.c
471
FXP_Q4_ARGS(limits->link.min_bpp_x16), FXP_Q4_ARGS(limits->link.max_bpp_x16));
drivers/gpu/drm/i915/display/intel_dp_mst.c
477
limits->link.min_bpp_x16,
drivers/gpu/drm/i915/display/intel_dp_mst.c
478
limits->link.max_bpp_x16,
drivers/gpu/drm/i915/display/intel_dp_mst.c
525
int min_bpp_x16 = limits->link.min_bpp_x16;
drivers/gpu/drm/i915/display/intel_dp_mst.c
544
if (limits->link.max_bpp_x16 < fxp_q4_from_int(24))
drivers/gpu/drm/i915/display/intel_dp_mst.c
547
limits->link.min_bpp_x16 = fxp_q4_from_int(24);
drivers/gpu/drm/i915/display/intel_dp_mst.c
559
if (limits->link.min_bpp_x16 >= min_bpp_x16)
drivers/gpu/drm/i915/display/intel_dp_mst.c
568
if (limits->link.max_bpp_x16 < min_bpp_x16)
drivers/gpu/drm/i915/display/intel_dp_mst.c
571
limits->link.min_bpp_x16 = min_bpp_x16;
drivers/gpu/drm/i915/display/intel_dp_mst.c
990
intel_dp->link.active = false;
drivers/gpu/drm/i915/display/intel_link_bw.c
334
seq_printf(m, FXP_Q4_FMT "\n", FXP_Q4_ARGS(connector->link.force_bpp_x16));
drivers/gpu/drm/i915/display/intel_link_bw.c
37
if (!connector->link.force_bpp_x16)
drivers/gpu/drm/i915/display/intel_link_bw.c
40
force_bpp_x16 = min(force_bpp_x16, connector->link.force_bpp_x16);
drivers/gpu/drm/i915/display/intel_link_bw.c
463
connector->link.force_bpp_x16 = bpp_x16;
drivers/gpu/drm/i915/gem/i915_gem_context.c
1081
if (!list_empty(&engines->link)) {
drivers/gpu/drm/i915/gem/i915_gem_context.c
1085
list_del(&engines->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1290
list_del(&ctx->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1371
list_for_each_entry_reverse(rq, &ce->timeline->requests, link) {
drivers/gpu/drm/i915/gem/i915_gem_context.c
1437
list_for_each_entry_safe(pos, next, &ctx->stale.engines, link) {
drivers/gpu/drm/i915/gem/i915_gem_context.c
1439
list_del_init(&pos->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1450
list_safe_reset_next(pos, next, link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1451
list_del_init(&pos->link); /* decouple from FENCE_COMPLETE */
drivers/gpu/drm/i915/gem/i915_gem_context.c
1464
INIT_LIST_HEAD(&engines->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1487
list_add_tail(&engines->link, &ctx->stale.engines);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1491
if (list_empty(&engines->link)) /* raced, already closed */
drivers/gpu/drm/i915/gem/i915_gem_context.c
1620
INIT_LIST_HEAD(&ctx->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1734
list_add_tail(&ctx->link, &i915->gem.contexts.list);
drivers/gpu/drm/i915/gem/i915_gem_context_types.h
296
struct list_head link;
drivers/gpu/drm/i915/gem/i915_gem_context_types.h
38
struct list_head link;
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
2487
list_for_each_entry(rq, &tl->requests, link) {
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
2495
if (&rq->link == &tl->requests)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
3065
list_for_each_entry_safe(rq, rn, &tl->requests, link)
drivers/gpu/drm/i915/gem/i915_gem_object.c
109
INIT_LIST_HEAD(&obj->mm.link);
drivers/gpu/drm/i915/gem/i915_gem_object_types.h
680
struct list_head link;
drivers/gpu/drm/i915/gem/i915_gem_pages.c
76
GEM_BUG_ON(!list_empty(&obj->mm.link));
drivers/gpu/drm/i915/gem/i915_gem_pages.c
95
list_add_tail(&obj->mm.link, list);
drivers/gpu/drm/i915/gem/i915_gem_pm.c
177
list_for_each_entry(obj, *phase, mm.link) {
drivers/gpu/drm/i915/gem/i915_gem_pm.c
223
list_for_each_entry(obj, &i915->mm.shrink_list, mm.link)
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
199
mm.link))) {
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
200
list_move_tail(&obj->mm.link, &still_in_list);
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
370
list_for_each_entry(obj, &i915->mm.shrink_list, mm.link) {
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
501
!list_empty(&obj->mm.link)) {
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
502
list_del_init(&obj->mm.link);
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
524
GEM_BUG_ON(!list_empty(&obj->mm.link));
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
526
list_add_tail(&obj->mm.link, head);
drivers/gpu/drm/i915/gem/i915_gem_throttle.c
71
link) {
drivers/gpu/drm/i915/gem/selftests/mock_context.c
25
INIT_LIST_HEAD(&ctx->link);
drivers/gpu/drm/i915/gt/intel_context.c
420
INIT_LIST_HEAD(&ce->guc_id.link);
drivers/gpu/drm/i915/gt/intel_context.c
563
sched.link) {
drivers/gpu/drm/i915/gt/intel_context_types.h
241
struct list_head link;
drivers/gpu/drm/i915/gt/intel_engine_cs.c
2324
list_for_each_entry(rq, requests, sched.link) {
drivers/gpu/drm/i915/gt/intel_engine_cs.c
2491
list_for_each_entry_from_reverse(request, &tl->requests, link) {
drivers/gpu/drm/i915/gt/intel_engine_cs.c
2503
sched.link) {
drivers/gpu/drm/i915/gt/intel_engine_pm.c
140
list_add_tail(&tl->link, &timelines->active_list);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
1087
list_move_tail(&rq->sched.link, pl);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
1113
list_move_tail(&w->sched.link, &list);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
1116
rq = list_first_entry_or_null(&list, typeof(*rq), sched.link);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
1166
if (!list_is_last_rcu(&rq->sched.link,
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2064
list_move_tail(&rq->sched.link,
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2089
list_move_tail(&w->sched.link, &list);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2092
rq = list_first_entry_or_null(&list, typeof(*rq), sched.link);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2164
list_move_tail(&rq->sched.link,
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2187
list_move_tail(&w->sched.link, &list);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2190
rq = list_first_entry_or_null(&list, typeof(*rq), sched.link);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
224
list_for_each_entry_from_reverse(rq, &tl->requests, link) {
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2550
GEM_BUG_ON(!list_empty(&rq->sched.link));
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2551
list_add_tail(&rq->sched.link,
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2586
list_add_tail(&request->sched.link,
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
2593
GEM_BUG_ON(list_empty(&request->sched.link));
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
3174
list_for_each_entry(rq, &engine->sched_engine->requests, sched.link)
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
3194
list_for_each_entry(rq, &sched_engine->hold, sched.link)
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
3280
list_move_tail(&rq->sched.link, &rq->engine->sched_engine->requests);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
3300
list_del_init(&rq->sched.link);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
337
if (!list_is_last(&rq->sched.link, &engine->sched_engine->requests) &&
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
338
rq_prio(list_next_entry(rq, sched.link)) > last_prio)
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
383
sched.link) {
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
385
list_del_init(&rq->sched.link);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
3920
list_move_tail(&rq->sched.link, virtual_queue(ve));
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
399
list_move(&rq->sched.link, pl);
drivers/gpu/drm/i915/gt/intel_execlists_submission.c
4092
list_for_each_entry(rq, &sched_engine->requests, sched.link) {
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
255
list_move(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
279
list_move_tail(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
337
list_for_each_entry_safe(fence, fn, &ggtt->fence_list, link) {
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
348
list_move_tail(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
380
list_move_tail(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
467
list_for_each_entry(fence, &ggtt->fence_list, link)
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
483
list_del(&fence->link);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
500
list_add(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
879
list_add_tail(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.h
23
struct list_head link;
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c
118
list_add_rcu(&node->link, list);
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c
184
list_for_each_entry_rcu(node, list, link) {
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c
199
list_del_rcu(&node->link);
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c
206
if (&node->link == list) {
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c
58
node = list_entry(pos, typeof(*node), link);
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool_types.h
25
struct list_head link;
drivers/gpu/drm/i915/gt/intel_gt_requests.c
143
list_for_each_entry_safe(tl, tn, &timelines->active_list, link) {
drivers/gpu/drm/i915/gt/intel_gt_requests.c
181
list_safe_reset_next(tl, tn, link);
drivers/gpu/drm/i915/gt/intel_gt_requests.c
183
list_del(&tl->link);
drivers/gpu/drm/i915/gt/intel_gt_requests.c
188
list_add(&tl->link, &free);
drivers/gpu/drm/i915/gt/intel_gt_requests.c
193
list_for_each_entry_safe(tl, tn, &free, link)
drivers/gpu/drm/i915/gt/intel_gt_requests.c
21
list_for_each_entry_safe(rq, rn, &tl->requests, link)
drivers/gpu/drm/i915/gt/intel_gt_requests.c
250
llist_for_each_entry_safe(rq, rn, first, watchdog.link) {
drivers/gpu/drm/i915/gt/intel_reset.c
1079
list_for_each_entry(tl, &timelines->active_list, link) {
drivers/gpu/drm/i915/gt/intel_reset.c
1100
tl = list_entry(&timelines->active_list, typeof(*tl), link);
drivers/gpu/drm/i915/gt/intel_ring.c
204
list_for_each_entry(target, &tl->requests, link) {
drivers/gpu/drm/i915/gt/intel_ring.c
214
if (GEM_WARN_ON(&target->link == &tl->requests))
drivers/gpu/drm/i915/gt/intel_ring_submission.c
1139
list_move_tail(&rq->sched.link, &rq->engine->sched_engine->requests);
drivers/gpu/drm/i915/gt/intel_ring_submission.c
1145
list_del_init(&rq->sched.link);
drivers/gpu/drm/i915/gt/intel_ring_submission.c
397
list_for_each_entry(pos, &engine->sched_engine->requests, sched.link) {
drivers/gpu/drm/i915/gt/intel_ring_submission.c
467
list_for_each_entry(request, &engine->sched_engine->requests, sched.link)
drivers/gpu/drm/i915/gt/intel_ring_submission.c
654
sched.link)
drivers/gpu/drm/i915/gt/intel_rps.c
2742
void (*link)(void);
drivers/gpu/drm/i915/gt/intel_rps.c
2744
link = symbol_get(ips_link_to_i915_driver);
drivers/gpu/drm/i915/gt/intel_rps.c
2745
if (link) {
drivers/gpu/drm/i915/gt/intel_rps.c
2746
link();
drivers/gpu/drm/i915/gt/intel_timeline.c
271
list_add_tail(&tl->link, &timelines->active_list);
drivers/gpu/drm/i915/gt/intel_timeline.c
289
list_del(&tl->link);
drivers/gpu/drm/i915/gt/intel_timeline.c
423
list_for_each_entry_safe(tl, tn, &timelines->active_list, link) {
drivers/gpu/drm/i915/gt/intel_timeline.c
442
list_for_each_entry_safe(rq, rn, &tl->requests, link) {
drivers/gpu/drm/i915/gt/intel_timeline.c
467
list_for_each_entry_safe(rq, rn, &tl->requests, link)
drivers/gpu/drm/i915/gt/intel_timeline.c
475
list_safe_reset_next(tl, tn, link);
drivers/gpu/drm/i915/gt/intel_timeline.c
477
list_del(&tl->link);
drivers/gpu/drm/i915/gt/intel_timeline.c
482
list_add(&tl->link, &free);
drivers/gpu/drm/i915/gt/intel_timeline.c
487
list_for_each_entry_safe(tl, tn, &free, link)
drivers/gpu/drm/i915/gt/intel_timeline.h
99
return list_is_last_rcu(&rq->link, &tl->requests);
drivers/gpu/drm/i915/gt/intel_timeline_types.h
83
struct list_head link;
drivers/gpu/drm/i915/gt/mock_engine.c
102
list_del_init(&request->mock.link);
drivers/gpu/drm/i915/gt/mock_engine.c
219
INIT_LIST_HEAD(&request->mock.link);
drivers/gpu/drm/i915/gt/mock_engine.c
245
list_add_tail(&request->mock.link, &engine->hw_queue);
drivers/gpu/drm/i915/gt/mock_engine.c
246
if (list_is_first(&request->mock.link, &engine->hw_queue)) {
drivers/gpu/drm/i915/gt/mock_engine.c
259
list_move_tail(&rq->sched.link, &rq->engine->sched_engine->requests);
drivers/gpu/drm/i915/gt/mock_engine.c
280
list_del_init(&rq->sched.link);
drivers/gpu/drm/i915/gt/mock_engine.c
305
list_for_each_entry(rq, &engine->sched_engine->requests, sched.link)
drivers/gpu/drm/i915/gt/mock_engine.c
310
list_for_each_entry(rq, &mock->hw_queue, mock.link) {
drivers/gpu/drm/i915/gt/mock_engine.c
438
list_for_each_entry_safe(request, rn, &mock->hw_queue, mock.link)
drivers/gpu/drm/i915/gt/mock_engine.c
97
mock.link);
drivers/gpu/drm/i915/gt/selftest_context.c
59
rq = list_last_entry(&tl->requests, typeof(*rq), link);
drivers/gpu/drm/i915/gt/selftest_execlists.c
2785
rq->mock.link.next = &(*prev)->mock.link;
drivers/gpu/drm/i915/gt/selftest_execlists.c
3021
struct i915_request *n = list_next_entry(rq, mock.link);
drivers/gpu/drm/i915/gt/selftest_timeline.c
944
list_for_each_entry_safe(rq, rn, &tl->requests, link)
drivers/gpu/drm/i915/gt/selftests/mock_timeline.c
23
INIT_LIST_HEAD(&timeline->link);
drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h
45
struct list_head link;
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
1551
list_for_each_entry(n, &guc->capture->outlist, link) {
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
1583
list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) {
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
1588
list_del(&n->link);
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
891
list_del(&node->link);
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
905
list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link)
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
908
list_for_each_entry_safe(n, ntmp, &guc->capture->cachelist, link)
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
916
list_add_tail(&node->link, list);
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
948
INIT_LIST_HEAD(&node->link);
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
960
list_for_each_entry_safe(n, ntmp, &guc->capture->cachelist, link) {
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
962
list_del(&n->link);
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
969
list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) {
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
973
list_del(&found->link);
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
1058
list_for_each_entry(req, &ct->requests.pending, link) {
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
1090
list_for_each_entry(req, &ct->requests.pending, link)
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
1179
struct ct_incoming_msg, link);
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
1181
list_del(&request->link);
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
1238
list_add_tail(&request->link, &ct->requests.incoming);
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
766
list_add_tail(&request.link, &ct->requests.pending);
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
820
list_del(&request.link);
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
90
struct list_head link;
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
98
struct list_head link;
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
1835
sched.link) {
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
1839
list_del_init(&rq->sched.link);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
1850
list_add(&rq->sched.link, pl);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
1968
list_for_each_entry(rq, &ce->guc_state.requests, sched.link)
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2006
list_del_init(&rq->sched.link);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2205
GEM_BUG_ON(!list_empty(&rq->sched.link));
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2206
list_add_tail(&rq->sched.link,
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2309
if (!list_empty(&ce->guc_id.link))
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2310
list_del_init(&ce->guc_id.link);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2333
guc_id.link);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2340
list_del_init(&cn->guc_id.link);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2406
if (!list_empty(&ce->guc_id.link))
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2407
list_del_init(&ce->guc_id.link);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2450
if (!context_guc_id_invalid(ce) && list_empty(&ce->guc_id.link) &&
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
2452
list_add_tail(&ce->guc_id.link,
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
3596
if (!list_empty(&ce->guc_id.link))
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
3597
list_del_init(&ce->guc_id.link);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
3731
list_move_tail(&rq->sched.link, &ce->guc_state.requests);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
3766
list_del_init(&rq->sched.link);
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
5422
list_for_each_entry(rq, &ce->guc_state.requests, sched.link) {
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
961
list_del_init(&rq->sched.link);
drivers/gpu/drm/i915/gvt/cmd_parser.c
883
list_add_tail(&mm->ppgtt_mm.link,
drivers/gpu/drm/i915/gvt/gtt.c
1819
INIT_LIST_HEAD(&mm->ppgtt_mm.link);
drivers/gpu/drm/i915/gvt/gtt.h
170
struct list_head link; /* possible LRI shadow mm list */
drivers/gpu/drm/i915/gvt/kvmgt.c
251
struct rb_node **link, *parent = NULL;
drivers/gpu/drm/i915/gvt/kvmgt.c
264
link = &vgpu->gfn_cache.rb_node;
drivers/gpu/drm/i915/gvt/kvmgt.c
265
while (*link) {
drivers/gpu/drm/i915/gvt/kvmgt.c
266
parent = *link;
drivers/gpu/drm/i915/gvt/kvmgt.c
270
link = &parent->rb_left;
drivers/gpu/drm/i915/gvt/kvmgt.c
272
link = &parent->rb_right;
drivers/gpu/drm/i915/gvt/kvmgt.c
274
rb_link_node(&new->gfn_node, parent, link);
drivers/gpu/drm/i915/gvt/kvmgt.c
279
link = &vgpu->dma_addr_cache.rb_node;
drivers/gpu/drm/i915/gvt/kvmgt.c
280
while (*link) {
drivers/gpu/drm/i915/gvt/kvmgt.c
281
parent = *link;
drivers/gpu/drm/i915/gvt/kvmgt.c
285
link = &parent->rb_left;
drivers/gpu/drm/i915/gvt/kvmgt.c
287
link = &parent->rb_right;
drivers/gpu/drm/i915/gvt/kvmgt.c
289
rb_link_node(&new->dma_addr_node, parent, link);
drivers/gpu/drm/i915/gvt/scheduler.c
1033
ppgtt_mm.link);
drivers/gpu/drm/i915/gvt/scheduler.c
1537
ppgtt_mm.link) {
drivers/gpu/drm/i915/gvt/scheduler.c
1538
list_del(&m->ppgtt_mm.link);
drivers/gpu/drm/i915/gvt/scheduler.c
714
ppgtt_mm.link) {
drivers/gpu/drm/i915/gvt/scheduler.c
719
ppgtt_mm.link)
drivers/gpu/drm/i915/gvt/scheduler.c
740
ppgtt_mm.link)
drivers/gpu/drm/i915/i915_gem.c
1079
if (!list_empty(&obj->mm.link)) {
drivers/gpu/drm/i915/i915_gem.c
1086
list_move_tail(&obj->mm.link, list);
drivers/gpu/drm/i915/i915_perf.c
2716
list_for_each_entry_safe(ctx, cn, &i915->gem.contexts.list, link) {
drivers/gpu/drm/i915/i915_perf.c
2729
list_safe_reset_next(ctx, cn, link);
drivers/gpu/drm/i915/i915_request.c
1011
list_add_tail_rcu(&rq->link, &tl->requests);
drivers/gpu/drm/i915/i915_request.c
1040
rq = list_first_entry(&tl->requests, typeof(*rq), link);
drivers/gpu/drm/i915/i915_request.c
1041
if (!list_is_last(&rq->link, &tl->requests))
drivers/gpu/drm/i915/i915_request.c
1083
struct list_head *pos = READ_ONCE(signal->link.prev);
drivers/gpu/drm/i915/i915_request.c
1100
prev = list_entry(pos, typeof(*prev), link);
drivers/gpu/drm/i915/i915_request.c
1105
if (unlikely(READ_ONCE(prev->link.next) != &signal->link)) {
drivers/gpu/drm/i915/i915_request.c
285
if (llist_add(&rq->watchdog.link, &gt->watchdog.list))
drivers/gpu/drm/i915/i915_request.c
380
GEM_BUG_ON(!list_is_first(&rq->link,
drivers/gpu/drm/i915/i915_request.c
409
__list_del_entry(&rq->link); /* poison neither prev/next (RCU walks) */
drivers/gpu/drm/i915/i915_request.c
429
tmp = list_first_entry(&tl->requests, typeof(*tmp), link);
drivers/gpu/drm/i915/i915_request.c
633
list_del_init(&request->sched.link);
drivers/gpu/drm/i915/i915_request.c
830
list_for_each_entry_safe(rq, rn, &tl->requests, link)
drivers/gpu/drm/i915/i915_request.c
855
rq = list_first_entry(&tl->requests, typeof(*rq), link);
drivers/gpu/drm/i915/i915_request.c
864
rq = list_last_entry(&tl->requests, typeof(*rq), link);
drivers/gpu/drm/i915/i915_request.h
322
struct list_head link;
drivers/gpu/drm/i915/i915_request.h
326
struct llist_node link;
drivers/gpu/drm/i915/i915_request.h
358
struct list_head link;
drivers/gpu/drm/i915/i915_request.h
604
return !list_empty(&rq->sched.link);
drivers/gpu/drm/i915/i915_scatterlist.c
202
list_for_each_entry(block, blocks, link) {
drivers/gpu/drm/i915/i915_scheduler.c
224
GEM_BUG_ON(!list_empty(&node->link));
drivers/gpu/drm/i915/i915_scheduler.c
270
if (list_empty(&node->link))
drivers/gpu/drm/i915/i915_scheduler.c
278
list_move_tail(&node->link, cache.priolist);
drivers/gpu/drm/i915/i915_scheduler.c
300
INIT_LIST_HEAD(&node->link);
drivers/gpu/drm/i915/i915_scheduler.c
313
GEM_BUG_ON(!list_empty(&node->link));
drivers/gpu/drm/i915/i915_scheduler.h
20
list_for_each_entry(it, &(plist)->requests, sched.link)
drivers/gpu/drm/i915/i915_scheduler.h
23
list_for_each_entry_safe(it, n, &(plist)->requests, sched.link)
drivers/gpu/drm/i915/i915_scheduler_types.h
65
struct list_head link;
drivers/gpu/drm/i915/i915_sysfs.c
127
list_for_each_entry(ctx, &i915->gem.contexts.list, link)
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
106
list_for_each_entry(block, &bman_res->blocks, link) {
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
177
list_for_each_entry(block, &bman_res->blocks, link) {
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
210
list_for_each_entry(block, &bman_res->blocks, link) {
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
242
list_for_each_entry(block, &bman->reserved, link)
drivers/gpu/drm/i915/pxp/intel_pxp.c
501
list_for_each_entry_safe(ctx, cn, &i915->gem.contexts.list, link) {
drivers/gpu/drm/i915/pxp/intel_pxp.c
540
list_safe_reset_next(ctx, cn, link);
drivers/gpu/drm/i915/selftests/i915_vma.c
117
list_for_each_entry(ctx, contexts, link) {
drivers/gpu/drm/i915/selftests/i915_vma.c
184
list_move(&ctx->link, &contexts);
drivers/gpu/drm/i915/selftests/i915_vma.c
197
list_for_each_entry_safe(ctx, cn, &contexts, link) {
drivers/gpu/drm/i915/selftests/i915_vma.c
198
list_del_init(&ctx->link);
drivers/gpu/drm/i915/selftests/i915_vma.c
209
list_for_each_entry_safe(ctx, cn, &contexts, link) {
drivers/gpu/drm/i915/selftests/i915_vma.c
210
list_del_init(&ctx->link);
drivers/gpu/drm/i915/selftests/intel_memory_region.c
489
list_for_each_entry(block, blocks, link) {
drivers/gpu/drm/i915/selftests/intel_memory_region.c
535
list_for_each_entry(block, &bman_res->blocks, link) {
drivers/gpu/drm/i915/selftests/mock_request.c
51
was_queued = !list_empty(&request->mock.link);
drivers/gpu/drm/i915/selftests/mock_request.c
52
list_del_init(&request->mock.link);
drivers/gpu/drm/imagination/pvr_power.c
666
struct device_link *link;
drivers/gpu/drm/imagination/pvr_power.c
668
link = device_link_add(dev, domain_devs[i], DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME);
drivers/gpu/drm/imagination/pvr_power.c
669
if (!link) {
drivers/gpu/drm/imagination/pvr_power.c
674
domain_links[i] = link;
drivers/gpu/drm/imagination/pvr_power.c
678
struct device_link *link;
drivers/gpu/drm/imagination/pvr_power.c
680
link = device_link_add(domain_devs[i - domain_count + 1],
drivers/gpu/drm/imagination/pvr_power.c
683
if (!link) {
drivers/gpu/drm/imagination/pvr_power.c
688
domain_links[i] = link;
drivers/gpu/drm/imx/dc/dc-cf.c
117
cf->link = LINK_ID_CONSTFRAME0;
drivers/gpu/drm/imx/dc/dc-cf.c
121
cf->link = LINK_ID_CONSTFRAME1;
drivers/gpu/drm/imx/dc/dc-cf.c
125
cf->link = LINK_ID_CONSTFRAME4;
drivers/gpu/drm/imx/dc/dc-cf.c
129
cf->link = LINK_ID_CONSTFRAME5;
drivers/gpu/drm/imx/dc/dc-cf.c
61
return cf->link;
drivers/gpu/drm/imx/dc/dc-lb.c
149
return lb->link;
drivers/gpu/drm/imx/dc/dc-lb.c
283
lb->link = LINK_ID_LAYERBLEND0 + lb->id;
drivers/gpu/drm/imx/dc/dc-pe.h
50
enum dc_link_id link;
drivers/gpu/drm/imx/dc/dc-pe.h
65
enum dc_link_id link;
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
2146
struct device_link *link;
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
2288
link = device_link_add(gmu->dev, gmu->cxpd, DL_FLAG_PM_RUNTIME);
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
2289
if (!link) {
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
2335
device_link_del(link);
drivers/gpu/drm/msm/dp/dp_ctrl.c
118
struct msm_dp_link *link;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1247
in.lclk = ctrl->link->link_params.rate / 1000;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1251
in.nlanes = ctrl->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1321
struct msm_dp_link *link = ctrl->link;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1326
u32 voltage_swing_level = link->phy_params.v_level;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1327
u32 pre_emphasis_level = link->phy_params.p_level;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1354
lane_cnt = ctrl->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1442
msm_dp_link_reset_phy_params_vx_px(ctrl->link);
drivers/gpu/drm/msm/dp/dp_ctrl.c
1448
old_v_level = ctrl->link->phy_params.v_level;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1457
ctrl->link->link_params.num_lanes)) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
1461
if (ctrl->link->phy_params.v_level >=
drivers/gpu/drm/msm/dp/dp_ctrl.c
1467
if (old_v_level != ctrl->link->phy_params.v_level) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
1469
old_v_level = ctrl->link->phy_params.v_level;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1472
msm_dp_link_adjust_levels(ctrl->link, link_status);
drivers/gpu/drm/msm/dp/dp_ctrl.c
1485
struct msm_dp_link_info *link_params = &ctrl->link->link_params;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1519
if (ctrl->link->link_params.num_lanes == 1)
drivers/gpu/drm/msm/dp/dp_ctrl.c
1522
ctrl->link->link_params.num_lanes /= 2;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1523
ctrl->link->link_params.rate = ctrl->panel->link_info.rate;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1525
ctrl->link->phy_params.p_level = 0;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1526
ctrl->link->phy_params.v_level = 0;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1585
ctrl->link->link_params.num_lanes)) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
1589
msm_dp_link_adjust_levels(ctrl->link, link_status);
drivers/gpu/drm/msm/dp/dp_ctrl.c
1633
link_info.num_lanes = ctrl->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1634
link_info.rate = ctrl->link->link_params.rate;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1651
for (i = ctrl->link->lttpr_count - 1; i >= 0; i--) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
1685
if (ctrl->link->sink_request & DP_TEST_LINK_PHY_TEST_PATTERN)
drivers/gpu/drm/msm/dp/dp_ctrl.c
176
struct msm_dp_link_info *link)
drivers/gpu/drm/msm/dp/dp_ctrl.c
1799
ctrl->phy_opts.dp.lanes = ctrl->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1800
ctrl->phy_opts.dp.link_rate = ctrl->link->link_params.rate / 100;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1806
dev_pm_opp_set_rate(ctrl->dev, ctrl->link->link_params.rate * 1000);
drivers/gpu/drm/msm/dp/dp_ctrl.c
181
lane_count = link->num_lanes;
drivers/gpu/drm/msm/dp/dp_ctrl.c
1811
drm_dbg_dp(ctrl->drm_dev, "link rate=%d\n", ctrl->link->link_params.rate);
drivers/gpu/drm/msm/dp/dp_ctrl.c
183
if (link->capabilities & DP_LINK_CAP_ENHANCED_FRAMING)
drivers/gpu/drm/msm/dp/dp_ctrl.c
190
if (link->use_rate_set) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
191
DRM_DEBUG_DP("using LINK_RATE_SET: 0x%02x", link->rate_set);
drivers/gpu/drm/msm/dp/dp_ctrl.c
192
err = drm_dp_dpcd_writeb(aux, DP_LINK_RATE_SET, link->rate_set);
drivers/gpu/drm/msm/dp/dp_ctrl.c
194
bw_code = drm_dp_link_rate_to_bw_code(link->rate);
drivers/gpu/drm/msm/dp/dp_ctrl.c
1956
ctrl->phy_opts.dp.lanes = ctrl->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2011
ctrl->link->phy_params.p_level = 0;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2012
ctrl->link->phy_params.v_level = 0;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2114
u32 pattern_requested = ctrl->link->phy_params.phy_test_pattern_sel;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2119
ctrl->link->phy_params.v_level,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2120
ctrl->link->phy_params.p_level)) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2126
msm_dp_link_send_test_response(ctrl->link);
drivers/gpu/drm/msm/dp/dp_ctrl.c
2167
if (!ctrl->link->phy_params.phy_test_pattern_sel) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2220
sink_request = ctrl->link->sink_request;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2238
msm_dp_link_send_test_response(ctrl->link);
drivers/gpu/drm/msm/dp/dp_ctrl.c
2268
int num_lanes = ctrl->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2296
if (ctrl->link->sink_request & DP_TEST_LINK_PHY_TEST_PATTERN) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2302
ctrl->link->link_params.rate = rate;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2303
ctrl->link->link_params.num_lanes =
drivers/gpu/drm/msm/dp/dp_ctrl.c
2310
ctrl->link->link_params.rate, ctrl->link->link_params.num_lanes,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2333
ctrl->link->link_params.num_lanes)) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2356
ctrl->link->link_params.num_lanes))
drivers/gpu/drm/msm/dp/dp_ctrl.c
2377
if (ctrl->link->sink_request & DP_TEST_LINK_PHY_TEST_PATTERN)
drivers/gpu/drm/msm/dp/dp_ctrl.c
2494
ctrl->link->link_params.rate,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2495
ctrl->link->link_params.num_lanes, pixel_rate);
drivers/gpu/drm/msm/dp/dp_ctrl.c
2541
ctrl->link->link_params.rate,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2574
msm_dp_link_psm_config(ctrl->link, &ctrl->panel->link_info, true);
drivers/gpu/drm/msm/dp/dp_ctrl.c
2744
struct msm_dp_ctrl *msm_dp_ctrl_get(struct device *dev, struct msm_dp_link *link,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2753
if (!dev || !panel || !aux || !link) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2783
ctrl->link = link;
drivers/gpu/drm/msm/dp/dp_ctrl.c
406
tbd = msm_dp_link_get_test_bits_depth(ctrl->link,
drivers/gpu/drm/msm/dp/dp_ctrl.c
412
config |= ((ctrl->link->link_params.num_lanes - 1)
drivers/gpu/drm/msm/dp/dp_ctrl.c
434
u32 *lane_map = ctrl->link->lane_map;
drivers/gpu/drm/msm/dp/dp_ctrl.c
455
test_bits_depth = msm_dp_link_get_test_bits_depth(ctrl->link, ctrl->panel->msm_dp_mode.bpp);
drivers/gpu/drm/msm/dp/dp_ctrl.c
456
colorimetry_cfg = msm_dp_link_get_colorimetry_config(ctrl->link);
drivers/gpu/drm/msm/dp/dp_ctrl.h
28
struct msm_dp_link *link,
drivers/gpu/drm/msm/dp/dp_debug.c
100
debug->link->test_video.test_v_height);
drivers/gpu/drm/msm/dp/dp_debug.c
202
struct msm_dp_link *link,
drivers/gpu/drm/msm/dp/dp_debug.c
208
if (!dev || !panel || !link) {
drivers/gpu/drm/msm/dp/dp_debug.c
217
debug->link = link;
drivers/gpu/drm/msm/dp/dp_debug.c
22
struct msm_dp_link *link;
drivers/gpu/drm/msm/dp/dp_debug.c
72
debug->link->sink_request);
drivers/gpu/drm/msm/dp/dp_debug.c
74
debug->link->link_params.num_lanes);
drivers/gpu/drm/msm/dp/dp_debug.c
75
link_params_rate = debug->link->link_params.rate;
drivers/gpu/drm/msm/dp/dp_debug.c
78
lclk = debug->link->link_params.rate * 1000;
drivers/gpu/drm/msm/dp/dp_debug.c
81
debug->link->phy_params.v_level);
drivers/gpu/drm/msm/dp/dp_debug.c
83
debug->link->phy_params.p_level);
drivers/gpu/drm/msm/dp/dp_debug.c
96
bpc = debug->link->test_video.test_bit_depth;
drivers/gpu/drm/msm/dp/dp_debug.c
98
debug->link->test_video.test_h_width);
drivers/gpu/drm/msm/dp/dp_debug.h
29
struct msm_dp_link *link,
drivers/gpu/drm/msm/dp/dp_debug.h
38
struct msm_dp_link *link,
drivers/gpu/drm/msm/dp/dp_display.c
1012
msm_dp_display->link->test_video.test_bit_depth);
drivers/gpu/drm/msm/dp/dp_display.c
1556
rc = msm_dp_debug_init(dev, dp->panel, dp->link, dp->msm_dp_display.connector, root, is_edp);
drivers/gpu/drm/msm/dp/dp_display.c
389
if (drm_dp_read_lttpr_common_caps(dp->aux, dpcd, dp->link->lttpr_common_caps))
drivers/gpu/drm/msm/dp/dp_display.c
392
lttpr_count = drm_dp_lttpr_count(dp->link->lttpr_common_caps);
drivers/gpu/drm/msm/dp/dp_display.c
413
dp->link->lttpr_count = msm_dp_display_lttpr_init(dp, dpcd);
drivers/gpu/drm/msm/dp/dp_display.c
419
msm_dp_link_process_request(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
436
msm_dp_link_psm_config(dp->link, &dp->panel->link_info, false);
drivers/gpu/drm/msm/dp/dp_display.c
438
msm_dp_link_reset_phy_params_vx_px(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
521
if (dp->link->sink_request & DP_TEST_LINK_VIDEO_PATTERN) {
drivers/gpu/drm/msm/dp/dp_display.c
523
msm_dp_link_send_test_response(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
531
if (drm_dp_is_branch(dp->panel->dpcd) && dp->link->sink_count == 0) {
drivers/gpu/drm/msm/dp/dp_display.c
551
u32 sink_request = dp->link->sink_request;
drivers/gpu/drm/msm/dp/dp_display.c
578
rc = msm_dp_link_process_request(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
580
sink_request = dp->link->sink_request;
drivers/gpu/drm/msm/dp/dp_display.c
679
if (dp->link->sink_count == 0) {
drivers/gpu/drm/msm/dp/dp_display.c
787
dp->link = msm_dp_link_get(dev, dp->aux);
drivers/gpu/drm/msm/dp/dp_display.c
788
if (IS_ERR(dp->link)) {
drivers/gpu/drm/msm/dp/dp_display.c
789
rc = PTR_ERR(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
791
dp->link = NULL;
drivers/gpu/drm/msm/dp/dp_display.c
795
dp->panel = msm_dp_panel_get(dev, dp->aux, dp->link, dp->link_base, dp->p0_base);
drivers/gpu/drm/msm/dp/dp_display.c
803
dp->ctrl = msm_dp_ctrl_get(dev, dp->link, dp->panel, dp->aux,
drivers/gpu/drm/msm/dp/dp_display.c
849
drm_dbg_dp(dp->drm_dev, "sink_count=%d\n", dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_display.c
869
rate = dp->link->link_params.rate;
drivers/gpu/drm/msm/dp/dp_display.c
873
dp->audio->lane_count = dp->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_display.c
90
struct msm_dp_link *link;
drivers/gpu/drm/msm/dp/dp_display.c
903
if (dp->link->sink_count == 0) {
drivers/gpu/drm/msm/dp/dp_display.c
920
drm_dbg_dp(dp->drm_dev, "sink count: %d\n", dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_link.c
1002
static bool msm_dp_link_is_video_pattern_requested(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
1004
return (link->request.test_requested & DP_TEST_LINK_VIDEO_PATTERN)
drivers/gpu/drm/msm/dp/dp_link.c
1005
&& !(link->request.test_requested &
drivers/gpu/drm/msm/dp/dp_link.c
1009
static bool msm_dp_link_is_audio_pattern_requested(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
1011
return (link->request.test_requested & DP_TEST_LINK_AUDIO_PATTERN);
drivers/gpu/drm/msm/dp/dp_link.c
1014
static void msm_dp_link_reset_data(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
1016
link->request = (const struct msm_dp_link_request){ 0 };
drivers/gpu/drm/msm/dp/dp_link.c
1017
link->msm_dp_link.test_video = (const struct msm_dp_link_test_video){ 0 };
drivers/gpu/drm/msm/dp/dp_link.c
1018
link->msm_dp_link.test_video.test_bit_depth = DP_TEST_BIT_DEPTH_UNKNOWN;
drivers/gpu/drm/msm/dp/dp_link.c
1019
link->msm_dp_link.test_audio = (const struct msm_dp_link_test_audio){ 0 };
drivers/gpu/drm/msm/dp/dp_link.c
102
static int msm_dp_link_get_period(struct msm_dp_link_private *link, int const addr)
drivers/gpu/drm/msm/dp/dp_link.c
1020
link->msm_dp_link.phy_params.phy_test_pattern_sel = 0;
drivers/gpu/drm/msm/dp/dp_link.c
1021
link->msm_dp_link.sink_request = 0;
drivers/gpu/drm/msm/dp/dp_link.c
1022
link->msm_dp_link.test_response = 0;
drivers/gpu/drm/msm/dp/dp_link.c
1036
struct msm_dp_link_private *link;
drivers/gpu/drm/msm/dp/dp_link.c
1043
link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link);
drivers/gpu/drm/msm/dp/dp_link.c
1045
msm_dp_link_reset_data(link);
drivers/gpu/drm/msm/dp/dp_link.c
1047
ret = msm_dp_link_parse_sink_status_field(link);
drivers/gpu/drm/msm/dp/dp_link.c
1051
if (link->request.test_requested == DP_TEST_LINK_EDID_READ) {
drivers/gpu/drm/msm/dp/dp_link.c
1053
} else if (!msm_dp_link_process_ds_port_status_change(link)) {
drivers/gpu/drm/msm/dp/dp_link.c
1055
} else if (!msm_dp_link_process_link_training_request(link)) {
drivers/gpu/drm/msm/dp/dp_link.c
1057
} else if (!msm_dp_link_process_phy_test_pattern_request(link)) {
drivers/gpu/drm/msm/dp/dp_link.c
1059
} else if (msm_dp_link_read_psr_error_status(link)) {
drivers/gpu/drm/msm/dp/dp_link.c
1061
} else if (msm_dp_link_psr_capability_changed(link)) {
drivers/gpu/drm/msm/dp/dp_link.c
1062
drm_dbg_dp(link->drm_dev, "PSR Capability changed\n");
drivers/gpu/drm/msm/dp/dp_link.c
1064
ret = msm_dp_link_process_link_status_update(link);
drivers/gpu/drm/msm/dp/dp_link.c
1068
if (msm_dp_link_is_video_pattern_requested(link)) {
drivers/gpu/drm/msm/dp/dp_link.c
1072
if (msm_dp_link_is_audio_pattern_requested(link)) {
drivers/gpu/drm/msm/dp/dp_link.c
1079
drm_dbg_dp(link->drm_dev, "sink request=%#x\n",
drivers/gpu/drm/msm/dp/dp_link.c
1087
struct msm_dp_link_private *link;
drivers/gpu/drm/msm/dp/dp_link.c
109
if (drm_dp_dpcd_readb(link->aux, addr, &data) < 0) {
drivers/gpu/drm/msm/dp/dp_link.c
1094
link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link);
drivers/gpu/drm/msm/dp/dp_link.c
1100
if (msm_dp_link_is_video_pattern_requested(link)) {
drivers/gpu/drm/msm/dp/dp_link.c
1101
if (link->msm_dp_link.test_video.test_dyn_range &
drivers/gpu/drm/msm/dp/dp_link.c
1114
struct msm_dp_link_private *link;
drivers/gpu/drm/msm/dp/dp_link.c
1121
link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link);
drivers/gpu/drm/msm/dp/dp_link.c
1128
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
1145
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
1153
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
1162
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
1169
drm_dbg_dp(link->drm_dev, "adjusted: v_level=%d, p_level=%d\n",
drivers/gpu/drm/msm/dp/dp_link.c
1184
struct msm_dp_link_private *link;
drivers/gpu/drm/msm/dp/dp_link.c
1186
link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link);
drivers/gpu/drm/msm/dp/dp_link.c
1204
drm_dbg_dp(link->drm_dev, "bpp=%d not supported, use bpc=8\n",
drivers/gpu/drm/msm/dp/dp_link.c
128
static int msm_dp_link_parse_audio_channel_period(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
131
struct msm_dp_link_test_audio *req = &link->msm_dp_link.test_audio;
drivers/gpu/drm/msm/dp/dp_link.c
1327
struct msm_dp_link_private *link;
drivers/gpu/drm/msm/dp/dp_link.c
133
ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH1);
drivers/gpu/drm/msm/dp/dp_link.c
1336
link = devm_kzalloc(dev, sizeof(*link), GFP_KERNEL);
drivers/gpu/drm/msm/dp/dp_link.c
1337
if (!link)
drivers/gpu/drm/msm/dp/dp_link.c
1340
link->aux = aux;
drivers/gpu/drm/msm/dp/dp_link.c
1342
mutex_init(&link->psm_mutex);
drivers/gpu/drm/msm/dp/dp_link.c
1343
msm_dp_link = &link->msm_dp_link;
drivers/gpu/drm/msm/dp/dp_link.c
138
drm_dbg_dp(link->drm_dev, "test_audio_period_ch_1 = 0x%x\n", ret);
drivers/gpu/drm/msm/dp/dp_link.c
140
ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH2);
drivers/gpu/drm/msm/dp/dp_link.c
145
drm_dbg_dp(link->drm_dev, "test_audio_period_ch_2 = 0x%x\n", ret);
drivers/gpu/drm/msm/dp/dp_link.c
148
ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH3);
drivers/gpu/drm/msm/dp/dp_link.c
153
drm_dbg_dp(link->drm_dev, "test_audio_period_ch_3 = 0x%x\n", ret);
drivers/gpu/drm/msm/dp/dp_link.c
155
ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH4);
drivers/gpu/drm/msm/dp/dp_link.c
160
drm_dbg_dp(link->drm_dev, "test_audio_period_ch_4 = 0x%x\n", ret);
drivers/gpu/drm/msm/dp/dp_link.c
162
ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH5);
drivers/gpu/drm/msm/dp/dp_link.c
167
drm_dbg_dp(link->drm_dev, "test_audio_period_ch_5 = 0x%x\n", ret);
drivers/gpu/drm/msm/dp/dp_link.c
169
ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH6);
drivers/gpu/drm/msm/dp/dp_link.c
174
drm_dbg_dp(link->drm_dev, "test_audio_period_ch_6 = 0x%x\n", ret);
drivers/gpu/drm/msm/dp/dp_link.c
176
ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH7);
drivers/gpu/drm/msm/dp/dp_link.c
181
drm_dbg_dp(link->drm_dev, "test_audio_period_ch_7 = 0x%x\n", ret);
drivers/gpu/drm/msm/dp/dp_link.c
183
ret = msm_dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH8);
drivers/gpu/drm/msm/dp/dp_link.c
188
drm_dbg_dp(link->drm_dev, "test_audio_period_ch_8 = 0x%x\n", ret);
drivers/gpu/drm/msm/dp/dp_link.c
193
static int msm_dp_link_parse_audio_pattern_type(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
200
rlen = drm_dp_dpcd_readb(link->aux,
drivers/gpu/drm/msm/dp/dp_link.c
214
link->msm_dp_link.test_audio.test_audio_pattern_type = data;
drivers/gpu/drm/msm/dp/dp_link.c
215
drm_dbg_dp(link->drm_dev, "audio pattern type = 0x%x\n", data);
drivers/gpu/drm/msm/dp/dp_link.c
220
static int msm_dp_link_parse_audio_mode(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
230
rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_AUDIO_MODE, &data);
drivers/gpu/drm/msm/dp/dp_link.c
254
link->msm_dp_link.test_audio.test_audio_sampling_rate = sampling_rate;
drivers/gpu/drm/msm/dp/dp_link.c
255
link->msm_dp_link.test_audio.test_audio_channel_count = channel_count;
drivers/gpu/drm/msm/dp/dp_link.c
256
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
263
static int msm_dp_link_parse_audio_pattern_params(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
267
ret = msm_dp_link_parse_audio_mode(link);
drivers/gpu/drm/msm/dp/dp_link.c
271
ret = msm_dp_link_parse_audio_pattern_type(link);
drivers/gpu/drm/msm/dp/dp_link.c
275
ret = msm_dp_link_parse_audio_channel_period(link);
drivers/gpu/drm/msm/dp/dp_link.c
313
static int msm_dp_link_parse_timing_params1(struct msm_dp_link_private *link,
drivers/gpu/drm/msm/dp/dp_link.c
323
rlen = drm_dp_dpcd_read(link->aux, addr, bp, len);
drivers/gpu/drm/msm/dp/dp_link.c
334
static int msm_dp_link_parse_timing_params2(struct msm_dp_link_private *link,
drivers/gpu/drm/msm/dp/dp_link.c
345
rlen = drm_dp_dpcd_read(link->aux, addr, bp, len);
drivers/gpu/drm/msm/dp/dp_link.c
357
static int msm_dp_link_parse_timing_params3(struct msm_dp_link_private *link,
drivers/gpu/drm/msm/dp/dp_link.c
364
rlen = drm_dp_dpcd_read(link->aux, addr, &bp, len);
drivers/gpu/drm/msm/dp/dp_link.c
381
static int msm_dp_link_parse_video_pattern_params(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
387
rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_PATTERN, &bp);
drivers/gpu/drm/msm/dp/dp_link.c
400
link->msm_dp_link.test_video.test_video_pattern = bp;
drivers/gpu/drm/msm/dp/dp_link.c
403
rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_MISC0, &bp);
drivers/gpu/drm/msm/dp/dp_link.c
410
link->msm_dp_link.test_video.test_dyn_range =
drivers/gpu/drm/msm/dp/dp_link.c
421
link->msm_dp_link.test_video.test_bit_depth = bp;
drivers/gpu/drm/msm/dp/dp_link.c
424
ret = msm_dp_link_parse_timing_params1(link, DP_TEST_H_TOTAL_HI, 2,
drivers/gpu/drm/msm/dp/dp_link.c
425
&link->msm_dp_link.test_video.test_h_total);
drivers/gpu/drm/msm/dp/dp_link.c
431
ret = msm_dp_link_parse_timing_params1(link, DP_TEST_V_TOTAL_HI, 2,
drivers/gpu/drm/msm/dp/dp_link.c
432
&link->msm_dp_link.test_video.test_v_total);
drivers/gpu/drm/msm/dp/dp_link.c
438
ret = msm_dp_link_parse_timing_params1(link, DP_TEST_H_START_HI, 2,
drivers/gpu/drm/msm/dp/dp_link.c
439
&link->msm_dp_link.test_video.test_h_start);
drivers/gpu/drm/msm/dp/dp_link.c
445
ret = msm_dp_link_parse_timing_params1(link, DP_TEST_V_START_HI, 2,
drivers/gpu/drm/msm/dp/dp_link.c
446
&link->msm_dp_link.test_video.test_v_start);
drivers/gpu/drm/msm/dp/dp_link.c
452
ret = msm_dp_link_parse_timing_params2(link, DP_TEST_HSYNC_HI, 2,
drivers/gpu/drm/msm/dp/dp_link.c
453
&link->msm_dp_link.test_video.test_hsync_pol,
drivers/gpu/drm/msm/dp/dp_link.c
454
&link->msm_dp_link.test_video.test_hsync_width);
drivers/gpu/drm/msm/dp/dp_link.c
460
ret = msm_dp_link_parse_timing_params2(link, DP_TEST_VSYNC_HI, 2,
drivers/gpu/drm/msm/dp/dp_link.c
461
&link->msm_dp_link.test_video.test_vsync_pol,
drivers/gpu/drm/msm/dp/dp_link.c
462
&link->msm_dp_link.test_video.test_vsync_width);
drivers/gpu/drm/msm/dp/dp_link.c
468
ret = msm_dp_link_parse_timing_params1(link, DP_TEST_H_WIDTH_HI, 2,
drivers/gpu/drm/msm/dp/dp_link.c
469
&link->msm_dp_link.test_video.test_h_width);
drivers/gpu/drm/msm/dp/dp_link.c
475
ret = msm_dp_link_parse_timing_params1(link, DP_TEST_V_HEIGHT_HI, 2,
drivers/gpu/drm/msm/dp/dp_link.c
476
&link->msm_dp_link.test_video.test_v_height);
drivers/gpu/drm/msm/dp/dp_link.c
482
ret = msm_dp_link_parse_timing_params3(link, DP_TEST_MISC1,
drivers/gpu/drm/msm/dp/dp_link.c
483
&link->msm_dp_link.test_video.test_rr_d);
drivers/gpu/drm/msm/dp/dp_link.c
484
link->msm_dp_link.test_video.test_rr_d &= DP_TEST_REFRESH_DENOMINATOR;
drivers/gpu/drm/msm/dp/dp_link.c
490
ret = msm_dp_link_parse_timing_params3(link, DP_TEST_REFRESH_RATE_NUMERATOR,
drivers/gpu/drm/msm/dp/dp_link.c
491
&link->msm_dp_link.test_video.test_rr_n);
drivers/gpu/drm/msm/dp/dp_link.c
497
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
511
link->msm_dp_link.test_video.test_video_pattern,
drivers/gpu/drm/msm/dp/dp_link.c
512
link->msm_dp_link.test_video.test_dyn_range,
drivers/gpu/drm/msm/dp/dp_link.c
513
link->msm_dp_link.test_video.test_bit_depth,
drivers/gpu/drm/msm/dp/dp_link.c
514
link->msm_dp_link.test_video.test_h_total,
drivers/gpu/drm/msm/dp/dp_link.c
515
link->msm_dp_link.test_video.test_v_total,
drivers/gpu/drm/msm/dp/dp_link.c
516
link->msm_dp_link.test_video.test_h_start,
drivers/gpu/drm/msm/dp/dp_link.c
517
link->msm_dp_link.test_video.test_v_start,
drivers/gpu/drm/msm/dp/dp_link.c
518
link->msm_dp_link.test_video.test_hsync_pol,
drivers/gpu/drm/msm/dp/dp_link.c
519
link->msm_dp_link.test_video.test_hsync_width,
drivers/gpu/drm/msm/dp/dp_link.c
52
struct msm_dp_link_info *link)
drivers/gpu/drm/msm/dp/dp_link.c
520
link->msm_dp_link.test_video.test_vsync_pol,
drivers/gpu/drm/msm/dp/dp_link.c
521
link->msm_dp_link.test_video.test_vsync_width,
drivers/gpu/drm/msm/dp/dp_link.c
522
link->msm_dp_link.test_video.test_h_width,
drivers/gpu/drm/msm/dp/dp_link.c
523
link->msm_dp_link.test_video.test_v_height,
drivers/gpu/drm/msm/dp/dp_link.c
524
link->msm_dp_link.test_video.test_rr_d,
drivers/gpu/drm/msm/dp/dp_link.c
525
link->msm_dp_link.test_video.test_rr_n);
drivers/gpu/drm/msm/dp/dp_link.c
538
static int msm_dp_link_parse_link_training_params(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
543
rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_LINK_RATE, &bp);
drivers/gpu/drm/msm/dp/dp_link.c
554
link->request.test_link_rate = bp;
drivers/gpu/drm/msm/dp/dp_link.c
555
drm_dbg_dp(link->drm_dev, "link rate = 0x%x\n",
drivers/gpu/drm/msm/dp/dp_link.c
556
link->request.test_link_rate);
drivers/gpu/drm/msm/dp/dp_link.c
558
rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_LANE_COUNT, &bp);
drivers/gpu/drm/msm/dp/dp_link.c
570
link->request.test_lane_count = bp;
drivers/gpu/drm/msm/dp/dp_link.c
571
drm_dbg_dp(link->drm_dev, "lane count = 0x%x\n",
drivers/gpu/drm/msm/dp/dp_link.c
572
link->request.test_lane_count);
drivers/gpu/drm/msm/dp/dp_link.c
58
if (link->revision < 0x11)
drivers/gpu/drm/msm/dp/dp_link.c
583
static int msm_dp_link_parse_phy_test_params(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
588
rlen = drm_dp_dpcd_readb(link->aux, DP_PHY_TEST_PATTERN,
drivers/gpu/drm/msm/dp/dp_link.c
595
link->msm_dp_link.phy_params.phy_test_pattern_sel = data & 0x07;
drivers/gpu/drm/msm/dp/dp_link.c
597
drm_dbg_dp(link->drm_dev, "phy_test_pattern_sel = 0x%x\n", data);
drivers/gpu/drm/msm/dp/dp_link.c
619
static bool msm_dp_link_is_video_audio_test_requested(u32 link)
drivers/gpu/drm/msm/dp/dp_link.c
625
return ((link & video_audio_test) &&
drivers/gpu/drm/msm/dp/dp_link.c
626
!(link & ~video_audio_test));
drivers/gpu/drm/msm/dp/dp_link.c
636
static int msm_dp_link_parse_request(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
646
rlen = drm_dp_dpcd_readb(link->aux,
drivers/gpu/drm/msm/dp/dp_link.c
653
drm_dbg_dp(link->drm_dev, "device service irq vector = 0x%x\n", data);
drivers/gpu/drm/msm/dp/dp_link.c
656
drm_dbg_dp(link->drm_dev, "no test requested\n");
drivers/gpu/drm/msm/dp/dp_link.c
664
rlen = drm_dp_dpcd_readb(link->aux, DP_TEST_REQUEST, &data);
drivers/gpu/drm/msm/dp/dp_link.c
671
drm_dbg_dp(link->drm_dev, "link 0x%x not supported\n", data);
drivers/gpu/drm/msm/dp/dp_link.c
675
drm_dbg_dp(link->drm_dev, "Test:(0x%x) requested\n", data);
drivers/gpu/drm/msm/dp/dp_link.c
676
link->request.test_requested = data;
drivers/gpu/drm/msm/dp/dp_link.c
677
if (link->request.test_requested == DP_TEST_LINK_PHY_TEST_PATTERN) {
drivers/gpu/drm/msm/dp/dp_link.c
678
ret = msm_dp_link_parse_phy_test_params(link);
drivers/gpu/drm/msm/dp/dp_link.c
681
ret = msm_dp_link_parse_link_training_params(link);
drivers/gpu/drm/msm/dp/dp_link.c
686
if (link->request.test_requested == DP_TEST_LINK_TRAINING) {
drivers/gpu/drm/msm/dp/dp_link.c
687
ret = msm_dp_link_parse_link_training_params(link);
drivers/gpu/drm/msm/dp/dp_link.c
693
link->request.test_requested)) {
drivers/gpu/drm/msm/dp/dp_link.c
694
ret = msm_dp_link_parse_video_pattern_params(link);
drivers/gpu/drm/msm/dp/dp_link.c
698
ret = msm_dp_link_parse_audio_pattern_params(link);
drivers/gpu/drm/msm/dp/dp_link.c
706
link->msm_dp_link.test_response = DP_TEST_NAK;
drivers/gpu/drm/msm/dp/dp_link.c
708
if (link->request.test_requested != DP_TEST_LINK_EDID_READ)
drivers/gpu/drm/msm/dp/dp_link.c
709
link->msm_dp_link.test_response = DP_TEST_ACK;
drivers/gpu/drm/msm/dp/dp_link.c
711
link->msm_dp_link.test_response =
drivers/gpu/drm/msm/dp/dp_link.c
718
static int msm_dp_link_parse_sink_status_field(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
722
link->prev_sink_count = link->msm_dp_link.sink_count;
drivers/gpu/drm/msm/dp/dp_link.c
723
ret = drm_dp_read_sink_count(link->aux);
drivers/gpu/drm/msm/dp/dp_link.c
728
link->msm_dp_link.sink_count = ret;
drivers/gpu/drm/msm/dp/dp_link.c
730
ret = drm_dp_dpcd_read_link_status(link->aux,
drivers/gpu/drm/msm/dp/dp_link.c
731
link->link_status);
drivers/gpu/drm/msm/dp/dp_link.c
737
return msm_dp_link_parse_request(link);
drivers/gpu/drm/msm/dp/dp_link.c
751
static int msm_dp_link_process_link_training_request(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
753
if (link->request.test_requested != DP_TEST_LINK_TRAINING)
drivers/gpu/drm/msm/dp/dp_link.c
756
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
759
link->request.test_link_rate,
drivers/gpu/drm/msm/dp/dp_link.c
760
link->request.test_lane_count);
drivers/gpu/drm/msm/dp/dp_link.c
762
link->msm_dp_link.link_params.num_lanes = link->request.test_lane_count;
drivers/gpu/drm/msm/dp/dp_link.c
763
link->msm_dp_link.link_params.rate =
drivers/gpu/drm/msm/dp/dp_link.c
764
drm_dp_bw_code_to_link_rate(link->request.test_link_rate);
drivers/gpu/drm/msm/dp/dp_link.c
771
struct msm_dp_link_private *link = NULL;
drivers/gpu/drm/msm/dp/dp_link.c
779
link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link);
drivers/gpu/drm/msm/dp/dp_link.c
781
ret = drm_dp_dpcd_writeb(link->aux, DP_TEST_RESPONSE,
drivers/gpu/drm/msm/dp/dp_link.c
790
struct msm_dp_link_private *link = NULL;
drivers/gpu/drm/msm/dp/dp_link.c
798
link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link);
drivers/gpu/drm/msm/dp/dp_link.c
80
struct msm_dp_link_info *link)
drivers/gpu/drm/msm/dp/dp_link.c
800
mutex_lock(&link->psm_mutex);
drivers/gpu/drm/msm/dp/dp_link.c
802
ret = msm_dp_aux_link_power_down(link->aux, link_info);
drivers/gpu/drm/msm/dp/dp_link.c
804
ret = msm_dp_aux_link_power_up(link->aux, link_info);
drivers/gpu/drm/msm/dp/dp_link.c
810
mutex_unlock(&link->psm_mutex);
drivers/gpu/drm/msm/dp/dp_link.c
816
struct msm_dp_link_private *link = NULL;
drivers/gpu/drm/msm/dp/dp_link.c
824
link = container_of(msm_dp_link, struct msm_dp_link_private, msm_dp_link);
drivers/gpu/drm/msm/dp/dp_link.c
826
ret = drm_dp_dpcd_writeb(link->aux, DP_TEST_EDID_CHECKSUM,
drivers/gpu/drm/msm/dp/dp_link.c
831
static void msm_dp_link_parse_vx_px(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
833
drm_dbg_dp(link->drm_dev, "vx: 0=%d, 1=%d, 2=%d, 3=%d\n",
drivers/gpu/drm/msm/dp/dp_link.c
834
drm_dp_get_adjust_request_voltage(link->link_status, 0),
drivers/gpu/drm/msm/dp/dp_link.c
835
drm_dp_get_adjust_request_voltage(link->link_status, 1),
drivers/gpu/drm/msm/dp/dp_link.c
836
drm_dp_get_adjust_request_voltage(link->link_status, 2),
drivers/gpu/drm/msm/dp/dp_link.c
837
drm_dp_get_adjust_request_voltage(link->link_status, 3));
drivers/gpu/drm/msm/dp/dp_link.c
839
drm_dbg_dp(link->drm_dev, "px: 0=%d, 1=%d, 2=%d, 3=%d\n",
drivers/gpu/drm/msm/dp/dp_link.c
840
drm_dp_get_adjust_request_pre_emphasis(link->link_status, 0),
drivers/gpu/drm/msm/dp/dp_link.c
841
drm_dp_get_adjust_request_pre_emphasis(link->link_status, 1),
drivers/gpu/drm/msm/dp/dp_link.c
842
drm_dp_get_adjust_request_pre_emphasis(link->link_status, 2),
drivers/gpu/drm/msm/dp/dp_link.c
843
drm_dp_get_adjust_request_pre_emphasis(link->link_status, 3));
drivers/gpu/drm/msm/dp/dp_link.c
849
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
85
if (link->revision < 0x11)
drivers/gpu/drm/msm/dp/dp_link.c
851
link->msm_dp_link.phy_params.v_level,
drivers/gpu/drm/msm/dp/dp_link.c
852
link->msm_dp_link.phy_params.p_level);
drivers/gpu/drm/msm/dp/dp_link.c
853
link->msm_dp_link.phy_params.v_level =
drivers/gpu/drm/msm/dp/dp_link.c
854
drm_dp_get_adjust_request_voltage(link->link_status, 0);
drivers/gpu/drm/msm/dp/dp_link.c
855
link->msm_dp_link.phy_params.p_level =
drivers/gpu/drm/msm/dp/dp_link.c
856
drm_dp_get_adjust_request_pre_emphasis(link->link_status, 0);
drivers/gpu/drm/msm/dp/dp_link.c
858
link->msm_dp_link.phy_params.p_level >>= DP_TRAIN_PRE_EMPHASIS_SHIFT;
drivers/gpu/drm/msm/dp/dp_link.c
860
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
862
link->msm_dp_link.phy_params.v_level,
drivers/gpu/drm/msm/dp/dp_link.c
863
link->msm_dp_link.phy_params.p_level);
drivers/gpu/drm/msm/dp/dp_link.c
875
struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
877
if (!(link->request.test_requested & DP_TEST_LINK_PHY_TEST_PATTERN)) {
drivers/gpu/drm/msm/dp/dp_link.c
878
drm_dbg_dp(link->drm_dev, "no phy test\n");
drivers/gpu/drm/msm/dp/dp_link.c
882
if (!is_link_rate_valid(link->request.test_link_rate) ||
drivers/gpu/drm/msm/dp/dp_link.c
883
!is_lane_count_valid(link->request.test_lane_count)) {
drivers/gpu/drm/msm/dp/dp_link.c
885
link->request.test_link_rate,
drivers/gpu/drm/msm/dp/dp_link.c
886
link->request.test_lane_count);
drivers/gpu/drm/msm/dp/dp_link.c
890
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
892
link->msm_dp_link.link_params.rate,
drivers/gpu/drm/msm/dp/dp_link.c
893
link->msm_dp_link.link_params.num_lanes);
drivers/gpu/drm/msm/dp/dp_link.c
895
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
897
link->request.test_link_rate,
drivers/gpu/drm/msm/dp/dp_link.c
898
link->request.test_lane_count);
drivers/gpu/drm/msm/dp/dp_link.c
900
link->msm_dp_link.link_params.num_lanes = link->request.test_lane_count;
drivers/gpu/drm/msm/dp/dp_link.c
901
link->msm_dp_link.link_params.rate =
drivers/gpu/drm/msm/dp/dp_link.c
902
drm_dp_bw_code_to_link_rate(link->request.test_link_rate);
drivers/gpu/drm/msm/dp/dp_link.c
904
msm_dp_link_parse_vx_px(link);
drivers/gpu/drm/msm/dp/dp_link.c
909
static bool msm_dp_link_read_psr_error_status(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
913
drm_dp_dpcd_read(link->aux, DP_PSR_ERROR_STATUS, &status, 1);
drivers/gpu/drm/msm/dp/dp_link.c
927
static bool msm_dp_link_psr_capability_changed(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
931
drm_dp_dpcd_read(link->aux, DP_PSR_ESI, &status, 1);
drivers/gpu/drm/msm/dp/dp_link.c
934
drm_dbg_dp(link->drm_dev, "PSR Capability Change\n");
drivers/gpu/drm/msm/dp/dp_link.c
957
static int msm_dp_link_process_link_status_update(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
959
bool channel_eq_done = drm_dp_channel_eq_ok(link->link_status,
drivers/gpu/drm/msm/dp/dp_link.c
960
link->msm_dp_link.link_params.num_lanes);
drivers/gpu/drm/msm/dp/dp_link.c
962
bool clock_recovery_done = drm_dp_clock_recovery_ok(link->link_status,
drivers/gpu/drm/msm/dp/dp_link.c
963
link->msm_dp_link.link_params.num_lanes);
drivers/gpu/drm/msm/dp/dp_link.c
965
drm_dbg_dp(link->drm_dev,
drivers/gpu/drm/msm/dp/dp_link.c
986
static int msm_dp_link_process_ds_port_status_change(struct msm_dp_link_private *link)
drivers/gpu/drm/msm/dp/dp_link.c
988
if (get_link_status(link->link_status, DP_LANE_ALIGN_STATUS_UPDATED) &
drivers/gpu/drm/msm/dp/dp_link.c
992
if (link->prev_sink_count == link->msm_dp_link.sink_count)
drivers/gpu/drm/msm/dp/dp_link.c
997
link->prev_sink_count = link->msm_dp_link.sink_count;
drivers/gpu/drm/msm/dp/dp_panel.c
108
link = panel->link;
drivers/gpu/drm/msm/dp/dp_panel.c
110
link->max_dp_lanes, link->max_dp_link_rate);
drivers/gpu/drm/msm/dp/dp_panel.c
112
max_lttpr_lanes = drm_dp_lttpr_max_lane_count(link->lttpr_common_caps);
drivers/gpu/drm/msm/dp/dp_panel.c
113
max_lttpr_rate = drm_dp_lttpr_max_link_rate(link->lttpr_common_caps);
drivers/gpu/drm/msm/dp/dp_panel.c
159
if (rate > link->max_dp_link_rate)
drivers/gpu/drm/msm/dp/dp_panel.c
182
if (link_info->rate > link->max_dp_link_rate)
drivers/gpu/drm/msm/dp/dp_panel.c
183
link_info->rate = link->max_dp_link_rate;
drivers/gpu/drm/msm/dp/dp_panel.c
193
if (link_info->num_lanes > link->max_dp_lanes)
drivers/gpu/drm/msm/dp/dp_panel.c
194
link_info->num_lanes = link->max_dp_lanes;
drivers/gpu/drm/msm/dp/dp_panel.c
26
struct msm_dp_link *link;
drivers/gpu/drm/msm/dp/dp_panel.c
267
panel->link->sink_count = 0;
drivers/gpu/drm/msm/dp/dp_panel.c
311
panel->link->test_video.test_bit_depth);
drivers/gpu/drm/msm/dp/dp_panel.c
351
if (panel->link->sink_request & DP_TEST_LINK_EDID_READ) {
drivers/gpu/drm/msm/dp/dp_panel.c
361
msm_dp_link_send_edid_checksum(panel->link, checksum);
drivers/gpu/drm/msm/dp/dp_panel.c
362
msm_dp_link_send_test_response(panel->link);
drivers/gpu/drm/msm/dp/dp_panel.c
722
struct msm_dp_link *link,
drivers/gpu/drm/msm/dp/dp_panel.c
729
if (!dev || !aux || !link) {
drivers/gpu/drm/msm/dp/dp_panel.c
740
panel->link = link;
drivers/gpu/drm/msm/dp/dp_panel.c
93
struct msm_dp_link *link;
drivers/gpu/drm/msm/dp/dp_panel.h
92
struct msm_dp_link *link,
drivers/gpu/drm/nouveau/dispnv50/disp.c
1062
if (mstm->outp->outp.or.link & 1)
drivers/gpu/drm/nouveau/dispnv50/disp.c
1783
if (nv_encoder->outp.or.link & 1) {
drivers/gpu/drm/nouveau/dispnv50/disp.c
1833
if (nv_encoder->outp.or.link & 1)
drivers/gpu/drm/nouveau/include/nvif/if0012.h
109
__u8 link;
drivers/gpu/drm/nouveau/include/nvif/if0012.h
130
__u8 link;
drivers/gpu/drm/nouveau/include/nvif/outp.h
54
int link;
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/dcb.h
27
uint8_t link;
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/dcb.h
32
int link;
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/init.h
11
int link;
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/init.h
27
.link = 0, \
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/vmap.h
16
u8 link;
drivers/gpu/drm/nouveau/nouveau_bios.c
1400
int link = 0;
drivers/gpu/drm/nouveau/nouveau_bios.c
1445
entry->lvdsconf.sor.link = (conf & 0x00000030) >> 4;
drivers/gpu/drm/nouveau/nouveau_bios.c
1446
link = entry->lvdsconf.sor.link;
drivers/gpu/drm/nouveau/nouveau_bios.c
1471
entry->dpconf.sor.link = (conf & 0x00000030) >> 4;
drivers/gpu/drm/nouveau/nouveau_bios.c
1501
link = entry->dpconf.sor.link;
drivers/gpu/drm/nouveau/nouveau_bios.c
1505
entry->tmdsconf.sor.link = (conf & 0x00000030) >> 4;
drivers/gpu/drm/nouveau/nouveau_bios.c
1507
link = entry->tmdsconf.sor.link;
drivers/gpu/drm/nouveau/nouveau_bios.c
1529
entry->duallink_possible = (entry->sorconf.link == 3);
drivers/gpu/drm/nouveau/nouveau_bios.c
1538
entry->hashm = (entry->heads << 8) | (link << 6) | entry->or;
drivers/gpu/drm/nouveau/nvif/outp.c
314
outp->or.link = args->link;
drivers/gpu/drm/nouveau/nvif/outp.c
338
NVIF_ERRON(ret, &outp->object, "[ACQUIRE SOR] or:%d link:%d", args.or, args.link);
drivers/gpu/drm/nouveau/nvif/outp.c
369
outp->or.link = args->link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
395
init.link = ior->asy.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
414
init.link = ior->asy.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
440
init.link = outp->ior->asy.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
452
init.link = outp->ior->asy.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
458
init.link = outp->ior->asy.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
467
init.link = outp->ior->asy.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
535
init.link = ior->arm.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
276
case 0: state->proto = LVDS; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
277
case 1: state->proto = TMDS; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
278
case 2: state->proto = TMDS; state->link = 2; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
279
case 5: state->proto = TMDS; state->link = 3; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
280
case 8: state->proto = DP; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c
281
case 9: state->proto = DP; state->link = 2; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
290
u32 div1 = sor->asy.link == 3;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
291
u32 div2 = sor->asy.link == 3;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
312
case 0: state->proto = LVDS; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
313
case 1: state->proto = TMDS; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
314
case 2: state->proto = TMDS; state->link = 2; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
315
case 5: state->proto = TMDS; state->link = 3; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
316
case 8: state->proto = DP; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
317
case 9: state->proto = DP; state->link = 2; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c
49
if (sor->asy.link & 1)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
104
u32 link = ior ? (ior->asy.link == 2) : 0;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
106
if (outp->info.sorconf.link & 1) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
107
nvkm_mask(device, 0x612308 + moff, 0x0000001f, link << 4 | sor);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
108
link++;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
111
if (outp->info.sorconf.link & 2)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
112
nvkm_mask(device, 0x612388 + moff, 0x0000001f, link << 4 | sor);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
116
gm200_sor_route_get(struct nvkm_outp *outp, int *link)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
119
const int sublinks = outp->info.sorconf.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
122
for (*link = 0, m = __ffs(outp->info.or) * 2, s = 0; s < 2; m++, s++) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c
129
*link |= lnk[s];
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
192
case 0: state->proto = LVDS; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
193
case 1: state->proto = TMDS; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
194
case 2: state->proto = TMDS; state->link = 2; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
195
case 5: state->proto = TMDS; state->link = 3; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
196
case 8: state->proto = DP; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
197
case 9: state->proto = DP; state->link = 2; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
127
return nv50_ior_base(ior) + ((ior->asy.link == 2) * 0x80);
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
34
unsigned link:2;
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
54
int (*get)(struct nvkm_outp *, int *link);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1019
const u8 l = ffs(outp->info.link);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1056
if (ior->asy.link == 3)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1079
init.link = ior->asy.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1104
init.link = ior->arm.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1288
ior->asy.link = outp->lvds.dual ? 3 : 1;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
196
const int div = sor->asy.link == 3;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
239
case 0: state->proto = LVDS; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
240
case 1: state->proto = TMDS; state->link = 1; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
241
case 2: state->proto = TMDS; state->link = 2; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
242
case 5: state->proto = TMDS; state->link = 3; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
110
outp->ior->asy.link = outp->info.sorconf.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
297
int id, link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
310
id = ior->func->route.get(outp, &link);
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
318
link = (ior->type == SOR) ? outp->info.sorconf.link : 0;
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
357
OUTP_DBG(outp, "on %s link %x", ior->name, ior->arm.link);
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
395
outp->info.type >= 2 ? outp->info.sorconf.link : 0,
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c
372
args->v0.link = outp->ior->asy.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c
432
args->v0.link = ior->arm.link;
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c
618
args->v0.tmds.dual = (outp->info.tmdsconf.sor.link == 3);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
117
return (outp->heads << 8) | (outp->link << 6) | outp->or;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
136
outp->link = 0;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
179
outp->link = (conf & 0x00000030) >> 4;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
180
outp->sorconf.link = outp->link; /*XXX*/
drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c
103
if (init->link)
drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c
104
return init->link == 2;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c
818
(init->outp->sorconf.link << 6),
drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c
100
info->link = 0xff;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c
109
info->link = nvbios_rd08(bios, vmap + 0x01);
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c
140
init.link = outp.sorconf.link == 2;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1263
u8 locn, link = 0;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1287
link = 1;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1291
link = 2;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1295
link = 3;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1299
link = 1;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1303
link = 2;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1335
dcbE.link = dcbE.sorconf.link = link;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
417
ctrl->dpLink = sor->asy.link == 2;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
450
ctrl->dpLink = sor->asy.link == 2;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
805
ior->arm.link = 1;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
809
ior->arm.link = 2;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
813
ior->arm.link = 3;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
817
ior->arm.link = 1;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
821
ior->arm.link = 2;
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
133
link = mxm_sor_map(bios, ctx.desc.dig_conn) & 0x30;
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
135
ctx.outp[1] |= link;
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
68
u8 link = mxm_sor_map(bios, ctx->desc.dig_conn);
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
69
if ((ctx->outp[0] & 0x0f000000) != (link & 0x0f) << 24)
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
73
link = (link & 0x30) >> 4;
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
74
if ((link & ((ctx->outp[1] & 0x00000030) >> 4)) != link)
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
99
u8 type, i2cidx, link, ver, len;
drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
147
if (info.link != 0xff) {
drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
148
int ret = nvkm_volt_map(volt, info.link, temp);
drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
91
if (info.link != 0xff) {
drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
92
int ret = nvkm_volt_map_min(volt, info.link);
drivers/gpu/drm/panel/panel-boe-himax8279d.c
100
err = mipi_dsi_dcs_set_display_off(pinfo->link);
drivers/gpu/drm/panel/panel-boe-himax8279d.c
104
err = mipi_dsi_dcs_enter_sleep_mode(pinfo->link);
drivers/gpu/drm/panel/panel-boe-himax8279d.c
149
err = mipi_dsi_dcs_exit_sleep_mode(pinfo->link);
drivers/gpu/drm/panel/panel-boe-himax8279d.c
158
err = mipi_dsi_dcs_set_display_on(pinfo->link);
drivers/gpu/drm/panel/panel-boe-himax8279d.c
181
ret = mipi_dsi_dcs_set_display_on(pinfo->link);
drivers/gpu/drm/panel/panel-boe-himax8279d.c
44
struct mipi_dsi_device *link;
drivers/gpu/drm/panel/panel-boe-himax8279d.c
71
err = mipi_dsi_dcs_write_buffer(pinfo->link, &cmds[i],
drivers/gpu/drm/panel/panel-boe-himax8279d.c
829
struct device *dev = &pinfo->link->dev;
drivers/gpu/drm/panel/panel-boe-himax8279d.c
86
err = mipi_dsi_dcs_set_display_off(pinfo->link);
drivers/gpu/drm/panel/panel-boe-himax8279d.c
877
pinfo->link = dsi;
drivers/gpu/drm/panel/panel-innolux-p079zca.c
111
err = mipi_dsi_dcs_exit_sleep_mode(innolux->link);
drivers/gpu/drm/panel/panel-innolux-p079zca.c
120
err = mipi_dsi_dcs_set_display_on(innolux->link);
drivers/gpu/drm/panel/panel-innolux-p079zca.c
216
struct mipi_dsi_multi_context ctx = { .dsi = innolux->link };
drivers/gpu/drm/panel/panel-innolux-p079zca.c
42
struct mipi_dsi_device *link;
drivers/gpu/drm/panel/panel-innolux-p079zca.c
422
innolux->link = dsi;
drivers/gpu/drm/panel/panel-innolux-p079zca.c
59
err = mipi_dsi_dcs_set_display_off(innolux->link);
drivers/gpu/drm/panel/panel-innolux-p079zca.c
63
err = mipi_dsi_dcs_enter_sleep_mode(innolux->link);
drivers/gpu/drm/panel/panel-khadas-ts050.c
23
struct mipi_dsi_device *link;
drivers/gpu/drm/panel/panel-khadas-ts050.c
659
mipi_dsi_dcs_write(khadas_ts050->link, 0xff, (u8[]){ 0x05 }, 1);
drivers/gpu/drm/panel/panel-khadas-ts050.c
662
mipi_dsi_dcs_write(khadas_ts050->link, 0xfb, (u8[]){ 0x01 }, 1);
drivers/gpu/drm/panel/panel-khadas-ts050.c
664
mipi_dsi_dcs_write(khadas_ts050->link, 0xc5, (u8[]){ 0x01 }, 1);
drivers/gpu/drm/panel/panel-khadas-ts050.c
669
err = mipi_dsi_dcs_write(khadas_ts050->link,
drivers/gpu/drm/panel/panel-khadas-ts050.c
679
err = mipi_dsi_dcs_exit_sleep_mode(khadas_ts050->link);
drivers/gpu/drm/panel/panel-khadas-ts050.c
688
mipi_dsi_dcs_write(khadas_ts050->link, 0xff, (u8[]){ 0x00 }, 1);
drivers/gpu/drm/panel/panel-khadas-ts050.c
690
err = mipi_dsi_dcs_set_tear_on(khadas_ts050->link,
drivers/gpu/drm/panel/panel-khadas-ts050.c
697
err = mipi_dsi_dcs_set_display_on(khadas_ts050->link);
drivers/gpu/drm/panel/panel-khadas-ts050.c
721
err = mipi_dsi_dcs_enter_sleep_mode(khadas_ts050->link);
drivers/gpu/drm/panel/panel-khadas-ts050.c
742
err = mipi_dsi_dcs_set_display_off(khadas_ts050->link);
drivers/gpu/drm/panel/panel-khadas-ts050.c
804
struct device *dev = &khadas_ts050->link->dev;
drivers/gpu/drm/panel/panel-khadas-ts050.c
859
khadas_ts050->link = dsi;
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
185
err = mipi_dsi_dcs_set_display_off(kingdisplay->link);
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
197
err = mipi_dsi_dcs_enter_sleep_mode(kingdisplay->link);
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
22
struct mipi_dsi_device *link;
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
236
err = mipi_dsi_generic_write(kingdisplay->link, &init_code[i],
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
244
err = mipi_dsi_dcs_exit_sleep_mode(kingdisplay->link);
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
253
err = mipi_dsi_dcs_set_display_on(kingdisplay->link);
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
325
struct device *dev = &kingdisplay->link->dev;
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
372
kingdisplay->link = dsi;
drivers/gpu/drm/panel/panel-lg-sw43408.c
109
sw43408->link->mode_flags &= ~MIPI_DSI_MODE_LPM;
drivers/gpu/drm/panel/panel-lg-sw43408.c
111
drm_dsc_pps_payload_pack(&pps, sw43408->link->dsc);
drivers/gpu/drm/panel/panel-lg-sw43408.c
115
sw43408->link->mode_flags |= MIPI_DSI_MODE_LPM;
drivers/gpu/drm/panel/panel-lg-sw43408.c
201
struct device *dev = &ctx->link->dev;
drivers/gpu/drm/panel/panel-lg-sw43408.c
209
ctx->link,
drivers/gpu/drm/panel/panel-lg-sw43408.c
235
struct device *dev = &ctx->link->dev;
drivers/gpu/drm/panel/panel-lg-sw43408.c
276
ctx->link = dsi;
drivers/gpu/drm/panel/panel-lg-sw43408.c
32
struct mipi_dsi_device *link;
drivers/gpu/drm/panel/panel-lg-sw43408.c
49
struct mipi_dsi_multi_context ctx = { .dsi = sw43408->link };
drivers/gpu/drm/panel/panel-lg-sw43408.c
68
struct mipi_dsi_multi_context ctx = { .dsi = sw43408->link };
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
127
ret = mipi_dsi_dcs_set_display_off(pinfo->link);
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
134
ret = mipi_dsi_dcs_enter_sleep_mode(pinfo->link);
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
188
err = mipi_dsi_dcs_exit_sleep_mode(pinfo->link);
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
197
err = mipi_dsi_dcs_set_display_on(pinfo->link);
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
593
struct device *dev = &pinfo->link->dev;
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
637
pinfo->link = dsi;
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
69
struct mipi_dsi_device *link;
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
92
err = mipi_dsi_dcs_write(pinfo->link, cmd->data[0], cmd->data + 1, 1);
drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c
150
struct device *dev = &tdo_tl070wsh30->link->dev;
drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c
165
drm_panel_init(&tdo_tl070wsh30->base, &tdo_tl070wsh30->link->dev,
drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c
192
tdo_tl070wsh30->link = dsi;
drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c
23
struct mipi_dsi_device *link;
drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c
54
err = mipi_dsi_dcs_exit_sleep_mode(tdo_tl070wsh30->link);
drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c
63
err = mipi_dsi_dcs_set_display_on(tdo_tl070wsh30->link);
drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c
80
err = mipi_dsi_dcs_set_display_off(tdo_tl070wsh30->link);
drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c
86
err = mipi_dsi_dcs_enter_sleep_mode(tdo_tl070wsh30->link);
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
779
struct device_link *link;
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
821
link = device_link_add(rcdu->dev, &pdev->dev, DL_FLAG_STATELESS);
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
822
if (!link) {
drivers/gpu/drm/rockchip/rockchip_drm_drv.c
359
struct device_link *link;
drivers/gpu/drm/rockchip/rockchip_drm_drv.c
361
list_for_each_entry(link, &dev->links.consumers, s_node)
drivers/gpu/drm/rockchip/rockchip_drm_drv.c
362
device_link_del(link);
drivers/gpu/drm/scheduler/tests/mock_scheduler.c
127
INIT_LIST_HEAD(&job->link);
drivers/gpu/drm/scheduler/tests/mock_scheduler.c
185
link);
drivers/gpu/drm/scheduler/tests/mock_scheduler.c
195
list_add_tail(&job->link, &sched->job_list);
drivers/gpu/drm/scheduler/tests/mock_scheduler.c
228
list_del(&job->link);
drivers/gpu/drm/scheduler/tests/mock_scheduler.c
262
list_del(&job->link);
drivers/gpu/drm/scheduler/tests/mock_scheduler.c
356
list_for_each_entry_safe(job, next, &sched->job_list, link) {
drivers/gpu/drm/scheduler/tests/mock_scheduler.c
66
list_del(&job->link);
drivers/gpu/drm/scheduler/tests/mock_scheduler.c
84
list_for_each_entry_safe(job, next, &sched->job_list, link) {
drivers/gpu/drm/scheduler/tests/sched_tests.h
102
struct list_head link;
drivers/gpu/drm/tegra/dp.c
111
int drm_dp_link_remove_rate(struct drm_dp_link *link, unsigned long rate)
drivers/gpu/drm/tegra/dp.c
115
for (i = 0; i < link->num_rates; i++)
drivers/gpu/drm/tegra/dp.c
116
if (rate == link->rates[i])
drivers/gpu/drm/tegra/dp.c
119
if (i == link->num_rates)
drivers/gpu/drm/tegra/dp.c
122
link->num_rates--;
drivers/gpu/drm/tegra/dp.c
124
while (i < link->num_rates) {
drivers/gpu/drm/tegra/dp.c
125
link->rates[i] = link->rates[i + 1];
drivers/gpu/drm/tegra/dp.c
144
void drm_dp_link_update_rates(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
148
for (i = 0; i < link->num_rates; i++) {
drivers/gpu/drm/tegra/dp.c
149
if (link->rates[i] != 0)
drivers/gpu/drm/tegra/dp.c
150
link->rates[count++] = link->rates[i];
drivers/gpu/drm/tegra/dp.c
153
for (i = count; i < link->num_rates; i++)
drivers/gpu/drm/tegra/dp.c
154
link->rates[i] = 0;
drivers/gpu/drm/tegra/dp.c
156
link->num_rates = count;
drivers/gpu/drm/tegra/dp.c
170
int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
176
drm_dp_link_reset(link);
drivers/gpu/drm/tegra/dp.c
182
link->revision = dpcd[DP_DPCD_REV];
drivers/gpu/drm/tegra/dp.c
183
link->max_rate = drm_dp_max_link_rate(dpcd);
drivers/gpu/drm/tegra/dp.c
184
link->max_lanes = drm_dp_max_lane_count(dpcd);
drivers/gpu/drm/tegra/dp.c
186
link->caps.enhanced_framing = drm_dp_enhanced_frame_cap(dpcd);
drivers/gpu/drm/tegra/dp.c
187
link->caps.tps3_supported = drm_dp_tps3_supported(dpcd);
drivers/gpu/drm/tegra/dp.c
188
link->caps.fast_training = drm_dp_fast_training_cap(dpcd);
drivers/gpu/drm/tegra/dp.c
189
link->caps.channel_coding = drm_dp_channel_coding_supported(dpcd);
drivers/gpu/drm/tegra/dp.c
192
link->caps.alternate_scrambler_reset = true;
drivers/gpu/drm/tegra/dp.c
201
link->edp = drm_dp_edp_revisions[value];
drivers/gpu/drm/tegra/dp.c
226
if (rd_interval == 0 || link->revision >= DP_DPCD_REV_14)
drivers/gpu/drm/tegra/dp.c
227
link->aux_rd_interval.cr = 100;
drivers/gpu/drm/tegra/dp.c
230
link->aux_rd_interval.ce = 400;
drivers/gpu/drm/tegra/dp.c
232
link->rate = link->max_rate;
drivers/gpu/drm/tegra/dp.c
233
link->lanes = link->max_lanes;
drivers/gpu/drm/tegra/dp.c
236
if (link->edp >= 0x14) {
drivers/gpu/drm/tegra/dp.c
251
drm_dp_link_add_rate(link, rate * 200);
drivers/gpu/drm/tegra/dp.c
265
int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
270
if (link->ops && link->ops->configure) {
drivers/gpu/drm/tegra/dp.c
271
err = link->ops->configure(link);
drivers/gpu/drm/tegra/dp.c
278
values[0] = drm_dp_link_rate_to_bw_code(link->rate);
drivers/gpu/drm/tegra/dp.c
279
values[1] = link->lanes;
drivers/gpu/drm/tegra/dp.c
281
if (link->caps.enhanced_framing)
drivers/gpu/drm/tegra/dp.c
288
if (link->caps.channel_coding)
drivers/gpu/drm/tegra/dp.c
297
if (link->caps.alternate_scrambler_reset) {
drivers/gpu/drm/tegra/dp.c
320
int drm_dp_link_choose(struct drm_dp_link *link,
drivers/gpu/drm/tegra/dp.c
329
unsigned int rate = link->max_rate;
drivers/gpu/drm/tegra/dp.c
335
for (i = 0; i < ARRAY_SIZE(lanes) && lanes[i] <= link->max_lanes; i++) {
drivers/gpu/drm/tegra/dp.c
34
static void drm_dp_link_reset(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
351
link->lanes = lanes[i];
drivers/gpu/drm/tegra/dp.c
352
link->rate = rates[j];
drivers/gpu/drm/tegra/dp.c
38
if (!link)
drivers/gpu/drm/tegra/dp.c
399
static int drm_dp_link_apply_training(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
401
struct drm_dp_link_train_set *request = &link->train.request;
drivers/gpu/drm/tegra/dp.c
402
unsigned int lanes = link->lanes, *vs, *pe, *pc, i;
drivers/gpu/drm/tegra/dp.c
403
struct drm_dp_aux *aux = link->aux;
drivers/gpu/drm/tegra/dp.c
407
err = link->ops->apply_training(link);
drivers/gpu/drm/tegra/dp.c
41
link->revision = 0;
drivers/gpu/drm/tegra/dp.c
42
link->max_rate = 0;
drivers/gpu/drm/tegra/dp.c
429
if (link->revision >= 0x12 && link->rate == 540000) {
drivers/gpu/drm/tegra/dp.c
43
link->max_lanes = 0;
drivers/gpu/drm/tegra/dp.c
444
if (link->train.pattern != DP_TRAINING_PATTERN_DISABLE)
drivers/gpu/drm/tegra/dp.c
447
pattern |= link->train.pattern;
drivers/gpu/drm/tegra/dp.c
45
drm_dp_link_caps_reset(&link->caps);
drivers/gpu/drm/tegra/dp.c
458
static void drm_dp_link_train_wait(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
46
link->aux_rd_interval.cr = 0;
drivers/gpu/drm/tegra/dp.c
462
switch (link->train.pattern) {
drivers/gpu/drm/tegra/dp.c
464
min = link->aux_rd_interval.cr;
drivers/gpu/drm/tegra/dp.c
469
min = link->aux_rd_interval.ce;
drivers/gpu/drm/tegra/dp.c
47
link->aux_rd_interval.ce = 0;
drivers/gpu/drm/tegra/dp.c
48
link->edp = 0;
drivers/gpu/drm/tegra/dp.c
480
static void drm_dp_link_get_adjustments(struct drm_dp_link *link,
drivers/gpu/drm/tegra/dp.c
483
struct drm_dp_link_train_set *adjust = &link->train.adjust;
drivers/gpu/drm/tegra/dp.c
488
err = drm_dp_dpcd_read(link->aux, DP_ADJUST_REQUEST_POST_CURSOR2,
drivers/gpu/drm/tegra/dp.c
495
for (i = 0; i < link->lanes; i++) {
drivers/gpu/drm/tegra/dp.c
50
link->rate = 0;
drivers/gpu/drm/tegra/dp.c
51
link->lanes = 0;
drivers/gpu/drm/tegra/dp.c
528
static int drm_dp_link_recover_clock(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
533
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
537
drm_dp_link_train_wait(link);
drivers/gpu/drm/tegra/dp.c
539
err = drm_dp_dpcd_read_link_status(link->aux, status);
drivers/gpu/drm/tegra/dp.c
54
link->rates[i] = 0;
drivers/gpu/drm/tegra/dp.c
545
if (!drm_dp_clock_recovery_ok(status, link->lanes))
drivers/gpu/drm/tegra/dp.c
546
drm_dp_link_get_adjustments(link, status);
drivers/gpu/drm/tegra/dp.c
548
link->train.clock_recovered = true;
drivers/gpu/drm/tegra/dp.c
553
static int drm_dp_link_clock_recovery(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
559
link->train.pattern = DP_TRAINING_PATTERN_1;
drivers/gpu/drm/tegra/dp.c
56
link->num_rates = 0;
drivers/gpu/drm/tegra/dp.c
562
err = drm_dp_link_recover_clock(link);
drivers/gpu/drm/tegra/dp.c
568
if (link->train.clock_recovered)
drivers/gpu/drm/tegra/dp.c
571
drm_dp_link_train_adjust(&link->train);
drivers/gpu/drm/tegra/dp.c
577
static int drm_dp_link_equalize_channel(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
579
struct drm_dp_aux *aux = link->aux;
drivers/gpu/drm/tegra/dp.c
583
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
587
drm_dp_link_train_wait(link);
drivers/gpu/drm/tegra/dp.c
595
if (!drm_dp_clock_recovery_ok(status, link->lanes)) {
drivers/gpu/drm/tegra/dp.c
597
link->train.clock_recovered = false;
drivers/gpu/drm/tegra/dp.c
601
if (!drm_dp_channel_eq_ok(status, link->lanes))
drivers/gpu/drm/tegra/dp.c
602
drm_dp_link_get_adjustments(link, status);
drivers/gpu/drm/tegra/dp.c
604
link->train.channel_equalized = true;
drivers/gpu/drm/tegra/dp.c
609
static int drm_dp_link_channel_equalization(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
615
if (link->caps.tps3_supported)
drivers/gpu/drm/tegra/dp.c
616
link->train.pattern = DP_TRAINING_PATTERN_3;
drivers/gpu/drm/tegra/dp.c
618
link->train.pattern = DP_TRAINING_PATTERN_2;
drivers/gpu/drm/tegra/dp.c
621
err = drm_dp_link_equalize_channel(link);
drivers/gpu/drm/tegra/dp.c
627
if (link->train.channel_equalized)
drivers/gpu/drm/tegra/dp.c
630
drm_dp_link_train_adjust(&link->train);
drivers/gpu/drm/tegra/dp.c
636
static int drm_dp_link_downgrade(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
638
switch (link->rate) {
drivers/gpu/drm/tegra/dp.c
643
link->rate = 162000;
drivers/gpu/drm/tegra/dp.c
647
link->rate = 270000;
drivers/gpu/drm/tegra/dp.c
654
static void drm_dp_link_train_disable(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
658
link->train.pattern = DP_TRAINING_PATTERN_DISABLE;
drivers/gpu/drm/tegra/dp.c
660
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
665
static int drm_dp_link_train_full(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
671
link->lanes, (link->lanes > 1) ? "s" : "",
drivers/gpu/drm/tegra/dp.c
672
link->rate / 100);
drivers/gpu/drm/tegra/dp.c
674
err = drm_dp_link_configure(link->aux, link);
drivers/gpu/drm/tegra/dp.c
680
err = drm_dp_link_clock_recovery(link);
drivers/gpu/drm/tegra/dp.c
686
if (!link->train.clock_recovered) {
drivers/gpu/drm/tegra/dp.c
689
err = drm_dp_link_downgrade(link);
drivers/gpu/drm/tegra/dp.c
698
err = drm_dp_link_channel_equalization(link);
drivers/gpu/drm/tegra/dp.c
704
if (!link->train.channel_equalized) {
drivers/gpu/drm/tegra/dp.c
707
err = drm_dp_link_downgrade(link);
drivers/gpu/drm/tegra/dp.c
717
drm_dp_link_train_disable(link);
drivers/gpu/drm/tegra/dp.c
721
static int drm_dp_link_train_fast(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
727
link->lanes, (link->lanes > 1) ? "s" : "",
drivers/gpu/drm/tegra/dp.c
728
link->rate / 100);
drivers/gpu/drm/tegra/dp.c
730
err = drm_dp_link_configure(link->aux, link);
drivers/gpu/drm/tegra/dp.c
737
link->train.pattern = DP_TRAINING_PATTERN_1;
drivers/gpu/drm/tegra/dp.c
739
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
74
int drm_dp_link_add_rate(struct drm_dp_link *link, unsigned long rate)
drivers/gpu/drm/tegra/dp.c
746
if (link->caps.tps3_supported)
drivers/gpu/drm/tegra/dp.c
747
link->train.pattern = DP_TRAINING_PATTERN_3;
drivers/gpu/drm/tegra/dp.c
749
link->train.pattern = DP_TRAINING_PATTERN_2;
drivers/gpu/drm/tegra/dp.c
751
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
757
err = drm_dp_dpcd_read_link_status(link->aux, status);
drivers/gpu/drm/tegra/dp.c
763
if (!drm_dp_clock_recovery_ok(status, link->lanes)) {
drivers/gpu/drm/tegra/dp.c
768
if (!drm_dp_channel_eq_ok(status, link->lanes)) {
drivers/gpu/drm/tegra/dp.c
774
drm_dp_link_train_disable(link);
drivers/gpu/drm/tegra/dp.c
78
if (link->num_rates == DP_MAX_SUPPORTED_RATES)
drivers/gpu/drm/tegra/dp.c
792
int drm_dp_link_train(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
796
drm_dp_link_train_init(&link->train);
drivers/gpu/drm/tegra/dp.c
798
if (link->caps.fast_training) {
drivers/gpu/drm/tegra/dp.c
799
if (drm_dp_link_train_valid(&link->train)) {
drivers/gpu/drm/tegra/dp.c
800
err = drm_dp_link_train_fast(link);
drivers/gpu/drm/tegra/dp.c
81
for (pivot = 0; pivot < link->num_rates; pivot++)
drivers/gpu/drm/tegra/dp.c
813
err = drm_dp_link_train_full(link);
drivers/gpu/drm/tegra/dp.c
82
if (rate <= link->rates[pivot])
drivers/gpu/drm/tegra/dp.c
85
if (pivot != link->num_rates && rate == link->rates[pivot])
drivers/gpu/drm/tegra/dp.c
88
for (i = link->num_rates; i > pivot; i--)
drivers/gpu/drm/tegra/dp.c
89
link->rates[i] = link->rates[i - 1];
drivers/gpu/drm/tegra/dp.c
91
link->rates[pivot] = rate;
drivers/gpu/drm/tegra/dp.c
92
link->num_rates++;
drivers/gpu/drm/tegra/dp.h
162
int drm_dp_link_add_rate(struct drm_dp_link *link, unsigned long rate);
drivers/gpu/drm/tegra/dp.h
163
int drm_dp_link_remove_rate(struct drm_dp_link *link, unsigned long rate);
drivers/gpu/drm/tegra/dp.h
164
void drm_dp_link_update_rates(struct drm_dp_link *link);
drivers/gpu/drm/tegra/dp.h
166
int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link);
drivers/gpu/drm/tegra/dp.h
167
int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link);
drivers/gpu/drm/tegra/dp.h
168
int drm_dp_link_choose(struct drm_dp_link *link,
drivers/gpu/drm/tegra/dp.h
173
int drm_dp_link_train(struct drm_dp_link *link);
drivers/gpu/drm/tegra/dp.h
67
int (*apply_training)(struct drm_dp_link *link);
drivers/gpu/drm/tegra/dp.h
72
int (*configure)(struct drm_dp_link *link);
drivers/gpu/drm/tegra/sor.c
1157
struct drm_dp_link *link)
drivers/gpu/drm/tegra/sor.c
1159
const u64 f = 100000, link_rate = link->rate * 1000;
drivers/gpu/drm/tegra/sor.c
1166
if (!link_rate || !link->lanes || !pclk || !config->bits_per_pixel)
drivers/gpu/drm/tegra/sor.c
1170
output = link_rate * 8 * link->lanes;
drivers/gpu/drm/tegra/sor.c
1213
(link->lanes * 8);
drivers/gpu/drm/tegra/sor.c
1230
if (link->caps.enhanced_framing)
drivers/gpu/drm/tegra/sor.c
1233
config->hblank_symbols -= 12 / link->lanes;
drivers/gpu/drm/tegra/sor.c
1238
config->vblank_symbols -= 36 / link->lanes + 4;
drivers/gpu/drm/tegra/sor.c
2670
err = drm_dp_link_power_down(sor->aux, sor->link.revision);
drivers/gpu/drm/tegra/sor.c
2756
err = drm_dp_link_probe(sor->aux, &sor->link);
drivers/gpu/drm/tegra/sor.c
2762
err = drm_dp_link_choose(&sor->link, mode, info);
drivers/gpu/drm/tegra/sor.c
2880
err = drm_dp_link_train(&sor->link);
drivers/gpu/drm/tegra/sor.c
2886
err = drm_dp_link_power_up(sor->aux, sor->link.revision);
drivers/gpu/drm/tegra/sor.c
2894
err = tegra_sor_compute_config(sor, mode, &config, &sor->link);
drivers/gpu/drm/tegra/sor.c
3070
sor->link.ops = &tegra_sor_dp_link_ops;
drivers/gpu/drm/tegra/sor.c
3071
sor->link.aux = sor->aux;
drivers/gpu/drm/tegra/sor.c
427
struct drm_dp_link link;
drivers/gpu/drm/tegra/sor.c
625
struct drm_dp_link *link = &sor->link;
drivers/gpu/drm/tegra/sor.c
629
for (i = 0; i < link->num_rates; i++) {
drivers/gpu/drm/tegra/sor.c
630
switch (link->rates[i]) {
drivers/gpu/drm/tegra/sor.c
638
link->rates[i]);
drivers/gpu/drm/tegra/sor.c
639
link->rates[i] = 0;
drivers/gpu/drm/tegra/sor.c
644
drm_dp_link_update_rates(link);
drivers/gpu/drm/tegra/sor.c
805
static int tegra_sor_dp_link_apply_training(struct drm_dp_link *link)
drivers/gpu/drm/tegra/sor.c
807
struct tegra_sor *sor = container_of(link, struct tegra_sor, link);
drivers/gpu/drm/tegra/sor.c
813
for (value = 0, i = 0; i < link->lanes; i++) {
drivers/gpu/drm/tegra/sor.c
814
u8 vs = link->train.request.voltage_swing[i];
drivers/gpu/drm/tegra/sor.c
815
u8 pe = link->train.request.pre_emphasis[i];
drivers/gpu/drm/tegra/sor.c
816
u8 pc = link->train.request.post_cursor[i];
drivers/gpu/drm/tegra/sor.c
826
switch (link->train.pattern) {
drivers/gpu/drm/tegra/sor.c
851
if (link->caps.channel_coding)
drivers/gpu/drm/tegra/sor.c
860
if (link->caps.tps3_supported)
drivers/gpu/drm/tegra/sor.c
876
static int tegra_sor_dp_link_configure(struct drm_dp_link *link)
drivers/gpu/drm/tegra/sor.c
878
struct tegra_sor *sor = container_of(link, struct tegra_sor, link);
drivers/gpu/drm/tegra/sor.c
883
rate = drm_dp_link_rate_to_bw_code(link->rate);
drivers/gpu/drm/tegra/sor.c
884
lanes = link->lanes;
drivers/gpu/drm/tegra/sor.c
896
if (link->caps.enhanced_framing)
drivers/gpu/drm/tegra/sor.c
926
if (link->edp == 0)
drivers/gpu/drm/tests/drm_buddy_test.c
109
list_for_each_entry_safe(block, tmp, &allocated_blocks, link) {
drivers/gpu/drm/tests/drm_buddy_test.c
111
list_move_tail(&block->link, &free_list);
drivers/gpu/drm/tests/drm_buddy_test.c
116
list_for_each_entry_safe_reverse(block, tmp, &allocated_blocks, link)
drivers/gpu/drm/tests/drm_buddy_test.c
117
list_move(&block->link, &reverse_list);
drivers/gpu/drm/tests/drm_buddy_test.c
358
list_for_each_entry(block, &allocated, link)
drivers/gpu/drm/tests/drm_buddy_test.c
418
list_for_each_entry(block, &clean, link)
drivers/gpu/drm/tests/drm_buddy_test.c
421
list_for_each_entry(block, &dirty, link)
drivers/gpu/drm/tests/drm_buddy_test.c
478
list_for_each_entry(block, &allocated, link) {
drivers/gpu/drm/tests/drm_buddy_test.c
594
list_for_each_entry(block, &allocated, link)
drivers/gpu/drm/tests/drm_buddy_test.c
62
list_for_each_entry_safe(block, tmp, &allocated_blocks, link) {
drivers/gpu/drm/tests/drm_buddy_test.c
630
block = list_first_entry_or_null(&blocks, typeof(*block), link);
drivers/gpu/drm/tests/drm_buddy_test.c
632
list_del(&block->link);
drivers/gpu/drm/tests/drm_buddy_test.c
64
list_move_tail(&block->link, &clear_list);
drivers/gpu/drm/tests/drm_buddy_test.c
644
block = list_first_entry_or_null(&tmp, struct drm_buddy_block, link);
drivers/gpu/drm/tests/drm_buddy_test.c
647
list_move_tail(&block->link, &blocks);
drivers/gpu/drm/tests/drm_buddy_test.c
656
block = list_first_entry_or_null(&tmp, struct drm_buddy_block, link);
drivers/gpu/drm/tests/drm_buddy_test.c
659
list_move_tail(&block->link, &holes);
drivers/gpu/drm/tests/drm_buddy_test.c
66
list_move_tail(&block->link, &dirty_list);
drivers/gpu/drm/tests/drm_buddy_test.c
714
block = list_first_entry_or_null(&tmp, struct drm_buddy_block, link);
drivers/gpu/drm/tests/drm_buddy_test.c
717
list_move_tail(&block->link, &blocks);
drivers/gpu/drm/tests/drm_buddy_test.c
726
block = list_first_entry_or_null(&tmp, struct drm_buddy_block, link);
drivers/gpu/drm/tests/drm_buddy_test.c
729
list_move_tail(&block->link, &blocks);
drivers/gpu/drm/tests/drm_buddy_test.c
739
block = list_last_entry(&blocks, typeof(*block), link);
drivers/gpu/drm/tests/drm_buddy_test.c
740
list_del(&block->link);
drivers/gpu/drm/tests/drm_buddy_test.c
745
list_for_each_entry_safe(block, bn, &blocks, link) {
drivers/gpu/drm/tests/drm_buddy_test.c
746
list_del(&block->link);
drivers/gpu/drm/tests/drm_buddy_test.c
755
block = list_first_entry_or_null(&tmp, struct drm_buddy_block, link);
drivers/gpu/drm/tests/drm_buddy_test.c
758
list_del(&block->link);
drivers/gpu/drm/tests/drm_buddy_test.c
770
block = list_first_entry_or_null(&tmp, struct drm_buddy_block, link);
drivers/gpu/drm/tests/drm_buddy_test.c
773
list_del(&block->link);
drivers/gpu/drm/tests/drm_buddy_test.c
809
block = list_first_entry_or_null(&tmp, struct drm_buddy_block, link);
drivers/gpu/drm/tests/drm_buddy_test.c
812
list_move_tail(&block->link, &blocks);
drivers/gpu/drm/tests/drm_buddy_test.c
843
block = list_first_entry_or_null(&allocated, struct drm_buddy_block, link);
drivers/gpu/drm/ttm/tests/ttm_bo_test.c
274
list_is_last(&res1->lru.link, &man->lru[bo->priority]), 1);
drivers/gpu/drm/ttm/tests/ttm_bo_test.c
311
list_is_last(&res2->lru.link, &priv->ttm_dev->unevictable), 1);
drivers/gpu/drm/ttm/tests/ttm_bo_test.c
315
list_is_last(&res1->lru.link, &priv->ttm_dev->unevictable), 1);
drivers/gpu/drm/ttm/tests/ttm_resource_test.c
201
KUNIT_ASSERT_TRUE(test, list_empty(&res->lru.link));
drivers/gpu/drm/ttm/ttm_device.c
291
list_del_init(&bo->resource->lru.link);
drivers/gpu/drm/ttm/ttm_resource.c
101
INIT_LIST_HEAD(&cursor->hitch.link);
drivers/gpu/drm/ttm/ttm_resource.c
115
list_del_init(&cursor->hitch.link);
drivers/gpu/drm/ttm/ttm_resource.c
175
list_bulk_move_tail(&man->lru[j], &pos->first->lru.link,
drivers/gpu/drm/ttm/ttm_resource.c
176
&pos->last->lru.link);
drivers/gpu/drm/ttm/ttm_resource.c
195
lru = list_prev_entry(lru, link);
drivers/gpu/drm/ttm/ttm_resource.c
207
lru = list_next_entry(lru, link);
drivers/gpu/drm/ttm/ttm_resource.c
220
list_move(&res->lru.link, &pos->last->lru.link);
drivers/gpu/drm/ttm/ttm_resource.c
255
list_move(&res->lru.link, &pos->last->lru.link);
drivers/gpu/drm/ttm/ttm_resource.c
304
list_move_tail(&res->lru.link, &bdev->unevictable);
drivers/gpu/drm/ttm/ttm_resource.c
315
list_move_tail(&res->lru.link, &man->lru[bo->priority]);
drivers/gpu/drm/ttm/ttm_resource.c
346
list_add_tail(&res->lru.link, &bo->bdev->unevictable);
drivers/gpu/drm/ttm/ttm_resource.c
348
list_add_tail(&res->lru.link, &man->lru[bo->priority]);
drivers/gpu/drm/ttm/ttm_resource.c
370
list_del_init(&res->lru.link);
drivers/gpu/drm/ttm/ttm_resource.c
65
list_move(&cursor->hitch.link, &pos->last->lru.link);
drivers/gpu/drm/ttm/ttm_resource.c
662
list_move(&cursor->hitch.link, &man->lru[cursor->priority]);
drivers/gpu/drm/ttm/ttm_resource.c
683
list_for_each_entry_continue(lru, &man->lru[cursor->priority], link) {
drivers/gpu/drm/ttm/ttm_resource.c
686
list_move(&cursor->hitch.link, &lru->link);
drivers/gpu/drm/ttm/ttm_resource.c
694
list_move(&cursor->hitch.link, &man->lru[cursor->priority]);
drivers/gpu/drm/ttm/ttm_resource.c
712
list_for_each_entry(lru, head, link) {
drivers/gpu/drm/vc4/vc4_hdmi.c
2293
struct snd_soc_dai_link *dai_link = &vc4_hdmi->audio.link;
drivers/gpu/drm/vc4/vc4_hdmi.h
103
struct snd_soc_dai_link link;
drivers/gpu/drm/vkms/vkms_config.c
120
list_for_each_entry_safe(plane_cfg, plane_tmp, &config->planes, link)
drivers/gpu/drm/vkms/vkms_config.c
123
list_for_each_entry_safe(crtc_cfg, crtc_tmp, &config->crtcs, link)
drivers/gpu/drm/vkms/vkms_config.c
126
list_for_each_entry_safe(encoder_cfg, encoder_tmp, &config->encoders, link)
drivers/gpu/drm/vkms/vkms_config.c
129
list_for_each_entry_safe(connector_cfg, connector_tmp, &config->connectors, link)
drivers/gpu/drm/vkms/vkms_config.c
400
list_add_tail(&plane_cfg->link, &config->planes);
drivers/gpu/drm/vkms/vkms_config.c
409
list_del(&plane_cfg->link);
drivers/gpu/drm/vkms/vkms_config.c
458
list_add_tail(&crtc_cfg->link, &config->crtcs);
drivers/gpu/drm/vkms/vkms_config.c
476
list_del(&crtc_cfg->link);
drivers/gpu/drm/vkms/vkms_config.c
537
list_add_tail(&encoder_cfg->link, &config->encoders);
drivers/gpu/drm/vkms/vkms_config.c
552
list_del(&encoder_cfg->link);
drivers/gpu/drm/vkms/vkms_config.c
602
list_add_tail(&connector_cfg->link, &config->connectors);
drivers/gpu/drm/vkms/vkms_config.c
611
list_del(&connector_cfg->link);
drivers/gpu/drm/vkms/vkms_config.h
113
struct list_head link;
drivers/gpu/drm/vkms/vkms_config.h
129
list_for_each_entry((plane_cfg), &(config)->planes, link)
drivers/gpu/drm/vkms/vkms_config.h
137
list_for_each_entry((crtc_cfg), &(config)->crtcs, link)
drivers/gpu/drm/vkms/vkms_config.h
145
list_for_each_entry((encoder_cfg), &(config)->encoders, link)
drivers/gpu/drm/vkms/vkms_config.h
153
list_for_each_entry((connector_cfg), &(config)->connectors, link)
drivers/gpu/drm/vkms/vkms_config.h
47
struct list_head link;
drivers/gpu/drm/vkms/vkms_config.h
70
struct list_head link;
drivers/gpu/drm/vkms/vkms_config.h
91
struct list_head link;
drivers/gpu/drm/xe/tests/xe_bo.c
372
struct list_head link;
drivers/gpu/drm/xe/tests/xe_bo.c
380
struct xe_bo_link *link)
drivers/gpu/drm/xe/tests/xe_bo.c
394
link->val = val;
drivers/gpu/drm/xe/tests/xe_bo.c
403
struct xe_bo_link *link)
drivers/gpu/drm/xe/tests/xe_bo.c
423
if (i == 0 && val != link->val)
drivers/gpu/drm/xe/tests/xe_bo.c
445
struct xe_bo_link *link, *next;
drivers/gpu/drm/xe/tests/xe_bo.c
485
link = kzalloc_obj(*link);
drivers/gpu/drm/xe/tests/xe_bo.c
486
if (!link) {
drivers/gpu/drm/xe/tests/xe_bo.c
492
INIT_LIST_HEAD(&link->link);
drivers/gpu/drm/xe/tests/xe_bo.c
502
kfree(link);
drivers/gpu/drm/xe/tests/xe_bo.c
522
int ret = shrink_test_fill_random(bo, &prng, link);
drivers/gpu/drm/xe/tests/xe_bo.c
529
kfree(link);
drivers/gpu/drm/xe/tests/xe_bo.c
537
link->bo = bo;
drivers/gpu/drm/xe/tests/xe_bo.c
538
list_add_tail(&link->link, &bos);
drivers/gpu/drm/xe/tests/xe_bo.c
555
list_for_each_entry_safe(link, next, &bos, link) {
drivers/gpu/drm/xe/tests/xe_bo.c
557
struct xe_bo *bo = link->bo;
drivers/gpu/drm/xe/tests/xe_bo.c
576
failed = shrink_test_verify(test, bo, count, &prng, link);
drivers/gpu/drm/xe/tests/xe_bo.c
589
xe_bo_put(link->bo);
drivers/gpu/drm/xe/tests/xe_bo.c
590
list_del(&link->link);
drivers/gpu/drm/xe/tests/xe_bo.c
591
kfree(link);
drivers/gpu/drm/xe/xe_exec_queue.c
226
INIT_LIST_HEAD(&q->lr.link);
drivers/gpu/drm/xe/xe_exec_queue.c
229
INIT_LIST_HEAD(&q->pxp.link);
drivers/gpu/drm/xe/xe_exec_queue_types.h
161
struct list_head link;
drivers/gpu/drm/xe/xe_exec_queue_types.h
193
struct list_head link;
drivers/gpu/drm/xe/xe_exec_queue_types.h
219
struct list_head link;
drivers/gpu/drm/xe/xe_gpu_scheduler.c
123
list_add_tail(&msg->link, &sched->msgs);
drivers/gpu/drm/xe/xe_gpu_scheduler.c
137
list_add(&msg->link, &sched->msgs);
drivers/gpu/drm/xe/xe_gpu_scheduler.c
19
msg = list_first_entry_or_null(&sched->msgs, struct xe_sched_msg, link);
drivers/gpu/drm/xe/xe_gpu_scheduler.c
32
struct xe_sched_msg, link);
drivers/gpu/drm/xe/xe_gpu_scheduler.c
34
list_del_init(&msg->link);
drivers/gpu/drm/xe/xe_gpu_scheduler_types.h
19
struct list_head link;
drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c
2065
cs = list_first_entry_or_null(&pfc->list, struct xe_gt_sriov_control_state, link);
drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c
2067
list_del_init(&cs->link);
drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c
2126
INIT_LIST_HEAD(&cs->link);
drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c
372
list_move_tail(&gt->sriov.pf.vfs[vfid].control.link, &pfc->list);
drivers/gpu/drm/xe/xe_gt_sriov_pf_control_types.h
118
struct list_head link;
drivers/gpu/drm/xe/xe_guc_capture.c
1104
list_for_each_entry_safe(n, ntmp, &guc->capture->cachelist, link) {
drivers/gpu/drm/xe/xe_guc_capture.c
1115
list_for_each_entry_safe_reverse(n, ntmp, &guc->capture->outlist, link) {
drivers/gpu/drm/xe/xe_guc_capture.c
1121
list_del(&found->link);
drivers/gpu/drm/xe/xe_guc_capture.c
1922
list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) {
drivers/gpu/drm/xe/xe_guc_capture.c
69
struct list_head link;
drivers/gpu/drm/xe/xe_guc_capture.c
872
list_add(&node->link, list);
drivers/gpu/drm/xe/xe_guc_capture.c
896
list_del(&n->link);
drivers/gpu/drm/xe/xe_guc_capture.c
909
list_for_each_entry_safe(n, ntmp, &gc->outlist, link) {
drivers/gpu/drm/xe/xe_guc_capture.c
930
INIT_LIST_HEAD(&node->link);
drivers/gpu/drm/xe/xe_guc_relay.c
193
struct list_head link;
drivers/gpu/drm/xe/xe_guc_relay.c
259
INIT_LIST_HEAD(&txn->link);
drivers/gpu/drm/xe/xe_guc_relay.c
283
relay_assert(relay, list_empty(&txn->link));
drivers/gpu/drm/xe/xe_guc_relay.c
440
list_add_tail(&txn->link, &relay->pending_relays);
drivers/gpu/drm/xe/xe_guc_relay.c
479
list_del_init(&txn->link);
drivers/gpu/drm/xe/xe_guc_relay.c
581
list_for_each_entry(pending, &relay->pending_relays, link) {
drivers/gpu/drm/xe/xe_guc_relay.c
709
txn = list_first_entry_or_null(&relay->incoming_actions, struct relay_transaction, link);
drivers/gpu/drm/xe/xe_guc_relay.c
711
list_del_init(&txn->link);
drivers/gpu/drm/xe/xe_guc_relay.c
763
list_add(&txn->link, &relay->incoming_actions);
drivers/gpu/drm/xe/xe_guc_relay.c
814
list_add_tail(&txn->link, &relay->incoming_actions);
drivers/gpu/drm/xe/xe_guc_submit.c
1665
list_del(&q->multi_queue.link);
drivers/gpu/drm/xe/xe_guc_submit.c
1944
INIT_LIST_HEAD(&ge->static_msgs[i].link);
drivers/gpu/drm/xe/xe_guc_submit.c
1994
INIT_LIST_HEAD(&q->multi_queue.link);
drivers/gpu/drm/xe/xe_guc_submit.c
1996
list_add_tail(&q->multi_queue.link, &group->list);
drivers/gpu/drm/xe/xe_guc_submit.c
2031
INIT_LIST_HEAD(&msg->link);
drivers/gpu/drm/xe/xe_guc_submit.c
2048
if (!list_empty(&msg->link))
drivers/gpu/drm/xe/xe_guc_submit.c
2058
if (!list_empty(&msg->link))
drivers/gpu/drm/xe/xe_guc_submit.c
592
list_for_each_entry(eq, &group->list, multi_queue.link)
drivers/gpu/drm/xe/xe_guc_submit.c
612
list_for_each_entry(eq, &group->list, multi_queue.link) {
drivers/gpu/drm/xe/xe_guc_submit.c
637
list_for_each_entry(eq, &group->list, multi_queue.link)
drivers/gpu/drm/xe/xe_pci_sriov.c
37
struct device_link *link;
drivers/gpu/drm/xe/xe_pci_sriov.c
61
link = device_link_add(&pdev_vf->dev, &pdev_pf->dev,
drivers/gpu/drm/xe/xe_pci_sriov.c
64
if (!link)
drivers/gpu/drm/xe/xe_preempt_fence.c
108
INIT_LIST_HEAD(&pfence->link);
drivers/gpu/drm/xe/xe_preempt_fence.c
123
list_del(&pfence->link);
drivers/gpu/drm/xe/xe_preempt_fence.c
146
list_del_init(&pfence->link);
drivers/gpu/drm/xe/xe_preempt_fence.h
44
return &pfence->link;
drivers/gpu/drm/xe/xe_preempt_fence.h
55
to_preempt_fence_from_link(struct list_head *link)
drivers/gpu/drm/xe/xe_preempt_fence.h
57
return container_of(link, struct xe_preempt_fence, link);
drivers/gpu/drm/xe/xe_preempt_fence_types.h
23
struct list_head link;
drivers/gpu/drm/xe/xe_pt.c
1335
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_pt.c
1509
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_pt.c
2300
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_pt.c
2633
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_pt.c
2641
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_pt.c
2654
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_pxp.c
511
list_add_tail(&q->pxp.link, &pxp->queues.list);
drivers/gpu/drm/xe/xe_pxp.c
698
if (!list_empty(&q->pxp.link)) {
drivers/gpu/drm/xe/xe_pxp.c
699
list_del_init(&q->pxp.link);
drivers/gpu/drm/xe/xe_pxp.c
733
list_for_each_entry_safe(q, tmp, &pxp->queues.list, pxp.link) {
drivers/gpu/drm/xe/xe_pxp.c
738
list_move_tail(&q->pxp.link, &to_clean);
drivers/gpu/drm/xe/xe_pxp.c
742
list_for_each_entry_safe(q, tmp, &to_clean, pxp.link) {
drivers/gpu/drm/xe/xe_range_fence.c
26
llist_add(&rfence->link, &tree->list);
drivers/gpu/drm/xe/xe_range_fence.c
34
llist_for_each_entry_safe(rfence, next, node, link) {
drivers/gpu/drm/xe/xe_range_fence.c
98
llist_add(&rfence->link, &tree->list);
drivers/gpu/drm/xe/xe_range_fence.h
43
struct llist_node link;
drivers/gpu/drm/xe/xe_res_cursor.h
115
link);
drivers/gpu/drm/xe/xe_res_cursor.h
122
next = block->link.next;
drivers/gpu/drm/xe/xe_res_cursor.h
125
link);
drivers/gpu/drm/xe/xe_res_cursor.h
297
next = block->link.next;
drivers/gpu/drm/xe/xe_res_cursor.h
298
block = list_entry(next, struct drm_buddy_block, link);
drivers/gpu/drm/xe/xe_res_cursor.h
304
next = block->link.next;
drivers/gpu/drm/xe/xe_res_cursor.h
305
block = list_entry(next, struct drm_buddy_block, link);
drivers/gpu/drm/xe/xe_svm.c
1076
list_for_each_entry(block, blocks, link)
drivers/gpu/drm/xe/xe_svm.c
764
list_for_each_entry(block, blocks, link) {
drivers/gpu/drm/xe/xe_tlb_inval.c
197
&tlb_inval->pending_fences, link)
drivers/gpu/drm/xe/xe_tlb_inval.c
241
list_add_tail(&fence->link, &tlb_inval->pending_fences);
drivers/gpu/drm/xe/xe_tlb_inval.c
393
&tlb_inval->pending_fences, link) {
drivers/gpu/drm/xe/xe_tlb_inval.c
449
INIT_LIST_HEAD(&fence->link);
drivers/gpu/drm/xe/xe_tlb_inval.c
48
list_del(&fence->link);
drivers/gpu/drm/xe/xe_tlb_inval.c
78
&tlb_inval->pending_fences, link) {
drivers/gpu/drm/xe/xe_tlb_inval_types.h
128
struct list_head link;
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
137
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
163
link);
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
22
return list_first_entry_or_null(list, struct drm_buddy_block, link);
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
235
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
265
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
35
while (head != block->link.next) {
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
39
block = list_entry(block->link.next, struct drm_buddy_block,
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
40
link);
drivers/gpu/drm/xe/xe_vm.c
119
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
147
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
157
struct list_head *link;
drivers/gpu/drm/xe/xe_vm.c
160
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
163
link = list->next;
drivers/gpu/drm/xe/xe_vm.c
164
xe_assert(vm->xe, link != list);
drivers/gpu/drm/xe/xe_vm.c
166
fence = xe_preempt_fence_arm(to_preempt_fence_from_link(link),
drivers/gpu/drm/xe/xe_vm.c
188
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link)
drivers/gpu/drm/xe/xe_vm.c
206
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
241
list_add(&q->lr.link, &vm->preempt.exec_queues);
drivers/gpu/drm/xe/xe_vm.c
2635
INIT_LIST_HEAD(&op->link);
drivers/gpu/drm/xe/xe_vm.c
2636
list_add_tail(&op->link, &vops->list);
drivers/gpu/drm/xe/xe_vm.c
283
if (!list_empty(&q->lr.link)) {
drivers/gpu/drm/xe/xe_vm.c
284
list_del_init(&q->lr.link);
drivers/gpu/drm/xe/xe_vm.c
3059
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_vm.c
3081
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_vm.c
3126
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_vm.c
317
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link)
drivers/gpu/drm/xe/xe_vm.c
3296
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_vm.c
617
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_vm.c
653
INIT_LIST_HEAD(&op->link);
drivers/gpu/drm/xe/xe_vm.c
675
list_add_tail(&op->link, &vops->list);
drivers/gpu/drm/xe/xe_vm.c
70
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
733
list_for_each_entry_safe(op, next_op, &vops.list, link) {
drivers/gpu/drm/xe/xe_vm.c
734
list_del(&op->link);
drivers/gpu/drm/xe/xe_vm.c
776
list_for_each_entry_safe(op, next_op, &vops.list, link) {
drivers/gpu/drm/xe/xe_vm.c
777
list_del(&op->link);
drivers/gpu/drm/xe/xe_vm.c
790
INIT_LIST_HEAD(&op->link);
drivers/gpu/drm/xe/xe_vm.c
811
list_add_tail(&op->link, &vops->list);
drivers/gpu/drm/xe/xe_vm.c
83
struct list_head *link, *next;
drivers/gpu/drm/xe/xe_vm.c
85
list_for_each_safe(link, next, list)
drivers/gpu/drm/xe/xe_vm.c
86
xe_preempt_fence_free(to_preempt_fence_from_link(link));
drivers/gpu/drm/xe/xe_vm.c
867
list_for_each_entry_safe(op, next_op, &vops.list, link) {
drivers/gpu/drm/xe/xe_vm.c
868
list_del(&op->link);
drivers/gpu/drm/xe/xe_vm.c
879
INIT_LIST_HEAD(&op->link);
drivers/gpu/drm/xe/xe_vm.c
897
list_add_tail(&op->link, &vops->list);
drivers/gpu/drm/xe/xe_vm.c
950
list_for_each_entry_safe(op, next_op, &vops.list, link) {
drivers/gpu/drm/xe/xe_vm.c
951
list_del(&op->link);
drivers/gpu/drm/xe/xe_vm_types.h
444
struct list_head link;
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
394
struct snd_soc_dai_link *link = &card->dai_link[i];
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
396
link->ops = &zynqmp_dp_ops;
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
398
link->name = audio->link_names[i];
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
399
link->stream_name = audio->link_names[i];
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
401
link->cpus = &audio->components[i].cpu;
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
402
link->num_cpus = 1;
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
403
link->cpus[0].dai_name = audio->dai_name;
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
405
link->codecs = &snd_soc_dummy_dlc;
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
406
link->num_codecs = 1;
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
408
link->platforms = &audio->components[i].platform;
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
409
link->num_platforms = 1;
drivers/gpu/drm/xlnx/zynqmp_dp_audio.c
410
link->platforms[0].name = audio->pcm_names[i];
drivers/gpu/ipu-v3/ipu-common.c
696
const struct fsu_link_info *link;
drivers/gpu/ipu-v3/ipu-common.c
700
link = find_fsu_link_info(src_ch, sink_ch);
drivers/gpu/ipu-v3/ipu-common.c
701
if (!link)
drivers/gpu/ipu-v3/ipu-common.c
706
if (link->src.mask) {
drivers/gpu/ipu-v3/ipu-common.c
707
src_reg = ipu_cm_read(ipu, link->src.reg);
drivers/gpu/ipu-v3/ipu-common.c
708
src_reg &= ~link->src.mask;
drivers/gpu/ipu-v3/ipu-common.c
709
src_reg |= link->src.val;
drivers/gpu/ipu-v3/ipu-common.c
710
ipu_cm_write(ipu, src_reg, link->src.reg);
drivers/gpu/ipu-v3/ipu-common.c
713
if (link->sink.mask) {
drivers/gpu/ipu-v3/ipu-common.c
714
sink_reg = ipu_cm_read(ipu, link->sink.reg);
drivers/gpu/ipu-v3/ipu-common.c
715
sink_reg &= ~link->sink.mask;
drivers/gpu/ipu-v3/ipu-common.c
716
sink_reg |= link->sink.val;
drivers/gpu/ipu-v3/ipu-common.c
717
ipu_cm_write(ipu, sink_reg, link->sink.reg);
drivers/gpu/ipu-v3/ipu-common.c
730
const struct fsu_link_info *link;
drivers/gpu/ipu-v3/ipu-common.c
734
link = find_fsu_link_info(src_ch, sink_ch);
drivers/gpu/ipu-v3/ipu-common.c
735
if (!link)
drivers/gpu/ipu-v3/ipu-common.c
740
if (link->src.mask) {
drivers/gpu/ipu-v3/ipu-common.c
741
src_reg = ipu_cm_read(ipu, link->src.reg);
drivers/gpu/ipu-v3/ipu-common.c
742
src_reg &= ~link->src.mask;
drivers/gpu/ipu-v3/ipu-common.c
743
ipu_cm_write(ipu, src_reg, link->src.reg);
drivers/gpu/ipu-v3/ipu-common.c
746
if (link->sink.mask) {
drivers/gpu/ipu-v3/ipu-common.c
747
sink_reg = ipu_cm_read(ipu, link->sink.reg);
drivers/gpu/ipu-v3/ipu-common.c
748
sink_reg &= ~link->sink.mask;
drivers/gpu/ipu-v3/ipu-common.c
749
ipu_cm_write(ipu, sink_reg, link->sink.reg);
drivers/hid/bpf/hid_bpf_struct_ops.c
180
static int hid_bpf_reg(void *kdata, struct bpf_link *link)
drivers/hid/bpf/hid_bpf_struct_ops.c
239
static void hid_bpf_unreg(void *kdata, struct bpf_link *link)
drivers/hid/intel-ish-hid/ipc/ipc.c
302
struct wr_msg_ctl_info, link);
drivers/hid/intel-ish-hid/ipc/ipc.c
351
list_del_init(&ipc_link->link);
drivers/hid/intel-ish-hid/ipc/ipc.c
352
list_add(&ipc_link->link, &dev->wr_free_list);
drivers/hid/intel-ish-hid/ipc/ipc.c
397
struct wr_msg_ctl_info, link);
drivers/hid/intel-ish-hid/ipc/ipc.c
398
list_del_init(&ipc_link->link);
drivers/hid/intel-ish-hid/ipc/ipc.c
405
list_add_tail(&ipc_link->link, &dev->wr_processing_list);
drivers/hid/intel-ish-hid/ipc/ipc.c
996
list_add_tail(&tx_buf->link, &dev->wr_free_list);
drivers/hid/intel-ish-hid/ishtp/bus.c
731
list_for_each_entry(cl, &ishtp_dev->cl_list, link) {
drivers/hid/intel-ish-hid/ishtp/client.c
187
list_add_tail(&cl->link, &dev->cl_list);
drivers/hid/intel-ish-hid/ishtp/client.c
229
list_for_each_entry(pos, &dev->cl_list, link)
drivers/hid/intel-ish-hid/ishtp/client.c
231
list_del_init(&pos->link);
drivers/hid/intel-ish-hid/ishtp/client.c
312
list_for_each_entry(pos, &dev->cl_list, link) {
drivers/hid/intel-ish-hid/ishtp/client.c
77
INIT_LIST_HEAD(&cl->link);
drivers/hid/intel-ish-hid/ishtp/client.h
37
struct list_head link;
drivers/hid/intel-ish-hid/ishtp/hbm.c
339
list_for_each_entry(cl, &dev->cl_list, link) {
drivers/hid/intel-ish-hid/ishtp/hbm.c
384
list_for_each_entry(cl, &dev->cl_list, link) {
drivers/hid/intel-ish-hid/ishtp/hbm.c
417
list_for_each_entry(cl, &dev->cl_list, link) {
drivers/hid/intel-ish-hid/ishtp/hbm.c
466
list_for_each_entry(cl, &dev->cl_list, link) {
drivers/hid/intel-ish-hid/ishtp/hbm.c
790
list_for_each_entry(cl, &dev->cl_list, link) {
drivers/hid/intel-ish-hid/ishtp/ishtp-dev.h
103
struct list_head link;
drivers/hsi/clients/cmt_speech.c
213
list_add_tail(&msg->link, &hi->cmdqueue);
drivers/hsi/clients/cmt_speech.c
245
msg = list_first_entry(&ssi->cmdqueue, struct hsi_msg, link);
drivers/hsi/clients/cmt_speech.c
246
list_del(&msg->link);
drivers/hsi/clients/cmt_speech.c
256
list_for_each_entry_safe(msg, tmp, &ssi->cmdqueue, link) {
drivers/hsi/clients/cmt_speech.c
257
list_del(&msg->link);
drivers/hsi/clients/cmt_speech.c
284
list_add_tail(&msg->link, &hi->cmdqueue);
drivers/hsi/clients/hsi_char.c
122
list_add_tail(&msg->link, queue);
drivers/hsi/clients/hsi_char.c
137
msg = list_first_entry(queue, struct hsi_msg, link);
drivers/hsi/clients/hsi_char.c
138
list_del(&msg->link);
drivers/hsi/clients/hsi_char.c
155
list_for_each_entry_safe(msg, tmp, list, link) {
drivers/hsi/clients/hsi_char.c
156
list_del(&msg->link);
drivers/hsi/clients/hsi_char.c
205
list_add_tail(&msg->link, &channel->free_msgs_list);
drivers/hsi/clients/ssi_protocol.c
1006
list_add_tail(&msg->link, &ssi->txqueue);
drivers/hsi/clients/ssi_protocol.c
1134
list_add(&ssi->link, &ssip_list);
drivers/hsi/clients/ssi_protocol.c
1155
list_del(&ssi->link);
drivers/hsi/clients/ssi_protocol.c
140
struct list_head link;
drivers/hsi/clients/ssi_protocol.c
221
list_add_tail(&msg->link, &ssi->cmdqueue);
drivers/hsi/clients/ssi_protocol.c
232
msg = list_first_entry(&ssi->cmdqueue, struct hsi_msg, link);
drivers/hsi/clients/ssi_protocol.c
233
list_del(&msg->link);
drivers/hsi/clients/ssi_protocol.c
244
list_for_each_entry_safe(msg, tmp, &ssi->cmdqueue, link) {
drivers/hsi/clients/ssi_protocol.c
245
list_del(&msg->link);
drivers/hsi/clients/ssi_protocol.c
269
list_add_tail(&msg->link, &ssi->cmdqueue);
drivers/hsi/clients/ssi_protocol.c
330
list_for_each_entry(ssi, &ssip_list, link)
drivers/hsi/clients/ssi_protocol.c
412
msg = list_entry(head, struct hsi_msg, link);
drivers/hsi/clients/ssi_protocol.c
437
list_for_each_entry(msg, &ssi->txqueue, link)
drivers/hsi/clients/ssi_protocol.c
583
dmsg = list_first_entry(&ssi->txqueue, struct hsi_msg, link);
drivers/hsi/clients/ssi_protocol.c
584
list_del(&dmsg->link);
drivers/hsi/controllers/omap_ssi_core.c
195
list_del(&msg->link); /* Dequeue msg */
drivers/hsi/controllers/omap_ssi_core.c
198
list_add_tail(&msg->link, &omap_port->errqueue);
drivers/hsi/controllers/omap_ssi_port.c
177
msg = list_entry(head, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
321
msg = list_first_entry(queue, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
361
list_add_tail(&msg->link, &omap_port->brkqueue);
drivers/hsi/controllers/omap_ssi_port.c
396
list_add_tail(&msg->link, queue);
drivers/hsi/controllers/omap_ssi_port.c
399
list_del(&msg->link);
drivers/hsi/controllers/omap_ssi_port.c
432
msg = list_entry(node, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
641
msg = list_first_entry(queue, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
644
list_del(&msg->link);
drivers/hsi/controllers/omap_ssi_port.c
675
link);
drivers/hsi/controllers/omap_ssi_port.c
688
link);
drivers/hsi/controllers/omap_ssi_port.c
837
link);
drivers/hsi/controllers/omap_ssi_port.c
838
list_del(&msg->link);
drivers/hsi/controllers/omap_ssi_port.c
869
list_for_each_entry_safe(msg, tmp, &omap_port->brkqueue, link) {
drivers/hsi/controllers/omap_ssi_port.c
872
list_del(&msg->link);
drivers/hsi/controllers/omap_ssi_port.c
890
msg = list_first_entry(queue, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
936
list_del(&msg->link);
drivers/hv/mshv_eventfd.c
34
hlist_add_head_rcu(&mian->link, &partition->irq_ack_notifier_list);
drivers/hv/mshv_eventfd.c
42
hlist_del_init_rcu(&mian->link);
drivers/hv/mshv_eventfd.c
54
link) {
drivers/hv/mshv_root.h
98
struct hlist_node link;
drivers/hwtracing/coresight/coresight-core.c
435
nd = list_first_entry(&path->path_list, struct coresight_node, link);
drivers/hwtracing/coresight/coresight-core.c
437
list_for_each_entry_continue(nd, &path->path_list, link) {
drivers/hwtracing/coresight/coresight-core.c
45
struct list_head link;
drivers/hwtracing/coresight/coresight-core.c
465
parent = list_prev_entry(nd, link)->csdev;
drivers/hwtracing/coresight/coresight-core.c
466
child = list_next_entry(nd, link)->csdev;
drivers/hwtracing/coresight/coresight-core.c
514
list_for_each_entry_reverse(nd, &path->path_list, link) {
drivers/hwtracing/coresight/coresight-core.c
551
parent = list_prev_entry(nd, link)->csdev;
drivers/hwtracing/coresight/coresight-core.c
552
child = list_next_entry(nd, link)->csdev;
drivers/hwtracing/coresight/coresight-core.c
579
csdev = list_last_entry(&path->path_list, struct coresight_node, link)->csdev;
drivers/hwtracing/coresight/coresight-core.c
746
list_for_each_entry(nd, &path->path_list, link) {
drivers/hwtracing/coresight/coresight-core.c
829
list_add(&node->link, &path->path_list);
drivers/hwtracing/coresight/coresight-core.c
870
list_for_each_entry_safe(nd, next, &path->path_list, link) {
drivers/hwtracing/coresight/coresight-core.c
874
list_del(&nd->link);
drivers/hwtracing/coresight/coresight-core.c
89
csdev = list_first_entry(&path->path_list, struct coresight_node, link)->csdev;
drivers/hwtracing/coresight/coresight-etm-perf.c
824
int etm_perf_symlink(struct coresight_device *csdev, bool link)
drivers/hwtracing/coresight/coresight-etm-perf.c
836
if (link) {
drivers/hwtracing/coresight/coresight-etm-perf.h
103
int etm_perf_symlink(struct coresight_device *csdev, bool link);
drivers/hwtracing/coresight/coresight-platform.c
622
const union acpi_object *link,
drivers/hwtracing/coresight/coresight-platform.c
630
if (link->type != ACPI_TYPE_PACKAGE ||
drivers/hwtracing/coresight/coresight-platform.c
631
link->package.count != 4)
drivers/hwtracing/coresight/coresight-platform.c
634
fields = link->package.elements;
drivers/hwtracing/coresight/coresight-platform.c
706
const union acpi_object *link = &graph->package.elements[3 + i];
drivers/hwtracing/coresight/coresight-platform.c
710
dir = acpi_coresight_parse_link(adev, link, &conn);
drivers/hwtracing/coresight/coresight-stm.c
813
drvdata->stm.link = stm_generic_link;
drivers/hwtracing/coresight/coresight-sysfs.c
613
struct coresight_sysfs_link *link = NULL;
drivers/hwtracing/coresight/coresight-sysfs.c
628
link = devm_kzalloc(&orig->dev,
drivers/hwtracing/coresight/coresight-sysfs.c
631
if (!link)
drivers/hwtracing/coresight/coresight-sysfs.c
634
link->orig = orig;
drivers/hwtracing/coresight/coresight-sysfs.c
635
link->target = target;
drivers/hwtracing/coresight/coresight-sysfs.c
636
link->orig_name = outs;
drivers/hwtracing/coresight/coresight-sysfs.c
637
link->target_name = ins;
drivers/hwtracing/coresight/coresight-sysfs.c
639
ret = coresight_add_sysfs_link(link);
drivers/hwtracing/coresight/coresight-sysfs.c
643
conn->link = link;
drivers/hwtracing/coresight/coresight-sysfs.c
658
if (!orig || !conn->link)
drivers/hwtracing/coresight/coresight-sysfs.c
661
coresight_remove_sysfs_link(conn->link);
drivers/hwtracing/coresight/coresight-sysfs.c
663
devm_kfree(&conn->dest_dev->dev, conn->link->target_name);
drivers/hwtracing/coresight/coresight-sysfs.c
664
devm_kfree(&orig->dev, conn->link->orig_name);
drivers/hwtracing/coresight/coresight-sysfs.c
665
devm_kfree(&orig->dev, conn->link);
drivers/hwtracing/coresight/coresight-sysfs.c
666
conn->link = NULL;
drivers/hwtracing/intel_th/sth.c
222
sth->stm.link = sth_stm_link;
drivers/hwtracing/stm/console.c
26
.link = stm_console_link,
drivers/hwtracing/stm/core.c
1000
rcu_assign_pointer(src->link, stm);
drivers/hwtracing/stm/core.c
1019
if (stm->data->link)
drivers/hwtracing/stm/core.c
1020
err = stm->data->link(stm->data, src->output.master,
drivers/hwtracing/stm/core.c
1027
if (src->data->link)
drivers/hwtracing/stm/core.c
1028
src->data->link(src->data);
drivers/hwtracing/stm/core.c
1040
rcu_assign_pointer(src->link, NULL);
drivers/hwtracing/stm/core.c
1063
struct stm_device *link;
drivers/hwtracing/stm/core.c
1071
link = srcu_dereference_check(src->link, &stm_source_srcu, 1);
drivers/hwtracing/stm/core.c
1078
if (link != stm) {
drivers/hwtracing/stm/core.c
1083
stm_output_free(link, &src->output);
drivers/hwtracing/stm/core.c
1085
pm_runtime_mark_last_busy(&link->dev);
drivers/hwtracing/stm/core.c
1086
pm_runtime_put_autosuspend(&link->dev);
drivers/hwtracing/stm/core.c
1088
stm_put_device(link);
drivers/hwtracing/stm/core.c
1089
rcu_assign_pointer(src->link, NULL);
drivers/hwtracing/stm/core.c
1133
stm = srcu_dereference(src->link, &stm_source_srcu);
drivers/hwtracing/stm/core.c
1158
stm = srcu_dereference(src->link, &stm_source_srcu);
drivers/hwtracing/stm/core.c
1171
struct stm_device *link;
drivers/hwtracing/stm/core.c
1176
link = stm_find_device(buf);
drivers/hwtracing/stm/core.c
1177
if (!link)
drivers/hwtracing/stm/core.c
1180
pm_runtime_get(&link->dev);
drivers/hwtracing/stm/core.c
1182
err = stm_source_link_add(src, link);
drivers/hwtracing/stm/core.c
1184
pm_runtime_put_autosuspend(&link->dev);
drivers/hwtracing/stm/core.c
1186
stm_put_device(link);
drivers/hwtracing/stm/core.c
1299
stm = srcu_dereference(src->link, &stm_source_srcu);
drivers/hwtracing/stm/core.c
770
if (stm->data->link)
drivers/hwtracing/stm/core.c
771
ret = stm->data->link(stm->data, stmf->output.master,
drivers/hwtracing/stm/dummy_stm.c
90
dummy_stm[i].link = dummy_stm_link;
drivers/hwtracing/stm/ftrace.c
27
.link = stm_ftrace_link,
drivers/hwtracing/stm/heartbeat.c
82
stm_heartbeat[i].data.link = stm_heartbeat_link;
drivers/hwtracing/stm/stm.h
83
struct stm_device __rcu *link;
drivers/iio/industrialio-backend.c
786
struct device_link *link;
drivers/iio/industrialio-backend.c
803
link = device_link_add(dev, back->dev, DL_FLAG_AUTOREMOVE_CONSUMER);
drivers/iio/industrialio-backend.c
804
if (!link)
drivers/infiniband/core/cm.c
634
struct rb_node **link = &cm.listen_service_table.rb_node;
drivers/infiniband/core/cm.c
641
while (*link) {
drivers/infiniband/core/cm.c
642
parent = *link;
drivers/infiniband/core/cm.c
647
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
649
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
651
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
653
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
672
rb_link_node(&cm_id_priv->service_node, parent, link);
drivers/infiniband/core/cm.c
706
struct rb_node **link = &cm.remote_id_table.rb_node;
drivers/infiniband/core/cm.c
712
while (*link) {
drivers/infiniband/core/cm.c
713
parent = *link;
drivers/infiniband/core/cm.c
717
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
719
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
721
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
723
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
728
rb_link_node(&timewait_info->remote_id_node, parent, link);
drivers/infiniband/core/cm.c
765
struct rb_node **link = &cm.remote_qp_table.rb_node;
drivers/infiniband/core/cm.c
771
while (*link) {
drivers/infiniband/core/cm.c
772
parent = *link;
drivers/infiniband/core/cm.c
776
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
778
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
780
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
782
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
787
rb_link_node(&timewait_info->remote_qp_node, parent, link);
drivers/infiniband/core/cm.c
795
struct rb_node **link = &cm.remote_sidr_table.rb_node;
drivers/infiniband/core/cm.c
800
while (*link) {
drivers/infiniband/core/cm.c
801
parent = *link;
drivers/infiniband/core/cm.c
805
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
807
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
810
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
812
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
817
rb_link_node(&cm_id_priv->sidr_id_node, parent, link);
drivers/infiniband/core/multicast.c
154
struct rb_node **link = &port->table.rb_node;
drivers/infiniband/core/multicast.c
159
while (*link) {
drivers/infiniband/core/multicast.c
160
parent = *link;
drivers/infiniband/core/multicast.c
166
link = &(*link)->rb_left;
drivers/infiniband/core/multicast.c
168
link = &(*link)->rb_right;
drivers/infiniband/core/multicast.c
170
link = &(*link)->rb_left;
drivers/infiniband/core/multicast.c
174
rb_link_node(&group->node, parent, link);
drivers/infiniband/hw/hfi1/debugfs.c
1155
char link[10];
drivers/infiniband/hw/hfi1/debugfs.c
1165
snprintf(link, sizeof(link), "%d", unit);
drivers/infiniband/hw/hfi1/debugfs.c
1170
debugfs_create_symlink(link, hfi1_dbg_root, name);
drivers/infiniband/hw/mlx4/cm.c
202
struct rb_node **link = &sl_id_map->rb_node, *parent = NULL;
drivers/infiniband/hw/mlx4/cm.c
217
while (*link) {
drivers/infiniband/hw/mlx4/cm.c
218
parent = *link;
drivers/infiniband/hw/mlx4/cm.c
222
link = &(*link)->rb_left;
drivers/infiniband/hw/mlx4/cm.c
224
link = &(*link)->rb_right;
drivers/infiniband/hw/mlx4/cm.c
227
rb_link_node(&new->node, parent, link);
drivers/infiniband/hw/mlx4/mad.c
1008
if (link == IB_LINK_LAYER_ETHERNET)
drivers/infiniband/hw/mlx4/mad.c
990
enum rdma_link_layer link = rdma_port_get_link_layer(ibdev, port_num);
drivers/infiniband/hw/mlx4/mad.c
995
if (link == IB_LINK_LAYER_INFINIBAND) {
drivers/infiniband/hw/mlx4/mcg.c
186
struct rb_node **link = &ctx->mcg_table.rb_node;
drivers/infiniband/hw/mlx4/mcg.c
191
while (*link) {
drivers/infiniband/hw/mlx4/mcg.c
192
parent = *link;
drivers/infiniband/hw/mlx4/mcg.c
198
link = &(*link)->rb_left;
drivers/infiniband/hw/mlx4/mcg.c
200
link = &(*link)->rb_right;
drivers/infiniband/hw/mlx4/mcg.c
204
rb_link_node(&group->node, parent, link);
drivers/infiniband/hw/mthca/mthca_mcg.c
127
int link = 0;
drivers/infiniband/hw/mthca/mthca_mcg.c
146
link = 1;
drivers/infiniband/hw/mthca/mthca_mcg.c
188
if (!link)
drivers/infiniband/hw/mthca/mthca_mcg.c
204
if (err && link && index != -1) {
drivers/infiniband/hw/usnic/usnic_ib.h
56
struct list_head link;
drivers/infiniband/hw/usnic/usnic_ib.h
97
struct list_head link;
drivers/infiniband/hw/usnic/usnic_ib_main.c
113
list_for_each_entry(ctx, &us_ibdev->ctx_list, link) {
drivers/infiniband/hw/usnic/usnic_ib_main.c
114
list_for_each_entry(qp_grp, &ctx->qp_grp_list, link) {
drivers/infiniband/hw/usnic/usnic_ib_main.c
599
list_add_tail(&vf->link, &pf->vf_dev_list);
drivers/infiniband/hw/usnic/usnic_ib_main.c
636
list_del(&vf->link);
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
355
list_add_tail(&qp_flow->link, &qp_grp->flows_lst);
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
366
list_del(&qp_flow->link);
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
385
list_for_each_entry_safe(qp_flow, tmp, &qp_grp->flows_lst, link)
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
82
struct usnic_ib_qp_grp_flow, link);
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h
61
struct list_head link;
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h
80
struct list_head link;
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
157
struct usnic_ib_qp_grp_flow, link);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
221
list_for_each_entry(vf, &us_ibdev->vf_dev_list, link) {
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
515
list_add_tail(&qp_grp->link, &ucontext->qp_grp_list);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
542
list_del(&qp_grp->link);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
646
list_add_tail(&context->link, &us_ibdev->ctx_list);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
660
list_del(&context->link);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
686
list_for_each_entry(qp_grp, &uctx->qp_grp_list, link) {
drivers/infiniband/hw/usnic/usnic_uiom.c
195
list_for_each_entry_safe(interval, tmp, intervals, link) {
drivers/infiniband/hw/usnic/usnic_uiom.c
227
list_for_each_entry_safe(interval, tmp, &rm_intervals, link) {
drivers/infiniband/hw/usnic/usnic_uiom.c
230
list_del(&interval->link);
drivers/infiniband/hw/usnic/usnic_uiom.c
256
list_for_each_entry(interval_node, intervals, link) {
drivers/infiniband/hw/usnic/usnic_uiom.c
488
list_add_tail(&uiom_dev->link, &pd->devs);
drivers/infiniband/hw/usnic/usnic_uiom.c
507
list_for_each_entry(uiom_dev, &pd->devs, link) {
drivers/infiniband/hw/usnic/usnic_uiom.c
521
list_del(&uiom_dev->link);
drivers/infiniband/hw/usnic/usnic_uiom.c
541
list_for_each_entry(uiom_dev, &pd->devs, link) {
drivers/infiniband/hw/usnic/usnic_uiom.h
54
struct list_head link;
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
115
list_add_tail(&node->link, list);
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
135
list_for_each_entry(interval, &intersection_set, link) {
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
164
list_for_each_entry_safe(interval, tmp, diff_set, link) {
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
165
list_del(&interval->link);
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
175
list_for_each_entry_safe(interval, tmp, intervals, link)
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
193
list_for_each_entry(interval, &intersection_set, link) {
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
233
list_for_each_entry_safe(interval, tmp, &intersection_set, link) {
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
238
list_for_each_entry(interval, &to_add, link)
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
244
list_for_each_entry_safe(interval, tmp, &to_add, link)
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
262
list_add_tail(&interval->link, removed);
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
265
list_for_each_entry(interval, removed, link)
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
55
#define MARK_FOR_ADD(node, list) (list_add_tail(&node->link, list))
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
91
node_a = list_entry(a, struct usnic_uiom_interval_node, link);
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
92
node_b = list_entry(b, struct usnic_uiom_interval_node, link);
drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.h
41
struct list_head link;
drivers/infiniband/sw/rxe/rxe_mcast.c
100
rb_link_node(&mcg->node, node, link);
drivers/infiniband/sw/rxe/rxe_mcast.c
84
struct rb_node **link = &tree->rb_node;
drivers/infiniband/sw/rxe/rxe_mcast.c
89
while (*link) {
drivers/infiniband/sw/rxe/rxe_mcast.c
90
node = *link;
drivers/infiniband/sw/rxe/rxe_mcast.c
95
link = &(*link)->rb_left;
drivers/infiniband/sw/rxe/rxe_mcast.c
97
link = &(*link)->rb_right;
drivers/input/misc/iqs7222.c
140
u16 link;
drivers/input/misc/iqs7222.c
203
.link = BIT(7),
drivers/input/misc/iqs7222.c
207
.link = BIT(0),
drivers/input/misc/iqs7222.c
215
.link = BIT(2),
drivers/input/misc/iqs7222.c
224
.link = BIT(3),
drivers/input/misc/iqs7222.c
233
.link = BIT(4),
drivers/input/misc/iqs7222.c
242
.link = BIT(5),
drivers/input/misc/iqs7222.c
251
.link = BIT(2),
drivers/input/misc/iqs7222.c
260
.link = BIT(3),
drivers/input/misc/iqs7222.c
269
.link = BIT(4),
drivers/input/misc/iqs7222.c
2756
iqs7222_tp_events[i].link, 1566,
drivers/input/misc/iqs7222.c
278
.link = BIT(5),
drivers/iommu/arm/arm-smmu/qcom_iommu.c
529
struct device_link *link;
drivers/iommu/arm/arm-smmu/qcom_iommu.c
539
link = device_link_add(dev, qcom_iommu->dev, DL_FLAG_PM_RUNTIME);
drivers/iommu/arm/arm-smmu/qcom_iommu.c
540
if (!link) {
drivers/iommu/exynos-iommu.c
1417
data->link = device_link_add(dev, data->sysmmu,
drivers/iommu/exynos-iommu.c
1435
device_link_del(data->link);
drivers/iommu/exynos-iommu.c
290
struct device_link *link; /* runtime PM link to master */
drivers/iommu/fsl_pamu_domain.c
114
list_del(&info->link);
drivers/iommu/fsl_pamu_domain.c
131
list_for_each_entry_safe(info, tmp, &dma_domain->devices, link) {
drivers/iommu/fsl_pamu_domain.c
161
list_add(&info->link, &dma_domain->devices);
drivers/iommu/fsl_pamu_domain.c
231
list_for_each_entry(info, &dma_domain->devices, link) {
drivers/iommu/fsl_pamu_domain.h
22
struct list_head link; /* link to domain siblings */
drivers/iommu/intel/iommu.c
1324
list_add(&info->link, &domain->devices);
drivers/iommu/intel/iommu.c
2748
list_del(&info->link);
drivers/iommu/intel/iommu.c
3161
list_for_each_entry(info, &domain->devices, link) {
drivers/iommu/intel/iommu.c
3185
list_for_each_entry(info, &dmar_domain->devices, link)
drivers/iommu/intel/iommu.c
3696
list_for_each_entry(info, devices, link) {
drivers/iommu/intel/iommu.c
835
list_for_each_entry(info, &domain->devices, link) {
drivers/iommu/intel/iommu.h
746
struct list_head link; /* link to domain siblings */
drivers/iommu/intel/nested.c
65
list_add(&info->link, &dmar_domain->devices);
drivers/iommu/iommu-sysfs.c
106
int iommu_device_link(struct iommu_device *iommu, struct device *link)
drivers/iommu/iommu-sysfs.c
111
&link->kobj, dev_name(link));
drivers/iommu/iommu-sysfs.c
115
ret = sysfs_create_link_nowarn(&link->kobj, &iommu->dev->kobj, "iommu");
drivers/iommu/iommu-sysfs.c
118
dev_name(link));
drivers/iommu/iommu-sysfs.c
123
void iommu_device_unlink(struct iommu_device *iommu, struct device *link)
drivers/iommu/iommu-sysfs.c
125
sysfs_remove_link(&link->kobj, "iommu");
drivers/iommu/iommu-sysfs.c
126
sysfs_remove_link_from_group(&iommu->dev->kobj, "devices", dev_name(link));
drivers/iommu/mtk_iommu.c
1175
struct device_link *link;
drivers/iommu/mtk_iommu.c
1274
link = device_link_add(data->smicomm_dev, dev,
drivers/iommu/mtk_iommu.c
1277
if (!link) {
drivers/iommu/mtk_iommu.c
880
struct device_link *link;
drivers/iommu/mtk_iommu.c
917
link = device_link_add(dev, larbdev,
drivers/iommu/mtk_iommu.c
919
if (!link) {
drivers/iommu/mtk_iommu_v1.c
469
struct device_link *link;
drivers/iommu/mtk_iommu_v1.c
509
link = device_link_add(dev, larbdev,
drivers/iommu/mtk_iommu_v1.c
511
if (!link)
drivers/iommu/rockchip-iommu.c
1146
data->link = device_link_add(dev, iommu->dev,
drivers/iommu/rockchip-iommu.c
1156
device_link_del(data->link);
drivers/iommu/rockchip-iommu.c
123
struct device_link *link; /* runtime PM link from IOMMU to master */
drivers/leds/trigger/ledtrig-netdev.c
429
DEFINE_NETDEV_TRIGGER(link, TRIGGER_NETDEV_LINK);
drivers/macintosh/smu.c
120
cmd = list_entry(smu->cmd_list.next, struct smu_cmd, link);
drivers/macintosh/smu.c
122
list_del(&cmd->link);
drivers/macintosh/smu.c
276
list_add_tail(&cmd->link, &smu->cmd_list);
drivers/macintosh/smu.c
734
struct smu_i2c_cmd, link);
drivers/macintosh/smu.c
736
list_del(&cmd->link);
drivers/macintosh/smu.c
739
list_add_tail(&cmd->scmd.link, &smu->cmd_list);
drivers/macintosh/smu.c
886
list_add_tail(&cmd->scmd.link, &smu->cmd_list);
drivers/macintosh/smu.c
890
list_add_tail(&cmd->link, &smu->cmd_i2c_list);
drivers/macintosh/windfarm.h
106
struct list_head link;
drivers/macintosh/windfarm.h
37
struct list_head link;
drivers/macintosh/windfarm_core.c
212
list_for_each_entry(ct, &wf_controls, link) {
drivers/macintosh/windfarm_core.c
221
list_add(&new_ct->link, &wf_controls);
drivers/macintosh/windfarm_core.c
245
list_del(&ct->link);
drivers/macintosh/windfarm_core.c
307
list_for_each_entry(sr, &wf_sensors, link) {
drivers/macintosh/windfarm_core.c
316
list_add(&new_sr->link, &wf_sensors);
drivers/macintosh/windfarm_core.c
340
list_del(&sr->link);
drivers/macintosh/windfarm_core.c
382
list_for_each_entry(ct, &wf_controls, link)
drivers/macintosh/windfarm_core.c
384
list_for_each_entry(sr, &wf_sensors, link)
drivers/macintosh/windfarm_fcu_controls.c
396
list_add(&fan->link, &pv->fan_list);
drivers/macintosh/windfarm_fcu_controls.c
568
fan = list_first_entry(&pv->fan_list, struct wf_fcu_fan, link);
drivers/macintosh/windfarm_fcu_controls.c
569
list_del(&fan->link);
drivers/macintosh/windfarm_fcu_controls.c
64
struct list_head link;
drivers/macintosh/windfarm_smu_controls.c
282
list_add(&fct->link, &smu_fans);
drivers/macintosh/windfarm_smu_controls.c
300
list_add(&fct->link, &smu_fans);
drivers/macintosh/windfarm_smu_controls.c
313
fct = list_entry(smu_fans.next, struct smu_fan_control, link);
drivers/macintosh/windfarm_smu_controls.c
314
list_del(&fct->link);
drivers/macintosh/windfarm_smu_controls.c
45
struct list_head link;
drivers/macintosh/windfarm_smu_sat.c
281
list_add(&sens->link, &sat->sensors);
drivers/macintosh/windfarm_smu_sat.c
308
list_add(&sens->link, &sat->sensors);
drivers/macintosh/windfarm_smu_sat.c
327
struct wf_sat_sensor, link);
drivers/macintosh/windfarm_smu_sat.c
328
list_del(&sens->link);
drivers/macintosh/windfarm_smu_sat.c
41
struct list_head link;
drivers/macintosh/windfarm_smu_sensors.c
274
struct list_head link;
drivers/macintosh/windfarm_smu_sensors.c
439
list_add(&ads->link, &smu_ads);
drivers/macintosh/windfarm_smu_sensors.c
467
ads = list_entry(smu_ads.next, struct smu_ad_sensor, link);
drivers/macintosh/windfarm_smu_sensors.c
468
list_del(&ads->link);
drivers/macintosh/windfarm_smu_sensors.c
53
struct list_head link;
drivers/mailbox/bcm2835-mailbox.c
102
static void bcm2835_shutdown(struct mbox_chan *link)
drivers/mailbox/bcm2835-mailbox.c
104
struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
drivers/mailbox/bcm2835-mailbox.c
109
static bool bcm2835_last_tx_done(struct mbox_chan *link)
drivers/mailbox/bcm2835-mailbox.c
111
struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
drivers/mailbox/bcm2835-mailbox.c
61
static struct bcm2835_mbox *bcm2835_link_mbox(struct mbox_chan *link)
drivers/mailbox/bcm2835-mailbox.c
63
return container_of(link->mbox, struct bcm2835_mbox, controller);
drivers/mailbox/bcm2835-mailbox.c
70
struct mbox_chan *link = &mbox->controller.chans[0];
drivers/mailbox/bcm2835-mailbox.c
75
mbox_chan_received_data(link, &msg);
drivers/mailbox/bcm2835-mailbox.c
80
static int bcm2835_send_data(struct mbox_chan *link, void *data)
drivers/mailbox/bcm2835-mailbox.c
82
struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
drivers/mailbox/bcm2835-mailbox.c
92
static int bcm2835_startup(struct mbox_chan *link)
drivers/mailbox/bcm2835-mailbox.c
94
struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
drivers/mailbox/stm32-ipcc.c
146
static int stm32_ipcc_send_data(struct mbox_chan *link, void *data)
drivers/mailbox/stm32-ipcc.c
148
unsigned long chan = (unsigned long)link->con_priv;
drivers/mailbox/stm32-ipcc.c
149
struct stm32_ipcc *ipcc = container_of(link->mbox, struct stm32_ipcc,
drivers/mailbox/stm32-ipcc.c
165
static int stm32_ipcc_startup(struct mbox_chan *link)
drivers/mailbox/stm32-ipcc.c
167
unsigned long chan = (unsigned long)link->con_priv;
drivers/mailbox/stm32-ipcc.c
168
struct stm32_ipcc *ipcc = container_of(link->mbox, struct stm32_ipcc,
drivers/mailbox/stm32-ipcc.c
185
static void stm32_ipcc_shutdown(struct mbox_chan *link)
drivers/mailbox/stm32-ipcc.c
187
unsigned long chan = (unsigned long)link->con_priv;
drivers/mailbox/stm32-ipcc.c
188
struct stm32_ipcc *ipcc = container_of(link->mbox, struct stm32_ipcc,
drivers/md/dm-dust.c
57
struct rb_node **link = &root->rb_node, *parent = NULL;
drivers/md/dm-dust.c
60
while (*link) {
drivers/md/dm-dust.c
61
parent = *link;
drivers/md/dm-dust.c
65
link = &(*link)->rb_left;
drivers/md/dm-dust.c
67
link = &(*link)->rb_right;
drivers/md/dm-dust.c
72
rb_link_node(&new->node, parent, link);
drivers/md/dm-integrity.c
1305
struct rb_node **link;
drivers/md/dm-integrity.c
1311
link = &ic->journal_tree_root.rb_node;
drivers/md/dm-integrity.c
1314
while (*link) {
drivers/md/dm-integrity.c
1317
parent = *link;
drivers/md/dm-integrity.c
1320
link = &j->node.rb_left;
drivers/md/dm-integrity.c
1322
link = &j->node.rb_right;
drivers/md/dm-integrity.c
1325
rb_link_node(&node->node, parent, link);
drivers/md/dm-vdo/funnel-workqueue.c
101
struct funnel_queue_entry *link = vdo_funnel_queue_poll(queue->priority_lists[i]);
drivers/md/dm-vdo/funnel-workqueue.c
103
if (link != NULL)
drivers/md/dm-vdo/funnel-workqueue.c
104
return container_of(link, struct vdo_completion, work_queue_entry_link);
drivers/md/dm-zoned-metadata.c
111
struct list_head link;
drivers/md/dm-zoned-metadata.c
1728
list_add_tail(&dzone->link, &zmd->map_cache_list);
drivers/md/dm-zoned-metadata.c
1730
list_add_tail(&dzone->link, &dzone->dev->map_rnd_list);
drivers/md/dm-zoned-metadata.c
1732
list_add_tail(&dzone->link, &dzone->dev->map_seq_list);
drivers/md/dm-zoned-metadata.c
1764
list_add_tail(&bzone->link, &zmd->map_cache_list);
drivers/md/dm-zoned-metadata.c
1766
list_add_tail(&bzone->link, &bzone->dev->map_rnd_list);
drivers/md/dm-zoned-metadata.c
1804
list_add_tail(&dzone->link, &zmd->unmap_cache_list);
drivers/md/dm-zoned-metadata.c
1807
list_add_tail(&dzone->link,
drivers/md/dm-zoned-metadata.c
1811
list_add_tail(&dzone->link, &zmd->reserved_seq_zones_list);
drivers/md/dm-zoned-metadata.c
1816
list_add_tail(&dzone->link,
drivers/md/dm-zoned-metadata.c
1846
if (list_empty(&zone->link))
drivers/md/dm-zoned-metadata.c
1849
list_del_init(&zone->link);
drivers/md/dm-zoned-metadata.c
1852
list_add_tail(&zone->link, &zone->dev->map_seq_list);
drivers/md/dm-zoned-metadata.c
1855
list_add_tail(&zone->link, &zmd->map_cache_list);
drivers/md/dm-zoned-metadata.c
1858
list_add_tail(&zone->link, &zone->dev->map_rnd_list);
drivers/md/dm-zoned-metadata.c
1955
list_for_each_entry(zone, zone_list, link) {
drivers/md/dm-zoned-metadata.c
1977
list_for_each_entry(zone, zone_list, link) {
drivers/md/dm-zoned-metadata.c
1999
list_for_each_entry(zone, &zmd->dev[idx].map_seq_list, link) {
drivers/md/dm-zoned-metadata.c
2189
list_add_tail(&bzone->link, &zmd->map_cache_list);
drivers/md/dm-zoned-metadata.c
2191
list_add_tail(&bzone->link, &bzone->dev->map_rnd_list);
drivers/md/dm-zoned-metadata.c
2243
struct dm_zone, link);
drivers/md/dm-zoned-metadata.c
2245
list_del_init(&zone->link);
drivers/md/dm-zoned-metadata.c
2251
zone = list_first_entry(list, struct dm_zone, link);
drivers/md/dm-zoned-metadata.c
2252
list_del_init(&zone->link);
drivers/md/dm-zoned-metadata.c
2286
list_add_tail(&zone->link, &zmd->unmap_cache_list);
drivers/md/dm-zoned-metadata.c
2289
list_add_tail(&zone->link, &zone->dev->unmap_rnd_list);
drivers/md/dm-zoned-metadata.c
2292
list_add_tail(&zone->link, &zmd->reserved_seq_zones_list);
drivers/md/dm-zoned-metadata.c
2295
list_add_tail(&zone->link, &zone->dev->unmap_seq_list);
drivers/md/dm-zoned-metadata.c
2314
list_add_tail(&dzone->link, &zmd->map_cache_list);
drivers/md/dm-zoned-metadata.c
2316
list_add_tail(&dzone->link, &dzone->dev->map_rnd_list);
drivers/md/dm-zoned-metadata.c
2318
list_add_tail(&dzone->link, &dzone->dev->map_seq_list);
drivers/md/dm-zoned-metadata.c
2359
list_del_init(&zone->link);
drivers/md/dm-zoned-metadata.c
2800
struct dmz_mblock, link);
drivers/md/dm-zoned-metadata.c
2803
list_del_init(&mblk->link);
drivers/md/dm-zoned-metadata.c
2810
struct dmz_mblock, link);
drivers/md/dm-zoned-metadata.c
2811
list_del_init(&mblk->link);
drivers/md/dm-zoned-metadata.c
316
INIT_LIST_HEAD(&zone->link);
drivers/md/dm-zoned-metadata.c
410
struct dmz_mblock, link);
drivers/md/dm-zoned-metadata.c
412
list_del_init(&mblk->link);
drivers/md/dm-zoned-metadata.c
433
INIT_LIST_HEAD(&mblk->link);
drivers/md/dm-zoned-metadata.c
497
list_del_init(&mblk->link);
drivers/md/dm-zoned-metadata.c
597
struct dmz_mblock, link);
drivers/md/dm-zoned-metadata.c
598
list_del_init(&mblk->link);
drivers/md/dm-zoned-metadata.c
652
list_add_tail(&mblk->link, &zmd->mblk_lru_list);
drivers/md/dm-zoned-metadata.c
701
list_add_tail(&mblk->link, &zmd->mblk_dirty_list);
drivers/md/dm-zoned-metadata.c
822
list_for_each_entry(mblk, write_list, link) {
drivers/md/dm-zoned-metadata.c
831
list_for_each_entry(mblk, write_list, link) {
drivers/md/dm-zoned-metadata.c
943
mblk = list_first_entry(&write_list, struct dmz_mblock, link);
drivers/md/dm-zoned-metadata.c
944
list_del_init(&mblk->link);
drivers/md/dm-zoned-metadata.c
949
list_add_tail(&mblk->link, &zmd->mblk_lru_list);
drivers/md/dm-zoned.h
97
struct list_head link;
drivers/media/dvb-core/dvbdev.c
392
struct media_link *link;
drivers/media/dvb-core/dvbdev.c
441
link = media_create_intf_link(dvbdev->entity,
drivers/media/dvb-core/dvbdev.c
445
if (!link)
drivers/media/dvb-core/dvbdev.c
647
struct media_link *link;
drivers/media/dvb-core/dvbdev.c
653
link = media_create_intf_link(entity, intf,
drivers/media/dvb-core/dvbdev.c
656
if (!link)
drivers/media/dvb-core/dvbdev.c
669
struct media_link *link;
drivers/media/dvb-core/dvbdev.c
819
link = media_create_intf_link(ca, intf,
drivers/media/dvb-core/dvbdev.c
822
if (!link)
drivers/media/dvb-core/dvbdev.c
827
link = media_create_intf_link(tuner, intf,
drivers/media/dvb-core/dvbdev.c
830
if (!link)
drivers/media/dvb-core/dvbdev.c
840
link = media_create_intf_link(demux, intf,
drivers/media/dvb-core/dvbdev.c
843
if (!link)
drivers/media/i2c/tvp5150.c
1269
struct media_link *link;
drivers/media/i2c/tvp5150.c
1271
link = media_entity_find_link(connector_pad, tvp5150_pad);
drivers/media/i2c/tvp5150.c
1272
if (!link)
drivers/media/i2c/tvp5150.c
1275
link->flags = flags;
drivers/media/i2c/tvp5150.c
1276
link->reverse->flags = link->flags;
drivers/media/i2c/tvp5150.c
1618
struct v4l2_connector_link *link =
drivers/media/i2c/tvp5150.c
1620
unsigned int port = link->fwnode_link.remote_port;
drivers/media/i2c/tvp5150.c
1642
link = v4l2_connector_last_link(v4l2c);
drivers/media/i2c/tvp5150.c
1643
port = link->fwnode_link.remote_port;
drivers/media/mc/mc-device.c
174
struct media_link *link;
drivers/media/mc/mc-device.c
177
list_for_each_entry(link, &entity->links, list) {
drivers/media/mc/mc-device.c
181
if (link->source->entity != entity)
drivers/media/mc/mc-device.c
184
media_device_kpad_to_upad(link->source,
drivers/media/mc/mc-device.c
186
media_device_kpad_to_upad(link->sink,
drivers/media/mc/mc-device.c
188
klink_desc.flags = link->flags;
drivers/media/mc/mc-device.c
203
struct media_link *link = NULL;
drivers/media/mc/mc-device.c
219
link = media_entity_find_link(&source->pads[linkd->source.index],
drivers/media/mc/mc-device.c
221
if (link == NULL)
drivers/media/mc/mc-device.c
227
return __media_entity_setup_link(link, linkd->flags);
drivers/media/mc/mc-device.c
236
struct media_link *link;
drivers/media/mc/mc-device.c
341
media_device_for_each_link(link, mdev) {
drivers/media/mc/mc-device.c
342
if (link->is_backlink)
drivers/media/mc/mc-device.c
358
klink.id = link->graph_obj.id;
drivers/media/mc/mc-device.c
359
klink.source_id = link->gobj0->id;
drivers/media/mc/mc-device.c
360
klink.sink_id = link->gobj1->id;
drivers/media/mc/mc-device.c
361
klink.flags = link->flags;
drivers/media/mc/mc-device.c
578
struct media_link *link, *tmp;
drivers/media/mc/mc-device.c
586
list_for_each_entry_safe(link, tmp, &intf->links, list) {
drivers/media/mc/mc-device.c
587
if (link->entity == entity)
drivers/media/mc/mc-device.c
588
__media_remove_intf_link(link);
drivers/media/mc/mc-entity.c
105
struct media_link *link = gobj_to_link(gobj);
drivers/media/mc/mc-entity.c
1062
struct media_link *link;
drivers/media/mc/mc-entity.c
1064
link = kzalloc_obj(*link);
drivers/media/mc/mc-entity.c
1065
if (link == NULL)
drivers/media/mc/mc-entity.c
1068
list_add_tail(&link->list, head);
drivers/media/mc/mc-entity.c
1070
return link;
drivers/media/mc/mc-entity.c
1074
struct media_link *link)
drivers/media/mc/mc-entity.c
1080
if ((link->flags & MEDIA_LNK_FL_LINK_TYPE) == MEDIA_LNK_FL_DATA_LINK) {
drivers/media/mc/mc-entity.c
1081
link->source->num_links--;
drivers/media/mc/mc-entity.c
1082
link->sink->num_links--;
drivers/media/mc/mc-entity.c
1084
if (link->source->entity == entity)
drivers/media/mc/mc-entity.c
1085
remote = link->sink->entity;
drivers/media/mc/mc-entity.c
1087
remote = link->source->entity;
drivers/media/mc/mc-entity.c
109
event_name, media_id(gobj), link_type_name(link),
drivers/media/mc/mc-entity.c
1090
if (rlink != link->reverse)
drivers/media/mc/mc-entity.c
1093
if (link->source->entity == entity)
drivers/media/mc/mc-entity.c
110
media_id(link->gobj0),
drivers/media/mc/mc-entity.c
1106
list_del(&link->list);
drivers/media/mc/mc-entity.c
1107
media_gobj_destroy(&link->graph_obj);
drivers/media/mc/mc-entity.c
1108
kfree(link);
drivers/media/mc/mc-entity.c
111
media_id(link->gobj1));
drivers/media/mc/mc-entity.c
1135
struct media_link *link;
drivers/media/mc/mc-entity.c
1152
link = media_add_link(&source->links);
drivers/media/mc/mc-entity.c
1153
if (link == NULL)
drivers/media/mc/mc-entity.c
1156
link->source = &source->pads[source_pad];
drivers/media/mc/mc-entity.c
1157
link->sink = &sink->pads[sink_pad];
drivers/media/mc/mc-entity.c
1158
link->flags = flags;
drivers/media/mc/mc-entity.c
1162
&link->graph_obj);
drivers/media/mc/mc-entity.c
1169
__media_entity_remove_link(source, link);
drivers/media/mc/mc-entity.c
1182
link->reverse = backlink;
drivers/media/mc/mc-entity.c
1183
backlink->reverse = link;
drivers/media/mc/mc-entity.c
1189
link->source->num_links++;
drivers/media/mc/mc-entity.c
1190
link->sink->num_links++;
drivers/media/mc/mc-entity.c
1263
struct media_link *link, *tmp;
drivers/media/mc/mc-entity.c
1265
list_for_each_entry_safe(link, tmp, &entity->links, list)
drivers/media/mc/mc-entity.c
1266
__media_entity_remove_link(entity, link);
drivers/media/mc/mc-entity.c
1287
static int __media_entity_setup_link_notify(struct media_link *link, u32 flags)
drivers/media/mc/mc-entity.c
1292
ret = media_entity_call(link->source->entity, link_setup,
drivers/media/mc/mc-entity.c
1293
link->source, link->sink, flags);
drivers/media/mc/mc-entity.c
1297
ret = media_entity_call(link->sink->entity, link_setup,
drivers/media/mc/mc-entity.c
1298
link->sink, link->source, flags);
drivers/media/mc/mc-entity.c
1300
media_entity_call(link->source->entity, link_setup,
drivers/media/mc/mc-entity.c
1301
link->source, link->sink, link->flags);
drivers/media/mc/mc-entity.c
1305
link->flags = flags;
drivers/media/mc/mc-entity.c
1306
link->reverse->flags = link->flags;
drivers/media/mc/mc-entity.c
1311
int __media_entity_setup_link(struct media_link *link, u32 flags)
drivers/media/mc/mc-entity.c
1318
if (link == NULL)
drivers/media/mc/mc-entity.c
1322
if ((link->flags & ~mask) != (flags & ~mask))
drivers/media/mc/mc-entity.c
1325
if (link->flags & MEDIA_LNK_FL_IMMUTABLE)
drivers/media/mc/mc-entity.c
1326
return link->flags == flags ? 0 : -EINVAL;
drivers/media/mc/mc-entity.c
1328
if (link->flags == flags)
drivers/media/mc/mc-entity.c
1331
source = link->source;
drivers/media/mc/mc-entity.c
1332
sink = link->sink;
drivers/media/mc/mc-entity.c
1334
if (!(link->flags & MEDIA_LNK_FL_DYNAMIC) &&
drivers/media/mc/mc-entity.c
1341
ret = mdev->ops->link_notify(link, flags,
drivers/media/mc/mc-entity.c
1347
ret = __media_entity_setup_link_notify(link, flags);
drivers/media/mc/mc-entity.c
1350
mdev->ops->link_notify(link, flags,
drivers/media/mc/mc-entity.c
1357
int media_entity_setup_link(struct media_link *link, u32 flags)
drivers/media/mc/mc-entity.c
1361
mutex_lock(&link->graph_obj.mdev->graph_mutex);
drivers/media/mc/mc-entity.c
1362
ret = __media_entity_setup_link(link, flags);
drivers/media/mc/mc-entity.c
1363
mutex_unlock(&link->graph_obj.mdev->graph_mutex);
drivers/media/mc/mc-entity.c
1372
struct media_link *link;
drivers/media/mc/mc-entity.c
1374
for_each_media_entity_data_link(source->entity, link) {
drivers/media/mc/mc-entity.c
1375
if (link->source->entity == source->entity &&
drivers/media/mc/mc-entity.c
1376
link->source->index == source->index &&
drivers/media/mc/mc-entity.c
1377
link->sink->entity == sink->entity &&
drivers/media/mc/mc-entity.c
1378
link->sink->index == sink->index)
drivers/media/mc/mc-entity.c
1379
return link;
drivers/media/mc/mc-entity.c
1388
struct media_link *link;
drivers/media/mc/mc-entity.c
1390
for_each_media_entity_data_link(pad->entity, link) {
drivers/media/mc/mc-entity.c
1391
if (!(link->flags & MEDIA_LNK_FL_ENABLED))
drivers/media/mc/mc-entity.c
1394
if (link->source == pad)
drivers/media/mc/mc-entity.c
1395
return link->sink;
drivers/media/mc/mc-entity.c
1397
if (link->sink == pad)
drivers/media/mc/mc-entity.c
1398
return link->source;
drivers/media/mc/mc-entity.c
1411
struct media_link *link;
drivers/media/mc/mc-entity.c
1413
list_for_each_entry(link, &entity->links, list) {
drivers/media/mc/mc-entity.c
1417
if (((link->flags & MEDIA_LNK_FL_LINK_TYPE) !=
drivers/media/mc/mc-entity.c
1419
!(link->flags & MEDIA_LNK_FL_ENABLED))
drivers/media/mc/mc-entity.c
1423
local_pad = link->sink;
drivers/media/mc/mc-entity.c
1424
remote_pad = link->source;
drivers/media/mc/mc-entity.c
1426
local_pad = link->source;
drivers/media/mc/mc-entity.c
1427
remote_pad = link->sink;
drivers/media/mc/mc-entity.c
1448
struct media_link *link;
drivers/media/mc/mc-entity.c
1450
list_for_each_entry(link, &pad->entity->links, list) {
drivers/media/mc/mc-entity.c
1453
if (!(link->flags & MEDIA_LNK_FL_ENABLED))
drivers/media/mc/mc-entity.c
1456
if (link->sink == pad)
drivers/media/mc/mc-entity.c
1457
remote_pad = link->source;
drivers/media/mc/mc-entity.c
1458
else if (link->source == pad)
drivers/media/mc/mc-entity.c
1459
remote_pad = link->sink;
drivers/media/mc/mc-entity.c
1576
struct media_link *link;
drivers/media/mc/mc-entity.c
1578
link = media_add_link(&intf->links);
drivers/media/mc/mc-entity.c
1579
if (link == NULL)
drivers/media/mc/mc-entity.c
1582
link->intf = intf;
drivers/media/mc/mc-entity.c
1583
link->entity = entity;
drivers/media/mc/mc-entity.c
1584
link->flags = flags | MEDIA_LNK_FL_INTERFACE_LINK;
drivers/media/mc/mc-entity.c
1588
&link->graph_obj);
drivers/media/mc/mc-entity.c
1590
return link;
drivers/media/mc/mc-entity.c
1594
void __media_remove_intf_link(struct media_link *link)
drivers/media/mc/mc-entity.c
1596
list_del(&link->list);
drivers/media/mc/mc-entity.c
1597
media_gobj_destroy(&link->graph_obj);
drivers/media/mc/mc-entity.c
1598
kfree(link);
drivers/media/mc/mc-entity.c
1602
void media_remove_intf_link(struct media_link *link)
drivers/media/mc/mc-entity.c
1604
struct media_device *mdev = link->graph_obj.mdev;
drivers/media/mc/mc-entity.c
1611
__media_remove_intf_link(link);
drivers/media/mc/mc-entity.c
1618
struct media_link *link, *tmp;
drivers/media/mc/mc-entity.c
1620
list_for_each_entry_safe(link, tmp, &intf->links, list)
drivers/media/mc/mc-entity.c
1621
__media_remove_intf_link(link);
drivers/media/mc/mc-entity.c
1643
struct media_link *link;
drivers/media/mc/mc-entity.c
1645
link = media_add_link(&primary->links);
drivers/media/mc/mc-entity.c
1646
if (!link)
drivers/media/mc/mc-entity.c
1649
link->gobj0 = &primary->graph_obj;
drivers/media/mc/mc-entity.c
1650
link->gobj1 = &ancillary->graph_obj;
drivers/media/mc/mc-entity.c
1651
link->flags = MEDIA_LNK_FL_IMMUTABLE | MEDIA_LNK_FL_ENABLED |
drivers/media/mc/mc-entity.c
1656
&link->graph_obj);
drivers/media/mc/mc-entity.c
1658
return link;
drivers/media/mc/mc-entity.c
1663
struct media_link *link,
drivers/media/mc/mc-entity.c
1666
link = link ? list_next_entry(link, list)
drivers/media/mc/mc-entity.c
1667
: list_first_entry(&entity->links, typeof(*link), list);
drivers/media/mc/mc-entity.c
1669
list_for_each_entry_from(link, &entity->links, list)
drivers/media/mc/mc-entity.c
1670
if ((link->flags & MEDIA_LNK_FL_LINK_TYPE) == link_type)
drivers/media/mc/mc-entity.c
1671
return link;
drivers/media/mc/mc-entity.c
283
media_entity_other(struct media_entity *entity, struct media_link *link)
drivers/media/mc/mc-entity.c
285
if (link->source->entity == entity)
drivers/media/mc/mc-entity.c
286
return link->sink->entity;
drivers/media/mc/mc-entity.c
288
return link->source->entity;
drivers/media/mc/mc-entity.c
300
graph->stack[graph->top].link = entity->links.next;
drivers/media/mc/mc-entity.c
314
#define link_top(en) ((en)->stack[(en)->top].link)
drivers/media/mc/mc-entity.c
362
struct media_link *link;
drivers/media/mc/mc-entity.c
365
link = list_entry(link_top(graph), typeof(*link), list);
drivers/media/mc/mc-entity.c
368
if ((link->flags & MEDIA_LNK_FL_LINK_TYPE) != MEDIA_LNK_FL_DATA_LINK) {
drivers/media/mc/mc-entity.c
374
if (!(link->flags & MEDIA_LNK_FL_ENABLED)) {
drivers/media/mc/mc-entity.c
378
link->source->entity->name, link->source->index,
drivers/media/mc/mc-entity.c
379
link->sink->entity->name, link->sink->index);
drivers/media/mc/mc-entity.c
384
next = media_entity_other(entity, link);
drivers/media/mc/mc-entity.c
48
static inline const char *link_type_name(struct media_link *link)
drivers/media/mc/mc-entity.c
50
switch (link->flags & MEDIA_LNK_FL_LINK_TYPE) {
drivers/media/mc/mc-entity.c
612
struct media_link *link;
drivers/media/mc/mc-entity.c
619
link = list_entry(entry->links, typeof(*link), list);
drivers/media/mc/mc-entity.c
622
if ((link->flags & MEDIA_LNK_FL_LINK_TYPE) != MEDIA_LNK_FL_DATA_LINK) {
drivers/media/mc/mc-entity.c
630
link->source->entity->name, link->source->index,
drivers/media/mc/mc-entity.c
631
link->sink->entity->name, link->sink->index);
drivers/media/mc/mc-entity.c
634
if (link->source->entity == origin->entity) {
drivers/media/mc/mc-entity.c
635
local = link->source;
drivers/media/mc/mc-entity.c
636
remote = link->sink;
drivers/media/mc/mc-entity.c
638
local = link->sink;
drivers/media/mc/mc-entity.c
639
remote = link->source;
drivers/media/mc/mc-entity.c
663
if (!(link->flags & MEDIA_LNK_FL_ENABLED)) {
drivers/media/mc/mc-entity.c
815
struct media_link *link;
drivers/media/mc/mc-entity.c
836
for_each_media_entity_data_link(entity, link) {
drivers/media/mc/mc-entity.c
838
if (link->sink != pad && link->source != pad)
drivers/media/mc/mc-entity.c
842
if (link->flags & MEDIA_LNK_FL_ENABLED)
drivers/media/mc/mc-entity.c
849
if (!(link->flags & MEDIA_LNK_FL_ENABLED))
drivers/media/mc/mc-entity.c
852
if (link->sink != pad)
drivers/media/mc/mc-entity.c
858
ret = entity->ops->link_validate(link);
drivers/media/mc/mc-entity.c
862
link->source->entity->name,
drivers/media/mc/mc-entity.c
863
link->source->index,
drivers/media/mc/mc-entity.c
864
link->sink->entity->name,
drivers/media/mc/mc-entity.c
865
link->sink->index, ret);
drivers/media/mc/mc-entity.c
871
link->source->entity->name,
drivers/media/mc/mc-entity.c
872
link->source->index,
drivers/media/mc/mc-entity.c
873
link->sink->entity->name,
drivers/media/mc/mc-entity.c
874
link->sink->index);
drivers/media/pci/cobalt/cobalt-driver.c
238
u16 link;
drivers/media/pci/cobalt/cobalt-driver.c
242
pcie_capability_read_word(pci_dev, PCI_EXP_LNKSTA, &link);
drivers/media/pci/cobalt/cobalt-driver.c
243
return FIELD_GET(PCI_EXP_LNKSTA_NLW, link);
drivers/media/pci/cobalt/cobalt-driver.c
249
u32 link;
drivers/media/pci/cobalt/cobalt-driver.c
253
pcie_capability_read_dword(pci_dev, PCI_EXP_LNKCAP, &link);
drivers/media/pci/cobalt/cobalt-driver.c
254
return FIELD_GET(PCI_EXP_LNKCAP_MLW, link);
drivers/media/pci/ddbridge/ddbridge-core.c
113
struct ddb_irq *ddb_irq_set(struct ddb *dev, u32 link, u32 nr,
drivers/media/pci/ddbridge/ddbridge-core.c
116
struct ddb_irq *irq = &dev->link[link].irq[nr];
drivers/media/pci/ddbridge/ddbridge-core.c
1421
for (i = 0; i < dev->link[0].info->port_num; i++) {
drivers/media/pci/ddbridge/ddbridge-core.c
1443
struct ddb_ids *devids = &input->port->dev->link[input->port->lnr].ids;
drivers/media/pci/ddbridge/ddbridge-core.c
1548
if (input->port->dev->link[input->port->lnr].info->ts_quirks &
drivers/media/pci/ddbridge/ddbridge-core.c
1557
if (input->port->dev->link[input->port->lnr].info->ts_quirks
drivers/media/pci/ddbridge/ddbridge-core.c
1748
if (dev->link[port->lnr].info->con_clock) {
drivers/media/pci/ddbridge/ddbridge-core.c
1798
if (dev->link[port->lnr].info->con_clock) {
drivers/media/pci/ddbridge/ddbridge-core.c
1840
struct ddb_link *link = &dev->link[l];
drivers/media/pci/ddbridge/ddbridge-core.c
1850
link->ids.device == 0x0005) {
drivers/media/pci/ddbridge/ddbridge-core.c
1864
if (port->nr == 1 && link->info->type == DDB_OCTOPUS_CI &&
drivers/media/pci/ddbridge/ddbridge-core.c
1865
link->info->i2c_mask == 1) {
drivers/media/pci/ddbridge/ddbridge-core.c
1871
if (link->info->type == DDB_OCTOPUS_MAX) {
drivers/media/pci/ddbridge/ddbridge-core.c
1882
if (link->info->type == DDB_OCTOPUS_MCI) {
drivers/media/pci/ddbridge/ddbridge-core.c
1883
if (port->nr >= link->info->mci_ports)
drivers/media/pci/ddbridge/ddbridge-core.c
1888
port->type = DDB_TUNER_MCI + link->info->mci_type;
drivers/media/pci/ddbridge/ddbridge-core.c
1892
if (port->nr > 1 && link->info->type == DDB_OCTOPUS_CI) {
drivers/media/pci/ddbridge/ddbridge-core.c
1977
link->info->ts_quirks & TS_QUIRK_REVERSED)
drivers/media/pci/ddbridge/ddbridge-core.c
2225
static const struct ddb_regmap *io_regmap(struct ddb_io *io, int link)
drivers/media/pci/ddbridge/ddbridge-core.c
2229
if (link)
drivers/media/pci/ddbridge/ddbridge-core.c
2230
info = io->port->dev->link[io->port->lnr].info;
drivers/media/pci/ddbridge/ddbridge-core.c
2232
info = io->port->dev->link[0].info;
drivers/media/pci/ddbridge/ddbridge-core.c
2333
if (dev->i2c[i].link == port->lnr &&
drivers/media/pci/ddbridge/ddbridge-core.c
2348
if (dev->i2c[i].link == port->lnr) {
drivers/media/pci/ddbridge/ddbridge-core.c
2364
info = dev->link[l].info;
drivers/media/pci/ddbridge/ddbridge-core.c
2419
switch (dev->link[l].info->type) {
drivers/media/pci/ddbridge/ddbridge-core.c
2469
dev->link[0].irq[_nr].handler) \
drivers/media/pci/ddbridge/ddbridge-core.c
2470
dev->link[0].irq[_nr].handler(dev->link[0].irq[_nr].data); } \
drivers/media/pci/ddbridge/ddbridge-core.c
2589
struct ddb_link *link = &dev->link[lnr];
drivers/media/pci/ddbridge/ddbridge-core.c
2591
mutex_lock(&link->flash_mutex);
drivers/media/pci/ddbridge/ddbridge-core.c
2659
mutex_unlock(&link->flash_mutex);
drivers/media/pci/ddbridge/ddbridge-core.c
2662
mutex_unlock(&link->flash_mutex);
drivers/media/pci/ddbridge/ddbridge-core.c
2666
int ddbridge_flashread(struct ddb *dev, u32 link, u8 *buf, u32 addr, u32 len)
drivers/media/pci/ddbridge/ddbridge-core.c
2671
return flashio(dev, link, cmd, 4, buf, len);
drivers/media/pci/ddbridge/ddbridge-core.c
2788
struct ddb_link *link = &dev->link[num];
drivers/media/pci/ddbridge/ddbridge-core.c
2791
spd = ddblreadl(link, TEMPMON_FANCONTROL) & 0xff;
drivers/media/pci/ddbridge/ddbridge-core.c
2799
struct ddb_link *link = &dev->link[0];
drivers/media/pci/ddbridge/ddbridge-core.c
2804
if (!link->info->temp_num)
drivers/media/pci/ddbridge/ddbridge-core.c
2806
adap = &dev->i2c[link->info->temp_bus].adap;
drivers/media/pci/ddbridge/ddbridge-core.c
2811
if (link->info->temp_num == 2) {
drivers/media/pci/ddbridge/ddbridge-core.c
2851
if (!dev->link[0].info->led_num)
drivers/media/pci/ddbridge/ddbridge-core.c
3005
dev->link[0].ids.hwid, dev->link[0].ids.regmapid);
drivers/media/pci/ddbridge/ddbridge-core.c
3013
return sprintf(buf, "0x%08X\n", dev->link[0].ids.hwid);
drivers/media/pci/ddbridge/ddbridge-core.c
3021
return sprintf(buf, "0x%08X\n", dev->link[0].ids.regmapid);
drivers/media/pci/ddbridge/ddbridge-core.c
3030
return sprintf(buf, "%u\n", dev->link[num].lnb.fmode);
drivers/media/pci/ddbridge/ddbridge-core.c
3039
return sprintf(buf, "%08x\n", dev->link[num].ids.devid);
drivers/media/pci/ddbridge/ddbridge-core.c
3053
ddb_lnb_init_fmode(dev, &dev->link[num], val);
drivers/media/pci/ddbridge/ddbridge-core.c
3144
if (dev->link[i].info && dev->link[i].info->tempmon_irq)
drivers/media/pci/ddbridge/ddbridge-core.c
3147
for (i = 0; i < dev->link[0].info->temp_num; i++)
drivers/media/pci/ddbridge/ddbridge-core.c
3149
for (i = 0; i < dev->link[0].info->fan_num; i++)
drivers/media/pci/ddbridge/ddbridge-core.c
3152
if (dev->link[0].info->led_num)
drivers/media/pci/ddbridge/ddbridge-core.c
3168
for (i = 0; i < dev->link[0].info->temp_num; i++)
drivers/media/pci/ddbridge/ddbridge-core.c
3171
for (i = 0; i < dev->link[0].info->fan_num; i++)
drivers/media/pci/ddbridge/ddbridge-core.c
3179
if (dev->link[0].info->led_num)
drivers/media/pci/ddbridge/ddbridge-core.c
3185
if (dev->link[i].info && dev->link[i].info->tempmon_irq)
drivers/media/pci/ddbridge/ddbridge-core.c
3237
static void tempmon_setfan(struct ddb_link *link)
drivers/media/pci/ddbridge/ddbridge-core.c
3241
if ((ddblreadl(link, TEMPMON_CONTROL) &
drivers/media/pci/ddbridge/ddbridge-core.c
3243
dev_info(link->dev->dev, "Over temperature condition\n");
drivers/media/pci/ddbridge/ddbridge-core.c
3244
link->overtemperature_error = 1;
drivers/media/pci/ddbridge/ddbridge-core.c
3246
temp = (ddblreadl(link, TEMPMON_SENSOR0) >> 8) & 0xFF;
drivers/media/pci/ddbridge/ddbridge-core.c
3249
temp2 = (ddblreadl(link, TEMPMON_SENSOR1) >> 8) & 0xFF;
drivers/media/pci/ddbridge/ddbridge-core.c
3255
pwm = (ddblreadl(link, TEMPMON_FANCONTROL) >> 8) & 0x0F;
drivers/media/pci/ddbridge/ddbridge-core.c
3259
if (temp >= link->temp_tab[pwm]) {
drivers/media/pci/ddbridge/ddbridge-core.c
3260
while (pwm < 10 && temp >= link->temp_tab[pwm + 1])
drivers/media/pci/ddbridge/ddbridge-core.c
3263
while (pwm > 1 && temp < link->temp_tab[pwm - 2])
drivers/media/pci/ddbridge/ddbridge-core.c
3266
ddblwritel(link, (pwm << 8), TEMPMON_FANCONTROL);
drivers/media/pci/ddbridge/ddbridge-core.c
3271
struct ddb_link *link = (struct ddb_link *)data;
drivers/media/pci/ddbridge/ddbridge-core.c
3273
spin_lock(&link->temp_lock);
drivers/media/pci/ddbridge/ddbridge-core.c
3274
tempmon_setfan(link);
drivers/media/pci/ddbridge/ddbridge-core.c
3275
spin_unlock(&link->temp_lock);
drivers/media/pci/ddbridge/ddbridge-core.c
3278
static int tempmon_init(struct ddb_link *link, int first_time)
drivers/media/pci/ddbridge/ddbridge-core.c
3280
struct ddb *dev = link->dev;
drivers/media/pci/ddbridge/ddbridge-core.c
3282
u32 l = link->nr;
drivers/media/pci/ddbridge/ddbridge-core.c
3284
spin_lock_irq(&link->temp_lock);
drivers/media/pci/ddbridge/ddbridge-core.c
3289
memcpy(link->temp_tab, temperature_table,
drivers/media/pci/ddbridge/ddbridge-core.c
3292
ddb_irq_set(dev, l, link->info->tempmon_irq, temp_handler, link);
drivers/media/pci/ddbridge/ddbridge-core.c
3293
ddblwritel(link, (TEMPMON_CONTROL_OVERTEMP | TEMPMON_CONTROL_AUTOSCAN |
drivers/media/pci/ddbridge/ddbridge-core.c
3296
ddblwritel(link, (3 << 8), TEMPMON_FANCONTROL);
drivers/media/pci/ddbridge/ddbridge-core.c
3298
link->overtemperature_error =
drivers/media/pci/ddbridge/ddbridge-core.c
3299
((ddblreadl(link, TEMPMON_CONTROL) &
drivers/media/pci/ddbridge/ddbridge-core.c
3301
if (link->overtemperature_error) {
drivers/media/pci/ddbridge/ddbridge-core.c
3302
dev_info(link->dev->dev, "Over temperature condition\n");
drivers/media/pci/ddbridge/ddbridge-core.c
3305
tempmon_setfan(link);
drivers/media/pci/ddbridge/ddbridge-core.c
3306
spin_unlock_irq(&link->temp_lock);
drivers/media/pci/ddbridge/ddbridge-core.c
3310
static int ddb_init_tempmon(struct ddb_link *link)
drivers/media/pci/ddbridge/ddbridge-core.c
3312
const struct ddb_info *info = link->info;
drivers/media/pci/ddbridge/ddbridge-core.c
3317
if (link->ids.regmapid < 0x00010002)
drivers/media/pci/ddbridge/ddbridge-core.c
3319
spin_lock_init(&link->temp_lock);
drivers/media/pci/ddbridge/ddbridge-core.c
3320
dev_dbg(link->dev->dev, "init_tempmon\n");
drivers/media/pci/ddbridge/ddbridge-core.c
3321
return tempmon_init(link, 1);
drivers/media/pci/ddbridge/ddbridge-core.c
3331
struct ddb_link *link;
drivers/media/pci/ddbridge/ddbridge-core.c
3335
link = &dev->link[l];
drivers/media/pci/ddbridge/ddbridge-core.c
3336
info = link->info;
drivers/media/pci/ddbridge/ddbridge-core.c
3351
ddb_init_tempmon(link);
drivers/media/pci/ddbridge/ddbridge-core.c
3358
mutex_init(&dev->link[0].lnb.lock);
drivers/media/pci/ddbridge/ddbridge-core.c
3359
mutex_init(&dev->link[0].flash_mutex);
drivers/media/pci/ddbridge/ddbridge-core.c
3379
if (dev->link[0].info->fan_num) {
drivers/media/pci/ddbridge/ddbridge-core.c
393
if (dev->link[0].info->type == DDB_OCTOPUS_CI && output->port->nr > 1) {
drivers/media/pci/ddbridge/ddbridge-core.c
395
if (dev->link[0].ids.regmapid >= 0x10003 && !(flags & 1)) {
drivers/media/pci/ddbridge/ddbridge-i2c.c
152
const struct ddb_regmap *regmap, int link,
drivers/media/pci/ddbridge/ddbridge-i2c.c
159
i2c->link = link;
drivers/media/pci/ddbridge/ddbridge-i2c.c
161
i2c->wbuf = DDB_LINK_TAG(link) |
drivers/media/pci/ddbridge/ddbridge-i2c.c
164
i2c->regs = DDB_LINK_TAG(link) |
drivers/media/pci/ddbridge/ddbridge-i2c.c
181
dev->nr, i2c->link, i);
drivers/media/pci/ddbridge/ddbridge-i2c.c
197
if (!dev->link[l].info)
drivers/media/pci/ddbridge/ddbridge-i2c.c
199
regmap = dev->link[l].info->regmap;
drivers/media/pci/ddbridge/ddbridge-i2c.c
204
if (!(dev->link[l].info->i2c_mask & (1 << i)))
drivers/media/pci/ddbridge/ddbridge-i2c.c
42
dev->nr, i2c->nr, i2c->link);
drivers/media/pci/ddbridge/ddbridge-i2c.c
47
if (i2c->link) {
drivers/media/pci/ddbridge/ddbridge-i2c.c
49
DDB_LINK_TAG(i2c->link) |
drivers/media/pci/ddbridge/ddbridge-i2c.c
53
i2c->link, listat);
drivers/media/pci/ddbridge/ddbridge-io.h
19
static inline u32 ddblreadl(struct ddb_link *link, u32 adr)
drivers/media/pci/ddbridge/ddbridge-io.h
21
return readl(link->dev->regs + adr);
drivers/media/pci/ddbridge/ddbridge-io.h
24
static inline void ddblwritel(struct ddb_link *link, u32 val, u32 adr)
drivers/media/pci/ddbridge/ddbridge-io.h
26
writel(val, link->dev->regs + adr);
drivers/media/pci/ddbridge/ddbridge-main.c
188
dev->link[0].ids.vendor = id->vendor;
drivers/media/pci/ddbridge/ddbridge-main.c
189
dev->link[0].ids.device = id->device;
drivers/media/pci/ddbridge/ddbridge-main.c
190
dev->link[0].ids.subvendor = id->subvendor;
drivers/media/pci/ddbridge/ddbridge-main.c
191
dev->link[0].ids.subdevice = pdev->subsystem_device;
drivers/media/pci/ddbridge/ddbridge-main.c
192
dev->link[0].ids.devid = (id->device << 16) | id->vendor;
drivers/media/pci/ddbridge/ddbridge-main.c
194
dev->link[0].dev = dev;
drivers/media/pci/ddbridge/ddbridge-main.c
195
dev->link[0].info = get_ddb_info(id->vendor, id->device,
drivers/media/pci/ddbridge/ddbridge-main.c
198
dev_info(&pdev->dev, "detected %s\n", dev->link[0].info->name);
drivers/media/pci/ddbridge/ddbridge-main.c
215
dev->link[0].ids.hwid = ddbreadl(dev, 0);
drivers/media/pci/ddbridge/ddbridge-main.c
216
dev->link[0].ids.regmapid = ddbreadl(dev, 4);
drivers/media/pci/ddbridge/ddbridge-main.c
219
dev->link[0].ids.hwid, dev->link[0].ids.regmapid);
drivers/media/pci/ddbridge/ddbridge-max.c
101
lnb_command(dev, link, input, LNB_CMD_DISEQC);
drivers/media/pci/ddbridge/ddbridge-max.c
105
static int lnb_set_sat(struct ddb *dev, u32 link, u32 input, u32 sat, u32 band,
drivers/media/pci/ddbridge/ddbridge-max.c
114
return lnb_send_diseqc(dev, link, input, &cmd);
drivers/media/pci/ddbridge/ddbridge-max.c
117
static int lnb_set_tone(struct ddb *dev, u32 link, u32 input,
drivers/media/pci/ddbridge/ddbridge-max.c
125
if (!(dev->link[link].lnb.tone & mask))
drivers/media/pci/ddbridge/ddbridge-max.c
127
dev->link[link].lnb.tone &= ~(1ULL << input);
drivers/media/pci/ddbridge/ddbridge-max.c
130
if (dev->link[link].lnb.tone & mask)
drivers/media/pci/ddbridge/ddbridge-max.c
132
dev->link[link].lnb.tone |= (1ULL << input);
drivers/media/pci/ddbridge/ddbridge-max.c
139
s = lnb_command(dev, link, input, LNB_CMD_NOP);
drivers/media/pci/ddbridge/ddbridge-max.c
143
static int lnb_set_voltage(struct ddb *dev, u32 link, u32 input,
drivers/media/pci/ddbridge/ddbridge-max.c
148
if (dev->link[link].lnb.oldvoltage[input] == voltage)
drivers/media/pci/ddbridge/ddbridge-max.c
152
if (dev->link[link].lnb.voltage[input])
drivers/media/pci/ddbridge/ddbridge-max.c
154
lnb_command(dev, link, input, LNB_CMD_OFF);
drivers/media/pci/ddbridge/ddbridge-max.c
157
lnb_command(dev, link, input, LNB_CMD_LOW);
drivers/media/pci/ddbridge/ddbridge-max.c
160
lnb_command(dev, link, input, LNB_CMD_HIGH);
drivers/media/pci/ddbridge/ddbridge-max.c
166
dev->link[link].lnb.oldvoltage[input] = voltage;
drivers/media/pci/ddbridge/ddbridge-max.c
183
dev->link[port->lnr].lnb.voltage[dvb->input & 3] & bit;
drivers/media/pci/ddbridge/ddbridge-max.c
185
dev->link[port->lnr].lnb.voltage[dvb->input & 3] &= ~bit;
drivers/media/pci/ddbridge/ddbridge-max.c
187
dev->link[port->lnr].lnb.voltage[dvb->input & 3] |= obit;
drivers/media/pci/ddbridge/ddbridge-max.c
201
u32 fmode = dev->link[port->lnr].lnb.fmode;
drivers/media/pci/ddbridge/ddbridge-max.c
203
mutex_lock(&dev->link[port->lnr].lnb.lock);
drivers/media/pci/ddbridge/ddbridge-max.c
227
mutex_unlock(&dev->link[port->lnr].lnb.lock);
drivers/media/pci/ddbridge/ddbridge-max.c
238
u32 nv, ov = dev->link[port->lnr].lnb.voltages;
drivers/media/pci/ddbridge/ddbridge-max.c
240
u32 fmode = dev->link[port->lnr].lnb.fmode;
drivers/media/pci/ddbridge/ddbridge-max.c
242
mutex_lock(&dev->link[port->lnr].lnb.lock);
drivers/media/pci/ddbridge/ddbridge-max.c
252
dev->link[port->lnr].lnb.voltage[dvb->input] &=
drivers/media/pci/ddbridge/ddbridge-max.c
255
dev->link[port->lnr].lnb.voltage[dvb->input] |=
drivers/media/pci/ddbridge/ddbridge-max.c
263
dev->link[port->lnr].lnb.voltages &=
drivers/media/pci/ddbridge/ddbridge-max.c
266
dev->link[port->lnr].lnb.voltages |=
drivers/media/pci/ddbridge/ddbridge-max.c
269
nv = dev->link[port->lnr].lnb.voltages;
drivers/media/pci/ddbridge/ddbridge-max.c
331
mutex_unlock(&dev->link[port->lnr].lnb.lock);
drivers/media/pci/ddbridge/ddbridge-max.c
347
struct ddb_link *link = priv;
drivers/media/pci/ddbridge/ddbridge-max.c
348
struct ddb *dev = link->dev;
drivers/media/pci/ddbridge/ddbridge-max.c
350
dev_info(dev->dev, "Read mxl_fw from link %u\n", link->nr);
drivers/media/pci/ddbridge/ddbridge-max.c
352
return ddbridge_flashread(dev, link->nr, buf, 0xc0000, len);
drivers/media/pci/ddbridge/ddbridge-max.c
355
int ddb_lnb_init_fmode(struct ddb *dev, struct ddb_link *link, u32 fm)
drivers/media/pci/ddbridge/ddbridge-max.c
357
u32 l = link->nr;
drivers/media/pci/ddbridge/ddbridge-max.c
359
if (link->lnb.fmode == fm)
drivers/media/pci/ddbridge/ddbridge-max.c
362
mutex_lock(&link->lnb.lock);
drivers/media/pci/ddbridge/ddbridge-max.c
385
link->lnb.fmode = fm;
drivers/media/pci/ddbridge/ddbridge-max.c
386
mutex_unlock(&link->lnb.lock);
drivers/media/pci/ddbridge/ddbridge-max.c
405
struct ddb_link *link = &dev->link[port->lnr];
drivers/media/pci/ddbridge/ddbridge-max.c
410
cfg.fw_priv = link;
drivers/media/pci/ddbridge/ddbridge-max.c
435
ddb_lnb_init_fmode(dev, link, fmode);
drivers/media/pci/ddbridge/ddbridge-max.c
456
struct ddb_link *link = &dev->link[port->lnr];
drivers/media/pci/ddbridge/ddbridge-max.c
484
ddb_lnb_init_fmode(dev, link, fmode);
drivers/media/pci/ddbridge/ddbridge-max.c
49
static int lnb_command(struct ddb *dev, u32 link, u32 lnb, u32 cmd)
drivers/media/pci/ddbridge/ddbridge-max.c
51
u32 c, v = 0, tag = DDB_LINK_TAG(link);
drivers/media/pci/ddbridge/ddbridge-max.c
53
v = LNB_TONE & (dev->link[link].lnb.tone << (15 - lnb));
drivers/media/pci/ddbridge/ddbridge-max.c
76
u32 fmode = dev->link[port->lnr].lnb.fmode;
drivers/media/pci/ddbridge/ddbridge-max.c
83
mutex_lock(&dev->link[port->lnr].lnb.lock);
drivers/media/pci/ddbridge/ddbridge-max.c
88
mutex_unlock(&dev->link[port->lnr].lnb.lock);
drivers/media/pci/ddbridge/ddbridge-max.c
92
static int lnb_send_diseqc(struct ddb *dev, u32 link, u32 input,
drivers/media/pci/ddbridge/ddbridge-max.c
95
u32 tag = DDB_LINK_TAG(link);
drivers/media/pci/ddbridge/ddbridge-max.h
17
int ddb_lnb_init_fmode(struct ddb *dev, struct ddb_link *link, u32 fm);
drivers/media/pci/ddbridge/ddbridge-mci.c
123
struct ddb_link *link = &dev->link[port->lnr];
drivers/media/pci/ddbridge/ddbridge-mci.c
126
void *key = cfg->type ? (void *)port : (void *)link;
drivers/media/pci/ddbridge/ddbridge-mci.c
142
base->link = link;
drivers/media/pci/ddbridge/ddbridge-mci.c
146
ddb_irq_set(dev, link->nr, 0, mci_handler, base);
drivers/media/pci/ddbridge/ddbridge-mci.c
18
struct ddb_link *link = state->base->link;
drivers/media/pci/ddbridge/ddbridge-mci.c
22
ddblwritel(link, MCI_CONTROL_RESET, MCI_CONTROL);
drivers/media/pci/ddbridge/ddbridge-mci.c
23
ddblwritel(link, 0, MCI_CONTROL + 4); /* 1= no internal init */
drivers/media/pci/ddbridge/ddbridge-mci.c
25
ddblwritel(link, 0, MCI_CONTROL);
drivers/media/pci/ddbridge/ddbridge-mci.c
28
status = ddblreadl(link, MCI_CONTROL);
drivers/media/pci/ddbridge/ddbridge-mci.c
37
if (link->ids.device == 0x0009)
drivers/media/pci/ddbridge/ddbridge-mci.c
38
ddblwritel(link, SX8_TSCONFIG_MODE_NORMAL, SX8_TSCONFIG);
drivers/media/pci/ddbridge/ddbridge-mci.c
44
struct ddb_link *link = state->base->link;
drivers/media/pci/ddbridge/ddbridge-mci.c
46
if (link->ids.device != 0x0009)
drivers/media/pci/ddbridge/ddbridge-mci.c
48
ddblwritel(link, config, SX8_TSCONFIG);
drivers/media/pci/ddbridge/ddbridge-mci.c
56
struct ddb_link *link = state->base->link;
drivers/media/pci/ddbridge/ddbridge-mci.c
60
val = ddblreadl(link, MCI_CONTROL);
drivers/media/pci/ddbridge/ddbridge-mci.c
65
ddblwritel(link, cmd[i], MCI_COMMAND + i * 4);
drivers/media/pci/ddbridge/ddbridge-mci.c
67
ddblwritel(link, val, MCI_CONTROL);
drivers/media/pci/ddbridge/ddbridge-mci.c
76
res[i] = ddblreadl(link, MCI_RESULT + i * 4);
drivers/media/pci/ddbridge/ddbridge-mci.h
215
struct ddb_link *link;
drivers/media/pci/ddbridge/ddbridge.h
203
u32 link;
drivers/media/pci/ddbridge/ddbridge.h
319
struct ddb_link link[DDB_MAX_LINK];
drivers/media/pci/ddbridge/ddbridge.h
350
int ddbridge_flashread(struct ddb *dev, u32 link, u8 *buf, u32 addr, u32 len);
drivers/media/pci/ddbridge/ddbridge.h
355
struct ddb_irq *ddb_irq_set(struct ddb *dev, u32 link, u32 nr,
drivers/media/pci/intel/ipu-bridge.c
346
sensor->link = ssdb.link;
drivers/media/pci/intel/ipu-bridge.c
451
SWNODE_GRAPH_PORT_NAME_FMT, sensor->link);
drivers/media/pci/intel/ipu-bridge.c
461
"%s-%u", sensor->vcm_type, sensor->link);
drivers/media/pci/intel/ipu-bridge.c
535
device_hid, sensor->link);
drivers/media/pci/intel/ipu-bridge.c
720
cfg->hid, sensor->link);
drivers/media/pci/intel/ipu3/ipu3-cio2.c
1296
static int cio2_video_link_validate(struct media_link *link)
drivers/media/pci/intel/ipu3/ipu3-cio2.c
1298
struct media_entity *entity = link->sink->entity;
drivers/media/pci/intel/ipu3/ipu3-cio2.c
1311
ret = cio2_subdev_link_validate_get_format(link->source, &source_fmt);
drivers/media/pci/intel/ipu6/ipu6-isys-video.c
379
static int link_validate(struct media_link *link)
drivers/media/pci/intel/ipu6/ipu6-isys-video.c
382
container_of(link->sink, struct ipu6_isys_video, pad);
drivers/media/pci/intel/ipu6/ipu6-isys-video.c
391
if (!link->source->entity)
drivers/media/pci/intel/ipu6/ipu6-isys-video.c
394
s_sd = media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/pci/intel/ipu6/ipu6-isys-video.c
400
link->source->entity->name, link->source->index,
drivers/media/pci/intel/ipu6/ipu6-isys-video.c
401
link->sink->entity->name);
drivers/media/pci/saa7134/saa7134-video.c
583
struct media_link *link, *found_link = NULL;
drivers/media/pci/saa7134/saa7134-video.c
596
list_for_each_entry(link, &dev->decoder->links, list) {
drivers/media/pci/saa7134/saa7134-video.c
597
if (link->sink->entity == dev->decoder) {
drivers/media/pci/saa7134/saa7134-video.c
598
found_link = link;
drivers/media/pci/saa7134/saa7134-video.c
599
if (link->flags & MEDIA_LNK_FL_ENABLED)
drivers/media/pci/saa7134/saa7134-video.c
609
list_for_each_entry(link, &source->links, list) {
drivers/media/pci/saa7134/saa7134-video.c
613
sink = link->sink->entity;
drivers/media/pci/saa7134/saa7134-video.c
618
ret = media_entity_setup_link(link, flags);
drivers/media/platform/amlogic/c3/isp/c3-isp-capture.c
507
static int c3_isp_cap_link_validate(struct media_link *link)
drivers/media/platform/amlogic/c3/isp/c3-isp-capture.c
510
media_entity_to_video_device(link->sink->entity);
drivers/media/platform/amlogic/c3/isp/c3-isp-capture.c
512
media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/amlogic/c3/isp/c3-isp-capture.c
516
.pad = link->source->index,
drivers/media/platform/amlogic/c3/isp/c3-isp-capture.c
529
link->source->entity->name, link->source->index,
drivers/media/platform/amlogic/c3/isp/c3-isp-capture.c
530
link->sink->entity->name, link->sink->index,
drivers/media/platform/amlogic/c3/isp/c3-isp-core.c
289
struct media_link *link;
drivers/media/platform/amlogic/c3/isp/c3-isp-core.c
291
for_each_media_entity_data_link(&core->sd.entity, link) {
drivers/media/platform/amlogic/c3/isp/c3-isp-core.c
292
if ((link->source->index == C3_ISP_CORE_PAD_SOURCE_VIDEO_0 ||
drivers/media/platform/amlogic/c3/isp/c3-isp-core.c
293
link->source->index == C3_ISP_CORE_PAD_SOURCE_VIDEO_1 ||
drivers/media/platform/amlogic/c3/isp/c3-isp-core.c
294
link->source->index == C3_ISP_CORE_PAD_SOURCE_VIDEO_2) &&
drivers/media/platform/amlogic/c3/isp/c3-isp-core.c
295
link->flags == MEDIA_LNK_FL_ENABLED)
drivers/media/platform/amlogic/c3/isp/c3-isp-core.c
563
static int c3_isp_core_link_validate(struct media_link *link)
drivers/media/platform/amlogic/c3/isp/c3-isp-core.c
565
if (link->sink->index == C3_ISP_CORE_PAD_SINK_PARAMS)
drivers/media/platform/amlogic/c3/isp/c3-isp-core.c
568
return v4l2_subdev_link_validate(link);
drivers/media/platform/arm/mali-c55/mali-c55-capture.c
279
static int mali_c55_link_validate(struct media_link *link)
drivers/media/platform/arm/mali-c55/mali-c55-capture.c
282
media_entity_to_video_device(link->sink->entity);
drivers/media/platform/arm/mali-c55/mali-c55-capture.c
285
media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/arm/mali-c55/mali-c55-capture.c
290
.pad = link->source->index,
drivers/media/platform/arm/mali-c55/mali-c55-capture.c
305
link->source->entity->name, link->source->index,
drivers/media/platform/arm/mali-c55/mali-c55-capture.c
306
link->sink->entity->name, link->sink->index,
drivers/media/platform/arm/mali-c55/mali-c55-capture.c
315
link->source->entity->name, link->source->index,
drivers/media/platform/arm/mali-c55/mali-c55-capture.c
316
link->sink->entity->name, link->sink->index,
drivers/media/platform/arm/mali-c55/mali-c55-isp.c
518
static int mali_c55_subdev_link_validate(struct media_link *link)
drivers/media/platform/arm/mali-c55/mali-c55-isp.c
524
if (link->sink->index == MALI_C55_ISP_PAD_SINK_PARAMS)
drivers/media/platform/arm/mali-c55/mali-c55-isp.c
527
return v4l2_subdev_link_validate(link);
drivers/media/platform/aspeed/aspeed-video.c
2018
list_add_tail(&avb->link, &video->buffers);
drivers/media/platform/aspeed/aspeed-video.c
271
struct list_head link;
drivers/media/platform/aspeed/aspeed-video.c
657
struct aspeed_video_buffer, link);
drivers/media/platform/aspeed/aspeed-video.c
739
list_for_each_entry(buf, &video->buffers, link)
drivers/media/platform/aspeed/aspeed-video.c
838
link);
drivers/media/platform/aspeed/aspeed-video.c
848
list_is_last(&buf->link, &video->buffers)) {
drivers/media/platform/aspeed/aspeed-video.c
857
list_del(&buf->link);
drivers/media/platform/broadcom/bcm2835-unicam.c
2126
static int unicam_video_link_validate(struct media_link *link)
drivers/media/platform/broadcom/bcm2835-unicam.c
2129
media_entity_to_video_device(link->sink->entity);
drivers/media/platform/broadcom/bcm2835-unicam.c
2131
media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/cadence/cdns-csi2tx.c
304
struct media_link *link;
drivers/media/platform/cadence/cdns-csi2tx.c
329
list_for_each_entry(link, &entity->links, list) {
drivers/media/platform/cadence/cdns-csi2tx.c
339
if ((pad == link->sink) &&
drivers/media/platform/cadence/cdns-csi2tx.c
340
(link->flags & MEDIA_LNK_FL_ENABLED)) {
drivers/media/platform/microchip/microchip-isc-base.c
903
static int isc_link_validate(struct media_link *link)
drivers/media/platform/microchip/microchip-isc-base.c
906
media_entity_to_video_device(link->sink->entity);
drivers/media/platform/nuvoton/npcm-video.c
1077
struct npcm_video_buffer, link);
drivers/media/platform/nuvoton/npcm-video.c
1106
list_del(&buf->link);
drivers/media/platform/nuvoton/npcm-video.c
1515
list_add_tail(&nvb->link, &video->buffers);
drivers/media/platform/nuvoton/npcm-video.c
61
struct list_head link;
drivers/media/platform/nuvoton/npcm-video.c
801
struct npcm_video_buffer, link);
drivers/media/platform/nuvoton/npcm-video.c
837
list_for_each_entry(buf, &video->buffers, link)
drivers/media/platform/nxp/imx7-media-csi.c
1928
struct media_link *link,
drivers/media/platform/nxp/imx7-media-csi.c
1941
ret = v4l2_subdev_link_validate_default(sd, link, source_fmt, sink_fmt);
drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
59
struct device_link *link;
drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
69
link = device_link_add(isi->dev, sd->dev, DL_FLAG_STATELESS);
drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
70
if (!link) {
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
731
struct media_link *link;
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
809
link = media_create_intf_link(&vdev->entity, &m2m->intf->intf,
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
812
if (!link) {
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
817
link = media_create_intf_link(&m2m->pipe->video.vdev.entity,
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
821
if (!link) {
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1766
static int cfe_video_link_validate(struct media_link *link)
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1768
struct video_device *vd = container_of(link->sink->entity,
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1779
link->source->entity->name, link->source->index,
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1780
link->sink->entity->name, link->sink->index);
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1782
if (!media_entity_remote_source_pad_unique(link->sink->entity)) {
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1787
source_sd = media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1791
source_fmt = v4l2_subdev_state_get_format(state, link->source->index);
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1849
static int cfe_video_link_notify(struct media_link *link, u32 flags,
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1852
struct media_device *mdev = link->graph_obj.mdev;
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1862
link->source->entity->name, link->source->index,
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1863
link->sink->entity->name, link->sink->index, flags);
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1868
if (link->sink->entity != &cfe->node[i].video_dev.entity &&
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1869
link->source->entity != &cfe->node[i].video_dev.entity)
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1872
if (link->flags & MEDIA_LNK_FL_ENABLED)
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1882
if (link->source->entity != csi2)
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1884
if (link->sink->entity != fe)
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1886
if (link->sink->index != 0)
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1890
if (link->flags & MEDIA_LNK_FL_ENABLED) {
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1891
if (link->source->index == node_desc[CSI2_CH0].link_pad)
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1893
else if (link->source->index == node_desc[CSI2_CH1].link_pad)
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1895
else if (link->source->index == node_desc[CSI2_CH2].link_pad)
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
1897
else if (link->source->index == node_desc[CSI2_CH3].link_pad)
drivers/media/platform/raspberrypi/rp1-cfe/pisp-fe.c
514
static int pisp_fe_link_validate(struct media_link *link)
drivers/media/platform/raspberrypi/rp1-cfe/pisp-fe.c
516
struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(link->sink->entity);
drivers/media/platform/raspberrypi/rp1-cfe/pisp-fe.c
520
link->source->entity->name, link->source->index,
drivers/media/platform/raspberrypi/rp1-cfe/pisp-fe.c
521
link->sink->entity->name, link->sink->index);
drivers/media/platform/raspberrypi/rp1-cfe/pisp-fe.c
523
if (link->sink->index == FE_STREAM_PAD)
drivers/media/platform/raspberrypi/rp1-cfe/pisp-fe.c
524
return v4l2_subdev_link_validate(link);
drivers/media/platform/raspberrypi/rp1-cfe/pisp-fe.c
526
if (link->sink->index == FE_CONFIG_PAD)
drivers/media/platform/renesas/rcar-vin/rcar-core.c
549
static int rvin_csi2_link_notify(struct media_link *link, u32 flags,
drivers/media/platform/renesas/rcar-vin/rcar-core.c
552
struct rvin_group *group = container_of(link->graph_obj.mdev,
drivers/media/platform/renesas/rcar-vin/rcar-core.c
560
ret = v4l2_pipeline_link_notify(link, flags, notification);
drivers/media/platform/renesas/rcar-vin/rcar-core.c
566
!is_media_entity_v4l2_video_device(link->sink->entity))
drivers/media/platform/renesas/rcar-vin/rcar-core.c
578
vdev = media_entity_to_video_device(link->sink->entity);
drivers/media/platform/renesas/rcar-vin/rcar-core.c
583
csi_id = rvin_group_entity_to_remote_id(group, link->source->entity);
drivers/media/platform/renesas/rcar-vin/rcar-core.c
595
sd = media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/renesas/rcar-vin/rcar-core.c
606
link->source->entity->name);
drivers/media/platform/renesas/rcar-vin/rcar-core.c
633
if (csi_pad->entity != link->source->entity) {
drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
1112
static int rzg2l_cru_video_link_validate(struct media_link *link)
drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
1122
subdev = media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
1123
fmt.pad = link->source->index;
drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
1128
cru = container_of(media_entity_to_video_device(link->sink->entity),
drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-subdev.c
269
static int rzv2h_ivc_link_validate(struct media_link *link)
drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-subdev.c
272
media_entity_to_video_device(link->source->entity);
drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-subdev.c
275
media_entity_to_v4l2_subdev(link->sink->entity);
drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-subdev.c
284
mf = v4l2_subdev_state_get_format(state, link->sink->index);
drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-subdev.c
292
link->source->entity->name, link->source->index,
drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-subdev.c
293
link->sink->entity->name, link->sink->index,
drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-subdev.c
305
link->source->entity->name, link->source->index,
drivers/media/platform/renesas/rzv2h-ivc/rzv2h-ivc-subdev.c
306
link->sink->entity->name, link->sink->index,
drivers/media/platform/renesas/vsp1/vsp1_entity.c
502
struct media_link *link;
drivers/media/platform/renesas/vsp1/vsp1_entity.c
504
list_for_each_entry(link, &pad->entity->links, list) {
drivers/media/platform/renesas/vsp1/vsp1_entity.c
507
if (!(link->flags & MEDIA_LNK_FL_ENABLED))
drivers/media/platform/renesas/vsp1/vsp1_entity.c
511
if (link->sink == pad)
drivers/media/platform/renesas/vsp1/vsp1_entity.c
512
return link->source;
drivers/media/platform/renesas/vsp1/vsp1_entity.c
514
if (link->source != pad)
drivers/media/platform/renesas/vsp1/vsp1_entity.c
518
if (!is_media_entity_v4l2_subdev(link->sink->entity))
drivers/media/platform/renesas/vsp1/vsp1_entity.c
519
return link->sink;
drivers/media/platform/renesas/vsp1/vsp1_entity.c
521
entity = media_entity_to_vsp1_entity(link->sink->entity);
drivers/media/platform/renesas/vsp1/vsp1_entity.c
524
return link->sink;
drivers/media/platform/renesas/vsp1/vsp1_video.c
1117
static int vsp1_video_link_validate(struct media_link *link)
drivers/media/platform/rockchip/rkcif/rkcif-stream.c
459
static int rkcif_stream_link_validate(struct media_link *link)
drivers/media/platform/rockchip/rkcif/rkcif-stream.c
462
media_entity_to_video_device(link->sink->entity);
drivers/media/platform/rockchip/rkcif/rkcif-stream.c
469
if (!media_entity_remote_source_pad_unique(link->sink->entity))
drivers/media/platform/rockchip/rkcif/rkcif-stream.c
472
sd = media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/rockchip/rkcif/rkcif-stream.c
476
source_fmt = v4l2_subdev_state_get_format(state, link->source->index,
drivers/media/platform/rockchip/rkcif/rkcif-stream.c
485
link->source->entity->name, link->source->index,
drivers/media/platform/rockchip/rkcif/rkcif-stream.c
486
link->sink->entity->name, link->sink->index,
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1454
static int rkisp1_capture_link_validate(struct media_link *link)
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1457
media_entity_to_video_device(link->sink->entity);
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1459
media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1465
.pad = link->source->index,
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1478
link->source->entity->name, link->source->index,
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1479
link->sink->entity->name, link->sink->index,
drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c
897
static int rkisp1_subdev_link_validate(struct media_link *link)
drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c
899
if (link->sink->index == RKISP1_ISP_PAD_SINK_PARAMS)
drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c
902
return v4l2_subdev_link_validate(link);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-h264.c
520
writel(timeout_threshold, rkvdec->link + VDPU383_LINK_TIMEOUT_THRESHOLD);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-h264.c
521
writel(0, rkvdec->link + VDPU383_LINK_IP_ENABLE);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-h264.c
522
writel(VDPU383_DEC_E_BIT, rkvdec->link + VDPU383_LINK_DEC_ENABLE);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c
630
writel(timeout_threshold, rkvdec->link + VDPU383_LINK_TIMEOUT_THRESHOLD);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c
631
writel(VDPU383_IP_CRU_MODE, rkvdec->link + VDPU383_LINK_IP_ENABLE);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c
632
writel(VDPU383_DEC_E_BIT, rkvdec->link + VDPU383_LINK_DEC_ENABLE);
drivers/media/platform/rockchip/rkvdec/rkvdec.c
1496
status = readl(rkvdec->link + VDPU383_LINK_STA_INT);
drivers/media/platform/rockchip/rkvdec/rkvdec.c
1497
writel(FIELD_PREP_WM16(VDPU383_STA_INT_ALL, 0), rkvdec->link + VDPU383_LINK_STA_INT);
drivers/media/platform/rockchip/rkvdec/rkvdec.c
1500
rkvdec->link + VDPU383_LINK_INT_EN);
drivers/media/platform/rockchip/rkvdec/rkvdec.c
1807
rkvdec->link = devm_platform_ioremap_resource_byname(pdev, "link");
drivers/media/platform/rockchip/rkvdec/rkvdec.c
1808
if (IS_ERR(rkvdec->link))
drivers/media/platform/rockchip/rkvdec/rkvdec.c
1809
return PTR_ERR(rkvdec->link);
drivers/media/platform/rockchip/rkvdec/rkvdec.h
138
void __iomem *link;
drivers/media/platform/samsung/exynos4-is/media-dev.c
1194
static int fimc_md_link_notify(struct media_link *link, unsigned int flags,
drivers/media/platform/samsung/exynos4-is/media-dev.c
1198
&container_of(link->graph_obj.mdev, struct fimc_md,
drivers/media/platform/samsung/exynos4-is/media-dev.c
1200
struct media_entity *sink = link->sink->entity;
drivers/media/platform/samsung/exynos4-is/media-dev.c
1206
link->graph_obj.mdev);
drivers/media/platform/samsung/exynos4-is/media-dev.c
1217
if (link->flags & MEDIA_LNK_FL_ENABLED)
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
811
static int dcmipp_bytecap_link_validate(struct media_link *link)
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
813
struct media_entity *entity = link->sink->entity;
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
818
media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
821
.pad = link->source->index,
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
189
const struct dcmipp_ent_link *link =
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
192
dcmipp->entity[link->src_ent];
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
194
dcmipp->entity[link->sink_ent];
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
197
dcmipp->pipe_cfg->ents[link->src_ent].name,
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
198
link->src_pad, link->sink_pad,
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
199
dcmipp->pipe_cfg->ents[link->sink_ent].name,
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
200
LINK_FLAG_TO_STR(link->flags));
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
202
ret = media_create_pad_link(ved_src->ent, link->src_pad,
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
203
ved_sink->ent, link->sink_pad,
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
204
link->flags);
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c
38
static int sun4i_csi_video_link_validate(struct media_link *link)
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c
40
dev_warn_once(link->graph_obj.mdev->dev,
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
885
static int sun6i_csi_capture_link_validate(struct media_link *link)
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
888
media_entity_to_video_device(link->sink->entity);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
943
static int ti_csi2rx_link_validate(struct media_link *link)
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
945
struct media_entity *entity = link->sink->entity;
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
951
.pad = link->source->index,
drivers/media/platform/ti/omap3isp/ispccdc.c
2421
struct media_link *link,
drivers/media/platform/ti/omap3isp/ispccdc.c
2436
media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/ti/omap3isp/ispresizer.c
1547
struct media_link *link,
drivers/media/platform/ti/omap3isp/ispresizer.c
1556
return v4l2_subdev_link_validate_default(sd, link,
drivers/media/platform/verisilicon/hantro_drv.c
784
struct media_link *link;
drivers/media/platform/verisilicon/hantro_drv.c
833
link = media_create_intf_link(&func->vdev.entity,
drivers/media/platform/verisilicon/hantro_drv.c
837
if (!link) {
drivers/media/platform/verisilicon/hantro_drv.c
842
link = media_create_intf_link(&func->sink, &func->intf_devnode->intf,
drivers/media/platform/verisilicon/hantro_drv.c
845
if (!link) {
drivers/media/platform/xilinx/xilinx-vipp.c
109
if (link.local_port >= local->num_pads) {
drivers/media/platform/xilinx/xilinx-vipp.c
111
link.local_port, link.local_node);
drivers/media/platform/xilinx/xilinx-vipp.c
112
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
117
local_pad = &local->pads[link.local_port];
drivers/media/platform/xilinx/xilinx-vipp.c
121
link.local_node, link.local_port);
drivers/media/platform/xilinx/xilinx-vipp.c
122
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
127
if (link.remote_node == of_fwnode_handle(xdev->dev->of_node)) {
drivers/media/platform/xilinx/xilinx-vipp.c
129
link.local_node, link.local_port);
drivers/media/platform/xilinx/xilinx-vipp.c
130
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
135
ent = xvip_graph_find_entity(xdev, link.remote_node);
drivers/media/platform/xilinx/xilinx-vipp.c
138
link.remote_node);
drivers/media/platform/xilinx/xilinx-vipp.c
139
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
146
if (link.remote_port >= remote->num_pads) {
drivers/media/platform/xilinx/xilinx-vipp.c
148
link.remote_port, link.remote_node);
drivers/media/platform/xilinx/xilinx-vipp.c
149
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
154
remote_pad = &remote->pads[link.remote_port];
drivers/media/platform/xilinx/xilinx-vipp.c
156
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
201
struct v4l2_fwnode_link link;
drivers/media/platform/xilinx/xilinx-vipp.c
211
ret = v4l2_fwnode_parse_link(of_fwnode_handle(ep), &link);
drivers/media/platform/xilinx/xilinx-vipp.c
219
dma = xvip_graph_find_dma(xdev, link.local_port);
drivers/media/platform/xilinx/xilinx-vipp.c
222
link.local_port);
drivers/media/platform/xilinx/xilinx-vipp.c
223
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
232
ent = xvip_graph_find_entity(xdev, link.remote_node);
drivers/media/platform/xilinx/xilinx-vipp.c
235
to_of_node(link.remote_node));
drivers/media/platform/xilinx/xilinx-vipp.c
236
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
241
if (link.remote_port >= ent->entity->num_pads) {
drivers/media/platform/xilinx/xilinx-vipp.c
243
link.remote_port,
drivers/media/platform/xilinx/xilinx-vipp.c
244
to_of_node(link.remote_node));
drivers/media/platform/xilinx/xilinx-vipp.c
245
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
254
sink_pad = &sink->pads[link.remote_port];
drivers/media/platform/xilinx/xilinx-vipp.c
257
source_pad = &source->pads[link.remote_port];
drivers/media/platform/xilinx/xilinx-vipp.c
262
v4l2_fwnode_put_link(&link);
drivers/media/platform/xilinx/xilinx-vipp.c
84
struct v4l2_fwnode_link link;
drivers/media/platform/xilinx/xilinx-vipp.c
99
ret = v4l2_fwnode_parse_link(ep, &link);
drivers/media/test-drivers/vimc/vimc-common.c
277
int vimc_vdev_link_validate(struct media_link *link)
drivers/media/test-drivers/vimc/vimc-common.c
282
ret = vimc_get_pix_format(link->source, &source_fmt);
drivers/media/test-drivers/vimc/vimc-common.c
286
ret = vimc_get_pix_format(link->sink, &sink_fmt);
drivers/media/test-drivers/vimc/vimc-common.c
294
link->source->entity->name,
drivers/media/test-drivers/vimc/vimc-common.c
300
link->sink->entity->name,
drivers/media/test-drivers/vimc/vimc-common.h
241
int vimc_vdev_link_validate(struct media_link *link);
drivers/media/test-drivers/vimc/vimc-core.c
189
const struct vimc_data_link *link = &vimc->pipe_cfg->data_links[i];
drivers/media/test-drivers/vimc/vimc-core.c
192
vimc->ent_devs[link->src_ent];
drivers/media/test-drivers/vimc/vimc-core.c
194
vimc->ent_devs[link->sink_ent];
drivers/media/test-drivers/vimc/vimc-core.c
196
ret = media_create_pad_link(ved_src->ent, link->src_pad,
drivers/media/test-drivers/vimc/vimc-core.c
197
ved_sink->ent, link->sink_pad,
drivers/media/test-drivers/vimc/vimc-core.c
198
link->flags);
drivers/media/test-drivers/vimc/vimc-core.c
204
const struct vimc_ancillary_link *link = &vimc->pipe_cfg->ancillary_links[i];
drivers/media/test-drivers/vimc/vimc-core.c
207
vimc->ent_devs[link->primary_ent];
drivers/media/test-drivers/vimc/vimc-core.c
209
vimc->ent_devs[link->ancillary_ent];
drivers/media/usb/au0828/au0828-core.c
293
struct media_link *link, *found_link = NULL;
drivers/media/usb/au0828/au0828-core.c
390
list_for_each_entry(link, &sink->links, list) {
drivers/media/usb/au0828/au0828-core.c
392
if (link->sink->entity == sink &&
drivers/media/usb/au0828/au0828-core.c
393
link->source->entity == find_source) {
drivers/media/usb/au0828/au0828-core.c
394
found_link = link;
drivers/media/usb/au0828/au0828-core.c
564
struct media_link *link;
drivers/media/usb/au0828/au0828-core.c
619
list_for_each_entry(link, &dev->tuner->links, list) {
drivers/media/usb/au0828/au0828-core.c
620
if (demod && link->sink->entity == demod)
drivers/media/usb/au0828/au0828-core.c
621
media_entity_setup_link(link, 0);
drivers/media/usb/au0828/au0828-core.c
622
if (dev->decoder && link->sink->entity == dev->decoder)
drivers/media/usb/au0828/au0828-core.c
623
media_entity_setup_link(link, 0);
drivers/media/usb/cx231xx/cx231xx-video.c
117
list_for_each_entry(link, &decoder->links, list) {
drivers/media/usb/cx231xx/cx231xx-video.c
118
if (link->sink->entity == decoder) {
drivers/media/usb/cx231xx/cx231xx-video.c
119
found_link = link;
drivers/media/usb/cx231xx/cx231xx-video.c
120
if (link->flags & MEDIA_LNK_FL_ENABLED)
drivers/media/usb/cx231xx/cx231xx-video.c
130
list_for_each_entry(link, &source->links, list) {
drivers/media/usb/cx231xx/cx231xx-video.c
134
sink = link->sink->entity;
drivers/media/usb/cx231xx/cx231xx-video.c
139
ret = media_entity_setup_link(link, flags);
drivers/media/usb/cx231xx/cx231xx-video.c
95
struct media_link *link, *found_link = NULL;
drivers/media/usb/em28xx/em28xx-video.c
901
struct media_link *link, *found_link = NULL;
drivers/media/usb/em28xx/em28xx-video.c
914
list_for_each_entry(link, &v4l2->decoder->links, list) {
drivers/media/usb/em28xx/em28xx-video.c
915
if (link->sink->entity == v4l2->decoder) {
drivers/media/usb/em28xx/em28xx-video.c
916
found_link = link;
drivers/media/usb/em28xx/em28xx-video.c
917
if (link->flags & MEDIA_LNK_FL_ENABLED)
drivers/media/usb/em28xx/em28xx-video.c
927
list_for_each_entry(link, &source->links, list) {
drivers/media/usb/em28xx/em28xx-video.c
931
sink = link->sink->entity;
drivers/media/usb/em28xx/em28xx-video.c
936
ret = media_entity_setup_link(link, flags);
drivers/media/v4l2-core/v4l2-async.c
320
struct media_link *link;
drivers/media/v4l2-core/v4l2-async.c
333
link = media_create_ancillary_link(&n->sd->entity, &sd->entity);
drivers/media/v4l2-core/v4l2-async.c
335
return IS_ERR(link) ? PTR_ERR(link) : 0;
drivers/media/v4l2-core/v4l2-dev.c
891
struct media_link *link;
drivers/media/v4l2-core/v4l2-dev.c
893
link = media_create_intf_link(&vdev->entity,
drivers/media/v4l2-core/v4l2-dev.c
897
if (!link) {
drivers/media/v4l2-core/v4l2-device.c
237
struct media_link *link;
drivers/media/v4l2-core/v4l2-device.c
239
link = media_create_intf_link(&sd->entity,
drivers/media/v4l2-core/v4l2-device.c
243
if (!link) {
drivers/media/v4l2-core/v4l2-fwnode.c
605
struct v4l2_fwnode_link *link)
drivers/media/v4l2-core/v4l2-fwnode.c
609
memset(link, 0, sizeof(*link));
drivers/media/v4l2-core/v4l2-fwnode.c
612
link->local_id = fwep.id;
drivers/media/v4l2-core/v4l2-fwnode.c
613
link->local_port = fwep.port;
drivers/media/v4l2-core/v4l2-fwnode.c
614
link->local_node = fwnode_graph_get_port_parent(fwnode);
drivers/media/v4l2-core/v4l2-fwnode.c
615
if (!link->local_node)
drivers/media/v4l2-core/v4l2-fwnode.c
623
link->remote_id = fwep.id;
drivers/media/v4l2-core/v4l2-fwnode.c
624
link->remote_port = fwep.port;
drivers/media/v4l2-core/v4l2-fwnode.c
625
link->remote_node = fwnode_graph_get_port_parent(fwnode);
drivers/media/v4l2-core/v4l2-fwnode.c
626
if (!link->remote_node)
drivers/media/v4l2-core/v4l2-fwnode.c
635
fwnode_handle_put(link->local_node);
drivers/media/v4l2-core/v4l2-fwnode.c
641
void v4l2_fwnode_put_link(struct v4l2_fwnode_link *link)
drivers/media/v4l2-core/v4l2-fwnode.c
643
fwnode_handle_put(link->local_node);
drivers/media/v4l2-core/v4l2-fwnode.c
644
fwnode_handle_put(link->remote_node);
drivers/media/v4l2-core/v4l2-fwnode.c
688
struct v4l2_connector_link *link, *tmp;
drivers/media/v4l2-core/v4l2-fwnode.c
693
list_for_each_entry_safe(link, tmp, &connector->links, head) {
drivers/media/v4l2-core/v4l2-fwnode.c
694
v4l2_fwnode_put_link(&link->fwnode_link);
drivers/media/v4l2-core/v4l2-fwnode.c
695
list_del(&link->head);
drivers/media/v4l2-core/v4l2-fwnode.c
696
kfree(link);
drivers/media/v4l2-core/v4l2-fwnode.c
778
struct v4l2_connector_link *link;
drivers/media/v4l2-core/v4l2-fwnode.c
788
link = kzalloc_obj(*link);
drivers/media/v4l2-core/v4l2-fwnode.c
789
if (!link) {
drivers/media/v4l2-core/v4l2-fwnode.c
794
err = v4l2_fwnode_parse_link(connector_ep, &link->fwnode_link);
drivers/media/v4l2-core/v4l2-fwnode.c
800
list_add(&link->head, &connector->links);
drivers/media/v4l2-core/v4l2-fwnode.c
806
kfree(link);
drivers/media/v4l2-core/v4l2-mc.c
579
int v4l2_pipeline_link_notify(struct media_link *link, u32 flags,
drivers/media/v4l2-core/v4l2-mc.c
582
struct media_graph *graph = &link->graph_obj.mdev->pm_count_walk;
drivers/media/v4l2-core/v4l2-mc.c
583
struct media_entity *source = link->source->entity;
drivers/media/v4l2-core/v4l2-mc.c
584
struct media_entity *sink = link->sink->entity;
drivers/media/v4l2-core/v4l2-mem2mem.c
1098
struct media_link *link;
drivers/media/v4l2-core/v4l2-mem2mem.c
1145
link = media_create_intf_link(m2m_dev->source,
drivers/media/v4l2-core/v4l2-mem2mem.c
1148
if (!link) {
drivers/media/v4l2-core/v4l2-mem2mem.c
1153
link = media_create_intf_link(&m2m_dev->sink,
drivers/media/v4l2-core/v4l2-mem2mem.c
1156
if (!link) {
drivers/media/v4l2-core/v4l2-subdev.c
1265
struct media_link *link,
drivers/media/v4l2-core/v4l2-subdev.c
1314
link->source->entity->name, link->source->index,
drivers/media/v4l2-core/v4l2-subdev.c
1315
link->sink->entity->name, link->sink->index);
drivers/media/v4l2-core/v4l2-subdev.c
1415
static int v4l2_subdev_link_validate_locked(struct media_link *link, bool states_locked)
drivers/media/v4l2-core/v4l2-subdev.c
1418
media_entity_to_v4l2_subdev(link->sink->entity);
drivers/media/v4l2-core/v4l2-subdev.c
1427
link->source->entity->name, link->source->index,
drivers/media/v4l2-core/v4l2-subdev.c
1428
link->sink->entity->name, link->sink->index);
drivers/media/v4l2-core/v4l2-subdev.c
1430
v4l2_link_validate_get_streams(link->source, &source_streams_mask, states_locked);
drivers/media/v4l2-core/v4l2-subdev.c
1431
v4l2_link_validate_get_streams(link->sink, &sink_streams_mask, states_locked);
drivers/media/v4l2-core/v4l2-subdev.c
1455
link->source->entity->name, link->source->index, stream,
drivers/media/v4l2-core/v4l2-subdev.c
1456
link->sink->entity->name, link->sink->index, stream);
drivers/media/v4l2-core/v4l2-subdev.c
1458
ret = v4l2_subdev_link_validate_get_format(link->source, stream,
drivers/media/v4l2-core/v4l2-subdev.c
1463
link->source->entity->name, link->source->index,
drivers/media/v4l2-core/v4l2-subdev.c
1468
ret = v4l2_subdev_link_validate_get_format(link->sink, stream,
drivers/media/v4l2-core/v4l2-subdev.c
1473
link->sink->entity->name, link->sink->index,
drivers/media/v4l2-core/v4l2-subdev.c
1479
ret = v4l2_subdev_call(sink_subdev, pad, link_validate, link,
drivers/media/v4l2-core/v4l2-subdev.c
1487
ret = v4l2_subdev_link_validate_default(sink_subdev, link,
drivers/media/v4l2-core/v4l2-subdev.c
1497
int v4l2_subdev_link_validate(struct media_link *link)
drivers/media/v4l2-core/v4l2-subdev.c
1508
if (WARN_ON_ONCE(!is_media_entity_v4l2_subdev(link->sink->entity)))
drivers/media/v4l2-core/v4l2-subdev.c
1517
if (is_media_entity_v4l2_video_device(link->source->entity)) {
drivers/media/v4l2-core/v4l2-subdev.c
1518
struct media_entity *source = link->source->entity;
drivers/media/v4l2-core/v4l2-subdev.c
1541
return source->ops->link_validate(link);
drivers/media/v4l2-core/v4l2-subdev.c
1548
if (WARN_ON(!is_media_entity_v4l2_subdev(link->source->entity)))
drivers/media/v4l2-core/v4l2-subdev.c
1551
sink_sd = media_entity_to_v4l2_subdev(link->sink->entity);
drivers/media/v4l2-core/v4l2-subdev.c
1552
source_sd = media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/v4l2-core/v4l2-subdev.c
1562
ret = v4l2_subdev_link_validate_locked(link, states_locked);
drivers/memory/mtk-smi.c
590
struct device_link *link;
drivers/memory/mtk-smi.c
610
link = device_link_add(dev, smi_com_dev,
drivers/memory/mtk-smi.c
612
if (!link) {
drivers/misc/mei/bus.c
1327
list_for_each_entry(cl, &mdev->file_list, link)
drivers/misc/mei/client.c
2157
list_for_each_entry(cl, &dev->file_list, link)
drivers/misc/mei/client.c
2166
list_for_each_entry(cl, &dev->file_list, link)
drivers/misc/mei/client.c
592
INIT_LIST_HEAD(&cl->link);
drivers/misc/mei/client.c
651
list_add_tail(&cl->link, &dev->file_list);
drivers/misc/mei/client.c
693
list_del_init(&cl->link);
drivers/misc/mei/client.c
700
!list_empty(&cl->link));
drivers/misc/mei/debugfs.c
75
list_for_each_entry(cl, &dev->file_list, link) {
drivers/misc/mei/hbm.c
213
list_for_each_entry(cl, &dev->file_list, link)
drivers/misc/mei/interrupt.c
454
list_for_each_entry(cl, &dev->file_list, link) {
drivers/misc/mei/interrupt.c
669
list_for_each_entry(cl, &dev->file_list, link) {
drivers/misc/mei/main.c
559
list_for_each_entry(pos, &dev->file_list, link) {
drivers/misc/mei/mei_dev.h
296
struct list_head link;
drivers/misc/ocxl/afu_irq.c
128
rc = ocxl_link_irq_alloc(ctx->afu->fn->link, &irq->hw_irq);
drivers/misc/ocxl/afu_irq.c
144
ocxl_link_free_irq(ctx->afu->fn->link, irq->hw_irq);
drivers/misc/ocxl/afu_irq.c
164
ocxl_link_free_irq(ctx->afu->fn->link, irq->hw_irq);
drivers/misc/ocxl/context.c
251
rc = ocxl_link_remove_pe(ctx->afu->fn->link, ctx->pasid);
drivers/misc/ocxl/context.c
86
rc = ocxl_link_add_pe(ctx->afu->fn->link, ctx->pasid, pidr, ctx->tidr,
drivers/misc/ocxl/core.c
429
rc = ocxl_link_setup(dev, 0, &fn->link);
drivers/misc/ocxl/core.c
435
ocxl_link_release(dev, fn->link);
drivers/misc/ocxl/core.c
445
ocxl_link_release(dev, fn->link);
drivers/misc/ocxl/file.c
137
int rc = ocxl_link_update_pe(ctx->afu->fn->link,
drivers/misc/ocxl/link.c
191
struct ocxl_link *link = data;
drivers/misc/ocxl/link.c
192
struct spa *spa = link->spa;
drivers/misc/ocxl/link.c
277
static int setup_xsl_irq(struct pci_dev *dev, struct ocxl_link *link)
drivers/misc/ocxl/link.c
279
struct spa *spa = link->spa;
drivers/misc/ocxl/link.c
292
link->domain, link->bus, link->dev);
drivers/misc/ocxl/link.c
313
link);
drivers/misc/ocxl/link.c
332
static void release_xsl_irq(struct ocxl_link *link)
drivers/misc/ocxl/link.c
334
struct spa *spa = link->spa;
drivers/misc/ocxl/link.c
337
free_irq(spa->virq, link);
drivers/misc/ocxl/link.c
344
static int alloc_spa(struct pci_dev *dev, struct ocxl_link *link)
drivers/misc/ocxl/link.c
364
pr_debug("Allocated SPA for %x:%x:%x at %p\n", link->domain, link->bus,
drivers/misc/ocxl/link.c
365
link->dev, spa->spa_mem);
drivers/misc/ocxl/link.c
367
link->spa = spa;
drivers/misc/ocxl/link.c
371
static void free_spa(struct ocxl_link *link)
drivers/misc/ocxl/link.c
373
struct spa *spa = link->spa;
drivers/misc/ocxl/link.c
375
pr_debug("Freeing SPA for %x:%x:%x\n", link->domain, link->bus,
drivers/misc/ocxl/link.c
376
link->dev);
drivers/misc/ocxl/link.c
381
link->spa = NULL;
drivers/misc/ocxl/link.c
387
struct ocxl_link *link;
drivers/misc/ocxl/link.c
390
link = kzalloc_obj(struct ocxl_link);
drivers/misc/ocxl/link.c
391
if (!link)
drivers/misc/ocxl/link.c
394
kref_init(&link->ref);
drivers/misc/ocxl/link.c
395
link->domain = pci_domain_nr(dev->bus);
drivers/misc/ocxl/link.c
396
link->bus = dev->bus->number;
drivers/misc/ocxl/link.c
397
link->dev = PCI_SLOT(dev->devfn);
drivers/misc/ocxl/link.c
398
atomic_set(&link->irq_available, MAX_IRQ_PER_LINK);
drivers/misc/ocxl/link.c
399
spin_lock_init(&link->atsd_lock);
drivers/misc/ocxl/link.c
401
rc = alloc_spa(dev, link);
drivers/misc/ocxl/link.c
405
rc = setup_xsl_irq(dev, link);
drivers/misc/ocxl/link.c
410
rc = pnv_ocxl_spa_setup(dev, link->spa->spa_mem, PE_mask,
drivers/misc/ocxl/link.c
411
&link->platform_data);
drivers/misc/ocxl/link.c
420
pnv_ocxl_map_lpar(dev, mfspr(SPRN_LPID), 0, &link->arva);
drivers/misc/ocxl/link.c
422
*out_link = link;
drivers/misc/ocxl/link.c
426
release_xsl_irq(link);
drivers/misc/ocxl/link.c
428
free_spa(link);
drivers/misc/ocxl/link.c
430
kfree(link);
drivers/misc/ocxl/link.c
434
static void free_link(struct ocxl_link *link)
drivers/misc/ocxl/link.c
436
release_xsl_irq(link);
drivers/misc/ocxl/link.c
437
free_spa(link);
drivers/misc/ocxl/link.c
438
kfree(link);
drivers/misc/ocxl/link.c
444
struct ocxl_link *link;
drivers/misc/ocxl/link.c
447
list_for_each_entry(link, &links_list, list) {
drivers/misc/ocxl/link.c
449
if (link->domain == pci_domain_nr(dev->bus) &&
drivers/misc/ocxl/link.c
450
link->bus == dev->bus->number &&
drivers/misc/ocxl/link.c
451
link->dev == PCI_SLOT(dev->devfn)) {
drivers/misc/ocxl/link.c
452
kref_get(&link->ref);
drivers/misc/ocxl/link.c
453
*link_handle = link;
drivers/misc/ocxl/link.c
457
rc = alloc_link(dev, PE_mask, &link);
drivers/misc/ocxl/link.c
461
list_add(&link->list, &links_list);
drivers/misc/ocxl/link.c
462
*link_handle = link;
drivers/misc/ocxl/link.c
471
struct ocxl_link *link = container_of(ref, struct ocxl_link, ref);
drivers/misc/ocxl/link.c
473
if (link->arva) {
drivers/misc/ocxl/link.c
474
pnv_ocxl_unmap_lpar(link->arva);
drivers/misc/ocxl/link.c
475
link->arva = NULL;
drivers/misc/ocxl/link.c
478
list_del(&link->list);
drivers/misc/ocxl/link.c
48
struct ocxl_link *link;
drivers/misc/ocxl/link.c
480
pnv_ocxl_spa_release(link->platform_data);
drivers/misc/ocxl/link.c
481
free_link(link);
drivers/misc/ocxl/link.c
486
struct ocxl_link *link = link_handle;
drivers/misc/ocxl/link.c
489
kref_put(&link->ref, release_xsl);
drivers/misc/ocxl/link.c
499
struct ocxl_link *link = pe_data->link;
drivers/misc/ocxl/link.c
505
spin_lock(&link->atsd_lock);
drivers/misc/ocxl/link.c
507
pnv_ocxl_tlb_invalidate(link->arva, pid, addr, page_size);
drivers/misc/ocxl/link.c
508
spin_unlock(&link->atsd_lock);
drivers/misc/ocxl/link.c
543
struct ocxl_link *link = link_handle;
drivers/misc/ocxl/link.c
544
struct spa *spa = link->spa;
drivers/misc/ocxl/link.c
571
pe_data->link = link;
drivers/misc/ocxl/link.c
591
if (link->arva) {
drivers/misc/ocxl/link.c
633
struct ocxl_link *link = link_handle;
drivers/misc/ocxl/link.c
634
struct spa *spa = link->spa;
drivers/misc/ocxl/link.c
660
rc = pnv_ocxl_spa_remove_pe_from_cache(link->platform_data, pe_handle);
drivers/misc/ocxl/link.c
669
struct ocxl_link *link = link_handle;
drivers/misc/ocxl/link.c
670
struct spa *spa = link->spa;
drivers/misc/ocxl/link.c
722
rc = pnv_ocxl_spa_remove_pe_from_cache(link->platform_data, pe_handle);
drivers/misc/ocxl/link.c
730
if (link->arva) {
drivers/misc/ocxl/link.c
735
spin_lock(&link->atsd_lock);
drivers/misc/ocxl/link.c
736
pnv_ocxl_tlb_invalidate(link->arva,
drivers/misc/ocxl/link.c
740
spin_unlock(&link->atsd_lock);
drivers/misc/ocxl/link.c
755
struct ocxl_link *link = link_handle;
drivers/misc/ocxl/link.c
758
if (atomic_dec_if_positive(&link->irq_available) < 0)
drivers/misc/ocxl/link.c
763
atomic_inc(&link->irq_available);
drivers/misc/ocxl/link.c
774
struct ocxl_link *link = link_handle;
drivers/misc/ocxl/link.c
777
atomic_inc(&link->irq_available);
drivers/misc/ocxl/ocxl_internal.h
27
void *link;
drivers/mmc/core/mmc_test.c
115
struct list_head link;
drivers/mmc/core/mmc_test.c
129
struct list_head link;
drivers/mmc/core/mmc_test.c
2979
list_add_tail(&gr->link, &mmc_test_result);
drivers/mmc/core/mmc_test.c
3037
list_for_each_entry_safe(gr, grs, &mmc_test_result, link) {
drivers/mmc/core/mmc_test.c
3043
list_for_each_entry_safe(tr, trs, &gr->tr_lst, link) {
drivers/mmc/core/mmc_test.c
3044
list_del(&tr->link);
drivers/mmc/core/mmc_test.c
3048
list_del(&gr->link);
drivers/mmc/core/mmc_test.c
3064
list_for_each_entry(gr, &mmc_test_result, link) {
drivers/mmc/core/mmc_test.c
3072
list_for_each_entry(tr, &gr->tr_lst, link) {
drivers/mmc/core/mmc_test.c
3170
list_for_each_entry_safe(df, dfs, &mmc_test_file_test, link) {
drivers/mmc/core/mmc_test.c
3174
list_del(&df->link);
drivers/mmc/core/mmc_test.c
3200
list_add(&df->link, &mmc_test_file_test);
drivers/mmc/core/mmc_test.c
546
list_add_tail(&tr->link, &test->gr->tr_lst);
drivers/mmc/core/mmc_test.c
98
struct list_head link;
drivers/mmc/host/sdricoh_cs.c
472
static void sdricoh_pcmcia_detach(struct pcmcia_device *link)
drivers/mmc/host/sdricoh_cs.c
474
struct mmc_host *mmc = link->priv;
drivers/mmc/host/sdricoh_cs.c
476
dev_dbg(&link->dev, "detach\n");
drivers/mmc/host/sdricoh_cs.c
485
pcmcia_disable_device(link);
drivers/mmc/host/sdricoh_cs.c
489
static int sdricoh_pcmcia_suspend(struct pcmcia_device *link)
drivers/mmc/host/sdricoh_cs.c
491
dev_dbg(&link->dev, "suspend\n");
drivers/mmc/host/sdricoh_cs.c
495
static int sdricoh_pcmcia_resume(struct pcmcia_device *link)
drivers/mmc/host/sdricoh_cs.c
497
struct mmc_host *mmc = link->priv;
drivers/mmc/host/sdricoh_cs.c
498
dev_dbg(&link->dev, "resume\n");
drivers/most/configfs.c
38
static int set_cfg_buffer_size(struct mdev_link *link)
drivers/most/configfs.c
40
return most_set_cfg_buffer_size(link->device, link->channel,
drivers/most/configfs.c
41
link->buffer_size);
drivers/most/configfs.c
44
static int set_cfg_subbuffer_size(struct mdev_link *link)
drivers/most/configfs.c
46
return most_set_cfg_subbuffer_size(link->device, link->channel,
drivers/most/configfs.c
47
link->subbuffer_size);
drivers/most/configfs.c
50
static int set_cfg_dbr_size(struct mdev_link *link)
drivers/most/configfs.c
52
return most_set_cfg_dbr_size(link->device, link->channel,
drivers/most/configfs.c
53
link->dbr_size);
drivers/most/configfs.c
56
static int set_cfg_num_buffers(struct mdev_link *link)
drivers/most/configfs.c
58
return most_set_cfg_num_buffers(link->device, link->channel,
drivers/most/configfs.c
59
link->num_buffers);
drivers/most/configfs.c
62
static int set_cfg_packets_xact(struct mdev_link *link)
drivers/most/configfs.c
64
return most_set_cfg_packets_xact(link->device, link->channel,
drivers/most/configfs.c
65
link->packets_per_xact);
drivers/most/configfs.c
68
static int set_cfg_direction(struct mdev_link *link)
drivers/most/configfs.c
70
return most_set_cfg_direction(link->device, link->channel,
drivers/most/configfs.c
71
link->direction);
drivers/most/configfs.c
74
static int set_cfg_datatype(struct mdev_link *link)
drivers/most/configfs.c
76
return most_set_cfg_datatype(link->device, link->channel,
drivers/most/configfs.c
77
link->datatype);
drivers/most/configfs.c
80
static int (*set_config_val[])(struct mdev_link *link) = {
drivers/most/most_usb.c
688
u16 hi, mi, lo, link;
drivers/most/most_usb.c
706
if (drci_rd_reg(usb_device, DRCI_REG_NI_STATE, &link)) {
drivers/most/most_usb.c
719
mdev->on_netinfo(&mdev->iface, link, hw_addr);
drivers/mtd/maps/pcmciamtd.c
302
struct pcmcia_device *link = dev->p_dev;
drivers/mtd/maps/pcmciamtd.c
308
pcmcia_fixup_vpp(link, dev->vpp);
drivers/mtd/maps/pcmciamtd.c
311
pcmcia_fixup_vpp(link, 0);
drivers/mtd/maps/pcmciamtd.c
317
static void pcmciamtd_release(struct pcmcia_device *link)
drivers/mtd/maps/pcmciamtd.c
319
struct pcmciamtd_dev *dev = link->priv;
drivers/mtd/maps/pcmciamtd.c
321
pr_debug("link = 0x%p\n", link);
drivers/mtd/maps/pcmciamtd.c
323
if (link->resource[2]->end) {
drivers/mtd/maps/pcmciamtd.c
329
pcmcia_disable_device(link);
drivers/mtd/maps/pcmciamtd.c
462
static int pcmciamtd_config(struct pcmcia_device *link)
drivers/mtd/maps/pcmciamtd.c
464
struct pcmciamtd_dev *dev = link->priv;
drivers/mtd/maps/pcmciamtd.c
471
pr_debug("link=0x%p\n", link);
drivers/mtd/maps/pcmciamtd.c
473
card_settings(dev, link, &new_name);
drivers/mtd/maps/pcmciamtd.c
494
link->resource[2]->flags |= WIN_MEMORY_TYPE_CM | WIN_ENABLE;
drivers/mtd/maps/pcmciamtd.c
495
link->resource[2]->flags |= (dev->pcmcia_map.bankwidth == 1) ?
drivers/mtd/maps/pcmciamtd.c
497
link->resource[2]->start = 0;
drivers/mtd/maps/pcmciamtd.c
498
link->resource[2]->end = (force_size) ? force_size << 20 :
drivers/mtd/maps/pcmciamtd.c
505
(unsigned long) resource_size(link->resource[2]) >> 10,
drivers/mtd/maps/pcmciamtd.c
507
ret = pcmcia_request_window(link, link->resource[2], mem_speed);
drivers/mtd/maps/pcmciamtd.c
511
link->resource[2]->start = 0;
drivers/mtd/maps/pcmciamtd.c
512
link->resource[2]->end = (force_size) ?
drivers/mtd/maps/pcmciamtd.c
514
link->resource[2]->end >>= j;
drivers/mtd/maps/pcmciamtd.c
517
resource_size(link->resource[2]) >> 10);
drivers/mtd/maps/pcmciamtd.c
518
dev->win_size = resource_size(link->resource[2]);
drivers/mtd/maps/pcmciamtd.c
521
} while (link->resource[2]->end >= 0x1000);
drivers/mtd/maps/pcmciamtd.c
527
pcmciamtd_release(link);
drivers/mtd/maps/pcmciamtd.c
533
dev->win_base = ioremap(link->resource[2]->start,
drivers/mtd/maps/pcmciamtd.c
534
resource_size(link->resource[2]));
drivers/mtd/maps/pcmciamtd.c
537
link->resource[2]);
drivers/mtd/maps/pcmciamtd.c
538
pcmciamtd_release(link);
drivers/mtd/maps/pcmciamtd.c
542
dev, link->resource[2], dev->win_base);
drivers/mtd/maps/pcmciamtd.c
546
dev->pcmcia_map.map_priv_2 = (unsigned long)link->resource[2];
drivers/mtd/maps/pcmciamtd.c
548
dev->vpp = (vpp) ? vpp : link->socket->socket.Vpp;
drivers/mtd/maps/pcmciamtd.c
550
link->vpp = dev->vpp;
drivers/mtd/maps/pcmciamtd.c
552
link->vpp = 0;
drivers/mtd/maps/pcmciamtd.c
555
link->config_index = 0;
drivers/mtd/maps/pcmciamtd.c
557
ret = pcmcia_enable_device(link);
drivers/mtd/maps/pcmciamtd.c
583
pcmciamtd_release(link);
drivers/mtd/maps/pcmciamtd.c
627
pcmciamtd_release(link);
drivers/mtd/maps/pcmciamtd.c
654
static void pcmciamtd_detach(struct pcmcia_device *link)
drivers/mtd/maps/pcmciamtd.c
656
struct pcmciamtd_dev *dev = link->priv;
drivers/mtd/maps/pcmciamtd.c
658
pr_debug("link=0x%p\n", link);
drivers/mtd/maps/pcmciamtd.c
667
pcmciamtd_release(link);
drivers/mtd/maps/pcmciamtd.c
672
static int pcmciamtd_probe(struct pcmcia_device *link)
drivers/mtd/maps/pcmciamtd.c
681
dev->p_dev = link;
drivers/mtd/maps/pcmciamtd.c
682
link->priv = dev;
drivers/mtd/maps/pcmciamtd.c
684
return pcmciamtd_config(link);
drivers/net/arcnet/com20020_cs.c
105
static int com20020_config(struct pcmcia_device *link);
drivers/net/arcnet/com20020_cs.c
106
static void com20020_release(struct pcmcia_device *link);
drivers/net/arcnet/com20020_cs.c
161
static void com20020_detach(struct pcmcia_device *link)
drivers/net/arcnet/com20020_cs.c
163
struct com20020_dev *info = link->priv;
drivers/net/arcnet/com20020_cs.c
166
dev_dbg(&link->dev, "detach...\n");
drivers/net/arcnet/com20020_cs.c
168
dev_dbg(&link->dev, "com20020_detach\n");
drivers/net/arcnet/com20020_cs.c
170
dev_dbg(&link->dev, "unregister...\n");
drivers/net/arcnet/com20020_cs.c
180
com20020_release(link);
drivers/net/arcnet/com20020_cs.c
183
dev_dbg(&link->dev, "unlinking...\n");
drivers/net/arcnet/com20020_cs.c
184
if (link->priv) {
drivers/net/arcnet/com20020_cs.c
187
dev_dbg(&link->dev, "kfree...\n");
drivers/net/arcnet/com20020_cs.c
190
dev_dbg(&link->dev, "kfree2...\n");
drivers/net/arcnet/com20020_cs.c
196
static int com20020_config(struct pcmcia_device *link)
drivers/net/arcnet/com20020_cs.c
204
info = link->priv;
drivers/net/arcnet/com20020_cs.c
207
dev_dbg(&link->dev, "config...\n");
drivers/net/arcnet/com20020_cs.c
209
dev_dbg(&link->dev, "com20020_config\n");
drivers/net/arcnet/com20020_cs.c
211
dev_dbg(&link->dev, "baseport1 is %Xh\n",
drivers/net/arcnet/com20020_cs.c
212
(unsigned int)link->resource[0]->start);
drivers/net/arcnet/com20020_cs.c
215
link->io_lines = 16;
drivers/net/arcnet/com20020_cs.c
217
if (!link->resource[0]->start) {
drivers/net/arcnet/com20020_cs.c
219
link->resource[0]->start = ioaddr;
drivers/net/arcnet/com20020_cs.c
220
i = pcmcia_request_io(link);
drivers/net/arcnet/com20020_cs.c
225
i = pcmcia_request_io(link);
drivers/net/arcnet/com20020_cs.c
229
dev_dbg(&link->dev, "requestIO failed totally!\n");
drivers/net/arcnet/com20020_cs.c
233
ioaddr = dev->base_addr = link->resource[0]->start;
drivers/net/arcnet/com20020_cs.c
234
dev_dbg(&link->dev, "got ioaddr %Xh\n", ioaddr);
drivers/net/arcnet/com20020_cs.c
236
dev_dbg(&link->dev, "request IRQ %d\n",
drivers/net/arcnet/com20020_cs.c
237
link->irq);
drivers/net/arcnet/com20020_cs.c
238
if (!link->irq) {
drivers/net/arcnet/com20020_cs.c
239
dev_dbg(&link->dev, "requestIRQ failed totally!\n");
drivers/net/arcnet/com20020_cs.c
243
dev->irq = link->irq;
drivers/net/arcnet/com20020_cs.c
245
ret = pcmcia_enable_device(link);
drivers/net/arcnet/com20020_cs.c
258
SET_NETDEV_DEV(dev, &link->dev);
drivers/net/arcnet/com20020_cs.c
263
dev_notice(&link->dev,
drivers/net/arcnet/com20020_cs.c
273
dev_dbg(&link->dev, "com20020_config failed...\n");
drivers/net/arcnet/com20020_cs.c
274
com20020_release(link);
drivers/net/arcnet/com20020_cs.c
278
static void com20020_release(struct pcmcia_device *link)
drivers/net/arcnet/com20020_cs.c
280
dev_dbg(&link->dev, "com20020_release\n");
drivers/net/arcnet/com20020_cs.c
281
pcmcia_disable_device(link);
drivers/net/arcnet/com20020_cs.c
284
static int com20020_suspend(struct pcmcia_device *link)
drivers/net/arcnet/com20020_cs.c
286
struct com20020_dev *info = link->priv;
drivers/net/arcnet/com20020_cs.c
289
if (link->open)
drivers/net/arcnet/com20020_cs.c
295
static int com20020_resume(struct pcmcia_device *link)
drivers/net/arcnet/com20020_cs.c
297
struct com20020_dev *info = link->priv;
drivers/net/arcnet/com20020_cs.c
300
if (link->open) {
drivers/net/bonding/bond_3ad.c
198
if (slave->link == BOND_LINK_UP && bond_slave_is_up(slave))
drivers/net/bonding/bond_3ad.c
223
if ((slave->link == BOND_LINK_UP) && bond_slave_is_up(slave))
drivers/net/bonding/bond_3ad.c
2750
void bond_3ad_handle_link_change(struct slave *slave, char link)
drivers/net/bonding/bond_3ad.c
2772
if (link == BOND_LINK_UP) {
drivers/net/bonding/bond_3ad.c
2787
link == BOND_LINK_UP ? "UP" : "DOWN");
drivers/net/bonding/bond_3ad.c
318
if (slave->link != BOND_LINK_UP)
drivers/net/bonding/bond_3ad.c
427
if (slave->link == BOND_LINK_UP) {
drivers/net/bonding/bond_alb.c
1678
void bond_alb_handle_link_change(struct bonding *bond, struct slave *slave, char link)
drivers/net/bonding/bond_alb.c
1682
if (link == BOND_LINK_DOWN) {
drivers/net/bonding/bond_alb.c
1686
} else if (link == BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
1099
if (!prim || prim->link != BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
1101
if (slave->link == BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
1113
if (!curr || curr->link != BOND_LINK_UP)
drivers/net/bonding/bond_main.c
1124
if (!curr || curr->link != BOND_LINK_UP)
drivers/net/bonding/bond_main.c
1161
if (slave->link == BOND_LINK_UP)
drivers/net/bonding/bond_main.c
1163
if (slave->link == BOND_LINK_BACK && bond_slave_is_up(slave) &&
drivers/net/bonding/bond_main.c
1282
if (new_active->link == BOND_LINK_BACK) {
drivers/net/bonding/bond_main.c
1798
info->link = slave->link;
drivers/net/bonding/bond_main.c
1829
info.link_up = slave->link == BOND_LINK_UP ||
drivers/net/bonding/bond_main.c
1830
slave->link == BOND_LINK_FAIL;
drivers/net/bonding/bond_main.c
2113
new_slave->link = BOND_LINK_DOWN;
drivers/net/bonding/bond_main.c
2123
new_slave->link = BOND_LINK_NOCHANGE;
drivers/net/bonding/bond_main.c
2150
if (new_slave->link != BOND_LINK_DOWN)
drivers/net/bonding/bond_main.c
2153
new_slave->link == BOND_LINK_DOWN ? "DOWN" :
drivers/net/bonding/bond_main.c
2154
(new_slave->link == BOND_LINK_UP ? "UP" : "BACK"));
drivers/net/bonding/bond_main.c
2205
new_slave->link == BOND_LINK_UP)
drivers/net/bonding/bond_main.c
2334
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
drivers/net/bonding/bond_main.c
2673
switch (slave->link) {
drivers/net/bonding/bond_main.c
2758
char link)
drivers/net/bonding/bond_main.c
2762
bond_3ad_handle_link_change(slave, link);
drivers/net/bonding/bond_main.c
2766
bond_alb_handle_link_change(bond, slave, link);
drivers/net/bonding/bond_main.c
2792
slave->link == BOND_LINK_UP)
drivers/net/bonding/bond_main.c
2799
slave->link = BOND_LINK_DOWN;
drivers/net/bonding/bond_main.c
3494
if (slave->link != BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
3557
slave->link = slave->link_new_state;
drivers/net/bonding/bond_main.c
3597
if (slave->link != BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
3601
} else if (slave->link == BOND_LINK_BACK) {
drivers/net/bonding/bond_main.c
3791
if (!bond_slave_is_up(slave) && slave->link == BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
3972
slave->link = BOND_LINK_FAIL;
drivers/net/bonding/bond_main.c
3974
slave->link = BOND_LINK_DOWN;
drivers/net/bonding/bond_main.c
5326
if (!(bond_slave_is_up(slave) && slave->link == BOND_LINK_UP))
drivers/net/bonding/bond_main.c
5371
slave->link == BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
770
if (slave->link == BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
824
const char *bond_slave_link_status(s8 link)
drivers/net/bonding/bond_main.c
826
switch (link) {
drivers/net/bonding/bond_netlink.c
44
if (nla_put_u8(skb, IFLA_BOND_SLAVE_MII_STATUS, slave->link))
drivers/net/bonding/bond_options.c
988
if (old_active && (new_active->link == BOND_LINK_UP) &&
drivers/net/bonding/bond_procfs.c
196
seq_printf(seq, "MII Status: %s\n", bond_slave_link_status(slave->link));
drivers/net/bonding/bond_sysfs_slave.c
36
return sysfs_emit(buf, "%s\n", bond_slave_link_status(slave->link));
drivers/net/caif/caif_serial.c
300
tty_kref_put(tty->link);
drivers/net/caif/caif_serial.c
335
tty_kref_get(tty->link);
drivers/net/caif/caif_serial.c
344
tty_kref_put(tty->link);
drivers/net/dsa/b53/b53_common.c
1344
static void b53_force_link(struct b53_device *dev, int port, int link)
drivers/net/dsa/b53/b53_common.c
1361
if (link)
drivers/net/dsa/b53/b53_common.c
1527
bool link;
drivers/net/dsa/b53/b53_common.c
1531
link = !!(sts & BIT(port));
drivers/net/dsa/b53/b53_common.c
1532
dsa_port_phylink_mac_change(ds, port, link);
drivers/net/dsa/b53/b53_serdes.c
132
state->link = !!(dig & LINK_STATUS);
drivers/net/dsa/bcm_sf2.c
462
priv->port_sts[7].link = true;
drivers/net/dsa/bcm_sf2.c
466
priv->port_sts[7].link = false;
drivers/net/dsa/bcm_sf2.c
795
phy_interface_t interface, bool link)
drivers/net/dsa/bcm_sf2.c
810
if (link)
drivers/net/dsa/bcm_sf2.c
911
status->link = false;
drivers/net/dsa/bcm_sf2.c
922
status->link = priv->port_sts[port].link;
drivers/net/dsa/bcm_sf2.c
928
if (!status->link)
drivers/net/dsa/bcm_sf2.c
932
status->link = true;
drivers/net/dsa/bcm_sf2.h
48
unsigned int link;
drivers/net/dsa/lantiq/lantiq_gswip_common.c
1300
static void gswip_port_set_link(struct gswip_priv *priv, int port, bool link)
drivers/net/dsa/lantiq/lantiq_gswip_common.c
1304
if (link)
drivers/net/dsa/lantiq/mxl-gsw1xx.c
174
state->link = !!(val & GSW1XX_SGMII_TBI_TBISTAT_LINK);
drivers/net/dsa/microchip/ksz8.c
1016
ret = ksz_pread8(dev, p, regs[P_REMOTE_STATUS], &link);
drivers/net/dsa/microchip/ksz8.c
1021
if (link & PORT_REMOTE_SYM_PAUSE)
drivers/net/dsa/microchip/ksz8.c
1023
if (link & PORT_REMOTE_100BTX_FD)
drivers/net/dsa/microchip/ksz8.c
1025
if (link & PORT_REMOTE_100BTX)
drivers/net/dsa/microchip/ksz8.c
1027
if (link & PORT_REMOTE_10BT_FD)
drivers/net/dsa/microchip/ksz8.c
1029
if (link & PORT_REMOTE_10BT)
drivers/net/dsa/microchip/ksz8.c
959
u8 ctrl, link, val1, val2;
drivers/net/dsa/microchip/ksz8.c
975
ret = ksz_pread8(dev, p, regs[P_LINK_STATUS], &link);
drivers/net/dsa/microchip/ksz8.c
984
if (link & PORT_AUTO_NEG_COMPLETE)
drivers/net/dsa/microchip/ksz8.c
986
if (link & PORT_STAT_LINK_GOOD)
drivers/net/dsa/microchip/ksz9477.c
227
if (!p->phydev.link ||
drivers/net/dsa/microchip/ksz9477.c
232
p->phydev.link = 1;
drivers/net/dsa/microchip/ksz9477.c
244
p->phydev.link = 0;
drivers/net/dsa/microchip/ksz9477.c
247
p->phydev.link = !!(val & BMSR_LSTATUS);
drivers/net/dsa/mt7530.c
3064
state->link = (pmsr & PMSR_LINK);
drivers/net/dsa/mt7530.c
3065
state->an_complete = state->link;
drivers/net/dsa/mv88e6xxx/chip.c
440
int link, int speed, int duplex, int pause,
drivers/net/dsa/mv88e6xxx/chip.c
468
if (chip->info->ops->port_set_link(chip, port, link))
drivers/net/dsa/mv88e6xxx/chip.h
525
int (*port_set_link)(struct mv88e6xxx_chip *chip, int port, int link);
drivers/net/dsa/mv88e6xxx/pcs-6185.c
74
state->link = !!(status & MV88E6XXX_PORT_STS_LINK);
drivers/net/dsa/mv88e6xxx/pcs-6185.c
75
if (state->link) {
drivers/net/dsa/mv88e6xxx/pcs-6185.c
93
state->link = false;
drivers/net/dsa/mv88e6xxx/pcs-6352.c
167
state->link = false;
drivers/net/dsa/mv88e6xxx/pcs-639x.c
273
state->link = false;
drivers/net/dsa/mv88e6xxx/pcs-639x.c
282
state->link = false;
drivers/net/dsa/mv88e6xxx/pcs-639x.c
291
state->link = false;
drivers/net/dsa/mv88e6xxx/pcs-639x.c
407
state->link = false;
drivers/net/dsa/mv88e6xxx/pcs-639x.c
417
state->link = !!(status & MDIO_STAT1_LSTATUS);
drivers/net/dsa/mv88e6xxx/pcs-639x.c
418
if (state->link) {
drivers/net/dsa/mv88e6xxx/pcs-639x.c
431
state->link = false;
drivers/net/dsa/mv88e6xxx/pcs-639x.c
903
state->link = false;
drivers/net/dsa/mv88e6xxx/pcs-639x.c
913
state->link = !!(status & MDIO_USXGMII_LINK);
drivers/net/dsa/mv88e6xxx/pcs-639x.c
914
state->an_complete = state->link;
drivers/net/dsa/mv88e6xxx/port.c
147
int mv88e6xxx_port_set_link(struct mv88e6xxx_chip *chip, int port, int link)
drivers/net/dsa/mv88e6xxx/port.c
159
switch (link) {
drivers/net/dsa/mv88e6xxx/port.c
189
int link;
drivers/net/dsa/mv88e6xxx/port.c
192
link = LINK_FORCED_UP;
drivers/net/dsa/mv88e6xxx/port.c
194
link = LINK_FORCED_DOWN;
drivers/net/dsa/mv88e6xxx/port.c
197
err = ops->port_set_link(chip, port, link);
drivers/net/dsa/mv88e6xxx/port.c
206
int link;
drivers/net/dsa/mv88e6xxx/port.c
209
link = LINK_UNFORCED;
drivers/net/dsa/mv88e6xxx/port.c
211
link = LINK_FORCED_UP;
drivers/net/dsa/mv88e6xxx/port.c
213
link = LINK_FORCED_DOWN;
drivers/net/dsa/mv88e6xxx/port.c
216
err = ops->port_set_link(chip, port, link);
drivers/net/dsa/mv88e6xxx/port.h
484
int mv88e6xxx_port_set_link(struct mv88e6xxx_chip *chip, int port, int link);
drivers/net/dsa/mv88e6xxx/serdes.c
37
state->link = false;
drivers/net/dsa/mv88e6xxx/serdes.c
45
state->link = !!(status & MV88E6390_SGMII_PHY_STATUS_LINK);
drivers/net/dsa/mv88e6xxx/serdes.c
79
} else if (state->link &&
drivers/net/dsa/mv88e6xxx/serdes.c
92
state->link = false;
drivers/net/dsa/qca/qca8k-8xxx.c
1504
state->link = false;
drivers/net/dsa/qca/qca8k-8xxx.c
1508
state->link = !!(reg & QCA8K_PORT_STATUS_LINK_UP);
drivers/net/dsa/qca/qca8k-8xxx.c
1509
state->an_complete = state->link;
drivers/net/dsa/realtek/rtl8365mb.c
951
bool link, int speed, int duplex,
drivers/net/dsa/realtek/rtl8365mb.c
967
if (link) {
drivers/net/ethernet/3com/3c574_cs.c
1117
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/3com/3c574_cs.c
1119
dev_dbg(&link->dev, "%s: shutting down ethercard.\n", dev->name);
drivers/net/ethernet/3com/3c574_cs.c
1121
if (pcmcia_dev_present(link)) {
drivers/net/ethernet/3com/3c574_cs.c
1141
link->open--;
drivers/net/ethernet/3com/3c574_cs.c
217
static int tc574_config(struct pcmcia_device *link);
drivers/net/ethernet/3com/3c574_cs.c
218
static void tc574_release(struct pcmcia_device *link);
drivers/net/ethernet/3com/3c574_cs.c
261
static int tc574_probe(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c574_cs.c
266
dev_dbg(&link->dev, "3c574_attach()\n");
drivers/net/ethernet/3com/3c574_cs.c
273
link->priv = dev;
drivers/net/ethernet/3com/3c574_cs.c
274
lp->p_dev = link;
drivers/net/ethernet/3com/3c574_cs.c
277
link->resource[0]->end = 32;
drivers/net/ethernet/3com/3c574_cs.c
278
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
drivers/net/ethernet/3com/3c574_cs.c
279
link->config_flags |= CONF_ENABLE_IRQ;
drivers/net/ethernet/3com/3c574_cs.c
280
link->config_index = 1;
drivers/net/ethernet/3com/3c574_cs.c
285
return tc574_config(link);
drivers/net/ethernet/3com/3c574_cs.c
288
static void tc574_detach(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c574_cs.c
290
struct net_device *dev = link->priv;
drivers/net/ethernet/3com/3c574_cs.c
292
dev_dbg(&link->dev, "3c574_detach()\n");
drivers/net/ethernet/3com/3c574_cs.c
296
tc574_release(link);
drivers/net/ethernet/3com/3c574_cs.c
303
static int tc574_config(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c574_cs.c
305
struct net_device *dev = link->priv;
drivers/net/ethernet/3com/3c574_cs.c
315
dev_dbg(&link->dev, "3c574_config()\n");
drivers/net/ethernet/3com/3c574_cs.c
317
link->io_lines = 16;
drivers/net/ethernet/3com/3c574_cs.c
320
link->resource[0]->start = j ^ 0x300;
drivers/net/ethernet/3com/3c574_cs.c
321
i = pcmcia_request_io(link);
drivers/net/ethernet/3com/3c574_cs.c
328
ret = pcmcia_request_irq(link, el3_interrupt);
drivers/net/ethernet/3com/3c574_cs.c
332
ret = pcmcia_enable_device(link);
drivers/net/ethernet/3com/3c574_cs.c
336
dev->irq = link->irq;
drivers/net/ethernet/3com/3c574_cs.c
337
dev->base_addr = link->resource[0]->start;
drivers/net/ethernet/3com/3c574_cs.c
345
len = pcmcia_get_tuple(link, 0x88, &buf);
drivers/net/ethernet/3com/3c574_cs.c
362
if (link->prod_id[1])
drivers/net/ethernet/3com/3c574_cs.c
363
cardname = link->prod_id[1];
drivers/net/ethernet/3com/3c574_cs.c
400
dev_dbg(&link->dev, " MII transceiver at "
drivers/net/ethernet/3com/3c574_cs.c
422
SET_NETDEV_DEV(dev, &link->dev);
drivers/net/ethernet/3com/3c574_cs.c
439
tc574_release(link);
drivers/net/ethernet/3com/3c574_cs.c
444
static void tc574_release(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c574_cs.c
446
pcmcia_disable_device(link);
drivers/net/ethernet/3com/3c574_cs.c
449
static int tc574_suspend(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c574_cs.c
451
struct net_device *dev = link->priv;
drivers/net/ethernet/3com/3c574_cs.c
453
if (link->open)
drivers/net/ethernet/3com/3c574_cs.c
459
static int tc574_resume(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c574_cs.c
461
struct net_device *dev = link->priv;
drivers/net/ethernet/3com/3c574_cs.c
463
if (link->open) {
drivers/net/ethernet/3com/3c574_cs.c
674
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/3com/3c574_cs.c
676
if (!pcmcia_dev_present(link))
drivers/net/ethernet/3com/3c574_cs.c
679
link->open++;
drivers/net/ethernet/3com/3c574_cs.c
686
dev_dbg(&link->dev, "%s: opened, status %4.4x.\n",
drivers/net/ethernet/3com/3c589_cs.c
160
static int tc589_config(struct pcmcia_device *link);
drivers/net/ethernet/3com/3c589_cs.c
161
static void tc589_release(struct pcmcia_device *link);
drivers/net/ethernet/3com/3c589_cs.c
194
static int tc589_probe(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c589_cs.c
200
dev_dbg(&link->dev, "3c589_attach()\n");
drivers/net/ethernet/3com/3c589_cs.c
207
link->priv = dev;
drivers/net/ethernet/3com/3c589_cs.c
208
lp->p_dev = link;
drivers/net/ethernet/3com/3c589_cs.c
211
link->resource[0]->end = 16;
drivers/net/ethernet/3com/3c589_cs.c
212
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
drivers/net/ethernet/3com/3c589_cs.c
214
link->config_flags |= CONF_ENABLE_IRQ;
drivers/net/ethernet/3com/3c589_cs.c
215
link->config_index = 1;
drivers/net/ethernet/3com/3c589_cs.c
222
ret = tc589_config(link);
drivers/net/ethernet/3com/3c589_cs.c
233
static void tc589_detach(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c589_cs.c
235
struct net_device *dev = link->priv;
drivers/net/ethernet/3com/3c589_cs.c
237
dev_dbg(&link->dev, "3c589_detach\n");
drivers/net/ethernet/3com/3c589_cs.c
241
tc589_release(link);
drivers/net/ethernet/3com/3c589_cs.c
246
static int tc589_config(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c589_cs.c
248
struct net_device *dev = link->priv;
drivers/net/ethernet/3com/3c589_cs.c
256
dev_dbg(&link->dev, "3c589_config\n");
drivers/net/ethernet/3com/3c589_cs.c
259
if (link->manf_id != MANFID_3COM)
drivers/net/ethernet/3com/3c589_cs.c
260
dev_info(&link->dev, "hmmm, is this really a 3Com card??\n");
drivers/net/ethernet/3com/3c589_cs.c
261
multi = (link->card_id == PRODID_3COM_3C562);
drivers/net/ethernet/3com/3c589_cs.c
263
link->io_lines = 16;
drivers/net/ethernet/3com/3c589_cs.c
269
link->resource[0]->start = j ^ 0x300;
drivers/net/ethernet/3com/3c589_cs.c
270
i = pcmcia_request_io(link);
drivers/net/ethernet/3com/3c589_cs.c
277
ret = pcmcia_request_irq(link, el3_interrupt);
drivers/net/ethernet/3com/3c589_cs.c
281
ret = pcmcia_enable_device(link);
drivers/net/ethernet/3com/3c589_cs.c
285
dev->irq = link->irq;
drivers/net/ethernet/3com/3c589_cs.c
286
dev->base_addr = link->resource[0]->start;
drivers/net/ethernet/3com/3c589_cs.c
293
len = pcmcia_get_tuple(link, 0x88, &buf);
drivers/net/ethernet/3com/3c589_cs.c
303
dev_err(&link->dev, "IO port conflict at 0x%03lx-0x%03lx\n",
drivers/net/ethernet/3com/3c589_cs.c
321
dev_err(&link->dev, "invalid if_port requested\n");
drivers/net/ethernet/3com/3c589_cs.c
323
SET_NETDEV_DEV(dev, &link->dev);
drivers/net/ethernet/3com/3c589_cs.c
326
dev_err(&link->dev, "register_netdev() failed\n");
drivers/net/ethernet/3com/3c589_cs.c
339
tc589_release(link);
drivers/net/ethernet/3com/3c589_cs.c
343
static void tc589_release(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c589_cs.c
345
pcmcia_disable_device(link);
drivers/net/ethernet/3com/3c589_cs.c
348
static int tc589_suspend(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c589_cs.c
350
struct net_device *dev = link->priv;
drivers/net/ethernet/3com/3c589_cs.c
352
if (link->open)
drivers/net/ethernet/3com/3c589_cs.c
358
static int tc589_resume(struct pcmcia_device *link)
drivers/net/ethernet/3com/3c589_cs.c
360
struct net_device *dev = link->priv;
drivers/net/ethernet/3com/3c589_cs.c
362
if (link->open) {
drivers/net/ethernet/3com/3c589_cs.c
518
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/3com/3c589_cs.c
520
if (!pcmcia_dev_present(link))
drivers/net/ethernet/3com/3c589_cs.c
523
link->open++;
drivers/net/ethernet/3com/3c589_cs.c
530
dev_dbg(&link->dev, "%s: opened, status %4.4x.\n",
drivers/net/ethernet/3com/3c589_cs.c
777
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/3com/3c589_cs.c
779
if (pcmcia_dev_present(link)) {
drivers/net/ethernet/3com/3c589_cs.c
915
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/3com/3c589_cs.c
918
dev_dbg(&link->dev, "%s: shutting down ethercard.\n", dev->name);
drivers/net/ethernet/3com/3c589_cs.c
920
if (pcmcia_dev_present(link)) {
drivers/net/ethernet/3com/3c589_cs.c
947
link->open--;
drivers/net/ethernet/8390/ax88796.c
342
if (phy_dev->link && ((ax->speed != phy_dev->speed) ||
drivers/net/ethernet/8390/ax88796.c
350
if (phy_dev->link != ax->link) {
drivers/net/ethernet/8390/ax88796.c
351
if (!phy_dev->link) {
drivers/net/ethernet/8390/ax88796.c
355
ax->link = phy_dev->link;
drivers/net/ethernet/8390/ax88796.c
84
int link;
drivers/net/ethernet/8390/axnet_cs.c
140
static int axnet_probe(struct pcmcia_device *link)
drivers/net/ethernet/8390/axnet_cs.c
146
dev_dbg(&link->dev, "axnet_attach()\n");
drivers/net/ethernet/8390/axnet_cs.c
156
info->p_dev = link;
drivers/net/ethernet/8390/axnet_cs.c
157
link->priv = dev;
drivers/net/ethernet/8390/axnet_cs.c
158
link->config_flags |= CONF_ENABLE_IRQ;
drivers/net/ethernet/8390/axnet_cs.c
164
return axnet_config(link);
drivers/net/ethernet/8390/axnet_cs.c
167
static void axnet_detach(struct pcmcia_device *link)
drivers/net/ethernet/8390/axnet_cs.c
169
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/axnet_cs.c
171
dev_dbg(&link->dev, "axnet_detach(0x%p)\n", link);
drivers/net/ethernet/8390/axnet_cs.c
175
axnet_release(link);
drivers/net/ethernet/8390/axnet_cs.c
186
static int get_prom(struct pcmcia_device *link)
drivers/net/ethernet/8390/axnet_cs.c
188
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/axnet_cs.c
213
if (link->config_base != 0x03c0)
drivers/net/ethernet/8390/axnet_cs.c
232
static int try_io_port(struct pcmcia_device *link)
drivers/net/ethernet/8390/axnet_cs.c
235
link->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
drivers/net/ethernet/8390/axnet_cs.c
236
link->resource[1]->flags &= ~IO_DATA_PATH_WIDTH;
drivers/net/ethernet/8390/axnet_cs.c
237
if (link->resource[0]->end == 32) {
drivers/net/ethernet/8390/axnet_cs.c
238
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
drivers/net/ethernet/8390/axnet_cs.c
240
if (link->resource[1]->end > 0)
drivers/net/ethernet/8390/axnet_cs.c
241
link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
drivers/net/ethernet/8390/axnet_cs.c
244
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
drivers/net/ethernet/8390/axnet_cs.c
245
link->resource[1]->flags |= IO_DATA_PATH_WIDTH_16;
drivers/net/ethernet/8390/axnet_cs.c
247
if (link->resource[0]->start == 0) {
drivers/net/ethernet/8390/axnet_cs.c
249
link->resource[0]->start = j ^ 0x300;
drivers/net/ethernet/8390/axnet_cs.c
250
link->resource[1]->start = (j ^ 0x300) + 0x10;
drivers/net/ethernet/8390/axnet_cs.c
251
link->io_lines = 16;
drivers/net/ethernet/8390/axnet_cs.c
252
ret = pcmcia_request_io(link);
drivers/net/ethernet/8390/axnet_cs.c
258
return pcmcia_request_io(link);
drivers/net/ethernet/8390/axnet_cs.c
274
static int axnet_config(struct pcmcia_device *link)
drivers/net/ethernet/8390/axnet_cs.c
276
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/axnet_cs.c
280
dev_dbg(&link->dev, "axnet_config(0x%p)\n", link);
drivers/net/ethernet/8390/axnet_cs.c
283
link->config_regs = 0x63;
drivers/net/ethernet/8390/axnet_cs.c
284
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/net/ethernet/8390/axnet_cs.c
285
ret = pcmcia_loop_config(link, axnet_configcheck, NULL);
drivers/net/ethernet/8390/axnet_cs.c
289
if (!link->irq)
drivers/net/ethernet/8390/axnet_cs.c
292
if (resource_size(link->resource[1]) == 8)
drivers/net/ethernet/8390/axnet_cs.c
293
link->config_flags |= CONF_ENABLE_SPKR;
drivers/net/ethernet/8390/axnet_cs.c
295
ret = pcmcia_enable_device(link);
drivers/net/ethernet/8390/axnet_cs.c
299
dev->irq = link->irq;
drivers/net/ethernet/8390/axnet_cs.c
300
dev->base_addr = link->resource[0]->start;
drivers/net/ethernet/8390/axnet_cs.c
302
if (!get_prom(link)) {
drivers/net/ethernet/8390/axnet_cs.c
338
pcmcia_write_config_byte(link, CISREG_CCSR, 0x04);
drivers/net/ethernet/8390/axnet_cs.c
351
SET_NETDEV_DEV(dev, &link->dev);
drivers/net/ethernet/8390/axnet_cs.c
370
axnet_release(link);
drivers/net/ethernet/8390/axnet_cs.c
374
static void axnet_release(struct pcmcia_device *link)
drivers/net/ethernet/8390/axnet_cs.c
376
pcmcia_disable_device(link);
drivers/net/ethernet/8390/axnet_cs.c
379
static int axnet_suspend(struct pcmcia_device *link)
drivers/net/ethernet/8390/axnet_cs.c
381
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/axnet_cs.c
383
if (link->open)
drivers/net/ethernet/8390/axnet_cs.c
389
static int axnet_resume(struct pcmcia_device *link)
drivers/net/ethernet/8390/axnet_cs.c
391
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/axnet_cs.c
394
if (link->open) {
drivers/net/ethernet/8390/axnet_cs.c
396
pcmcia_write_config_byte(link, CISREG_CCSR, 0x04);
drivers/net/ethernet/8390/axnet_cs.c
471
struct pcmcia_device *link = info->p_dev;
drivers/net/ethernet/8390/axnet_cs.c
474
dev_dbg(&link->dev, "axnet_open('%s')\n", dev->name);
drivers/net/ethernet/8390/axnet_cs.c
476
if (!pcmcia_dev_present(link))
drivers/net/ethernet/8390/axnet_cs.c
484
link->open++;
drivers/net/ethernet/8390/axnet_cs.c
498
struct pcmcia_device *link = info->p_dev;
drivers/net/ethernet/8390/axnet_cs.c
500
dev_dbg(&link->dev, "axnet_close('%s')\n", dev->name);
drivers/net/ethernet/8390/axnet_cs.c
505
link->open--;
drivers/net/ethernet/8390/axnet_cs.c
557
u_short link;
drivers/net/ethernet/8390/axnet_cs.c
578
link = mdio_read(mii_addr, info->phy_id, 1);
drivers/net/ethernet/8390/axnet_cs.c
579
if (!link || (link == 0xffff)) {
drivers/net/ethernet/8390/axnet_cs.c
585
link &= 0x0004;
drivers/net/ethernet/8390/axnet_cs.c
586
if (link != info->link_status) {
drivers/net/ethernet/8390/axnet_cs.c
588
netdev_info(dev, "%s link beat\n", link ? "found" : "lost");
drivers/net/ethernet/8390/axnet_cs.c
589
if (link) {
drivers/net/ethernet/8390/axnet_cs.c
598
info->link_status = link;
drivers/net/ethernet/8390/axnet_cs.c
77
static int axnet_config(struct pcmcia_device *link);
drivers/net/ethernet/8390/axnet_cs.c
78
static void axnet_release(struct pcmcia_device *link);
drivers/net/ethernet/8390/pcnet_cs.c
1025
u_short link;
drivers/net/ethernet/8390/pcnet_cs.c
103
static int setup_shmem_window(struct pcmcia_device *link, int start_pg,
drivers/net/ethernet/8390/pcnet_cs.c
1048
link = mdio_read(mii_addr, info->phy_id, 1);
drivers/net/ethernet/8390/pcnet_cs.c
1049
if (!link || (link == 0xffff)) {
drivers/net/ethernet/8390/pcnet_cs.c
105
static int setup_dma_config(struct pcmcia_device *link, int start_pg,
drivers/net/ethernet/8390/pcnet_cs.c
1059
link &= 0x0004;
drivers/net/ethernet/8390/pcnet_cs.c
1060
if (link != info->link_status) {
drivers/net/ethernet/8390/pcnet_cs.c
1062
netdev_info(dev, "%s link beat\n", link ? "found" : "lost");
drivers/net/ethernet/8390/pcnet_cs.c
1063
if (link && (info->flags & IS_DL10022)) {
drivers/net/ethernet/8390/pcnet_cs.c
1066
} else if (link && (info->flags & IS_DL10019)) {
drivers/net/ethernet/8390/pcnet_cs.c
1070
if (link) {
drivers/net/ethernet/8390/pcnet_cs.c
1082
info->link_status = link;
drivers/net/ethernet/8390/pcnet_cs.c
1085
link = mdio_read(mii_addr, info->eth_phy, 1) & 0x0004;
drivers/net/ethernet/8390/pcnet_cs.c
1086
if (((info->phy_id == info->pna_phy) && link) ||
drivers/net/ethernet/8390/pcnet_cs.c
1087
((info->phy_id != info->pna_phy) && !link)) {
drivers/net/ethernet/8390/pcnet_cs.c
1308
static int setup_dma_config(struct pcmcia_device *link, int start_pg,
drivers/net/ethernet/8390/pcnet_cs.c
1311
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
1411
static int setup_shmem_window(struct pcmcia_device *link, int start_pg,
drivers/net/ethernet/8390/pcnet_cs.c
1414
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
1426
link->resource[3]->flags |= WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM|WIN_ENABLE;
drivers/net/ethernet/8390/pcnet_cs.c
1427
link->resource[3]->flags |= WIN_USE_WAIT;
drivers/net/ethernet/8390/pcnet_cs.c
1428
link->resource[3]->start = 0; link->resource[3]->end = window_size;
drivers/net/ethernet/8390/pcnet_cs.c
1429
ret = pcmcia_request_window(link, link->resource[3], mem_speed);
drivers/net/ethernet/8390/pcnet_cs.c
1435
ret = pcmcia_map_mem_page(link, link->resource[3], offset);
drivers/net/ethernet/8390/pcnet_cs.c
1440
info->base = ioremap(link->resource[3]->start,
drivers/net/ethernet/8390/pcnet_cs.c
1441
resource_size(link->resource[3]));
drivers/net/ethernet/8390/pcnet_cs.c
1455
pcmcia_release_window(link, link->resource[3]);
drivers/net/ethernet/8390/pcnet_cs.c
1461
ei_status.priv = resource_size(link->resource[3]);
drivers/net/ethernet/8390/pcnet_cs.c
1463
dev->mem_end = dev->mem_start + resource_size(link->resource[3]);
drivers/net/ethernet/8390/pcnet_cs.c
1468
(resource_size(link->resource[3]) - offset) >> 8);
drivers/net/ethernet/8390/pcnet_cs.c
235
static int pcnet_probe(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
240
dev_dbg(&link->dev, "pcnet_attach()\n");
drivers/net/ethernet/8390/pcnet_cs.c
246
info->p_dev = link;
drivers/net/ethernet/8390/pcnet_cs.c
247
link->priv = dev;
drivers/net/ethernet/8390/pcnet_cs.c
249
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/net/ethernet/8390/pcnet_cs.c
253
return pcnet_config(link);
drivers/net/ethernet/8390/pcnet_cs.c
256
static void pcnet_detach(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
258
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
260
dev_dbg(&link->dev, "pcnet_detach\n");
drivers/net/ethernet/8390/pcnet_cs.c
264
pcnet_release(link);
drivers/net/ethernet/8390/pcnet_cs.c
276
static struct hw_info *get_hwinfo(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
278
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
284
link->resource[2]->flags |= WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
drivers/net/ethernet/8390/pcnet_cs.c
285
link->resource[2]->start = 0; link->resource[2]->end = 0;
drivers/net/ethernet/8390/pcnet_cs.c
286
i = pcmcia_request_window(link, link->resource[2], 0);
drivers/net/ethernet/8390/pcnet_cs.c
290
virt = ioremap(link->resource[2]->start,
drivers/net/ethernet/8390/pcnet_cs.c
291
resource_size(link->resource[2]));
drivers/net/ethernet/8390/pcnet_cs.c
293
pcmcia_release_window(link, link->resource[2]);
drivers/net/ethernet/8390/pcnet_cs.c
298
pcmcia_map_mem_page(link, link->resource[2],
drivers/net/ethernet/8390/pcnet_cs.c
299
hw_info[i].offset & ~(resource_size(link->resource[2])-1));
drivers/net/ethernet/8390/pcnet_cs.c
300
base = &virt[hw_info[i].offset & (resource_size(link->resource[2])-1)];
drivers/net/ethernet/8390/pcnet_cs.c
312
j = pcmcia_release_window(link, link->resource[2]);
drivers/net/ethernet/8390/pcnet_cs.c
324
static struct hw_info *get_prom(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
326
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
380
static struct hw_info *get_dl10019(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
382
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
404
static struct hw_info *get_ax88190(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
406
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
412
if (link->config_base != 0x03c0)
drivers/net/ethernet/8390/pcnet_cs.c
437
static struct hw_info *get_hwired(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
439
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
455
static int try_io_port(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
458
link->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
drivers/net/ethernet/8390/pcnet_cs.c
459
link->resource[1]->flags &= ~IO_DATA_PATH_WIDTH;
drivers/net/ethernet/8390/pcnet_cs.c
460
if (link->resource[0]->end == 32) {
drivers/net/ethernet/8390/pcnet_cs.c
461
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
drivers/net/ethernet/8390/pcnet_cs.c
462
if (link->resource[1]->end > 0) {
drivers/net/ethernet/8390/pcnet_cs.c
464
link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
drivers/net/ethernet/8390/pcnet_cs.c
468
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
drivers/net/ethernet/8390/pcnet_cs.c
469
link->resource[1]->flags |= IO_DATA_PATH_WIDTH_16;
drivers/net/ethernet/8390/pcnet_cs.c
471
if (link->resource[0]->start == 0) {
drivers/net/ethernet/8390/pcnet_cs.c
473
link->resource[0]->start = j ^ 0x300;
drivers/net/ethernet/8390/pcnet_cs.c
474
link->resource[1]->start = (j ^ 0x300) + 0x10;
drivers/net/ethernet/8390/pcnet_cs.c
475
link->io_lines = 16;
drivers/net/ethernet/8390/pcnet_cs.c
476
ret = pcmcia_request_io(link);
drivers/net/ethernet/8390/pcnet_cs.c
482
return pcmcia_request_io(link);
drivers/net/ethernet/8390/pcnet_cs.c
504
static struct hw_info *pcnet_try_config(struct pcmcia_device *link,
drivers/net/ethernet/8390/pcnet_cs.c
507
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
513
ret = pcmcia_loop_config(link, pcnet_confcheck, &priv);
drivers/net/ethernet/8390/pcnet_cs.c
515
dev_warn(&link->dev, "no useable port range found\n");
drivers/net/ethernet/8390/pcnet_cs.c
520
if (!link->irq)
drivers/net/ethernet/8390/pcnet_cs.c
523
if (resource_size(link->resource[1]) == 8)
drivers/net/ethernet/8390/pcnet_cs.c
524
link->config_flags |= CONF_ENABLE_SPKR;
drivers/net/ethernet/8390/pcnet_cs.c
526
if ((link->manf_id == MANFID_IBM) &&
drivers/net/ethernet/8390/pcnet_cs.c
527
(link->card_id == PRODID_IBM_HOME_AND_AWAY))
drivers/net/ethernet/8390/pcnet_cs.c
528
link->config_index |= 0x10;
drivers/net/ethernet/8390/pcnet_cs.c
530
ret = pcmcia_enable_device(link);
drivers/net/ethernet/8390/pcnet_cs.c
534
dev->irq = link->irq;
drivers/net/ethernet/8390/pcnet_cs.c
535
dev->base_addr = link->resource[0]->start;
drivers/net/ethernet/8390/pcnet_cs.c
541
dev_notice(&link->dev, "invalid if_port requested\n");
drivers/net/ethernet/8390/pcnet_cs.c
545
if ((link->config_base == 0x03c0) &&
drivers/net/ethernet/8390/pcnet_cs.c
546
(link->manf_id == 0x149) && (link->card_id == 0xc1ab)) {
drivers/net/ethernet/8390/pcnet_cs.c
547
dev_info(&link->dev,
drivers/net/ethernet/8390/pcnet_cs.c
552
local_hw_info = get_hwinfo(link);
drivers/net/ethernet/8390/pcnet_cs.c
554
local_hw_info = get_prom(link);
drivers/net/ethernet/8390/pcnet_cs.c
556
local_hw_info = get_dl10019(link);
drivers/net/ethernet/8390/pcnet_cs.c
558
local_hw_info = get_ax88190(link);
drivers/net/ethernet/8390/pcnet_cs.c
560
local_hw_info = get_hwired(link);
drivers/net/ethernet/8390/pcnet_cs.c
565
static int pcnet_config(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
567
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
573
dev_dbg(&link->dev, "pcnet_config\n");
drivers/net/ethernet/8390/pcnet_cs.c
575
local_hw_info = pcnet_try_config(link, &has_shmem, 0);
drivers/net/ethernet/8390/pcnet_cs.c
578
pcmcia_disable_device(link);
drivers/net/ethernet/8390/pcnet_cs.c
579
local_hw_info = pcnet_try_config(link, &has_shmem, 1);
drivers/net/ethernet/8390/pcnet_cs.c
581
dev_notice(&link->dev, "unable to read hardware net"
drivers/net/ethernet/8390/pcnet_cs.c
590
if ((link->manf_id == MANFID_SOCKET) &&
drivers/net/ethernet/8390/pcnet_cs.c
591
((link->card_id == PRODID_SOCKET_LPE) ||
drivers/net/ethernet/8390/pcnet_cs.c
592
(link->card_id == PRODID_SOCKET_LPE_CF) ||
drivers/net/ethernet/8390/pcnet_cs.c
593
(link->card_id == PRODID_SOCKET_EIO)))
drivers/net/ethernet/8390/pcnet_cs.c
610
(setup_shmem_window(link, start_pg, stop_pg, cm_offset) != 0))
drivers/net/ethernet/8390/pcnet_cs.c
611
setup_dma_config(link, start_pg, stop_pg);
drivers/net/ethernet/8390/pcnet_cs.c
620
SET_NETDEV_DEV(dev, &link->dev);
drivers/net/ethernet/8390/pcnet_cs.c
645
pcnet_release(link);
drivers/net/ethernet/8390/pcnet_cs.c
649
static void pcnet_release(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
651
struct pcnet_dev *info = PRIV(link->priv);
drivers/net/ethernet/8390/pcnet_cs.c
653
dev_dbg(&link->dev, "pcnet_release\n");
drivers/net/ethernet/8390/pcnet_cs.c
658
pcmcia_disable_device(link);
drivers/net/ethernet/8390/pcnet_cs.c
661
static int pcnet_suspend(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
663
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
665
if (link->open)
drivers/net/ethernet/8390/pcnet_cs.c
671
static int pcnet_resume(struct pcmcia_device *link)
drivers/net/ethernet/8390/pcnet_cs.c
673
struct net_device *dev = link->priv;
drivers/net/ethernet/8390/pcnet_cs.c
675
if (link->open) {
drivers/net/ethernet/8390/pcnet_cs.c
911
struct pcmcia_device *link = info->p_dev;
drivers/net/ethernet/8390/pcnet_cs.c
914
dev_dbg(&link->dev, "pcnet_open('%s')\n", dev->name);
drivers/net/ethernet/8390/pcnet_cs.c
916
if (!pcmcia_dev_present(link))
drivers/net/ethernet/8390/pcnet_cs.c
926
link->open++;
drivers/net/ethernet/8390/pcnet_cs.c
94
static int pcnet_config(struct pcmcia_device *link);
drivers/net/ethernet/8390/pcnet_cs.c
941
struct pcmcia_device *link = info->p_dev;
drivers/net/ethernet/8390/pcnet_cs.c
943
dev_dbg(&link->dev, "pcnet_close('%s')\n", dev->name);
drivers/net/ethernet/8390/pcnet_cs.c
948
link->open--;
drivers/net/ethernet/8390/pcnet_cs.c
95
static void pcnet_release(struct pcmcia_device *link);
drivers/net/ethernet/actions/owl-emac.c
1023
priv->link = 0;
drivers/net/ethernet/actions/owl-emac.c
400
if (phydev->link) {
drivers/net/ethernet/actions/owl-emac.c
401
if (!priv->link) {
drivers/net/ethernet/actions/owl-emac.c
402
priv->link = phydev->link;
drivers/net/ethernet/actions/owl-emac.c
421
if (priv->link) {
drivers/net/ethernet/actions/owl-emac.c
422
priv->link = phydev->link;
drivers/net/ethernet/actions/owl-emac.c
428
if (phydev->link)
drivers/net/ethernet/actions/owl-emac.h
268
unsigned int link;
drivers/net/ethernet/adi/adin1110.c
1077
if (!phydev->link)
drivers/net/ethernet/aeroflex/greth.c
1210
if (phydev->link) {
drivers/net/ethernet/aeroflex/greth.c
1231
if (phydev->link != greth->link) {
drivers/net/ethernet/aeroflex/greth.c
1232
if (!phydev->link) {
drivers/net/ethernet/aeroflex/greth.c
1236
greth->link = phydev->link;
drivers/net/ethernet/aeroflex/greth.c
1244
if (phydev->link)
drivers/net/ethernet/aeroflex/greth.c
1283
greth->link = 0;
drivers/net/ethernet/aeroflex/greth.h
128
unsigned int link;
drivers/net/ethernet/agere/et131x.c
3130
if (!phydev->link && adapter->boot_coma < 11)
drivers/net/ethernet/agere/et131x.c
3134
if (!phydev->link) {
drivers/net/ethernet/agere/et131x.c
3191
if (phydev->link == adapter->link)
drivers/net/ethernet/agere/et131x.c
3201
adapter->link = phydev->link;
drivers/net/ethernet/agere/et131x.c
3204
if (phydev->link) {
drivers/net/ethernet/agere/et131x.c
451
int link;
drivers/net/ethernet/alacritech/slic.h
443
__le32 link;
drivers/net/ethernet/alacritech/slicoss.c
1240
sm->link_paddr = paddr + offsetof(struct slic_shmem_data, link);
drivers/net/ethernet/alacritech/slicoss.c
631
u32 link;
drivers/net/ethernet/alacritech/slicoss.c
633
link = le32_to_cpu(sm_data->link);
drivers/net/ethernet/alacritech/slicoss.c
635
if (link & SLIC_GIG_LINKUP) {
drivers/net/ethernet/alacritech/slicoss.c
636
if (link & SLIC_GIG_SPEED_1000)
drivers/net/ethernet/alacritech/slicoss.c
638
else if (link & SLIC_GIG_SPEED_100)
drivers/net/ethernet/alacritech/slicoss.c
643
duplex = (link & SLIC_GIG_FULLDUPLEX) ? DUPLEX_FULL :
drivers/net/ethernet/allwinner/sun4i-emac.c
135
if (phydev->link) {
drivers/net/ethernet/allwinner/sun4i-emac.c
153
if (phydev->link != db->link) {
drivers/net/ethernet/allwinner/sun4i-emac.c
154
if (!phydev->link) {
drivers/net/ethernet/allwinner/sun4i-emac.c
158
db->link = phydev->link;
drivers/net/ethernet/allwinner/sun4i-emac.c
186
db->link = 0;
drivers/net/ethernet/allwinner/sun4i-emac.c
85
unsigned int link;
drivers/net/ethernet/alteon/acenic.c
1407
ap->link = tmp;
drivers/net/ethernet/alteon/acenic.c
2575
u32 link;
drivers/net/ethernet/alteon/acenic.c
2587
link = readl(&regs->GigLnkState);
drivers/net/ethernet/alteon/acenic.c
2588
if (link & LNK_1000MB) {
drivers/net/ethernet/alteon/acenic.c
2591
link = readl(&regs->FastLnkState);
drivers/net/ethernet/alteon/acenic.c
2592
if (link & LNK_100MB)
drivers/net/ethernet/alteon/acenic.c
2594
else if (link & LNK_10MB)
drivers/net/ethernet/alteon/acenic.c
2599
if (link & LNK_FULL_DUPLEX)
drivers/net/ethernet/alteon/acenic.c
2604
if (link & LNK_NEGOTIATE)
drivers/net/ethernet/alteon/acenic.c
2630
u32 link, speed;
drivers/net/ethernet/alteon/acenic.c
2632
link = readl(&regs->GigLnkState);
drivers/net/ethernet/alteon/acenic.c
2633
if (link & LNK_1000MB)
drivers/net/ethernet/alteon/acenic.c
2636
link = readl(&regs->FastLnkState);
drivers/net/ethernet/alteon/acenic.c
2637
if (link & LNK_100MB)
drivers/net/ethernet/alteon/acenic.c
2639
else if (link & LNK_10MB)
drivers/net/ethernet/alteon/acenic.c
2645
link = LNK_ENABLE | LNK_1000MB | LNK_100MB | LNK_10MB |
drivers/net/ethernet/alteon/acenic.c
2648
link |= LNK_TX_FLOW_CTL_Y;
drivers/net/ethernet/alteon/acenic.c
2650
link |= LNK_NEGOTIATE;
drivers/net/ethernet/alteon/acenic.c
2652
link &= ~(LNK_1000MB | LNK_100MB | LNK_10MB);
drivers/net/ethernet/alteon/acenic.c
2655
link |= LNK_1000MB;
drivers/net/ethernet/alteon/acenic.c
2658
link |= LNK_100MB;
drivers/net/ethernet/alteon/acenic.c
2661
link |= LNK_10MB;
drivers/net/ethernet/alteon/acenic.c
2667
link |= LNK_FULL_DUPLEX;
drivers/net/ethernet/alteon/acenic.c
2669
if (link != ap->link) {
drivers/net/ethernet/alteon/acenic.c
2674
ap->link = link;
drivers/net/ethernet/alteon/acenic.c
2675
writel(link, &regs->TuneLink);
drivers/net/ethernet/alteon/acenic.c
2677
writel(link, &regs->TuneFastLink);
drivers/net/ethernet/alteon/acenic.c
408
module_param_array_named(link, link_state, int, NULL, 0);
drivers/net/ethernet/alteon/acenic.c
415
MODULE_PARM_DESC(link, "AceNIC/3C985/NetGear link state");
drivers/net/ethernet/alteon/acenic.h
642
int version, link;
drivers/net/ethernet/amazon/ena/ena_admin_defs.h
1090
struct ena_admin_get_feature_link_desc link;
drivers/net/ethernet/amazon/ena/ena_ethtool.c
459
struct ena_admin_get_feature_link_desc *link;
drivers/net/ethernet/amazon/ena/ena_ethtool.c
467
link = &feat_resp.u.link;
drivers/net/ethernet/amazon/ena/ena_ethtool.c
468
link_ksettings->base.speed = link->speed;
drivers/net/ethernet/amazon/ena/ena_ethtool.c
470
if (link->flags & ENA_ADMIN_GET_FEATURE_LINK_DESC_AUTONEG_MASK) {
drivers/net/ethernet/amazon/ena/ena_ethtool.c
478
(link->flags & ENA_ADMIN_GET_FEATURE_LINK_DESC_AUTONEG_MASK) ?
drivers/net/ethernet/amd/au1000_eth.c
405
if (phydev->link && (aup->old_speed != phydev->speed)) {
drivers/net/ethernet/amd/au1000_eth.c
423
if (phydev->link && (aup->old_duplex != phydev->duplex)) {
drivers/net/ethernet/amd/au1000_eth.c
447
if (phydev->link != aup->old_link) {
drivers/net/ethernet/amd/au1000_eth.c
450
if (!phydev->link) {
drivers/net/ethernet/amd/au1000_eth.c
456
aup->old_link = phydev->link;
drivers/net/ethernet/amd/au1000_eth.c
463
if (phydev->link)
drivers/net/ethernet/amd/au1000_eth.c
724
if (dev->phydev->link && (DUPLEX_FULL == dev->phydev->duplex))
drivers/net/ethernet/amd/nmclan_cs.c
399
static int nmclan_config(struct pcmcia_device *link);
drivers/net/ethernet/amd/nmclan_cs.c
400
static void nmclan_release(struct pcmcia_device *link);
drivers/net/ethernet/amd/nmclan_cs.c
431
static int nmclan_probe(struct pcmcia_device *link)
drivers/net/ethernet/amd/nmclan_cs.c
436
dev_dbg(&link->dev, "nmclan_attach()\n");
drivers/net/ethernet/amd/nmclan_cs.c
443
lp->p_dev = link;
drivers/net/ethernet/amd/nmclan_cs.c
444
link->priv = dev;
drivers/net/ethernet/amd/nmclan_cs.c
447
link->resource[0]->end = 32;
drivers/net/ethernet/amd/nmclan_cs.c
448
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
drivers/net/ethernet/amd/nmclan_cs.c
449
link->config_flags |= CONF_ENABLE_IRQ;
drivers/net/ethernet/amd/nmclan_cs.c
450
link->config_index = 1;
drivers/net/ethernet/amd/nmclan_cs.c
451
link->config_regs = PRESENT_OPTION;
drivers/net/ethernet/amd/nmclan_cs.c
459
return nmclan_config(link);
drivers/net/ethernet/amd/nmclan_cs.c
462
static void nmclan_detach(struct pcmcia_device *link)
drivers/net/ethernet/amd/nmclan_cs.c
464
struct net_device *dev = link->priv;
drivers/net/ethernet/amd/nmclan_cs.c
466
dev_dbg(&link->dev, "nmclan_detach\n");
drivers/net/ethernet/amd/nmclan_cs.c
470
nmclan_release(link);
drivers/net/ethernet/amd/nmclan_cs.c
606
static int nmclan_config(struct pcmcia_device *link)
drivers/net/ethernet/amd/nmclan_cs.c
608
struct net_device *dev = link->priv;
drivers/net/ethernet/amd/nmclan_cs.c
615
dev_dbg(&link->dev, "nmclan_config\n");
drivers/net/ethernet/amd/nmclan_cs.c
617
link->io_lines = 5;
drivers/net/ethernet/amd/nmclan_cs.c
618
ret = pcmcia_request_io(link);
drivers/net/ethernet/amd/nmclan_cs.c
621
ret = pcmcia_request_irq(link, mace_interrupt);
drivers/net/ethernet/amd/nmclan_cs.c
624
ret = pcmcia_enable_device(link);
drivers/net/ethernet/amd/nmclan_cs.c
628
dev->irq = link->irq;
drivers/net/ethernet/amd/nmclan_cs.c
629
dev->base_addr = link->resource[0]->start;
drivers/net/ethernet/amd/nmclan_cs.c
634
len = pcmcia_get_tuple(link, 0x80, &buf);
drivers/net/ethernet/amd/nmclan_cs.c
649
dev_dbg(&link->dev, "nmclan_cs configured: mace id=%x %x\n",
drivers/net/ethernet/amd/nmclan_cs.c
667
SET_NETDEV_DEV(dev, &link->dev);
drivers/net/ethernet/amd/nmclan_cs.c
680
nmclan_release(link);
drivers/net/ethernet/amd/nmclan_cs.c
684
static void nmclan_release(struct pcmcia_device *link)
drivers/net/ethernet/amd/nmclan_cs.c
686
dev_dbg(&link->dev, "nmclan_release\n");
drivers/net/ethernet/amd/nmclan_cs.c
687
pcmcia_disable_device(link);
drivers/net/ethernet/amd/nmclan_cs.c
690
static int nmclan_suspend(struct pcmcia_device *link)
drivers/net/ethernet/amd/nmclan_cs.c
692
struct net_device *dev = link->priv;
drivers/net/ethernet/amd/nmclan_cs.c
694
if (link->open)
drivers/net/ethernet/amd/nmclan_cs.c
700
static int nmclan_resume(struct pcmcia_device *link)
drivers/net/ethernet/amd/nmclan_cs.c
702
struct net_device *dev = link->priv;
drivers/net/ethernet/amd/nmclan_cs.c
704
if (link->open) {
drivers/net/ethernet/amd/nmclan_cs.c
722
struct pcmcia_device *link = &lp->link;
drivers/net/ethernet/amd/nmclan_cs.c
726
pcmcia_read_config_byte(link, CISREG_COR, &OrigCorValue);
drivers/net/ethernet/amd/nmclan_cs.c
729
dev_dbg(&link->dev, "nmclan_reset: OrigCorValue=0x%x, resetting...\n",
drivers/net/ethernet/amd/nmclan_cs.c
731
pcmcia_write_config_byte(link, CISREG_COR, COR_SOFT_RESET);
drivers/net/ethernet/amd/nmclan_cs.c
735
pcmcia_write_config_byte(link, CISREG_COR,
drivers/net/ethernet/amd/nmclan_cs.c
779
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/amd/nmclan_cs.c
781
if (!pcmcia_dev_present(link))
drivers/net/ethernet/amd/nmclan_cs.c
784
link->open++;
drivers/net/ethernet/amd/nmclan_cs.c
802
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/amd/nmclan_cs.c
804
dev_dbg(&link->dev, "%s: shutting down ethercard.\n", dev->name);
drivers/net/ethernet/amd/nmclan_cs.c
809
link->open--;
drivers/net/ethernet/amd/nmclan_cs.c
841
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/amd/nmclan_cs.c
846
pcmcia_reset_card(link->socket);
drivers/net/ethernet/amd/pcnet32.c
2161
netif_printk(lp, link, KERN_DEBUG, dev,
drivers/net/ethernet/amd/pcnet32.c
2250
netif_info(lp, link, dev, "Using PHY number %d\n", first_phy);
drivers/net/ethernet/amd/pcnet32.c
2812
netif_info(lp, link, dev, "Using PHY number %d\n",
drivers/net/ethernet/amd/pcnet32.c
2866
netif_info(lp, link, dev, "link down\n");
drivers/net/ethernet/amd/pcnet32.c
2892
netif_info(lp, link, dev, "link up\n");
drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
265
netif_dbg(pdata, link, netdev,
drivers/net/ethernet/amd/xgbe/xgbe-i2c.c
184
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-i2c.c
333
netif_dbg(pdata, link, pdata->netdev, "stopping I2C\n");
drivers/net/ethernet/amd/xgbe/xgbe-i2c.c
354
netif_dbg(pdata, link, pdata->netdev, "starting I2C\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1011
if (pdata->phy.link)
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1025
if (pdata->phy.link) {
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1047
if (pdata->phy_link != pdata->phy.link) {
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1049
pdata->phy_link = pdata->phy.link;
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1070
netif_dbg(pdata, link, pdata->netdev, "fixed PHY configuration\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1131
netif_dbg(pdata, link, pdata->netdev, "AN redriver support\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1133
netif_dbg(pdata, link, pdata->netdev, "AN PHY configuration\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1234
netif_dbg(pdata, link, pdata->netdev, "AN link timeout\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1299
pdata->phy.link = 0;
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1305
pdata->phy.link = pdata->phy_if.phy_impl.link_status(pdata,
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1308
if (pdata->phy.link < 0)
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1316
if (pdata->phy.link) {
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1348
netif_dbg(pdata, link, pdata->netdev, "stopping PHY\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1366
pdata->phy.link = 0;
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1376
netif_dbg(pdata, link, pdata->netdev, "starting PHY\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1559
pdata->phy.link = 0;
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
227
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
280
netif_dbg(pdata, link, pdata->netdev, "CL37 AN enabled/restarted\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
288
netif_dbg(pdata, link, pdata->netdev, "CL37 AN disabled\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
319
netif_dbg(pdata, link, pdata->netdev, "CL73 AN enabled/restarted\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
329
netif_dbg(pdata, link, pdata->netdev, "CL73 AN disabled\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
408
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
491
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
690
netif_dbg(pdata, link, pdata->netdev, "CL37 AN %s\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
700
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
727
netif_dbg(pdata, link, pdata->netdev, "CL37 AN result: %s\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
756
netif_dbg(pdata, link, pdata->netdev, "CL73 AN %s\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
779
netif_dbg(pdata, link, pdata->netdev, "%s successful\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
813
netif_dbg(pdata, link, pdata->netdev, "CL73 AN result: %s\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
899
netif_dbg(pdata, link, pdata->netdev, "CL37 AN (%s) initialized\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
956
netif_dbg(pdata, link, pdata->netdev, "CL73 AN initialized\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v1.c
249
netif_dbg(pdata, link, pdata->netdev, "SerDes rx/tx not ready (%#hx)\n",
drivers/net/ethernet/amd/xgbe/xgbe-phy-v1.c
298
netif_dbg(pdata, link, pdata->netdev, "10GbE KR mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v1.c
341
netif_dbg(pdata, link, pdata->netdev, "2.5GbE KX mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v1.c
384
netif_dbg(pdata, link, pdata->netdev, "1GbE KX mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
1975
if (!pdata->phy.link && !(reg & MDIO_STAT1_LSTATUS)) {
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
1985
netif_dbg(pdata, link, pdata->netdev, "Block_lock done");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2006
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2038
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2058
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2079
netif_err(pdata, link, pdata->netdev, "firmware mailbox reset performed\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2109
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2132
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2142
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2164
netif_dbg(pdata, link, pdata->netdev, "receiver reset complete\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2176
netif_dbg(pdata, link, pdata->netdev, "phy powered off\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2232
netif_dbg(pdata, link, pdata->netdev, "10GbE SFI mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2246
netif_dbg(pdata, link, pdata->netdev, "1GbE X mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2260
netif_dbg(pdata, link, pdata->netdev, "1GbE SGMII mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2274
netif_dbg(pdata, link, pdata->netdev, "100MbE SGMII mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2288
netif_dbg(pdata, link, pdata->netdev, "10MbE SGMII mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2307
netif_dbg(pdata, link, pdata->netdev, "10GbE KR mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2321
netif_dbg(pdata, link, pdata->netdev, "2.5GbE KX mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2335
netif_dbg(pdata, link, pdata->netdev, "1GbE KX mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2833
if (!phy_data->phydev->link)
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2846
if (!pdata->phy.link && !(reg & MDIO_STAT1_LSTATUS)) {
drivers/net/ethernet/amd/xgbe/xgbe.h
573
int link;
drivers/net/ethernet/apm/xgene-v2/mdio.c
68
if (phydev->link) {
drivers/net/ethernet/apm/xgene/xgene_enet_hw.c
800
if (phydev->link) {
drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c
539
u32 link, poll_interval;
drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c
541
link = xgene_enet_link_status(p);
drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c
542
if (link) {
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils.h
432
} link;
drivers/net/ethernet/arc/emac.h
158
unsigned int link;
drivers/net/ethernet/arc/emac_main.c
52
if (priv->link != phy_dev->link) {
drivers/net/ethernet/arc/emac_main.c
53
priv->link = phy_dev->link;
drivers/net/ethernet/asix/ax88796c_main.c
693
maccr = (ax_local->link) ? MACCR_RXEN : 0;
drivers/net/ethernet/asix/ax88796c_main.c
743
if (phydev->link && (ax_local->speed != phydev->speed ||
drivers/net/ethernet/asix/ax88796c_main.c
754
if (phydev->link != ax_local->link) {
drivers/net/ethernet/asix/ax88796c_main.c
755
if (!phydev->link) {
drivers/net/ethernet/asix/ax88796c_main.c
760
ax_local->link = phydev->link;
drivers/net/ethernet/asix/ax88796c_main.h
114
int link;
drivers/net/ethernet/atheros/ag71xx.c
1412
netif_err(ag, link, ndev, "phylink_of_phy_connect filed with err: %i\n",
drivers/net/ethernet/atheros/ag71xx.c
574
netif_err(ag, link, ndev, "MDIO operation timed out\n");
drivers/net/ethernet/atheros/ag71xx.c
601
netif_dbg(ag, link, ag->ndev, "mii_read: addr=%04x, reg=%04x, value=%04x\n",
drivers/net/ethernet/atheros/ag71xx.c
612
netif_dbg(ag, link, ag->ndev, "mii_write: addr=%04x, reg=%04x, value=%04x\n",
drivers/net/ethernet/atheros/alx/main.c
1317
netif_info(alx, link, alx->dev,
drivers/net/ethernet/atheros/alx/main.c
1328
netif_info(alx, link, alx->dev, "Link Down\n");
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
259
bool link;
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
262
link = atl1c_get_link_status(hw);
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
265
if (!link) {
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
309
bool link;
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
312
link = atl1c_get_link_status(&adapter->hw);
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
315
if (!link) {
drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
588
if (intf->old_link != phydev->link) {
drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
590
intf->old_link = phydev->link;
drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
630
if (phydev->link) {
drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
654
if (phydev->link)
drivers/net/ethernet/broadcom/b44.c
2205
if (bp->old_link != phydev->link) {
drivers/net/ethernet/broadcom/b44.c
2207
bp->old_link = phydev->link;
drivers/net/ethernet/broadcom/b44.c
2211
if (phydev->link) {
drivers/net/ethernet/broadcom/bcm63xx_enet.c
801
if (priv->old_link != phydev->link) {
drivers/net/ethernet/broadcom/bcm63xx_enet.c
803
priv->old_link = phydev->link;
drivers/net/ethernet/broadcom/bcm63xx_enet.c
807
if (phydev->link && phydev->duplex != priv->old_duplex) {
drivers/net/ethernet/broadcom/bcm63xx_enet.c
816
if (phydev->link && phydev->pause != priv->old_pause) {
drivers/net/ethernet/broadcom/bcm63xx_enet.c
838
pr_info("%s: link %s", dev->name, phydev->link ?
drivers/net/ethernet/broadcom/bcm63xx_enet.c
840
if (phydev->link)
drivers/net/ethernet/broadcom/bcmsysport.c
1390
if (priv->old_link != phydev->link) {
drivers/net/ethernet/broadcom/bcmsysport.c
1392
priv->old_link = phydev->link;
drivers/net/ethernet/broadcom/bcmsysport.c
1435
if (phydev->link) {
drivers/net/ethernet/broadcom/bgmac.c
1420
if (phy_dev->link) {
drivers/net/ethernet/broadcom/bgmac.c
1442
.link = 1,
drivers/net/ethernet/broadcom/bnx2.c
1889
u32 link;
drivers/net/ethernet/broadcom/bnx2.c
1892
link = bnx2_shmem_rd(bp, BNX2_RPHY_COPPER_LINK);
drivers/net/ethernet/broadcom/bnx2.c
1894
link = bnx2_shmem_rd(bp, BNX2_RPHY_SERDES_LINK);
drivers/net/ethernet/broadcom/bnx2.c
1896
if (link & BNX2_NETLINK_SET_LINK_ENABLE_AUTONEG) {
drivers/net/ethernet/broadcom/bnx2.c
1900
if (link & BNX2_NETLINK_SET_LINK_SPEED_10HALF)
drivers/net/ethernet/broadcom/bnx2.c
1902
if (link & BNX2_NETLINK_SET_LINK_SPEED_10FULL)
drivers/net/ethernet/broadcom/bnx2.c
1904
if (link & BNX2_NETLINK_SET_LINK_SPEED_100HALF)
drivers/net/ethernet/broadcom/bnx2.c
1906
if (link & BNX2_NETLINK_SET_LINK_SPEED_100FULL)
drivers/net/ethernet/broadcom/bnx2.c
1908
if (link & BNX2_NETLINK_SET_LINK_SPEED_1GFULL)
drivers/net/ethernet/broadcom/bnx2.c
1910
if (link & BNX2_NETLINK_SET_LINK_SPEED_2G5FULL)
drivers/net/ethernet/broadcom/bnx2.c
1916
if (link & BNX2_NETLINK_SET_LINK_SPEED_10) {
drivers/net/ethernet/broadcom/bnx2.c
1918
if (link & BNX2_NETLINK_SET_LINK_SPEED_10HALF)
drivers/net/ethernet/broadcom/bnx2.c
1921
if (link & BNX2_NETLINK_SET_LINK_SPEED_100) {
drivers/net/ethernet/broadcom/bnx2.c
1923
if (link & BNX2_NETLINK_SET_LINK_SPEED_100HALF)
drivers/net/ethernet/broadcom/bnx2.c
1926
if (link & BNX2_NETLINK_SET_LINK_SPEED_1GFULL)
drivers/net/ethernet/broadcom/bnx2.c
1928
if (link & BNX2_NETLINK_SET_LINK_SPEED_2G5FULL)
drivers/net/ethernet/broadcom/bnx2.c
4712
u32 link;
drivers/net/ethernet/broadcom/bnx2.c
4716
link = bnx2_shmem_rd(bp, BNX2_LINK_STATUS);
drivers/net/ethernet/broadcom/bnx2.c
4717
if (link & BNX2_LINK_STATUS_SERDES_LINK)
drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
1334
struct list_head link;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
12565
list_add_tail(&mc_mac->link, &p->mcast_list);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
12901
list_for_each_entry(vlan, &bp->vlan_reg, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
12962
list_add_tail(&vlan->link, &bp->vlan_reg);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
12979
list_for_each_entry(vlan, &bp->vlan_reg, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
12996
list_del(&vlan->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
8512
list_for_each_entry(vlan, &bp->vlan_reg, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1243
link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1245
*ppos = list_next_entry(*ppos, link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1250
if (list_is_last(&pos->link, &o->head))
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1280
list_for_each_entry(pos, &o->exe_queue, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1297
list_for_each_entry(pos, &o->exe_queue, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1315
list_for_each_entry(pos, &o->exe_queue, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
137
list_add_tail(&elem->link, &o->exe_queue);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
159
struct bnx2x_exeq_elem, link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
161
list_del(&elem->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1707
list_del(&pos->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1803
list_for_each_entry(elem, exe_chunk, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1825
list_add(&reg_elem->link, &cam_obj->head);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1854
list_for_each_entry(elem, exe_chunk, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1864
list_del(&reg_elem->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1878
list_for_each_entry(elem, exe_chunk, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
1893
list_del(&reg_elem->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2037
list_for_each_entry_safe(exeq_pos, exeq_pos_n, &exeq->exe_queue, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
204
link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2047
list_del(&exeq_pos->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2072
list_for_each_entry(pos, &o->head, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
213
list_add_tail(&spacer.link, &o->pending_comp);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
215
list_move_tail(&elem->link, &o->pending_comp);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
216
list_del(&spacer.link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2600
struct list_head link;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2606
struct list_head link;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2626
struct list_head link;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2730
list_for_each_entry(pos, &p->mcast_list, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2736
list_add_tail(&mac_elem->link,
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2762
list_add_tail(&new_cmd->link, &o->pending_cmds_head);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2943
link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
2953
list_del(&pmac_pos->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3031
link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3038
list_del(&pmac_pos->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3061
list_add_tail(&p_item->link , &cmd_pos->data.macs_head);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3101
link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3106
list_del(&p_item->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3126
link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3154
list_del(&cmd_pos->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3175
list_for_each_entry(mlist_pos, &p->mcast_list, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3496
list_for_each_entry(mlist_pos, &p->mcast_list, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3734
list_for_each_entry(elem, &o->registry.exact_match.macs, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3764
struct bnx2x_pending_mcast_cmd, link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3768
list_for_each_entry(pmac_pos, &cmd_pos->data.macs_head, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3793
list_del(&cmd_pos->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3863
list_add_tail(&elem->link,
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
3868
struct bnx2x_mcast_mac_elem, link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
622
list_for_each_entry(pos, &o->head, link) {
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
653
list_for_each_entry(pos, &o->head, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
669
list_for_each_entry(pos, &o->head, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
685
list_for_each_entry(pos, &o->head, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
706
list_for_each_entry(pos, &o->head, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
723
list_for_each_entry(pos, &o->head, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
740
list_for_each_entry(pos, &o->head, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
95
list_for_each_entry(elem, &o->exe_queue, link)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
154
struct list_head link;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
248
struct list_head link;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
509
struct list_head link;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
1134
pci_read_config_byte(dev, pos + PCI_SRIOV_FUNC_LINK, &iov->link);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
565
list_add_tail(&mc[i].link,
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h
57
u8 link; /* Function Dependency Link */
drivers/net/ethernet/broadcom/bnxt/bnxt.c
12198
link_info->phy_link_status = resp->link;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
12385
netif_info(bp, link, bp->dev, "Forcing FW speed2: %d\n",
drivers/net/ethernet/broadcom/bnxt/bnxt.h
1503
u8 link;
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
1227
if (phy_qcfg_resp.link !=
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
1229
phy_qcfg_resp.link =
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
1243
phy_qcfg_resp.link = PORT_PHY_QCFG_RESP_LINK_NO_LINK;
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
367
int bnxt_set_vf_link_state(struct net_device *dev, int vf_id, int link)
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
380
switch (link) {
drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c
260
if (dev->phydev->link)
drivers/net/ethernet/broadcom/genet/bcmmii.c
103
if (phydev->link) {
drivers/net/ethernet/broadcom/genet/bcmmii.c
126
status->link = !!(reg & MODE_LINK_STATUS);
drivers/net/ethernet/broadcom/genet/bcmmii.c
142
if (phydev->link)
drivers/net/ethernet/broadcom/genet/bcmmii.c
568
phydev->link = 0;
drivers/net/ethernet/broadcom/sb1250-mac.c
2362
link_chg = (sc->sbm_link != phy_dev->link);
drivers/net/ethernet/broadcom/sb1250-mac.c
2370
if (!phy_dev->link) {
drivers/net/ethernet/broadcom/sb1250-mac.c
2372
sc->sbm_link = phy_dev->link;
drivers/net/ethernet/broadcom/sb1250-mac.c
2400
sc->sbm_link = phy_dev->link;
drivers/net/ethernet/broadcom/tg3.c
1874
netif_info(tp, link, tp->dev, "Link is down\n");
drivers/net/ethernet/broadcom/tg3.c
2014
if (phydev->link) {
drivers/net/ethernet/broadcom/tg3.c
2068
if (phydev->link != tp->old_link ||
drivers/net/ethernet/broadcom/tg3.c
2074
tp->old_link = phydev->link;
drivers/net/ethernet/cadence/macb_main.c
541
state->link = !!(val & GEM_BIT(USX_BLOCK_LOCK));
drivers/net/ethernet/cadence/macb_main.c
564
state->link = 0;
drivers/net/ethernet/cadence/macb_main.c
894
state->link = (macb_readl(bp, NSR) & MACB_BIT(NSR_LINK)) != 0;
drivers/net/ethernet/cavium/liquidio/lio_core.c
524
lio->linfo.link.s.link_up &&
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1073
lio->linfo.link.u64 = resp->cfg_info.linfo.link.u64;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1383
if (linfo->link.s.duplex == 0) {
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
227
switch (linfo->link.s.phy_type) {
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
243
if (linfo->link.s.if_mode == INTERFACE_MODE_XAUI ||
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
244
linfo->link.s.if_mode == INTERFACE_MODE_RXAUI ||
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
245
linfo->link.s.if_mode == INTERFACE_MODE_XLAUI ||
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
246
linfo->link.s.if_mode == INTERFACE_MODE_XFI) {
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
251
linfo->link.s.if_mode);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
330
if (linfo->link.s.speed == 10000) {
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
352
if (linfo->link.s.speed == 25000) {
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
383
if (linfo->link.s.link_up) {
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
384
ecmd->base.speed = linfo->link.s.speed;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
385
ecmd->base.duplex = linfo->link.s.duplex;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
417
ecmd->base.duplex != linfo->link.s.duplex) ||
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
881
if (linfo->link.s.phy_type == LIO_PHY_PORT_TP &&
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
893
linfo->link.s.phy_type == LIO_PHY_PORT_TP &&
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
906
linfo->link.s.phy_type == LIO_PHY_PORT_TP &&
drivers/net/ethernet/cavium/liquidio/lio_main.c
1865
lio->linfo.link.s.link_up = 0;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2316
(!lio->linfo.link.s.link_up) ||
drivers/net/ethernet/cavium/liquidio/lio_main.c
2320
lio->linfo.link.s.link_up);
drivers/net/ethernet/cavium/liquidio/lio_main.c
2985
ivi->max_tx_rate = lio->linfo.link.s.speed;
drivers/net/ethernet/cavium/liquidio/lio_main.c
3553
lio->linfo.link.u64 = resp->cfg_info.linfo.link.u64;
drivers/net/ethernet/cavium/liquidio/lio_main.c
491
if (linfo->link.s.link_up) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
492
netif_info(lio, link, lio->netdev, "%d Mbps %s Duplex UP\n",
drivers/net/ethernet/cavium/liquidio/lio_main.c
493
linfo->link.s.speed,
drivers/net/ethernet/cavium/liquidio/lio_main.c
494
(linfo->link.s.duplex) ? "Full" : "Half");
drivers/net/ethernet/cavium/liquidio/lio_main.c
496
netif_info(lio, link, lio->netdev, "Link Down\n");
drivers/net/ethernet/cavium/liquidio/lio_main.c
515
dev_set_mtu(lio->netdev, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_main.c
564
int changed = (lio->linfo.link.u64 != ls->u64);
drivers/net/ethernet/cavium/liquidio/lio_main.c
565
int current_max_mtu = lio->linfo.link.s.mtu;
drivers/net/ethernet/cavium/liquidio/lio_main.c
569
__func__, lio->linfo.link.u64, ls->u64);
drivers/net/ethernet/cavium/liquidio/lio_main.c
570
lio->linfo.link.u64 = ls->u64;
drivers/net/ethernet/cavium/liquidio/lio_main.c
576
if (lio->linfo.link.s.link_up) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
585
if (lio->linfo.link.s.mtu != current_max_mtu) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
587
current_max_mtu, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_main.c
588
netdev->max_mtu = lio->linfo.link.s.mtu;
drivers/net/ethernet/cavium/liquidio/lio_main.c
590
if (lio->linfo.link.s.mtu < netdev->mtu) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
593
netdev->mtu, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1426
(!lio->linfo.link.s.link_up) || (skb->len <= 0)) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1428
lio->linfo.link.s.link_up);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
2068
lio->linfo.link.u64 = resp->cfg_info.linfo.link.u64;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
269
if (linfo->link.s.link_up) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
270
netif_info(lio, link, lio->netdev, "%d Mbps %s Duplex UP\n",
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
271
linfo->link.s.speed,
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
272
(linfo->link.s.duplex) ? "Full" : "Half");
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
274
netif_info(lio, link, lio->netdev, "Link Down\n");
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
293
dev_set_mtu(lio->netdev, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
342
int current_max_mtu = lio->linfo.link.s.mtu;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
345
if ((lio->intf_open) && (lio->linfo.link.u64 != ls->u64)) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
346
lio->linfo.link.u64 = ls->u64;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
351
if (lio->linfo.link.s.link_up) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
359
if (lio->linfo.link.s.mtu != current_max_mtu) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
362
current_max_mtu, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
363
netdev->max_mtu = lio->linfo.link.s.mtu;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
366
if (lio->linfo.link.s.mtu < netdev->mtu) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
369
netdev->mtu, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
968
lio->linfo.link.s.link_up = 0;
drivers/net/ethernet/cavium/liquidio/liquidio_common.h
767
union oct_link_status link;
drivers/net/ethernet/cavium/liquidio/octeon_network.h
596
if (lio->linfo.link.s.link_up) {
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
841
if (!phydev->link)
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
917
if (!phydev->link && p->last_link)
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
920
if (phydev->link &&
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
922
p->last_link != phydev->link ||
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
930
p->last_link = phydev->link;
drivers/net/ethernet/cavium/thunder/nic_main.c
930
struct bgx_link_status link;
drivers/net/ethernet/cavium/thunder/nic_main.c
940
bgx_get_lmac_link_state(nic->node, bgx, lmac, &link);
drivers/net/ethernet/cavium/thunder/nic_main.c
943
mbx.link_status.link_up = link.link_up;
drivers/net/ethernet/cavium/thunder/nic_main.c
944
mbx.link_status.duplex = link.duplex;
drivers/net/ethernet/cavium/thunder/nic_main.c
945
mbx.link_status.speed = link.speed;
drivers/net/ethernet/cavium/thunder/nic_main.c
946
mbx.link_status.mac_type = link.mac_type;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
207
struct bgx_link_status *link = (struct bgx_link_status *)status;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
216
link->mac_type = lmac->lmac_type;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
217
link->link_up = lmac->link_up;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
218
link->duplex = lmac->last_duplex;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
219
link->speed = lmac->last_speed;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
601
if (!phydev->link && lmac->last_link)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
604
if (phydev->link &&
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
606
lmac->last_link != phydev->link ||
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
611
lmac->last_link = phydev->link;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
3404
int link)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
3414
switch (link) {
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
3442
adap->vfinfo[vf].link_state = link;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
157
struct cxgb4_link *link;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
281
link = &t->table[link_uhtid - 1];
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
282
link->match_field = next[i].jump;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
283
link->link_handle = cls->knode.handle;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
284
memcpy(&link->fs, &fs, sizeof(fs));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
356
struct cxgb4_link *link = NULL;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
432
link = &t->table[uhtid - 1];
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
433
if (!link->link_handle)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
436
if (!test_bit(filter_id, link->tid_map))
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
444
if (link)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
445
clear_bit(filter_id, link->tid_map);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
451
link = &t->table[i];
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
453
if (link->link_handle == handle) {
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
455
if (!test_bit(j, link->tid_map))
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
462
clear_bit(j, link->tid_map);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
466
link->match_field = NULL;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
467
link->link_handle = 0;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
468
memset(&link->fs, 0, sizeof(link->fs));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
488
struct cxgb4_link *link = &t->table[i];
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
490
kvfree(link->tid_map);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
511
struct cxgb4_link *link = &t->table[i];
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
515
link->tid_map = kvcalloc(bmap_size, sizeof(unsigned long),
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
517
if (!link->tid_map)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
519
bitmap_zero(link->tid_map, max_tids);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
526
struct cxgb4_link *link = &t->table[i];
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
527
kvfree(link->tid_map);
drivers/net/ethernet/cortina/gemini.c
302
status.bits.link = phydev->link;
drivers/net/ethernet/cortina/gemini.h
852
unsigned int link:1;
drivers/net/ethernet/davicom/dm9051.c
1141
if (db->phydev->link) {
drivers/net/ethernet/dec/tulip/de2104x.c
1684
netif_info(de, link, dev, "link nway restart, status %x,%x\n",
drivers/net/ethernet/dec/tulip/de2104x.c
902
netif_info(de, link, de->dev, "link up, media %s\n",
drivers/net/ethernet/dec/tulip/de2104x.c
911
netif_info(de, link, de->dev, "link down\n");
drivers/net/ethernet/dec/tulip/de2104x.c
940
netif_info(de, link, de->dev, "set link %s\n", media_name[media]);
drivers/net/ethernet/dec/tulip/xircom_cb.c
1000
u8 link;
drivers/net/ethernet/dec/tulip/xircom_cb.c
1006
for (i = 0x100; i < 0x1f7; i += link + 2) {
drivers/net/ethernet/dec/tulip/xircom_cb.c
1012
link = xr32(CSR9);
drivers/net/ethernet/dec/tulip/xircom_cb.c
1027
} else if (link == 0) {
drivers/net/ethernet/engleder/tsnep_main.c
218
if (phydev->link)
drivers/net/ethernet/ethoc.c
676
if (priv->old_link != phydev->link) {
drivers/net/ethernet/ethoc.c
678
priv->old_link = phydev->link;
drivers/net/ethernet/faraday/ftgmac100.c
1444
if (!phydev->link)
drivers/net/ethernet/faraday/ftgmac100.c
68
.link = 1,
drivers/net/ethernet/freescale/enetc/enetc.h
546
void enetc_mm_link_state_update(struct enetc_ndev_priv *priv, bool link);
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1291
void enetc_mm_link_state_update(struct enetc_ndev_priv *priv, bool link)
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1300
if (link) {
drivers/net/ethernet/freescale/fec.h
628
int link;
drivers/net/ethernet/freescale/fec_main.c
1114
((fep->quirks & FEC_QUIRK_NO_HARD_RESET) && fep->link)) {
drivers/net/ethernet/freescale/fec_main.c
1323
if (fep->link)
drivers/net/ethernet/freescale/fec_main.c
1406
if (fep->link) {
drivers/net/ethernet/freescale/fec_main.c
2495
if (fec_enet_collect_events(fep) && fep->link) {
drivers/net/ethernet/freescale/fec_main.c
2651
fep->link = 0;
drivers/net/ethernet/freescale/fec_main.c
2652
} else if (phy_dev->link) {
drivers/net/ethernet/freescale/fec_main.c
2653
if (!fep->link) {
drivers/net/ethernet/freescale/fec_main.c
2654
fep->link = phy_dev->link;
drivers/net/ethernet/freescale/fec_main.c
2683
if (fep->link) {
drivers/net/ethernet/freescale/fec_main.c
2690
fep->link = phy_dev->link;
drivers/net/ethernet/freescale/fec_main.c
3034
fep->link = 0;
drivers/net/ethernet/freescale/fec_main.c
5574
fep->link = 0;
drivers/net/ethernet/freescale/fec_mpc52xx.c
172
if (phydev->link != PHY_DOWN) {
drivers/net/ethernet/freescale/fec_mpc52xx.c
200
if (priv->link == PHY_DOWN) {
drivers/net/ethernet/freescale/fec_mpc52xx.c
202
priv->link = phydev->link;
drivers/net/ethernet/freescale/fec_mpc52xx.c
205
} else if (priv->link) {
drivers/net/ethernet/freescale/fec_mpc52xx.c
207
priv->link = PHY_DOWN;
drivers/net/ethernet/freescale/fec_mpc52xx.c
71
enum phy_state link;
drivers/net/ethernet/freescale/gianfar.c
1483
if (phydev->link) {
drivers/net/ethernet/freescale/gianfar.c
1520
netif_warn(priv, link, priv->ndev,
drivers/net/ethernet/freescale/gianfar.c
1576
if (unlikely(phydev->link != priv->oldlink ||
drivers/net/ethernet/freescale/gianfar.c
1577
(phydev->link && (phydev->duplex != priv->oldduplex ||
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
1066
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
1070
if (!pcmcia_dev_present(link))
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
1073
link->open++;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
1091
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
1114
link->open--;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
232
static int fmvj18x_probe(struct pcmcia_device *link)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
237
dev_dbg(&link->dev, "fmvj18x_attach()\n");
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
244
link->priv = dev;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
245
lp->p_dev = link;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
249
link->resource[0]->end = 32;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
250
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
253
link->config_flags |= CONF_ENABLE_IRQ;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
260
return fmvj18x_config(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
265
static void fmvj18x_detach(struct pcmcia_device *link)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
267
struct net_device *dev = link->priv;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
269
dev_dbg(&link->dev, "fmvj18x_detach\n");
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
273
fmvj18x_release(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
280
static int mfc_try_io_port(struct pcmcia_device *link)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
287
link->resource[1]->start = serial_base[i];
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
288
link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
289
if (link->resource[1]->start == 0) {
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
290
link->resource[1]->end = 0;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
293
ret = pcmcia_request_io(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
300
static int ungermann_try_io_port(struct pcmcia_device *link)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
309
link->resource[0]->start = ioaddr;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
310
ret = pcmcia_request_io(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
313
link->config_index =
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
314
((link->resource[0]->start & 0x0f0) >> 3) | 0x22;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
326
static int fmvj18x_config(struct pcmcia_device *link)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
328
struct net_device *dev = link->priv;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
339
dev_dbg(&link->dev, "fmvj18x_config\n");
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
341
link->io_lines = 5;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
343
len = pcmcia_get_tuple(link, CISTPL_FUNCE, &buf);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
348
ret = pcmcia_loop_config(link, fmvj18x_ioprobe, NULL);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
352
switch (link->manf_id) {
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
355
if (link->card_id == PRODID_TDK_GN3410 ||
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
356
link->card_id == PRODID_TDK_NP9610 ||
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
357
link->card_id == PRODID_TDK_MN3200) {
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
359
link->config_base = 0x800;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
360
link->config_index = 0x47;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
361
link->resource[1]->end = 8;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
366
link->config_base = 0x800;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
367
link->config_index = 0x47;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
368
link->resource[1]->end = 8;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
372
link->config_base = 0x800;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
373
link->config_index = 0x47;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
374
link->resource[1]->end = 8;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
380
if (link->config_base == 0x0fe0)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
382
else if (link->card_id == PRODID_FUJITSU_MBH10302)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
386
else if (link->card_id == PRODID_FUJITSU_MBH10304)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
396
switch (link->manf_id) {
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
398
if (link->card_id == PRODID_FUJITSU_MBH10304) {
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
400
link->config_index = 0x20;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
403
link->config_index = 1;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
411
link->config_index = 1;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
415
if (link->resource[1]->end != 0) {
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
416
ret = mfc_try_io_port(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
419
ret = ungermann_try_io_port(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
422
ret = pcmcia_request_io(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
426
ret = pcmcia_request_irq(link, fjn_interrupt);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
429
ret = pcmcia_enable_device(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
433
dev->irq = link->irq;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
434
dev->base_addr = link->resource[0]->start;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
436
if (resource_size(link->resource[1]) != 0) {
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
437
ret = fmvj18x_setup_mfc(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
466
len = pcmcia_get_tuple(link, CISTPL_FUNCE, &buf);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
475
if (pcmcia_get_mac_from_cis(link, dev))
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
499
if (fmvj18x_get_hwinfo(link, buggybuf) == -1) {
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
517
SET_NETDEV_DEV(dev, &link->dev);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
532
fmvj18x_release(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
537
static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
543
link->resource[2]->flags |= WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
544
link->resource[2]->start = 0; link->resource[2]->end = 0;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
545
i = pcmcia_request_window(link, link->resource[2], 0);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
549
base = ioremap(link->resource[2]->start, resource_size(link->resource[2]));
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
551
pcmcia_release_window(link, link->resource[2]);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
555
pcmcia_map_mem_page(link, link->resource[2], 0);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
580
j = pcmcia_release_window(link, link->resource[2]);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
586
static int fmvj18x_setup_mfc(struct pcmcia_device *link)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
589
struct net_device *dev = link->priv;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
594
link->resource[3]->flags = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
595
link->resource[3]->start = link->resource[3]->end = 0;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
596
i = pcmcia_request_window(link, link->resource[3], 0);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
600
lp->base = ioremap(link->resource[3]->start,
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
601
resource_size(link->resource[3]));
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
607
i = pcmcia_map_mem_page(link, link->resource[3], 0);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
629
static void fmvj18x_release(struct pcmcia_device *link)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
632
struct net_device *dev = link->priv;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
636
dev_dbg(&link->dev, "fmvj18x_release\n");
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
644
pcmcia_disable_device(link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
648
static int fmvj18x_suspend(struct pcmcia_device *link)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
650
struct net_device *dev = link->priv;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
652
if (link->open)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
658
static int fmvj18x_resume(struct pcmcia_device *link)
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
660
struct net_device *dev = link->priv;
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
662
if (link->open) {
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
78
static int fmvj18x_config(struct pcmcia_device *link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
79
static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
80
static int fmvj18x_setup_mfc(struct pcmcia_device *link);
drivers/net/ethernet/fujitsu/fmvj18x_cs.c
81
static void fmvj18x_release(struct pcmcia_device *link);
drivers/net/ethernet/hisilicon/hibmcge/hbg_diagnose.c
278
link_status[0] = priv->mac.phydev->link;
drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c
146
if (!priv->mac.phydev->link)
drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c
168
if (phydev->link != priv->mac.link_status) {
drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c
169
if (phydev->link) {
drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c
191
priv->mac.link_status = phydev->link;
drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c
241
.link = 1,
drivers/net/ethernet/hisilicon/hisi_femac.c
195
if (phy->link)
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
113
if (*link_status && !mac_cb->link)
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
117
mac_cb->link = *link_status;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
1244
mac_cb->dsaf_dev->misc_op->cpld_set_led(mac_cb, (int)mac_cb->link,
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
568
mac_cb->link = 0;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
844
mac_cb->link = false;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
322
u8 link;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
59
u32 link, u32 port, u32 act)
drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
65
obj_args[0].integer.value = link;
drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
79
link, port, act);
drivers/net/ethernet/hisilicon/hns/hns_enet.c
1008
if (unlikely(priv->link && !netif_carrier_ok(ndev)))
drivers/net/ethernet/hisilicon/hns/hns_enet.c
1121
if (ndev->phydev->link == 0)
drivers/net/ethernet/hisilicon/hns/hns_enet.c
1140
if (state != priv->link) {
drivers/net/ethernet/hisilicon/hns/hns_enet.c
1149
priv->link = state;
drivers/net/ethernet/hisilicon/hns/hns_enet.c
1409
priv->link = 0;
drivers/net/ethernet/hisilicon/hns/hns_enet.c
1473
priv->link = 0;
drivers/net/ethernet/hisilicon/hns/hns_enet.h
72
int link;
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
41
u32 link_stat = priv->link;
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
48
link_stat = net_dev->phydev->link;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
10996
if (!phydev->link)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2974
mac->link = 0;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3063
if (phydev && (phydev->state != PHY_RUNNING || !phydev->link))
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3110
if (state != hdev->hw.mac.link) {
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3111
hdev->hw.mac.link = state;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3500
return hdev->hw.mac.link;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
7684
if (phydev->link == link_ret)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
8066
hdev->hw.mac.link = 0;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
298
int link; /* store the link status of mac & phy (if phy exists) */
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
585
link_status = (u16)hdev->hw.mac.link;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
184
if (netdev->phydev->link == 0)
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
3214
return hdev->hw.mac.link;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
419
if (link_state != hdev->hw.mac.link) {
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
420
hdev->hw.mac.link = link_state;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
147
int link;
drivers/net/ethernet/huawei/hinic/hinic_main.c
1008
link_status->link);
drivers/net/ethernet/huawei/hinic/hinic_main.c
1038
netif_info(nic_dev, link, nic_dev->netdev,
drivers/net/ethernet/huawei/hinic/hinic_main.c
974
if (link_status->link == HINIC_LINK_STATE_UP) {
drivers/net/ethernet/huawei/hinic/hinic_port.h
189
u8 link;
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
1013
int hinic_ndo_set_vf_link_state(struct net_device *netdev, int vf_id, int link)
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
1027
OS_VF_ID_TO_HW(vf_id), link);
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
56
struct hinic_port_link_status link = {0};
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
57
u16 out_size = sizeof(link);
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
61
link.link = link_status;
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
62
link.func_id = hinic_glb_pf_vf_offset(hwdev->hwif) + vf_id;
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
65
&link, sizeof(link),
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
66
&link, &out_size, 0);
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
67
if (err || !out_size || link.status)
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
71
link.status, out_size);
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
980
int link)
drivers/net/ethernet/huawei/hinic/hinic_sriov.c
986
switch (link) {
drivers/net/ethernet/huawei/hinic/hinic_sriov.h
94
int hinic_ndo_set_vf_link_state(struct net_device *netdev, int vf_id, int link);
drivers/net/ethernet/ibm/ehea/ehea_main.c
1166
netif_info(port, link, dev,
drivers/net/ethernet/ibm/ehea/ehea_main.c
1177
netif_info(port, link, dev,
drivers/net/ethernet/ibm/ehea/ehea_main.c
1185
netif_info(port, link, dev,
drivers/net/ethernet/ibm/ehea/ehea_main.c
1191
netif_info(port, link, dev,
drivers/net/ethernet/ibm/emac/core.c
2515
return ndev->phydev->link;
drivers/net/ethernet/ibm/emac/core.c
570
int tx_size, rx_size, link = netif_carrier_ok(dev->ndev);
drivers/net/ethernet/ibm/emac/core.c
575
if (!link) {
drivers/net/ethernet/ibm/emac/core.c
586
link, dev->phy.duplex, dev->phy.pause, dev->phy.asym_pause);
drivers/net/ethernet/ibm/emac/core.c
593
if (!link)
drivers/net/ethernet/intel/e100.c
1890
cb->link = cpu_to_le32(nic->cbs_dma_addr +
drivers/net/ethernet/intel/e100.c
1938
put_unaligned_le32(rx->dma_addr, &prev_rfd->link);
drivers/net/ethernet/intel/e100.c
409
__le32 link;
drivers/net/ethernet/intel/e100.c
476
__le32 link;
drivers/net/ethernet/intel/e1000/e1000_main.c
2435
u32 link, tctl;
drivers/net/ethernet/intel/e1000/e1000_main.c
2437
link = e1000_has_link(adapter);
drivers/net/ethernet/intel/e1000/e1000_main.c
2438
if ((netif_carrier_ok(netdev)) && link)
drivers/net/ethernet/intel/e1000/e1000_main.c
2441
if (link) {
drivers/net/ethernet/intel/e1000e/80003es2lan.c
524
bool link;
drivers/net/ethernet/intel/e1000e/80003es2lan.c
559
100000, &link);
drivers/net/ethernet/intel/e1000e/80003es2lan.c
563
if (!link) {
drivers/net/ethernet/intel/e1000e/80003es2lan.c
574
100000, &link);
drivers/net/ethernet/intel/e1000e/ethtool.c
1439
int link;
drivers/net/ethernet/intel/e1000e/ethtool.c
1454
link = (er32(STATUS) & E1000_STATUS_LU);
drivers/net/ethernet/intel/e1000e/ethtool.c
1456
if (!link) {
drivers/net/ethernet/intel/e1000e/ich8lan.c
1004
static s32 e1000_k1_workaround_lpt_lp(struct e1000_hw *hw, bool link)
drivers/net/ethernet/intel/e1000e/ich8lan.c
1011
if (link && (status & E1000_STATUS_SPEED_1000)) {
drivers/net/ethernet/intel/e1000e/ich8lan.c
1044
if ((hw->phy.revision > 5) || !link ||
drivers/net/ethernet/intel/e1000e/ich8lan.c
1098
static s32 e1000_platform_pm_pch_lpt(struct e1000_hw *hw, bool link)
drivers/net/ethernet/intel/e1000e/ich8lan.c
1100
u32 reg = link << (E1000_LTRV_REQ_SHIFT + E1000_LTRV_NOSNOOP_SHIFT) |
drivers/net/ethernet/intel/e1000e/ich8lan.c
1101
link << E1000_LTRV_REQ_SHIFT | E1000_LTRV_SEND;
drivers/net/ethernet/intel/e1000e/ich8lan.c
1106
if (link) {
drivers/net/ethernet/intel/e1000e/ich8lan.c
128
static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link);
drivers/net/ethernet/intel/e1000e/ich8lan.c
1526
bool link;
drivers/net/ethernet/intel/e1000e/ich8lan.c
1542
ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link);
drivers/net/ethernet/intel/e1000e/ich8lan.c
1547
ret_val = e1000_k1_gig_workaround_hv(hw, link);
drivers/net/ethernet/intel/e1000e/ich8lan.c
1556
if ((hw->mac.type >= e1000_pch2lan) && link) {
drivers/net/ethernet/intel/e1000e/ich8lan.c
1680
ret_val = e1000_k1_workaround_lpt_lp(hw, link);
drivers/net/ethernet/intel/e1000e/ich8lan.c
1688
ret_val = e1000_platform_pm_pch_lpt(hw, link);
drivers/net/ethernet/intel/e1000e/ich8lan.c
1712
if (!link)
drivers/net/ethernet/intel/e1000e/ich8lan.c
2366
static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link)
drivers/net/ethernet/intel/e1000e/ich8lan.c
2381
if (link) {
drivers/net/ethernet/intel/e1000e/ich8lan.c
5345
bool link;
drivers/net/ethernet/intel/e1000e/ich8lan.c
5354
ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link);
drivers/net/ethernet/intel/e1000e/ich8lan.c
5355
if (!link)
drivers/net/ethernet/intel/e1000e/mac.c
411
bool link;
drivers/net/ethernet/intel/e1000e/mac.c
426
ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link);
drivers/net/ethernet/intel/e1000e/mac.c
427
if (ret_val || !link)
drivers/net/ethernet/intel/e1000e/netdev.c
5219
u32 link, tctl, pcim_state;
drivers/net/ethernet/intel/e1000e/netdev.c
5224
link = e1000e_has_link(adapter);
drivers/net/ethernet/intel/e1000e/netdev.c
5225
if ((netif_carrier_ok(netdev)) && link) {
drivers/net/ethernet/intel/e1000e/netdev.c
5237
if (link) {
drivers/net/ethernet/intel/e1000e/phy.c
1182
bool link;
drivers/net/ethernet/intel/e1000e/phy.c
1207
&link);
drivers/net/ethernet/intel/e1000e/phy.c
1211
if (link) {
drivers/net/ethernet/intel/e1000e/phy.c
1235
bool link;
drivers/net/ethernet/intel/e1000e/phy.c
1269
100000, &link);
drivers/net/ethernet/intel/e1000e/phy.c
1273
if (!link)
drivers/net/ethernet/intel/e1000e/phy.c
1278
100000, &link);
drivers/net/ethernet/intel/e1000e/phy.c
1299
bool link;
drivers/net/ethernet/intel/e1000e/phy.c
1336
100000, &link);
drivers/net/ethernet/intel/e1000e/phy.c
1340
if (!link) {
drivers/net/ethernet/intel/e1000e/phy.c
1359
100000, &link);
drivers/net/ethernet/intel/e1000e/phy.c
1406
bool link;
drivers/net/ethernet/intel/e1000e/phy.c
1438
100000, &link);
drivers/net/ethernet/intel/e1000e/phy.c
1442
if (!link)
drivers/net/ethernet/intel/e1000e/phy.c
1447
100000, &link);
drivers/net/ethernet/intel/e1000e/phy.c
1933
bool link;
drivers/net/ethernet/intel/e1000e/phy.c
1940
ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link);
drivers/net/ethernet/intel/e1000e/phy.c
1944
if (!link) {
drivers/net/ethernet/intel/e1000e/phy.c
2004
bool link;
drivers/net/ethernet/intel/e1000e/phy.c
2006
ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link);
drivers/net/ethernet/intel/e1000e/phy.c
2010
if (!link) {
drivers/net/ethernet/intel/e1000e/phy.c
2062
bool link;
drivers/net/ethernet/intel/e1000e/phy.c
2064
ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link);
drivers/net/ethernet/intel/e1000e/phy.c
2068
if (!link) {
drivers/net/ethernet/intel/e1000e/phy.c
3165
bool link;
drivers/net/ethernet/intel/e1000e/phy.c
3183
100000, &link);
drivers/net/ethernet/intel/e1000e/phy.c
3187
if (!link)
drivers/net/ethernet/intel/e1000e/phy.c
3192
100000, &link);
drivers/net/ethernet/intel/e1000e/phy.c
3212
bool link;
drivers/net/ethernet/intel/e1000e/phy.c
3214
ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link);
drivers/net/ethernet/intel/e1000e/phy.c
3218
if (!link) {
drivers/net/ethernet/intel/i40e/i40e_common.c
1294
bool enable_lse, struct i40e_link_status *link,
drivers/net/ethernet/intel/i40e/i40e_common.c
1370
if (link)
drivers/net/ethernet/intel/i40e/i40e_common.c
1371
*link = *hw_link_info;
drivers/net/ethernet/intel/i40e/i40e_prototype.h
109
bool enable_lse, struct i40e_link_status *link,
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
4795
int i40e_ndo_set_vf_link_state(struct net_device *netdev, int vf_id, int link)
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
4833
if (link == old_link)
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
4839
switch (link) {
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h
146
int i40e_ndo_set_vf_link_state(struct net_device *netdev, int vf_id, int link);
drivers/net/ethernet/intel/ice/ice_common.c
650
struct ice_link_status *link, struct ice_sq_cd *cd)
drivers/net/ethernet/intel/ice/ice_common.c
732
if (link)
drivers/net/ethernet/intel/ice/ice_common.c
733
*link = *li;
drivers/net/ethernet/intel/ice/ice_common.h
223
struct ice_link_status *link, struct ice_sq_cd *cd);
drivers/net/ethernet/intel/ice/ice_lag.c
1465
bool link)
drivers/net/ethernet/intel/ice/ice_lag.c
1483
if (!link && local_lag->bond_swid) {
drivers/net/ethernet/intel/ice/ice_lag.c
1492
if (link) {
drivers/net/ethernet/intel/ice/ice_lag.c
1512
if (link)
drivers/net/ethernet/intel/ice/ice_lag.c
1547
static void ice_lag_primary_swid(struct ice_lag *lag, bool link)
drivers/net/ethernet/intel/ice/ice_lag.c
1552
if (ice_share_res(hw, ICE_AQC_RES_TYPE_SWID, link, swid))
drivers/net/ethernet/intel/ice/ice_lag.c
1887
if (b_info->slave.link == BOND_LINK_UP) {
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3061
enum ice_ptp_link_spd link;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3081
link = ICE_PTP_LNK_SPD_25G_RS;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3084
link = ICE_PTP_LNK_SPD_50G_RS;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3087
link = ICE_PTP_LNK_SPD_100G_RS;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3095
link = ICE_PTP_LNK_SPD_1G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3098
link = ICE_PTP_LNK_SPD_10G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3101
link = ICE_PTP_LNK_SPD_25G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3104
link = ICE_PTP_LNK_SPD_40G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3107
link = ICE_PTP_LNK_SPD_50G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3115
*link_out = link;
drivers/net/ethernet/intel/idpf/idpf_txrx.c
3841
static void idpf_q_vector_set_napi(struct idpf_q_vector *q_vector, bool link)
drivers/net/ethernet/intel/idpf/idpf_txrx.c
3843
struct napi_struct *napi = link ? &q_vector->napi : NULL;
drivers/net/ethernet/intel/igb/e1000_mac.c
611
bool link;
drivers/net/ethernet/intel/igb/e1000_mac.c
627
ret_val = igb_phy_has_link(hw, 1, 0, &link);
drivers/net/ethernet/intel/igb/e1000_mac.c
631
if (!link)
drivers/net/ethernet/intel/igb/e1000_phy.c
1084
bool link;
drivers/net/ethernet/intel/igb/e1000_phy.c
1108
ret_val = igb_phy_has_link(hw, COPPER_LINK_UP_LIMIT, 10, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
1112
if (link) {
drivers/net/ethernet/intel/igb/e1000_phy.c
1137
bool link;
drivers/net/ethernet/intel/igb/e1000_phy.c
1170
ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 10000, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
1174
if (!link)
drivers/net/ethernet/intel/igb/e1000_phy.c
1178
ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 10000, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
1202
bool link;
drivers/net/ethernet/intel/igb/e1000_phy.c
1241
ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 100000, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
1245
if (!link) {
drivers/net/ethernet/intel/igb/e1000_phy.c
1280
100000, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
1913
bool link;
drivers/net/ethernet/intel/igb/e1000_phy.c
1921
ret_val = igb_phy_has_link(hw, 1, 0, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
1925
if (!link) {
drivers/net/ethernet/intel/igb/e1000_phy.c
1989
bool link;
drivers/net/ethernet/intel/igb/e1000_phy.c
1991
ret_val = igb_phy_has_link(hw, 1, 0, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
1995
if (!link) {
drivers/net/ethernet/intel/igb/e1000_phy.c
2448
bool link;
drivers/net/ethernet/intel/igb/e1000_phy.c
2480
ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 100000, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
2484
if (!link)
drivers/net/ethernet/intel/igb/e1000_phy.c
2488
ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 100000, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
2511
bool link;
drivers/net/ethernet/intel/igb/e1000_phy.c
2513
ret_val = igb_phy_has_link(hw, 1, 0, &link);
drivers/net/ethernet/intel/igb/e1000_phy.c
2517
if (!link) {
drivers/net/ethernet/intel/igb/igb_main.c
5571
u32 link;
drivers/net/ethernet/intel/igb/igb_main.c
5576
link = igb_has_link(adapter);
drivers/net/ethernet/intel/igb/igb_main.c
5582
link = false;
drivers/net/ethernet/intel/igb/igb_main.c
5590
link = 0;
drivers/net/ethernet/intel/igb/igb_main.c
5593
if (link) {
drivers/net/ethernet/intel/igbvf/netdev.c
1910
u32 link;
drivers/net/ethernet/intel/igbvf/netdev.c
1913
link = igbvf_has_link(adapter);
drivers/net/ethernet/intel/igbvf/netdev.c
1915
if (link) {
drivers/net/ethernet/intel/igc/igc_i225.c
560
s32 igc_set_ltr_i225(struct igc_hw *hw, bool link)
drivers/net/ethernet/intel/igc/igc_i225.c
567
if (link) {
drivers/net/ethernet/intel/igc/igc_i225.h
14
s32 igc_set_ltr_i225(struct igc_hw *hw, bool link);
drivers/net/ethernet/intel/igc/igc_mac.c
358
bool link = false;
drivers/net/ethernet/intel/igc/igc_mac.c
375
ret_val = igc_phy_has_link(hw, 1, 0, &link);
drivers/net/ethernet/intel/igc/igc_mac.c
379
if (!link)
drivers/net/ethernet/intel/igc/igc_mac.c
408
ret_val = igc_set_ltr_i225(hw, link);
drivers/net/ethernet/intel/igc/igc_main.c
5841
u32 link;
drivers/net/ethernet/intel/igc/igc_main.c
5844
link = igc_has_link(adapter);
drivers/net/ethernet/intel/igc/igc_main.c
5850
link = false;
drivers/net/ethernet/intel/igc/igc_main.c
5853
if (link) {
drivers/net/ethernet/intel/igc/igc_phy.c
495
bool link;
drivers/net/ethernet/intel/igc/igc_phy.c
507
ret_val = igc_phy_has_link(hw, COPPER_LINK_UP_LIMIT, 10, &link);
drivers/net/ethernet/intel/igc/igc_phy.c
511
if (link) {
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1045
memcpy(hw->link.link_info.module_type, &pcaps->module_type,
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1046
sizeof(hw->link.link_info.module_type));
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1197
hw_link_info = &hw->link.link_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1279
li = &hw->link.link_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1320
if (hw->link.get_link_info) {
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1327
*link_up = hw->link.link_info.link_info & IXGBE_ACI_LINK_UP;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1345
struct ixgbe_link_status *link)
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1359
li_old = &hw->link.link_info_old;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1360
li = &hw->link.link_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1406
if (link)
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1407
*link = *li;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1410
hw->link.get_link_info = false;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1543
if (!(hw->link.link_info.link_info & IXGBE_ACI_LINK_UP) &&
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1544
(hw->link.link_info.link_info & IXGBE_ACI_MEDIA_AVAILABLE)) {
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1556
hw->link.link_info.phy_type_high =
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1558
hw->link.link_info.phy_type_low = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1562
hw->link.link_info.phy_type_low =
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1564
hw->link.link_info.phy_type_high = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1617
hw->link.get_link_info = true;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1628
hw->link.get_link_info = true;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1643
switch (hw->link.link_info.link_speed) {
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1797
if (!(hw->link.link_info.link_info & IXGBE_ACI_LINK_UP))
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1801
if (!(hw->link.link_info.an_info & IXGBE_ACI_AN_COMPLETED))
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
2010
(hw->link.link_info.link_info & IXGBE_ACI_MEDIA_AVAILABLE);
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
2018
module_type = hw->link.link_info.module_type[IXGBE_ACI_MOD_TYPE_IDENT];
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
2059
if (!(hw->link.link_info.link_info & IXGBE_ACI_MEDIA_AVAILABLE))
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.h
36
struct ixgbe_link_status *link);
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
149
bool link = adapter->link_up;
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
178
if (!link) {
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
202
if (!link) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
10327
struct ixgbe_jump_table *link = adapter->jump_tables[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
10329
if (link && (test_bit(loc - 1, link->child_loc_map))) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11611
hw->link.ops = *ii->link_ops;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
3245
ixgbe_check_link_cfg_err(adapter, hw->link.link_info.link_cfg_err);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
3250
if (hw->link.link_info.link_info & IXGBE_ACI_LINK_UP)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
3255
!(hw->link.link_info.link_info & IXGBE_ACI_MEDIA_AVAILABLE))
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
3517
e_info(link, "Received ECC Err, initiating reset\n");
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
3759
e_info(link, "Received ECC Err, initiating reset\n");
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5556
int link, tc, kb, marker;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5560
tc = link = dev->mtu + ETH_HLEN + ETH_FCS_LEN + IXGBE_ETH_FRAMING;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5576
dv_id = IXGBE_DV_X540(link, tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5579
dv_id = IXGBE_DV(link, tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6071
ixgbe_check_link_cfg_err(adapter, hw->link.link_info.link_cfg_err);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6073
if (hw->link.link_info.link_info & IXGBE_ACI_MEDIA_AVAILABLE) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7447
adapter->hw.link.link_info.link_cfg_err);
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
3730
struct ixgbe_link_info link;
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
111
return hw->link.ops.write_link_unlocked(hw, hw->link.addr, reg, value);
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
1682
status = hw->link.ops.write_link(hw, hw->link.addr, reg_slice,
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
21
struct ixgbe_link_info *link = &hw->link;
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
29
link->addr = IXGBE_CS4227;
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
98
return hw->link.ops.read_link_unlocked(hw, hw->link.addr, reg, value);
drivers/net/ethernet/jme.c
541
netif_info(jme, link, jme->dev, "Link is up at %s\n", linkmsg);
drivers/net/ethernet/jme.c
547
netif_info(jme, link, jme->dev, "Link is down\n");
drivers/net/ethernet/korina.c
1000
lp->td_ring[i].link = 0;
drivers/net/ethernet/korina.c
1021
lp->rd_ring[i].link = korina_rx_dma(lp, i + 1);
drivers/net/ethernet/korina.c
1026
lp->rd_ring[i - 1].link = lp->rd_dma;
drivers/net/ethernet/korina.c
253
u32 link; /* Next descriptor in chain. */
drivers/net/ethernet/korina.c
482
lp->td_ring[chain_prev].link = korina_tx_dma(lp, idx);
drivers/net/ethernet/korina.c
506
lp->td_ring[chain_prev].link = korina_tx_dma(lp, idx);
drivers/net/ethernet/korina.c
830
lp->td_ring[lp->tx_next_done].link = 0;
drivers/net/ethernet/marvell/mvneta.c
4013
state->link = !!(gmac_stat & MVNETA_GMAC_LINK_UP);
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
3423
struct phylink_pcs *pcs, bool link)
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
3428
phylink_pcs_change(pcs, link);
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
3435
if (link) {
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
3454
bool link;
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
3460
link = (val & MVPP22_XLG_STATUS_LINK_UP);
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
3461
mvpp2_isr_handle_link(port, &port->pcs_xlg, link);
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
3467
bool link;
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
3476
link = (val & MVPP2_GMAC_STATUS0_LINK_UP);
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
3477
mvpp2_isr_handle_link(port, &port->pcs_gmac, link);
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
6251
state->link = !!(val & MVPP22_XLG_STATUS_LINK_UP);
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
6307
state->link = !!(val & MVPP2_GMAC_STATUS0_LINK_UP);
drivers/net/ethernet/marvell/octeon_ep/octep_cn9k_pf.c
204
u8 link = 0;
drivers/net/ethernet/marvell/octeon_ep/octep_cn9k_pf.c
251
&link);
drivers/net/ethernet/marvell/octeon_ep/octep_cn9k_pf.c
252
link = PCI_DEVFN(PCI_SLOT(oct->pdev->devfn), link);
drivers/net/ethernet/marvell/octeon_ep/octep_cn9k_pf.c
256
(link * CTRL_MBOX_SZ);
drivers/net/ethernet/marvell/octeon_ep/octep_cnxk_pf.c
228
u8 link = 0;
drivers/net/ethernet/marvell/octeon_ep/octep_cnxk_pf.c
272
&link);
drivers/net/ethernet/marvell/octeon_ep/octep_cnxk_pf.c
273
link = PCI_DEVFN(PCI_SLOT(oct->pdev->devfn), link);
drivers/net/ethernet/marvell/octeon_ep/octep_cnxk_pf.c
277
(link * CTRL_MBOX_SZ);
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
135
req->link.cmd = OCTEP_CTRL_NET_CMD_GET;
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
140
return d.data.resp.link.state;
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
151
req->link.cmd = OCTEP_CTRL_NET_CMD_SET;
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
152
req->link.state = (up) ? OCTEP_CTRL_NET_STATE_UP :
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
166
req->link.cmd = OCTEP_CTRL_NET_CMD_SET;
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
167
req->link.state = (up) ? OCTEP_CTRL_NET_STATE_UP :
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
181
req->link.cmd = OCTEP_CTRL_NET_CMD_GET;
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
341
if (req->link.state) {
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.h
143
struct octep_ctrl_net_h2f_req_cmd_state link;
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.h
200
struct octep_ctrl_net_h2f_resp_cmd_state link;
drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.h
218
struct octep_ctrl_net_f2h_req_cmd_state link;
drivers/net/ethernet/marvell/octeon_ep/octep_pfvf_mbox.c
398
notif.s_link_status.status = req->link.state;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
457
int link, nix_link = 0;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
467
for (link = 0; link < hw->cgx_links; link++, nix_link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
477
for (link = 0; link < hw->lbk_links; link++, nix_link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
487
for (link = 0; link < hw->sdp_links; link++, nix_link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
497
for (link = 0; link < hw->cpt_links; link++, nix_link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1767
int blkaddr, link, link_level;
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1856
for (link = 0; link < hw->cgx_links; link++)
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1859
schq, link,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1861
NIX_AF_TL3_TL2X_LINKX_CFG(schq, link)));
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1894
for (link = 0; link < hw->cgx_links; link++)
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1897
schq, link, rvu_read64(rvu, blkaddr,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1898
NIX_AF_TL3_TL2X_LINKX_CFG(schq, link)));
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2004
int link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2019
for (link = 0; link < (hw->cgx_links + hw->lbk_links); link++)
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2021
NIX_AF_TL3_TL2X_LINKX_CFG(schq, link), 0x00);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2076
int link, int *start, int *end)
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2083
*start = hw->cap.nix_txsch_per_cgx_lmac * link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2086
*start = hw->cap.nix_txsch_per_cgx_lmac * link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2102
int link, start, end;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2110
link = nix_get_tx_link(rvu, pcifunc);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2121
nix_get_txschq_range(rvu, pcifunc, link, &start, &end);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2234
int link, blkaddr, rc = 0;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2272
link = nix_get_tx_link(rvu, pcifunc);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2275
start = link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2276
end = link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2278
nix_get_txschq_range(rvu, pcifunc, link, &start, &end);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2440
u8 link, link_level;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2473
link = smq_flush_ctx->smq_tree_ctx[NIX_TXSCH_LVL_TL1].schq;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2483
NIX_AF_TL3_TL2X_LINKX_CFG(tl2_tl3_link_schq, link));
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2489
NIX_AF_TL3_TL2X_LINKX_CFG(tl2_tl3_link_schq, link), cfg);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2510
NIX_AF_TL3_TL2X_LINKX_CFG(tl2_tl3_link_schq, link));
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2513
NIX_AF_TL3_TL2X_LINKX_CFG(tl2_tl3_link_schq, link), cfg);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4615
int blkaddr, link = -1;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4645
link = hw->cgx_links + hw->lbk_links;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4653
link = (cgx * hw->lmac_per_cgx) + lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4657
link = hw->cgx_links + pfvf->lbkid;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4659
link = hw->cgx_links + 0;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4662
if (link < 0)
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4668
cfg = rvu_read64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link));
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4672
rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link), cfg);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4723
int cgx, lmac_cnt, slink, link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4742
for (link = 0; link < hw->cgx_links; link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4743
rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link),
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4747
for (link = hw->cgx_links; link < hw->lbk_links; link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4748
rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link),
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4752
link = hw->cgx_links + hw->lbk_links;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4753
rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link),
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4788
link = iter + slink;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4789
nix_hw->tx_credits[link] = tx_credits;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4791
NIX_AF_TX_LINKX_NORM_CREDIT(link), cfg);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4797
for (link = slink; link < (slink + hw->lbk_links); link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4799
nix_hw->tx_credits[link] = tx_credits;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4803
NIX_AF_TX_LINKX_NORM_CREDIT(link), tx_credits);
drivers/net/ethernet/marvell/prestera/prestera_hw.c
1145
.link = {
drivers/net/ethernet/marvell/prestera/prestera_hw.c
1201
.link = {
drivers/net/ethernet/marvell/prestera/prestera_hw.c
1212
req.param.link.phy.mdix = prestera_hw_mdix_from_eth(mdix);
drivers/net/ethernet/marvell/prestera/prestera_hw.c
331
} link;
drivers/net/ethernet/marvell/prestera/prestera_main.c
293
state->link = smac.oper ? 1 : 0;
drivers/net/ethernet/marvell/prestera/prestera_main.c
299
state->link = 0;
drivers/net/ethernet/marvell/skge.c
1063
netif_info(skge, link, skge->netdev,
drivers/net/ethernet/marvell/skge.c
1076
netif_info(skge, link, skge->netdev, "Link is down\n");
drivers/net/ethernet/marvell/sky2.c
2196
netif_info(sky2, link, sky2->netdev,
drivers/net/ethernet/marvell/sky2.c
2220
netif_info(sky2, link, sky2->netdev, "Link is down\n");
drivers/net/ethernet/mediatek/mtk_star_emac.c
273
unsigned int link;
drivers/net/ethernet/mediatek/mtk_star_emac.c
915
if (phydev->link) {
drivers/net/ethernet/mediatek/mtk_star_emac.c
916
if (!priv->link) {
drivers/net/ethernet/mediatek/mtk_star_emac.c
917
priv->link = phydev->link;
drivers/net/ethernet/mediatek/mtk_star_emac.c
931
if (priv->link) {
drivers/net/ethernet/mediatek/mtk_star_emac.c
932
priv->link = phydev->link;
drivers/net/ethernet/mediatek/mtk_star_emac.c
938
if (phydev->link)
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2974
__s8 link = bonding_info->slave.link;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2980
if ((link == BOND_LINK_UP) ||
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
2981
(link == BOND_LINK_FAIL)) {
drivers/net/ethernet/mellanox/mlx4/mcg.c
1113
int link = 0;
drivers/net/ethernet/mellanox/mlx4/mcg.c
1136
link = 1;
drivers/net/ethernet/mellanox/mlx4/mcg.c
1177
if (!link)
drivers/net/ethernet/mellanox/mlx4/mcg.c
1200
if (err && link && index != -1) {
drivers/net/ethernet/mellanox/mlx5/core/en/port.c
315
#define MLX5E_FEC_OVERRIDE_ADMIN_POLICY(buf, policy, write, link) \
drivers/net/ethernet/mellanox/mlx5/core/en/port.c
321
MLX5_SET(pplm_reg, _buf, fec_override_admin_##link, *_policy); \
drivers/net/ethernet/mellanox/mlx5/core/en/port.c
323
*_policy = MLX5_GET(pplm_reg, _buf, fec_override_admin_##link); \
drivers/net/ethernet/mellanox/mlx5/core/en/port.c
401
#define MLX5E_GET_FEC_OVERRIDE_CAP(buf, link) \
drivers/net/ethernet/mellanox/mlx5/core/en/port.c
402
MLX5_GET(pplm_reg, buf, fec_override_cap_##link)
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c
307
if (phydev->link && phydev->speed != priv->prev_speed) {
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
1233
mlxsw_sp_port->link.autoneg);
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
1520
mlxsw_sp_port->link.autoneg = 1;
drivers/net/ethernet/mellanox/mlxsw/spectrum.h
329
} link;
drivers/net/ethernet/mellanox/mlxsw/spectrum.h
470
return mlxsw_sp_port->link.tx_pause || mlxsw_sp_port->link.rx_pause;
drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c
523
mlxsw_reg_pfcc_pprx_set(pfcc_pl, mlxsw_sp_port->link.rx_pause);
drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c
524
mlxsw_reg_pfcc_pptx_set(pfcc_pl, mlxsw_sp_port->link.tx_pause);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1023
mlxsw_sp_port->link.autoneg = autoneg;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1449
struct mlxsw_sp1_port_link_mode link;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1461
link = mlxsw_sp1_port_link_mode[i];
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1463
link.mask_ethtool);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
186
pause->rx_pause = mlxsw_sp_port->link.rx_pause;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
187
pause->tx_pause = mlxsw_sp_port->link.tx_pause;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1975
struct mlxsw_sp2_port_link_mode link;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1987
link = mlxsw_sp2_port_link_mode[i];
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1989
link.mask_ethtool[1]);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
254
mlxsw_sp_port->link.rx_pause = pause->rx_pause;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
255
mlxsw_sp_port->link.tx_pause = pause->tx_pause;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
970
autoneg = mlxsw_sp_port->link.autoneg;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c
163
.link = parms.link,
drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c
306
old_parms->link != new_parms->link) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c
381
.link = parms.link,
drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c
635
return dev_get_by_index_rcu(net, tun4->parms.link);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c
638
return dev_get_by_index_rcu(net, tun6->parms.link);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.h
33
int link;
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
426
0, 0, tun->net, parms.link, tun->fwmark, 0, 0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
564
bool link;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
579
link = fbnic_mac_get_link_status(fbd, aui, fec);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
580
link = fbnic_pmd_update_state(fbd, link);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
587
return link;
drivers/net/ethernet/micrel/ksz884x.c
5096
netif_info(priv, link, dev, "link %s\n",
drivers/net/ethernet/microchip/encx24j600.c
694
netif_warn(priv, link, dev, "unsupported link speed setting\n");
drivers/net/ethernet/microchip/encx24j600.c
700
netif_warn(priv, link, dev, "Warning: hw must be disabled to set link mode\n");
drivers/net/ethernet/microchip/encx24j600.c
814
netif_dbg(priv, link, dev, "promiscuous mode\n");
drivers/net/ethernet/microchip/encx24j600.c
817
netif_dbg(priv, link, dev, "%smulticast mode\n",
drivers/net/ethernet/microchip/encx24j600.c
821
netif_dbg(priv, link, dev, "normal mode\n");
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
303
state->link = DEV_PCS1G_LINK_STATUS_LINK_STATUS_GET(val) &&
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
305
state->link &= !link_down;
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
313
bmsr |= state->link ? BMSR_LSTATUS : 0;
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
319
if (!state->link)
drivers/net/ethernet/microchip/sparx5/sparx5_phylink.c
99
state->link = status.link && !status.link_down;
drivers/net/ethernet/microchip/sparx5/sparx5_port.c
146
status->link = (value == DEV10G_MAC_TX_MONITOR_STICKY_IDLE_STATE_STICKY);
drivers/net/ethernet/microchip/sparx5/sparx5_port.c
167
status->link = false;
drivers/net/ethernet/microchip/sparx5/sparx5_port.c
33
status->link = false;
drivers/net/ethernet/microchip/sparx5/sparx5_port.c
48
status->link = false;
drivers/net/ethernet/microchip/sparx5/sparx5_port.c
59
status->link = !(lp_abil & ADVERTISE_RFAULT) && status->link;
drivers/net/ethernet/microchip/sparx5/sparx5_port.c
94
status->link = DEV2G5_PCS1G_LINK_STATUS_LINK_STATUS_GET(value) &&
drivers/net/ethernet/microchip/sparx5/sparx5_port.h
104
bool link;
drivers/net/ethernet/myricom/myri10ge/myri10ge.c
1505
netif_info(mgp, link, mgp->dev, "link up\n");
drivers/net/ethernet/myricom/myri10ge/myri10ge.c
1509
netif_info(mgp, link, mgp->dev, "link %s\n",
drivers/net/ethernet/natsemi/ns83820.c
490
static inline void build_rx_desc(struct ns83820 *dev, __le32 *desc, dma_addr_t link, dma_addr_t buf, u32 cmdsts, u32 extsts)
drivers/net/ethernet/natsemi/ns83820.c
492
desc_addr_set(desc + DESC_LINK, link);
drivers/net/ethernet/netronome/nfp/flower/cmsg.c
155
bool link;
drivers/net/ethernet/netronome/nfp/flower/cmsg.c
158
link = msg->info & NFP_FLOWER_CMSG_PORTMOD_INFO_LINK;
drivers/net/ethernet/netronome/nfp/flower/cmsg.c
171
if (link) {
drivers/net/ethernet/netronome/nfp/flower/metadata.c
17
struct hlist_node link;
drivers/net/ethernet/netronome/nfp/flower/metadata.c
223
INIT_HLIST_NODE(&mask_entry->link);
drivers/net/ethernet/netronome/nfp/flower/metadata.c
228
hash_add(priv->mask_table, &mask_entry->link, hash_key);
drivers/net/ethernet/netronome/nfp/flower/metadata.c
242
hash_for_each_possible(priv->mask_table, mask_entry, link, hash_key)
drivers/net/ethernet/netronome/nfp/flower/metadata.c
295
hash_del(&mask_entry->link);
drivers/net/ethernet/netronome/nfp/flower/offload.c
1460
struct nfp_fl_payload_link *link, *temp;
drivers/net/ethernet/netronome/nfp/flower/offload.c
1467
link = list_first_entry(&merge_flow->linked_flows,
drivers/net/ethernet/netronome/nfp/flower/offload.c
1469
origin = link->sub_flow.flow;
drivers/net/ethernet/netronome/nfp/flower/offload.c
1499
list_for_each_entry_safe(link, temp, &merge_flow->linked_flows,
drivers/net/ethernet/netronome/nfp/flower/offload.c
1501
u32 ctx_id = be32_to_cpu(link->sub_flow.flow->meta.host_ctx_id);
drivers/net/ethernet/netronome/nfp/flower/offload.c
1504
nfp_flower_unlink_flow(link);
drivers/net/ethernet/netronome/nfp/flower/offload.c
1530
struct nfp_fl_payload_link *link, *temp;
drivers/net/ethernet/netronome/nfp/flower/offload.c
1533
list_for_each_entry_safe(link, temp, &sub_flow->linked_flows,
drivers/net/ethernet/netronome/nfp/flower/offload.c
1536
link->merge_flow.flow);
drivers/net/ethernet/netronome/nfp/flower/offload.c
1634
struct nfp_fl_payload_link *link;
drivers/net/ethernet/netronome/nfp/flower/offload.c
1655
list_for_each_entry(link, &merge_flow->linked_flows, merge_flow.list) {
drivers/net/ethernet/netronome/nfp/flower/offload.c
1656
sub_flow = link->sub_flow.flow;
drivers/net/ethernet/netronome/nfp/flower/offload.c
1669
struct nfp_fl_payload_link *link;
drivers/net/ethernet/netronome/nfp/flower/offload.c
1672
list_for_each_entry(link, &sub_flow->linked_flows, sub_flow.list)
drivers/net/ethernet/netronome/nfp/flower/offload.c
1673
__nfp_flower_update_merge_stats(app, link->merge_flow.flow);
drivers/net/ethernet/netronome/nfp/flower/offload.c
958
static void nfp_flower_unlink_flow(struct nfp_fl_payload_link *link)
drivers/net/ethernet/netronome/nfp/flower/offload.c
960
list_del(&link->merge_flow.list);
drivers/net/ethernet/netronome/nfp/flower/offload.c
961
list_del(&link->sub_flow.list);
drivers/net/ethernet/netronome/nfp/flower/offload.c
962
kfree(link);
drivers/net/ethernet/netronome/nfp/flower/offload.c
968
struct nfp_fl_payload_link *link;
drivers/net/ethernet/netronome/nfp/flower/offload.c
970
list_for_each_entry(link, &merge_flow->linked_flows, merge_flow.list)
drivers/net/ethernet/netronome/nfp/flower/offload.c
971
if (link->sub_flow.flow == sub_flow) {
drivers/net/ethernet/netronome/nfp/flower/offload.c
972
nfp_flower_unlink_flow(link);
drivers/net/ethernet/netronome/nfp/flower/offload.c
980
struct nfp_fl_payload_link *link;
drivers/net/ethernet/netronome/nfp/flower/offload.c
982
link = kmalloc_obj(*link);
drivers/net/ethernet/netronome/nfp/flower/offload.c
983
if (!link)
drivers/net/ethernet/netronome/nfp/flower/offload.c
986
link->merge_flow.flow = merge_flow;
drivers/net/ethernet/netronome/nfp/flower/offload.c
987
list_add_tail(&link->merge_flow.list, &merge_flow->linked_flows);
drivers/net/ethernet/netronome/nfp/flower/offload.c
988
link->sub_flow.flow = sub_flow;
drivers/net/ethernet/netronome/nfp/flower/offload.c
989
list_add_tail(&link->sub_flow.list, &sub_flow->linked_flows);
drivers/net/ethernet/ni/nixge.c
176
int link;
drivers/net/ethernet/ni/nixge.c
431
if (phydev->link != priv->link || phydev->speed != priv->speed ||
drivers/net/ethernet/ni/nixge.c
433
priv->link = phydev->link;
drivers/net/ethernet/nxp/lpc_eth.c
1371
pldat->link = 0;
drivers/net/ethernet/nxp/lpc_eth.c
413
int link;
drivers/net/ethernet/nxp/lpc_eth.c
726
if (phydev->link) {
drivers/net/ethernet/nxp/lpc_eth.c
735
if (phydev->link != pldat->link) {
drivers/net/ethernet/nxp/lpc_eth.c
736
if (!phydev->link) {
drivers/net/ethernet/nxp/lpc_eth.c
740
pldat->link = phydev->link;
drivers/net/ethernet/nxp/lpc_eth.c
781
pldat->link = 0;
drivers/net/ethernet/pasemi/pasemi_mac.c
1021
msg = mac->link != dev->phydev->link || flags != new_flags;
drivers/net/ethernet/pasemi/pasemi_mac.c
1025
mac->link = dev->phydev->link;
drivers/net/ethernet/pasemi/pasemi_mac.c
1044
mac->link = 0;
drivers/net/ethernet/pasemi/pasemi_mac.c
979
if (!dev->phydev->link) {
drivers/net/ethernet/pasemi/pasemi_mac.c
983
if (mac->link && netif_msg_link(mac))
drivers/net/ethernet/pasemi/pasemi_mac.c
988
mac->link = 0;
drivers/net/ethernet/pasemi/pasemi_mac.h
81
int link;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4049
struct qed_mcp_link_params *link;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4095
link = &p_hwfn->mcp_info->link_input;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4103
link->speed.advertised_speeds = link_temp;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4105
p_caps->speed_capabilities = link->speed.advertised_speeds;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4113
link->speed.autoneg = true;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4116
link->speed.forced_speed = 1000;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4119
link->speed.forced_speed = 10000;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4122
link->speed.forced_speed = 20000;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4125
link->speed.forced_speed = 25000;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4128
link->speed.forced_speed = 40000;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4131
link->speed.forced_speed = 50000;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4134
link->speed.forced_speed = 100000;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4140
p_caps->default_speed_autoneg = link->speed.autoneg;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4143
link->pause.autoneg = !!(fld & NVM_CFG1_PORT_DRV_FLOW_CONTROL_AUTONEG);
drivers/net/ethernet/qlogic/qed/qed_dev.c
4144
link->pause.forced_rx = !!(fld & NVM_CFG1_PORT_DRV_FLOW_CONTROL_RX);
drivers/net/ethernet/qlogic/qed/qed_dev.c
4145
link->pause.forced_tx = !!(fld & NVM_CFG1_PORT_DRV_FLOW_CONTROL_TX);
drivers/net/ethernet/qlogic/qed/qed_dev.c
4146
link->loopback_mode = 0;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4172
link->fec = p_caps->fec_default;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4180
link->eee.enable = true;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4184
link->eee.enable = false;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4198
link->eee.tx_lpi_timer = p_caps->eee_lpi_timer;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4199
link->eee.tx_lpi_enable = link->eee.enable;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4200
link->eee.adv_caps = QED_EEE_1G_ADV | QED_EEE_10G_ADV;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4207
ext_speed = &link->ext_speed;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4276
link->ext_fec_mode = link_temp;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4281
p_caps->default_ext_fec = link->ext_fec_mode;
drivers/net/ethernet/qlogic/qed/qed_dev.c
4292
link->speed.forced_speed, link->speed.advertised_speeds,
drivers/net/ethernet/qlogic/qed/qed_dev.c
4293
link->speed.autoneg, link->pause.autoneg,
drivers/net/ethernet/qlogic/qed/qed_main.c
1805
struct qed_mcp_link_state *link,
drivers/net/ethernet/qlogic/qed/qed_main.c
1812
qed_vf_get_link_state(hwfn, link);
drivers/net/ethernet/qlogic/qed/qed_main.c
1826
memcpy(link, p, sizeof(*link));
drivers/net/ethernet/qlogic/qed/qed_main.c
2076
struct qed_mcp_link_state link;
drivers/net/ethernet/qlogic/qed/qed_main.c
2082
if (qed_get_link_data(hwfn, &params, &link, &link_caps)) {
drivers/net/ethernet/qlogic/qed/qed_main.c
2088
if (link.link_up)
drivers/net/ethernet/qlogic/qed/qed_main.c
2136
qed_lp_caps_to_speed_mask(link.partner_adv_speed, &speed_mask);
drivers/net/ethernet/qlogic/qed/qed_main.c
2139
if (link.link_up)
drivers/net/ethernet/qlogic/qed/qed_main.c
2140
if_link->speed = link.speed;
drivers/net/ethernet/qlogic/qed/qed_main.c
2156
if (link.an_complete)
drivers/net/ethernet/qlogic/qed/qed_main.c
2158
if (link.partner_adv_pause)
drivers/net/ethernet/qlogic/qed/qed_main.c
2160
if (link.partner_adv_pause == QED_LINK_PARTNER_ASYMMETRIC_PAUSE ||
drivers/net/ethernet/qlogic/qed/qed_main.c
2161
link.partner_adv_pause == QED_LINK_PARTNER_BOTH_PAUSE)
drivers/net/ethernet/qlogic/qed/qed_main.c
2168
if_link->eee_active = link.eee_active;
drivers/net/ethernet/qlogic/qed/qed_main.c
2171
if_link->eee.adv_caps = link.eee_adv_caps ? link.eee_adv_caps :
drivers/net/ethernet/qlogic/qed/qed_main.c
2173
if_link->eee.lp_adv_caps = link.eee_lp_adv_caps;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
1092
struct qed_mcp_link_state link;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
1111
memcpy(&link, qed_mcp_get_link_state(p_hwfn), sizeof(link));
drivers/net/ethernet/qlogic/qed/qed_sriov.c
1113
qed_iov_set_link(p_hwfn, rel_vf_id, &params, &link, &caps);
drivers/net/ethernet/qlogic/qed/qed_sriov.c
375
pci_read_config_byte(cdev->pdev, pos + PCI_SRIOV_FUNC_LINK, &iov->link);
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4702
struct qed_mcp_link_state link;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4718
ret = qed_iov_get_link(hwfn, vf_id, NULL, &link, NULL);
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4734
ivi->max_tx_rate = tx_rate ? tx_rate : link.speed;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4746
struct qed_mcp_link_state link;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4767
memcpy(&link, qed_mcp_get_link_state(lead_hwfn), sizeof(link));
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4774
link.link_up = false;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4777
link.link_up = true;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4782
link.speed = (hwfn->cdev->num_hwfns > 1) ?
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4790
if (link.link_up && vf_info->tx_rate) {
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4794
rate = min_t(int, vf_info->tx_rate, link.speed);
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4804
link.speed = rate;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
4810
qed_iov_set_link(hwfn, i, &params, &link, &caps);
drivers/net/ethernet/qlogic/qed/qed_sriov.c
941
struct qed_mcp_link_state *link,
drivers/net/ethernet/qlogic/qed/qed_sriov.c
961
p_bulletin->link_up = link->link_up;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
962
p_bulletin->speed = link->speed;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
963
p_bulletin->full_duplex = link->full_duplex;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
964
p_bulletin->autoneg = link->an;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
965
p_bulletin->autoneg_complete = link->an_complete;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
966
p_bulletin->parallel_detection = link->parallel_detection;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
967
p_bulletin->pfc_enabled = link->pfc_enabled;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
968
p_bulletin->partner_adv_speed = link->partner_adv_speed;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
969
p_bulletin->partner_tx_flow_ctrl_en = link->partner_tx_flow_ctrl_en;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
970
p_bulletin->partner_rx_flow_ctrl_en = link->partner_rx_flow_ctrl_en;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
971
p_bulletin->partner_adv_pause = link->partner_adv_pause;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
972
p_bulletin->sfp_tx_fault = link->sfp_tx_fault;
drivers/net/ethernet/qlogic/qed/qed_sriov.h
101
u8 link; /* Function Dependency Link */
drivers/net/ethernet/qlogic/qed/qed_vf.c
1549
struct qed_mcp_link_state *link)
drivers/net/ethernet/qlogic/qed/qed_vf.c
1551
__qed_vf_get_link_state(p_hwfn, link,
drivers/net/ethernet/qlogic/qed/qed_vf.h
1082
struct qed_mcp_link_state *link)
drivers/net/ethernet/qlogic/qed/qed_vf.h
750
struct qed_mcp_link_state *link);
drivers/net/ethernet/qlogic/qede/qede_main.c
108
static void qede_link_update(void *dev, struct qed_link_output *link);
drivers/net/ethernet/qlogic/qede/qede_main.c
2596
static void qede_link_update(void *dev, struct qed_link_output *link)
drivers/net/ethernet/qlogic/qede/qede_main.c
2605
if (link->link_up) {
drivers/net/ethernet/qlogic/qla3xxx.c
1184
netif_info(qdev, link, qdev->ndev, "Auto-Negotiate complete\n");
drivers/net/ethernet/qlogic/qla3xxx.c
1187
netif_info(qdev, link, qdev->ndev, "Auto-Negotiate incomplete\n");
drivers/net/ethernet/qlogic/qla3xxx.c
1314
netif_printk(qdev, link, KERN_DEBUG, qdev->ndev,
drivers/net/ethernet/qlogic/qla3xxx.c
1319
netif_printk(qdev, link, KERN_DEBUG, qdev->ndev, "link master\n");
drivers/net/ethernet/qlogic/qla3xxx.c
1468
netif_printk(qdev, link, KERN_DEBUG, qdev->ndev,
drivers/net/ethernet/qlogic/qla3xxx.c
1484
netif_printk(qdev, link, KERN_DEBUG, qdev->ndev,
drivers/net/ethernet/qlogic/qla3xxx.c
1492
netif_info(qdev, link, qdev->ndev,
drivers/net/ethernet/qlogic/qla3xxx.c
1500
netif_printk(qdev, link, KERN_DEBUG, qdev->ndev,
drivers/net/ethernet/qlogic/qla3xxx.c
1529
netif_info(qdev, link, qdev->ndev,
drivers/net/ethernet/qlogic/qla3xxx.c
1549
netif_info(qdev, link, qdev->ndev, "Link is up\n");
drivers/net/ethernet/qlogic/qla3xxx.c
1566
netif_info(qdev, link, qdev->ndev, "Link is down\n");
drivers/net/ethernet/qlogic/qla3xxx.c
644
netif_warn(qdev, link, qdev->ndev, TIMED_OUT_MSG);
drivers/net/ethernet/qlogic/qla3xxx.c
655
netif_warn(qdev, link, qdev->ndev, TIMED_OUT_MSG);
drivers/net/ethernet/qlogic/qla3xxx.c
676
netif_warn(qdev, link, qdev->ndev, TIMED_OUT_MSG);
drivers/net/ethernet/qlogic/qla3xxx.c
691
netif_warn(qdev, link, qdev->ndev, TIMED_OUT_MSG);
drivers/net/ethernet/qlogic/qla3xxx.c
712
netif_warn(qdev, link, qdev->ndev, TIMED_OUT_MSG);
drivers/net/ethernet/qlogic/qla3xxx.c
723
netif_warn(qdev, link, qdev->ndev, TIMED_OUT_MSG);
drivers/net/ethernet/qlogic/qla3xxx.c
741
netif_warn(qdev, link, qdev->ndev, TIMED_OUT_MSG);
drivers/net/ethernet/qlogic/qla3xxx.c
756
netif_warn(qdev, link, qdev->ndev, TIMED_OUT_MSG);
drivers/net/ethernet/qualcomm/emac/emac-mac.c
919
if (phydev->link) {
drivers/net/ethernet/rdc/r6040.c
980
if (lp->old_link != phydev->link) {
drivers/net/ethernet/rdc/r6040.c
982
lp->old_link = phydev->link;
drivers/net/ethernet/rdc/r6040.c
986
if (phydev->link && (lp->old_duplex != phydev->duplex)) {
drivers/net/ethernet/renesas/ravb.h
1121
int link;
drivers/net/ethernet/renesas/ravb_main.c
1444
if (phydev->link) {
drivers/net/ethernet/renesas/ravb_main.c
1456
if (!priv->link) {
drivers/net/ethernet/renesas/ravb_main.c
1459
priv->link = phydev->link;
drivers/net/ethernet/renesas/ravb_main.c
1461
} else if (priv->link) {
drivers/net/ethernet/renesas/ravb_main.c
1463
priv->link = 0;
drivers/net/ethernet/renesas/ravb_main.c
1470
if (priv->no_avb_link && phydev->link)
drivers/net/ethernet/renesas/ravb_main.c
1490
priv->link = 0;
drivers/net/ethernet/renesas/rswitch.h
950
int link;
drivers/net/ethernet/renesas/rswitch_main.c
1415
if (phydev->link != rdev->etha->link) {
drivers/net/ethernet/renesas/rswitch_main.c
1417
if (phydev->link)
drivers/net/ethernet/renesas/rswitch_main.c
1422
rdev->etha->link = phydev->link;
drivers/net/ethernet/renesas/rtsn.c
60
int link;
drivers/net/ethernet/renesas/rtsn.c
848
if (phydev->link) {
drivers/net/ethernet/renesas/rtsn.c
854
if (!priv->link) {
drivers/net/ethernet/renesas/rtsn.c
856
priv->link = phydev->link;
drivers/net/ethernet/renesas/rtsn.c
858
} else if (priv->link) {
drivers/net/ethernet/renesas/rtsn.c
860
priv->link = 0;
drivers/net/ethernet/renesas/rtsn.c
904
priv->link = 0;
drivers/net/ethernet/renesas/sh_eth.c
1950
if (phydev->link) {
drivers/net/ethernet/renesas/sh_eth.c
1964
if (!mdp->link) {
drivers/net/ethernet/renesas/sh_eth.c
1967
mdp->link = phydev->link;
drivers/net/ethernet/renesas/sh_eth.c
1969
} else if (mdp->link) {
drivers/net/ethernet/renesas/sh_eth.c
1971
mdp->link = 0;
drivers/net/ethernet/renesas/sh_eth.c
1977
if ((mdp->cd->no_psr || mdp->no_ether_link) && phydev->link)
drivers/net/ethernet/renesas/sh_eth.c
1993
mdp->link = 0;
drivers/net/ethernet/renesas/sh_eth.h
553
int link;
drivers/net/ethernet/samsung/sxgbe/sxgbe_common.h
353
void (*set_eee_pls)(void __iomem *ioaddr, const int link);
drivers/net/ethernet/samsung/sxgbe/sxgbe_common.h
370
struct mac_link link;
drivers/net/ethernet/samsung/sxgbe/sxgbe_core.c
209
static void sxgbe_set_eee_pls(void __iomem *ioaddr, const int link)
drivers/net/ethernet/samsung/sxgbe/sxgbe_core.c
216
if (link)
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
159
priv->hw->mac->set_eee_pls(priv->ioaddr, ndev->phydev->link);
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
1993
ops_ptr->link.port = 0;
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
1994
ops_ptr->link.duplex = 0;
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
1995
ops_ptr->link.speed = SXGBE_SPEED_10G;
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
216
if (phydev->link) {
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
230
netif_err(priv, link, dev,
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
306
__func__, phydev->phy_id, phydev->link);
drivers/net/ethernet/sfc/efx_common.c
261
netif_info(efx, link, efx->net_dev,
drivers/net/ethernet/sfc/efx_common.c
266
netif_info(efx, link, efx->net_dev, "link down\n");
drivers/net/ethernet/sfc/falcon/efx.c
917
netif_info(efx, link, efx->net_dev,
drivers/net/ethernet/sfc/falcon/efx.c
922
netif_info(efx, link, efx->net_dev, "link down\n");
drivers/net/ethernet/sfc/falcon/tenxpress.c
285
netif_err(efx, link, efx->net_dev,
drivers/net/ethernet/sfc/mcdi_port_common.c
396
netif_err(efx, link, efx->net_dev,
drivers/net/ethernet/sfc/ptp.c
180
struct list_head link;
drivers/net/ethernet/sfc/siena/efx_common.c
265
netif_info(efx, link, efx->net_dev,
drivers/net/ethernet/sfc/siena/efx_common.c
270
netif_info(efx, link, efx->net_dev, "link down\n");
drivers/net/ethernet/sfc/siena/mcdi_port_common.c
397
netif_err(efx, link, efx->net_dev,
drivers/net/ethernet/sfc/siena/ptp.c
1167
link);
drivers/net/ethernet/sfc/siena/ptp.c
1169
list_move(&evt->link, &ptp->evt_free_list);
drivers/net/ethernet/sfc/siena/ptp.c
1202
evt = list_entry(cursor, struct efx_ptp_event_rx, link);
drivers/net/ethernet/sfc/siena/ptp.c
1213
list_move(&evt->link, &ptp->evt_free_list);
drivers/net/ethernet/sfc/siena/ptp.c
1483
list_add(&ptp->rx_evts[pos].link, &ptp->evt_free_list);
drivers/net/ethernet/sfc/siena/ptp.c
183
struct list_head link;
drivers/net/ethernet/sfc/siena/ptp.c
1855
struct efx_ptp_event_rx, link);
drivers/net/ethernet/sfc/siena/ptp.c
1856
list_del(&evt->link);
drivers/net/ethernet/sfc/siena/ptp.c
1870
list_add_tail(&evt->link, &ptp->evt_list);
drivers/net/ethernet/sfc/siena/siena_sriov.c
1119
list_for_each_entry(local_addr, &nic_data->local_addr_list, link) {
drivers/net/ethernet/sfc/siena/siena_sriov.c
1138
&pages, struct efx_endpoint_page, link);
drivers/net/ethernet/sfc/siena/siena_sriov.c
1139
list_del(&epp->link);
drivers/net/ethernet/sfc/siena/siena_sriov.c
1142
list_add_tail(&epp->link, &nic_data->local_page_list);
drivers/net/ethernet/sfc/siena/siena_sriov.c
1153
&pages, struct efx_endpoint_page, link);
drivers/net/ethernet/sfc/siena/siena_sriov.c
1154
list_del(&epp->link);
drivers/net/ethernet/sfc/siena/siena_sriov.c
1179
struct efx_local_addr, link);
drivers/net/ethernet/sfc/siena/siena_sriov.c
1180
list_del(&local_addr->link);
drivers/net/ethernet/sfc/siena/siena_sriov.c
1186
struct efx_endpoint_page, link);
drivers/net/ethernet/sfc/siena/siena_sriov.c
1187
list_del(&epp->link);
drivers/net/ethernet/sfc/siena/siena_sriov.c
144
struct list_head link;
drivers/net/ethernet/sfc/siena/siena_sriov.c
156
struct list_head link;
drivers/net/ethernet/sfc/siena/siena_sriov.c
438
list_for_each_entry(epp, &nic_data->local_page_list, link) {
drivers/net/ethernet/sis/sis190.c
1013
netif_info(tp, link, dev, "link on %s mode\n", p->msg);
drivers/net/ethernet/sis/sis190.c
1731
netif_info(tp, link, dev, "Enabling Auto-negotiation\n");
drivers/net/ethernet/sis/sis190.c
940
netif_warn(tp, link, dev, "auto-negotiating...\n");
drivers/net/ethernet/sis/sis190.c
966
netif_info(tp, link, dev, "mii ext = %04x\n", val);
drivers/net/ethernet/sis/sis190.c
971
netif_info(tp, link, dev, "mii lpa=%04x adv=%04x exp=%04x\n",
drivers/net/ethernet/sis/sis900.c
1132
sis_priv->tx_ring[i].link = sis_priv->tx_ring_dma +
drivers/net/ethernet/sis/sis900.c
1167
sis_priv->rx_ring[i].link = sis_priv->rx_ring_dma +
drivers/net/ethernet/sis/sis900.c
153
u32 link;
drivers/net/ethernet/smsc/smc91c92_cs.c
1053
struct pcmcia_device *link = smc->p_dev;
drivers/net/ethernet/smsc/smc91c92_cs.c
1055
dev_dbg(&link->dev, "%s: smc_open(%p), ID/Window %4.4x.\n",
drivers/net/ethernet/smsc/smc91c92_cs.c
1062
if (!pcmcia_dev_present(link))
drivers/net/ethernet/smsc/smc91c92_cs.c
1065
if (check_sig(link) < 0) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1069
link->open++;
drivers/net/ethernet/smsc/smc91c92_cs.c
1087
struct pcmcia_device *link = smc->p_dev;
drivers/net/ethernet/smsc/smc91c92_cs.c
1090
dev_dbg(&link->dev, "%s: smc_close(), status %4.4x.\n",
drivers/net/ethernet/smsc/smc91c92_cs.c
1107
link->open--;
drivers/net/ethernet/smsc/smc91c92_cs.c
1720
u_short link;
drivers/net/ethernet/smsc/smc91c92_cs.c
1772
link = mdio_read(dev, smc->mii_if.phy_id, 1);
drivers/net/ethernet/smsc/smc91c92_cs.c
1773
if (!link || (link == 0xffff)) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1779
link &= 0x0004;
drivers/net/ethernet/smsc/smc91c92_cs.c
1780
if (link != smc->link_status) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1782
netdev_info(dev, "%s link beat\n", link ? "found" : "lost");
drivers/net/ethernet/smsc/smc91c92_cs.c
1785
if (link) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1792
smc->link_status = link;
drivers/net/ethernet/smsc/smc91c92_cs.c
268
static int smc91c92_config(struct pcmcia_device *link);
drivers/net/ethernet/smsc/smc91c92_cs.c
269
static void smc91c92_release(struct pcmcia_device *link);
drivers/net/ethernet/smsc/smc91c92_cs.c
302
static int smc91c92_probe(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
307
dev_dbg(&link->dev, "smc91c92_attach()\n");
drivers/net/ethernet/smsc/smc91c92_cs.c
314
smc->p_dev = link;
drivers/net/ethernet/smsc/smc91c92_cs.c
315
link->priv = dev;
drivers/net/ethernet/smsc/smc91c92_cs.c
330
return smc91c92_config(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
333
static void smc91c92_detach(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
335
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
337
dev_dbg(&link->dev, "smc91c92_detach\n");
drivers/net/ethernet/smsc/smc91c92_cs.c
341
smc91c92_release(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
380
static int mhz_3288_power(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
382
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
395
tmp = readb(smc->base + link->config_base + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
397
writeb(tmp, smc->base + link->config_base + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
423
static int mhz_mfc_config(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
425
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
430
link->config_flags |= CONF_ENABLE_SPKR | CONF_ENABLE_IRQ |
drivers/net/ethernet/smsc/smc91c92_cs.c
435
if (pcmcia_loop_config(link, mhz_mfc_config_check, NULL))
drivers/net/ethernet/smsc/smc91c92_cs.c
438
dev->base_addr = link->resource[0]->start;
drivers/net/ethernet/smsc/smc91c92_cs.c
441
link->resource[2]->flags = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
drivers/net/ethernet/smsc/smc91c92_cs.c
442
link->resource[2]->start = link->resource[2]->end = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
443
i = pcmcia_request_window(link, link->resource[2], 0);
drivers/net/ethernet/smsc/smc91c92_cs.c
447
smc->base = ioremap(link->resource[2]->start,
drivers/net/ethernet/smsc/smc91c92_cs.c
448
resource_size(link->resource[2]));
drivers/net/ethernet/smsc/smc91c92_cs.c
449
offset = (smc->manfid == MANFID_MOTOROLA) ? link->config_base : 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
450
i = pcmcia_map_mem_page(link, link->resource[2], offset);
drivers/net/ethernet/smsc/smc91c92_cs.c
454
mhz_3288_power(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
478
static int mhz_setup(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
480
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
487
if ((link->prod_id[3]) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
488
(cvt_ascii_address(dev, link->prod_id[3]) == 0))
drivers/net/ethernet/smsc/smc91c92_cs.c
493
if (!pcmcia_loop_tuple(link, CISTPL_VERS_1, pcmcia_get_versmac, dev))
drivers/net/ethernet/smsc/smc91c92_cs.c
498
len = pcmcia_get_tuple(link, 0x81, &buf);
drivers/net/ethernet/smsc/smc91c92_cs.c
518
static void mot_config(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
520
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
523
unsigned int iouart = link->resource[1]->start;
drivers/net/ethernet/smsc/smc91c92_cs.c
539
static int mot_setup(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
541
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
584
static int smc_config(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
586
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
589
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/net/ethernet/smsc/smc91c92_cs.c
591
i = pcmcia_loop_config(link, smc_configcheck, NULL);
drivers/net/ethernet/smsc/smc91c92_cs.c
593
dev->base_addr = link->resource[0]->start;
drivers/net/ethernet/smsc/smc91c92_cs.c
599
static int smc_setup(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
601
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
604
if (!pcmcia_get_mac_from_cis(link, dev))
drivers/net/ethernet/smsc/smc91c92_cs.c
608
if (link->prod_id[2]) {
drivers/net/ethernet/smsc/smc91c92_cs.c
609
if (cvt_ascii_address(dev, link->prod_id[2]) == 0)
drivers/net/ethernet/smsc/smc91c92_cs.c
617
static int osi_config(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
619
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
623
link->config_flags |= CONF_ENABLE_SPKR | CONF_ENABLE_IRQ;
drivers/net/ethernet/smsc/smc91c92_cs.c
624
link->resource[0]->end = 64;
drivers/net/ethernet/smsc/smc91c92_cs.c
625
link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
drivers/net/ethernet/smsc/smc91c92_cs.c
626
link->resource[1]->end = 8;
drivers/net/ethernet/smsc/smc91c92_cs.c
629
link->io_lines = 16;
drivers/net/ethernet/smsc/smc91c92_cs.c
630
link->config_index = 0x23;
drivers/net/ethernet/smsc/smc91c92_cs.c
633
link->resource[1]->start = com[j];
drivers/net/ethernet/smsc/smc91c92_cs.c
634
i = pcmcia_request_io(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
640
link->config_index = 0x03;
drivers/net/ethernet/smsc/smc91c92_cs.c
641
link->resource[1]->end = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
642
i = pcmcia_request_io(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
644
dev->base_addr = link->resource[0]->start + 0x10;
drivers/net/ethernet/smsc/smc91c92_cs.c
648
static int osi_load_firmware(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
653
err = request_firmware(&fw, FIRMWARE_NAME, &link->dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
661
outb(fw->data[i], link->resource[0]->start + 2);
drivers/net/ethernet/smsc/smc91c92_cs.c
684
static int osi_setup(struct pcmcia_device *link, u_short manfid, u_short cardid)
drivers/net/ethernet/smsc/smc91c92_cs.c
686
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
690
if (pcmcia_loop_tuple(link, 0x90, pcmcia_osi_mac, dev))
drivers/net/ethernet/smsc/smc91c92_cs.c
697
rc = osi_load_firmware(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
702
set_bits(0x300, link->resource[0]->start + OSITECH_AUI_PWR);
drivers/net/ethernet/smsc/smc91c92_cs.c
704
set_bits(0x300, link->resource[0]->start + OSITECH_RESET_ISR);
drivers/net/ethernet/smsc/smc91c92_cs.c
705
dev_dbg(&link->dev, "AUI/PWR: %4.4x RESET/ISR: %4.4x\n",
drivers/net/ethernet/smsc/smc91c92_cs.c
706
inw(link->resource[0]->start + OSITECH_AUI_PWR),
drivers/net/ethernet/smsc/smc91c92_cs.c
707
inw(link->resource[0]->start + OSITECH_RESET_ISR));
drivers/net/ethernet/smsc/smc91c92_cs.c
712
static int smc91c92_suspend(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
714
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
716
if (link->open)
drivers/net/ethernet/smsc/smc91c92_cs.c
722
static int smc91c92_resume(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
724
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
730
mhz_3288_power(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
732
mot_config(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
743
i = osi_load_firmware(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
749
if (link->open) {
drivers/net/ethernet/smsc/smc91c92_cs.c
765
static int check_sig(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
767
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
780
width = (link->resource[0]->flags == IO_DATA_PATH_WIDTH_AUTO);
drivers/net/ethernet/smsc/smc91c92_cs.c
800
smc91c92_suspend(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
801
pcmcia_fixup_iowidth(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
802
smc91c92_resume(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
803
return check_sig(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
808
static int smc91c92_config(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
810
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
817
dev_dbg(&link->dev, "smc91c92_config\n");
drivers/net/ethernet/smsc/smc91c92_cs.c
819
smc->manfid = link->manf_id;
drivers/net/ethernet/smsc/smc91c92_cs.c
820
smc->cardid = link->card_id;
drivers/net/ethernet/smsc/smc91c92_cs.c
824
i = osi_config(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
829
i = mhz_mfc_config(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
831
i = smc_config(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
836
i = pcmcia_request_irq(link, smc_interrupt);
drivers/net/ethernet/smsc/smc91c92_cs.c
839
i = pcmcia_enable_device(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
844
mot_config(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
846
dev->irq = link->irq;
drivers/net/ethernet/smsc/smc91c92_cs.c
851
dev_notice(&link->dev, "invalid if_port requested\n");
drivers/net/ethernet/smsc/smc91c92_cs.c
856
i = osi_setup(link, smc->manfid, smc->cardid); break;
drivers/net/ethernet/smsc/smc91c92_cs.c
859
i = smc_setup(link); break;
drivers/net/ethernet/smsc/smc91c92_cs.c
862
i = mhz_setup(link); break;
drivers/net/ethernet/smsc/smc91c92_cs.c
865
i = mot_setup(link); break;
drivers/net/ethernet/smsc/smc91c92_cs.c
869
dev_notice(&link->dev, "Unable to find hardware address.\n");
drivers/net/ethernet/smsc/smc91c92_cs.c
876
rev = check_sig(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
919
SET_NETDEV_DEV(dev, &link->dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
922
dev_err(&link->dev, "register_netdev() failed\n");
drivers/net/ethernet/smsc/smc91c92_cs.c
951
smc91c92_release(link);
drivers/net/ethernet/smsc/smc91c92_cs.c
956
static void smc91c92_release(struct pcmcia_device *link)
drivers/net/ethernet/smsc/smc91c92_cs.c
958
dev_dbg(&link->dev, "smc91c92_release\n");
drivers/net/ethernet/smsc/smc91c92_cs.c
959
if (link->resource[2]->end) {
drivers/net/ethernet/smsc/smc91c92_cs.c
960
struct net_device *dev = link->priv;
drivers/net/ethernet/smsc/smc91c92_cs.c
964
pcmcia_disable_device(link);
drivers/net/ethernet/smsc/smsc9420.c
1058
netif_info(pd, link, pd->dev, "rx pause %s, tx pause %s\n",
drivers/net/ethernet/smsc/smsc9420.c
1062
netif_info(pd, link, pd->dev, "half duplex\n");
drivers/net/ethernet/smsc/smsc9420.c
1080
netif_dbg(pd, link, pd->dev, "full duplex mode\n");
drivers/net/ethernet/smsc/smsc9420.c
1083
netif_dbg(pd, link, pd->dev, "half duplex mode\n");
drivers/net/ethernet/smsc/smsc9420.c
1095
netif_dbg(pd, link, pd->dev, "carrier OK\n");
drivers/net/ethernet/smsc/smsc9420.c
1097
netif_dbg(pd, link, pd->dev, "no carrier\n");
drivers/net/ethernet/socionext/netsec.c
1586
if (ndev->phydev->link)
drivers/net/ethernet/socionext/netsec.c
1645
netif_err(priv, link, priv->ndev, "missing PHY\n");
drivers/net/ethernet/socionext/netsec.c
1654
netif_err(priv, link, priv->ndev,
drivers/net/ethernet/spacemit/k1_emac.c
1536
if (phydev->link) {
drivers/net/ethernet/stmicro/stmmac/common.h
631
struct mac_link link;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
352
mac->link.caps = MAC_10 | MAC_100 | MAC_1000;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
355
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
358
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
362
mac->link.duplex = GMAC_CONTROL_DM;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
363
mac->link.speed10 = GMAC_CONTROL_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
364
mac->link.speed100 = GMAC_CONTROL_PS | GMAC_CONTROL_FES;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
365
mac->link.speed1000 = 0;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
366
mac->link.speed_mask = GMAC_CONTROL_PS | GMAC_CONTROL_FES;
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
1053
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
1059
mac->link.speed_mask = GENMASK(3, 2) | EMAC_LOOPBACK;
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
1060
mac->link.speed10 = EMAC_SPEED_10;
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
1061
mac->link.speed100 = EMAC_SPEED_100;
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
1062
mac->link.speed1000 = EMAC_SPEED_1000;
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
1063
mac->link.duplex = EMAC_DUPLEX_FULL;
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
333
static void dwmac1000_set_eee_pls(struct mac_device_info *hw, int link)
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
340
if (link)
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
490
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
492
mac->link.duplex = GMAC_CONTROL_DM;
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
493
mac->link.speed10 = GMAC_CONTROL_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
494
mac->link.speed100 = GMAC_CONTROL_PS | GMAC_CONTROL_FES;
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
495
mac->link.speed1000 = 0;
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
496
mac->link.speed_mask = GMAC_CONTROL_PS | GMAC_CONTROL_FES;
drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c
178
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c
180
mac->link.duplex = MAC_CONTROL_F;
drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c
181
mac->link.speed10 = 0;
drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c
182
mac->link.speed100 = 0;
drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c
183
mac->link.speed1000 = 0;
drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c
184
mac->link.speed_mask = MAC_CONTROL_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1023
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1025
mac->link.duplex = GMAC_CONFIG_DM;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1026
mac->link.speed10 = GMAC_CONFIG_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1027
mac->link.speed100 = GMAC_CONFIG_FES | GMAC_CONFIG_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1028
mac->link.speed1000 = 0;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1029
mac->link.speed2500 = GMAC_CONFIG_FES;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1030
mac->link.speed_mask = GMAC_CONFIG_FES | GMAC_CONFIG_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
422
static void dwmac4_set_eee_pls(struct mac_device_info *hw, int link)
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
429
if (link)
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
73
priv->hw->link.caps &= ~(MAC_10HD | MAC_100HD | MAC_1000HD);
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
75
priv->hw->link.caps |= (MAC_10HD | MAC_100HD | MAC_1000HD);
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1539
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1542
mac->link.duplex = 0;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1543
mac->link.speed10 = XGMAC_CONFIG_SS_10_MII;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1544
mac->link.speed100 = XGMAC_CONFIG_SS_100_MII;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1545
mac->link.speed1000 = XGMAC_CONFIG_SS_1000_GMII;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1546
mac->link.speed2500 = XGMAC_CONFIG_SS_2500_GMII;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1547
mac->link.xgmii.speed2500 = XGMAC_CONFIG_SS_2500;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1548
mac->link.xgmii.speed5000 = XGMAC_CONFIG_SS_5000;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1549
mac->link.xgmii.speed10000 = XGMAC_CONFIG_SS_10000;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1550
mac->link.speed_mask = XGMAC_CONFIG_SS_MASK;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1580
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1585
mac->link.duplex = 0;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1586
mac->link.speed1000 = XLGMAC_CONFIG_SS_1000;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1587
mac->link.speed2500 = XLGMAC_CONFIG_SS_2500;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1588
mac->link.xgmii.speed10000 = XLGMAC_CONFIG_SS_10G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1589
mac->link.xlgmii.speed25000 = XLGMAC_CONFIG_SS_25G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1590
mac->link.xlgmii.speed40000 = XLGMAC_CONFIG_SS_40G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1591
mac->link.xlgmii.speed50000 = XLGMAC_CONFIG_SS_50G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1592
mac->link.xlgmii.speed100000 = XLGMAC_CONFIG_SS_100G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1593
mac->link.speed_mask = XLGMAC_CONFIG_SS;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
452
static void dwxgmac2_set_eee_pls(struct mac_device_info *hw, int link)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
458
if (link)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
48
priv->hw->link.caps &= ~(MAC_10 | MAC_100);
drivers/net/ethernet/stmicro/stmmac/hwif.h
379
void (*set_eee_pls)(struct mac_device_info *hw, int link);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1014
ctrl = old_ctrl & ~priv->hw->link.speed_mask;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1019
ctrl |= priv->hw->link.xgmii.speed10000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1022
ctrl |= priv->hw->link.xgmii.speed5000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1025
ctrl |= priv->hw->link.xgmii.speed2500;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1033
ctrl |= priv->hw->link.xlgmii.speed100000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1036
ctrl |= priv->hw->link.xlgmii.speed50000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1039
ctrl |= priv->hw->link.xlgmii.speed40000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1042
ctrl |= priv->hw->link.xlgmii.speed25000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1045
ctrl |= priv->hw->link.xgmii.speed10000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1048
ctrl |= priv->hw->link.speed2500;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1051
ctrl |= priv->hw->link.speed1000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1059
ctrl |= priv->hw->link.speed2500;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1062
ctrl |= priv->hw->link.speed1000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1065
ctrl |= priv->hw->link.speed100;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1068
ctrl |= priv->hw->link.speed10;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1079
ctrl &= ~priv->hw->link.duplex;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1081
ctrl |= priv->hw->link.duplex;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
936
priv->hw->link.caps &= ~(MAC_1000HD | MAC_100HD | MAC_10HD);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
938
config->mac_capabilities = priv->hw->link.caps;
drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
39
state->link = false;
drivers/net/ethernet/sun/cassini.c
1047
netif_info(cp, link, cp->dev, "PCS link down\n");
drivers/net/ethernet/sun/cassini.c
1546
netif_info(cp, link, cp->dev, "Autoneg failed again, keeping forced mode\n");
drivers/net/ethernet/sun/cassini.c
1616
netif_info(cp, link, cp->dev,
drivers/net/ethernet/sun/cassini.c
1645
netif_info(cp, link, cp->dev, "Link down\n");
drivers/net/ethernet/sun/cassini.c
3566
netif_info(cp, link, cp->dev, "Link up at %d Mbps, %s-duplex\n",
drivers/net/ethernet/sun/cassini.c
999
netif_info(cp, link, cp->dev, "PCS RemoteFault\n");
drivers/net/ethernet/sun/niu.c
1913
netif_info(np, link, dev, "Link is up at %s, %s duplex\n",
drivers/net/ethernet/sun/niu.c
1927
netif_warn(np, link, dev, "Link is down\n");
drivers/net/ethernet/sun/niu.c
2193
netif_warn(np, link, np->dev,
drivers/net/ethernet/sun/niu.c
3298
struct page ***link)
drivers/net/ethernet/sun/niu.c
3307
*link = pp;
drivers/net/ethernet/sun/niu.c
3390
struct page *page, **link;
drivers/net/ethernet/sun/niu.c
3399
page = niu_find_rxpage(rp, addr, &link);
drivers/net/ethernet/sun/niu.c
3404
*link = niu_next_page(page);
drivers/net/ethernet/sun/niu.c
3437
struct page *page, **link;
drivers/net/ethernet/sun/niu.c
3451
page = niu_find_rxpage(rp, addr, &link);
drivers/net/ethernet/sun/niu.c
3473
*link = niu_next_page(page);
drivers/net/ethernet/sun/sungem.c
1352
netif_info(gp, link, gp->dev, "Link is up at %d Mbps, %s-duplex\n",
drivers/net/ethernet/sun/sungem.c
1442
netif_info(gp, link, gp->dev,
drivers/net/ethernet/sun/sungem.c
1456
netif_info(gp, link, gp->dev, "switching to forced 100bt\n");
drivers/net/ethernet/sun/sungem.c
1472
netif_info(gp, link, gp->dev,
drivers/net/ethernet/sun/sungem.c
1535
netif_info(gp, link, dev, "Link down\n");
drivers/net/ethernet/sunplus/spl2sw_phy.c
23
if (phydev->link) {
drivers/net/ethernet/tehuti/tehuti.c
202
u32 link = READ_REG(priv, regMAC_LNK_STAT) & MAC_LINK_STAT;
drivers/net/ethernet/tehuti/tehuti.c
204
if (!link) {
drivers/net/ethernet/tehuti/tn40.c
1104
u32 link = tn40_read_reg(priv,
drivers/net/ethernet/tehuti/tn40.c
1107
netdev_dbg(priv->ndev, "link changed %u\n", link);
drivers/net/ethernet/ti/cpsw.c
1236
bool link;
drivers/net/ethernet/ti/cpsw.c
1241
for_each_slave(priv, _cpsw_adjust_link, priv, &link);
drivers/net/ethernet/ti/cpsw.c
478
struct cpsw_priv *priv, bool *link)
drivers/net/ethernet/ti/cpsw.c
490
if (phy->link) {
drivers/net/ethernet/ti/cpsw.c
518
*link = true;
drivers/net/ethernet/ti/cpsw.c
546
bool link = false;
drivers/net/ethernet/ti/cpsw.c
548
for_each_slave(priv, _cpsw_adjust_link, priv, &link);
drivers/net/ethernet/ti/cpsw.c
550
if (link) {
drivers/net/ethernet/ti/cpsw_new.c
684
if (phy->link) {
drivers/net/ethernet/ti/cpsw_new.c
736
if (phy->link && cpsw_need_resplit(cpsw))
drivers/net/ethernet/ti/cpsw_priv.c
314
if (cpsw->slaves[i].phy && cpsw->slaves[i].phy->link)
drivers/net/ethernet/ti/cpsw_priv.c
940
if (slave->phy && slave->phy->link) {
drivers/net/ethernet/ti/davinci_emac.c
1336
if (phydev->link) {
drivers/net/ethernet/ti/davinci_emac.c
1346
if (!priv->link) {
drivers/net/ethernet/ti/davinci_emac.c
1348
priv->link = 1;
drivers/net/ethernet/ti/davinci_emac.c
1351
} else if (priv->link) {
drivers/net/ethernet/ti/davinci_emac.c
1353
priv->link = 0;
drivers/net/ethernet/ti/davinci_emac.c
1534
priv->link = 0;
drivers/net/ethernet/ti/davinci_emac.c
1544
priv->link = 1;
drivers/net/ethernet/ti/davinci_emac.c
319
u32 link; /* 1=link on, 0=link off */
drivers/net/ethernet/ti/davinci_emac.c
535
if ((priv->link) && (new_duplex != cur_duplex)) {
drivers/net/ethernet/ti/davinci_emac.c
561
if (priv->link) {
drivers/net/ethernet/ti/davinci_emac.c
957
if (unlikely(!priv->link)) {
drivers/net/ethernet/ti/davinci_mdio.c
65
u32 link;
drivers/net/ethernet/ti/icssg/icssg_prueth.c
282
emac->link = 0;
drivers/net/ethernet/ti/icssg/icssg_prueth.c
342
if (phydev->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth.c
352
if (!emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth.c
354
emac->link = 1;
drivers/net/ethernet/ti/icssg/icssg_prueth.c
356
} else if (emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth.c
358
emac->link = 0;
drivers/net/ethernet/ti/icssg/icssg_prueth.c
373
if (emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth.c
391
if (emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth.h
199
int link;
drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
181
if (phydev->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
191
if (!emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
193
emac->link = 1;
drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
195
} else if (emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
197
emac->link = 0;
drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
212
if (emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
224
if (emac->link) {
drivers/net/ethernet/ti/icssm/icssm_prueth.c
392
if (phydev->link) {
drivers/net/ethernet/ti/icssm/icssm_prueth.c
402
if (!emac->link) {
drivers/net/ethernet/ti/icssm/icssm_prueth.c
404
emac->link = 1;
drivers/net/ethernet/ti/icssm/icssm_prueth.c
406
} else if (emac->link) {
drivers/net/ethernet/ti/icssm/icssm_prueth.c
408
emac->link = 0;
drivers/net/ethernet/ti/icssm/icssm_prueth.c
416
if (emac->link) {
drivers/net/ethernet/ti/icssm/icssm_prueth.c
438
if (emac->link) {
drivers/net/ethernet/ti/icssm/icssm_prueth.h
214
int link;
drivers/net/ethernet/ti/netcp_ethss.c
2117
return !slave->phy || slave->phy->link;
drivers/net/ethernet/ti/netcp_sgmii.c
81
u32 status = 0, link = 0;
drivers/net/ethernet/ti/netcp_sgmii.c
85
link = 1;
drivers/net/ethernet/ti/netcp_sgmii.c
86
return link;
drivers/net/ethernet/toshiba/ps3_gelic_net.c
1088
cpu_to_be32(descr->link.cpu_addr);
drivers/net/ethernet/toshiba/ps3_gelic_net.c
164
card->rx_chain.head->link.cpu_addr, 0);
drivers/net/ethernet/toshiba/ps3_gelic_net.c
229
= cpu_to_be32(descr->next->link.cpu_addr);
drivers/net/ethernet/toshiba/ps3_gelic_net.c
292
for (descr = descr_in; descr && descr->link.cpu_addr;
drivers/net/ethernet/toshiba/ps3_gelic_net.c
294
dma_unmap_single(ctodev(card), descr->link.cpu_addr,
drivers/net/ethernet/toshiba/ps3_gelic_net.c
295
descr->link.size, DMA_BIDIRECTIONAL);
drivers/net/ethernet/toshiba/ps3_gelic_net.c
296
descr->link.cpu_addr = 0;
drivers/net/ethernet/toshiba/ps3_gelic_net.c
297
descr->link.size = 0;
drivers/net/ethernet/toshiba/ps3_gelic_net.c
327
descr->link.size = sizeof(struct gelic_hw_regs);
drivers/net/ethernet/toshiba/ps3_gelic_net.c
328
descr->link.cpu_addr = dma_map_single(ctodev(card), descr,
drivers/net/ethernet/toshiba/ps3_gelic_net.c
329
descr->link.size, DMA_BIDIRECTIONAL);
drivers/net/ethernet/toshiba/ps3_gelic_net.c
331
if (dma_mapping_error(ctodev(card), descr->link.cpu_addr)) {
drivers/net/ethernet/toshiba/ps3_gelic_net.c
334
descr->link.cpu_addr, descr->link.size,
drivers/net/ethernet/toshiba/ps3_gelic_net.c
351
cpu_to_be32(descr->next->link.cpu_addr);
drivers/net/ethernet/toshiba/ps3_gelic_net.c
836
descr->link.cpu_addr, 0);
drivers/net/ethernet/toshiba/ps3_gelic_net.c
890
cpu_to_be32(descr->link.cpu_addr);
drivers/net/ethernet/toshiba/ps3_gelic_net.h
251
struct gelic_chain_link link;
drivers/net/ethernet/toshiba/tc35815.c
1675
if (!lp->link || lp->duplex == DUPLEX_FULL)
drivers/net/ethernet/toshiba/tc35815.c
1919
if (!lp->link)
drivers/net/ethernet/toshiba/tc35815.c
2100
if (!dev->phydev || !lp->link || lp->duplex == DUPLEX_FULL)
drivers/net/ethernet/toshiba/tc35815.c
410
int link;
drivers/net/ethernet/toshiba/tc35815.c
546
if (phydev->link &&
drivers/net/ethernet/toshiba/tc35815.c
582
if (phydev->link != lp->link) {
drivers/net/ethernet/toshiba/tc35815.c
583
if (phydev->link) {
drivers/net/ethernet/toshiba/tc35815.c
591
lp->link = phydev->link;
drivers/net/ethernet/toshiba/tc35815.c
649
lp->link = 0;
drivers/net/ethernet/via/via-rhine.c
1362
netif_info(rp, link, dev, "force_media %d, carrier %d\n",
drivers/net/ethernet/via/via-rhine.c
1380
netif_info(rp, link, dev, "force_media %d, carrier %d\n",
drivers/net/ethernet/via/via-velocity.c
1000
link = "auto-negotiation";
drivers/net/ethernet/via/via-velocity.c
1014
link = "forced";
drivers/net/ethernet/via/via-velocity.c
1044
link, speed, duplex);
drivers/net/ethernet/via/via-velocity.c
990
const char *link;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
1380
int link, tc, kb, marker;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
1384
link = dev->mtu + ETH_HLEN + ETH_FCS_LEN + WX_ETH_FRAMING;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
1385
tc = link;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
1388
dv_id = WX_DV(link, tc);
drivers/net/ethernet/wangxun/libwx/wx_type.h
1296
unsigned int link;
drivers/net/ethernet/wangxun/libwx/wx_vf.c
485
wx->link = false;
drivers/net/ethernet/wangxun/libwx/wx_vf.c
490
wx->link = WX_PFLINK_STATUS(links_reg);
drivers/net/ethernet/wangxun/libwx/wx_vf.c
530
wx->link = false;
drivers/net/ethernet/wangxun/libwx/wx_vf.c
534
wx->link = true;
drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
259
wx->link = false;
drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
385
if (wx->link) {
drivers/net/ethernet/wangxun/ngbe/ngbe_mdio.c
192
wx->link = 0;
drivers/net/ethernet/wangxun/txgbe/txgbe_aml.c
392
state->link = speed != SPEED_UNKNOWN;
drivers/net/ethernet/wangxun/txgbe/txgbe_aml.c
394
state->duplex = state->link ? DUPLEX_FULL : DUPLEX_UNKNOWN;
drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
561
wx->link = 0;
drivers/net/ethernet/wiznet/w5100.c
947
netif_info(priv, link, ndev, "link is up\n");
drivers/net/ethernet/wiznet/w5100.c
950
netif_info(priv, link, ndev, "link is down\n");
drivers/net/ethernet/wiznet/w5300.c
446
netif_info(priv, link, ndev, "link is up\n");
drivers/net/ethernet/wiznet/w5300.c
449
netif_info(priv, link, ndev, "link is down\n");
drivers/net/ethernet/xilinx/ll_temac_main.c
716
link_state = phy->speed | (phy->duplex << 1) | phy->link;
drivers/net/ethernet/xilinx/xilinx_emaclite.c
892
link_state = phy->speed | (phy->duplex << 1) | phy->link;
drivers/net/ethernet/xircom/xirc2ps_cs.c
1387
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/xircom/xirc2ps_cs.c
1389
dev_dbg(&link->dev, "do_open(%p)\n", dev);
drivers/net/ethernet/xircom/xirc2ps_cs.c
1393
if (!pcmcia_dev_present(link))
drivers/net/ethernet/xircom/xirc2ps_cs.c
1397
link->open++;
drivers/net/ethernet/xircom/xirc2ps_cs.c
1715
struct pcmcia_device *link = lp->p_dev;
drivers/net/ethernet/xircom/xirc2ps_cs.c
1717
dev_dbg(&link->dev, "do_stop(%p)\n", dev);
drivers/net/ethernet/xircom/xirc2ps_cs.c
1719
if (!link)
drivers/net/ethernet/xircom/xirc2ps_cs.c
1732
link->open--;
drivers/net/ethernet/xircom/xirc2ps_cs.c
262
static int has_ce2_string(struct pcmcia_device * link);
drivers/net/ethernet/xircom/xirc2ps_cs.c
263
static int xirc2ps_config(struct pcmcia_device * link);
drivers/net/ethernet/xircom/xirc2ps_cs.c
264
static void xirc2ps_release(struct pcmcia_device * link);
drivers/net/ethernet/xircom/xirc2ps_cs.c
295
static int set_card_type(struct pcmcia_device *link);
drivers/net/ethernet/xircom/xirc2ps_cs.c
474
xirc2ps_probe(struct pcmcia_device *link)
drivers/net/ethernet/xircom/xirc2ps_cs.c
479
dev_dbg(&link->dev, "attach()\n");
drivers/net/ethernet/xircom/xirc2ps_cs.c
487
local->p_dev = link;
drivers/net/ethernet/xircom/xirc2ps_cs.c
488
link->priv = dev;
drivers/net/ethernet/xircom/xirc2ps_cs.c
491
link->config_index = 1;
drivers/net/ethernet/xircom/xirc2ps_cs.c
499
return xirc2ps_config(link);
drivers/net/ethernet/xircom/xirc2ps_cs.c
503
xirc2ps_detach(struct pcmcia_device *link)
drivers/net/ethernet/xircom/xirc2ps_cs.c
505
struct net_device *dev = link->priv;
drivers/net/ethernet/xircom/xirc2ps_cs.c
512
dev_dbg(&link->dev, "detach\n");
drivers/net/ethernet/xircom/xirc2ps_cs.c
516
xirc2ps_release(link);
drivers/net/ethernet/xircom/xirc2ps_cs.c
540
set_card_type(struct pcmcia_device *link)
drivers/net/ethernet/xircom/xirc2ps_cs.c
542
struct net_device *dev = link->priv;
drivers/net/ethernet/xircom/xirc2ps_cs.c
548
len = pcmcia_get_tuple(link, CISTPL_MANFID, &buf);
drivers/net/ethernet/xircom/xirc2ps_cs.c
550
dev_err(&link->dev, "invalid CIS -- sorry\n");
drivers/net/ethernet/xircom/xirc2ps_cs.c
558
dev_dbg(&link->dev, "cisrev=%02x mediaid=%02x prodid=%02x\n",
drivers/net/ethernet/xircom/xirc2ps_cs.c
592
case 1: local->card_type = has_ce2_string(link)? XIR_CE2 : XIR_CE ;
drivers/net/ethernet/xircom/xirc2ps_cs.c
692
xirc2ps_config(struct pcmcia_device * link)
drivers/net/ethernet/xircom/xirc2ps_cs.c
694
struct net_device *dev = link->priv;
drivers/net/ethernet/xircom/xirc2ps_cs.c
703
dev_dbg(&link->dev, "config\n");
drivers/net/ethernet/xircom/xirc2ps_cs.c
706
if (link->has_manf_id == 0) {
drivers/net/ethernet/xircom/xirc2ps_cs.c
711
switch (link->manf_id) {
drivers/net/ethernet/xircom/xirc2ps_cs.c
730
(unsigned)link->manf_id);
drivers/net/ethernet/xircom/xirc2ps_cs.c
733
dev_dbg(&link->dev, "found %s card\n", local->manf_str);
drivers/net/ethernet/xircom/xirc2ps_cs.c
735
if (!set_card_type(link)) {
drivers/net/ethernet/xircom/xirc2ps_cs.c
741
err = pcmcia_get_mac_from_cis(link, dev);
drivers/net/ethernet/xircom/xirc2ps_cs.c
745
len = pcmcia_get_tuple(link, 0x89, &buf);
drivers/net/ethernet/xircom/xirc2ps_cs.c
757
err = pcmcia_loop_tuple(link, CISTPL_FUNCE, pcmcia_get_mac_ce, dev);
drivers/net/ethernet/xircom/xirc2ps_cs.c
766
link->config_flags |= CONF_AUTO_SET_IO;
drivers/net/ethernet/xircom/xirc2ps_cs.c
771
if (!pcmcia_loop_config(link, xirc2ps_config_modem, NULL))
drivers/net/ethernet/xircom/xirc2ps_cs.c
780
if (!pcmcia_loop_config(link, xirc2ps_config_check,
drivers/net/ethernet/xircom/xirc2ps_cs.c
789
link->io_lines = 10;
drivers/net/ethernet/xircom/xirc2ps_cs.c
790
link->resource[0]->end = 16;
drivers/net/ethernet/xircom/xirc2ps_cs.c
791
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
drivers/net/ethernet/xircom/xirc2ps_cs.c
793
link->resource[0]->start = ioaddr;
drivers/net/ethernet/xircom/xirc2ps_cs.c
794
if (!(err = pcmcia_request_io(link)))
drivers/net/ethernet/xircom/xirc2ps_cs.c
797
link->resource[0]->start = 0; /* let CS decide */
drivers/net/ethernet/xircom/xirc2ps_cs.c
798
if ((err = pcmcia_request_io(link)))
drivers/net/ethernet/xircom/xirc2ps_cs.c
807
if ((err=pcmcia_request_irq(link, xirc2ps_interrupt)))
drivers/net/ethernet/xircom/xirc2ps_cs.c
810
link->config_flags |= CONF_ENABLE_IRQ;
drivers/net/ethernet/xircom/xirc2ps_cs.c
812
link->config_flags |= CONF_ENABLE_SPKR;
drivers/net/ethernet/xircom/xirc2ps_cs.c
814
if ((err = pcmcia_enable_device(link)))
drivers/net/ethernet/xircom/xirc2ps_cs.c
823
err = pcmcia_write_config_byte(link, CISREG_IOBASE_0, (u8)
drivers/net/ethernet/xircom/xirc2ps_cs.c
824
link->resource[1]->start & 0xff);
drivers/net/ethernet/xircom/xirc2ps_cs.c
828
err = pcmcia_write_config_byte(link, CISREG_IOBASE_1,
drivers/net/ethernet/xircom/xirc2ps_cs.c
829
(link->resource[1]->start >> 8) & 0xff);
drivers/net/ethernet/xircom/xirc2ps_cs.c
837
link->resource[2]->flags = WIN_DATA_WIDTH_8 | WIN_MEMORY_TYPE_AM |
drivers/net/ethernet/xircom/xirc2ps_cs.c
839
link->resource[2]->start = link->resource[2]->end = 0;
drivers/net/ethernet/xircom/xirc2ps_cs.c
840
if ((err = pcmcia_request_window(link, link->resource[2], 0)))
drivers/net/ethernet/xircom/xirc2ps_cs.c
843
local->dingo_ccr = ioremap(link->resource[2]->start, 0x1000) + 0x0800;
drivers/net/ethernet/xircom/xirc2ps_cs.c
844
if ((err = pcmcia_map_mem_page(link, link->resource[2], 0)))
drivers/net/ethernet/xircom/xirc2ps_cs.c
851
ioaddr = link->resource[0]->start;
drivers/net/ethernet/xircom/xirc2ps_cs.c
897
dev->irq = link->irq;
drivers/net/ethernet/xircom/xirc2ps_cs.c
898
dev->base_addr = link->resource[0]->start;
drivers/net/ethernet/xircom/xirc2ps_cs.c
903
SET_NETDEV_DEV(dev, &link->dev);
drivers/net/ethernet/xircom/xirc2ps_cs.c
918
xirc2ps_release(link);
drivers/net/ethernet/xircom/xirc2ps_cs.c
926
xirc2ps_release(struct pcmcia_device *link)
drivers/net/ethernet/xircom/xirc2ps_cs.c
928
dev_dbg(&link->dev, "release\n");
drivers/net/ethernet/xircom/xirc2ps_cs.c
930
if (link->resource[2]->end) {
drivers/net/ethernet/xircom/xirc2ps_cs.c
931
struct net_device *dev = link->priv;
drivers/net/ethernet/xircom/xirc2ps_cs.c
936
pcmcia_disable_device(link);
drivers/net/ethernet/xircom/xirc2ps_cs.c
942
static int xirc2ps_suspend(struct pcmcia_device *link)
drivers/net/ethernet/xircom/xirc2ps_cs.c
944
struct net_device *dev = link->priv;
drivers/net/ethernet/xircom/xirc2ps_cs.c
946
if (link->open) {
drivers/net/ethernet/xircom/xirc2ps_cs.c
954
static int xirc2ps_resume(struct pcmcia_device *link)
drivers/net/ethernet/xircom/xirc2ps_cs.c
956
struct net_device *dev = link->priv;
drivers/net/ethernet/xircom/xirc2ps_cs.c
958
if (link->open) {
drivers/net/ethernet/xscale/ixp4xx_eth.c
590
if (!phydev->link) {
drivers/net/mdio/of_mdio.c
428
status.link = 1;
drivers/net/mdio/of_mdio.c
449
status.link = 1;
drivers/net/netkit.c
35
struct bpf_link link;
drivers/net/netkit.c
621
static struct netkit_link *netkit_link(const struct bpf_link *link)
drivers/net/netkit.c
623
return container_of(link, struct netkit_link, link);
drivers/net/netkit.c
626
static int netkit_link_prog_attach(struct bpf_link *link, u32 flags,
drivers/net/netkit.c
629
struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
636
ret = bpf_mprog_attach(entry, &entry_new, link->prog, link, NULL, flags,
drivers/net/netkit.c
648
static void netkit_link_release(struct bpf_link *link)
drivers/net/netkit.c
650
struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
664
ret = bpf_mprog_detach(entry, &entry_new, link->prog, link, 0, 0, 0);
drivers/net/netkit.c
678
static int netkit_link_update(struct bpf_link *link, struct bpf_prog *nprog,
drivers/net/netkit.c
681
struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
692
if (oprog && link->prog != oprog) {
drivers/net/netkit.c
696
oprog = link->prog;
drivers/net/netkit.c
706
ret = bpf_mprog_attach(entry, &entry_new, nprog, link, oprog,
drivers/net/netkit.c
708
link->prog->aux->id, 0);
drivers/net/netkit.c
711
oprog = xchg(&link->prog, nprog);
drivers/net/netkit.c
720
static void netkit_link_dealloc(struct bpf_link *link)
drivers/net/netkit.c
722
kfree(netkit_link(link));
drivers/net/netkit.c
725
static void netkit_link_fdinfo(const struct bpf_link *link, struct seq_file *seq)
drivers/net/netkit.c
727
const struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
737
link->attach_type,
drivers/net/netkit.c
738
link->attach_type == BPF_NETKIT_PRIMARY ? "primary" : "peer");
drivers/net/netkit.c
741
static int netkit_link_fill_info(const struct bpf_link *link,
drivers/net/netkit.c
744
const struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
753
info->netkit.attach_type = link->attach_type;
drivers/net/netkit.c
757
static int netkit_link_detach(struct bpf_link *link)
drivers/net/netkit.c
759
netkit_link_release(link);
drivers/net/netkit.c
778
bpf_link_init(&nkl->link, BPF_LINK_TYPE_NETKIT,
drivers/net/netkit.c
781
return bpf_link_prime(&nkl->link, link_primer);
drivers/net/netkit.c
809
ret = netkit_link_prog_attach(&nkl->link,
drivers/net/netkit.c
837
if (tuple.link)
drivers/net/netkit.c
838
netkit_link(tuple.link)->dev = NULL;
drivers/net/pcs/pcs-lynx.c
111
state->link, state->an_complete);
drivers/net/pcs/pcs-lynx.c
71
state->link = !!(status & MDIO_STAT1_LSTATUS);
drivers/net/pcs/pcs-lynx.c
73
if (!state->link || !state->an_complete)
drivers/net/pcs/pcs-xpcs.c
1001
state->link = !!(pcs_stat1 & MDIO_STAT1_LSTATUS);
drivers/net/pcs/pcs-xpcs.c
1010
state->link = 0;
drivers/net/pcs/pcs-xpcs.c
1017
if (!state->link)
drivers/net/pcs/pcs-xpcs.c
1029
state->link = false;
drivers/net/pcs/pcs-xpcs.c
1036
state->link = false;
drivers/net/pcs/pcs-xpcs.c
1042
state->link = false;
drivers/net/pcs/pcs-xpcs.c
1060
state->link = false;
drivers/net/pcs/pcs-xpcs.c
1075
state->link = true;
drivers/net/pcs/pcs-xpcs.c
1092
state->link = true;
drivers/net/pcs/pcs-xpcs.c
1130
state->link = false;
drivers/net/pcs/pcs-xpcs.c
1164
state->link = 0;
drivers/net/pcs/pcs-xpcs.c
1168
state->link = !!(ret & BMSR_LSTATUS);
drivers/net/pcs/pcs-xpcs.c
1169
if (!state->link)
drivers/net/pcs/pcs-xpcs.c
306
if ((__state)->link) \
drivers/net/pcs/pcs-xpcs.c
610
state->link = false;
drivers/net/pcs/pcs-xpcs.c
616
state->link = false;
drivers/net/pcs/pcs-xpcs.c
996
state->link = false;
drivers/net/phy/air_en8811h.c
1481
if (!phydev->link)
drivers/net/phy/aquantia/aquantia_main.c
547
if (!phydev->link || phydev->autoneg == AUTONEG_DISABLE)
drivers/net/phy/aquantia/aquantia_main.c
590
phydev->link = false;
drivers/net/phy/as21xxx.c
652
phydev->link = 0;
drivers/net/phy/as21xxx.c
660
phydev->link = !!(status & MDIO_STAT1_LSTATUS);
drivers/net/phy/as21xxx.c
699
int bmcr, old_link = phydev->link;
drivers/net/phy/as21xxx.c
707
if (phydev->autoneg == AUTONEG_ENABLE && old_link && phydev->link)
drivers/net/phy/ax88796b.c
56
if (!phydev->link)
drivers/net/phy/bcm84881.c
151
phydev->link = 0;
drivers/net/phy/bcm84881.c
165
phydev->link = !!(val & MDIO_STAT1_LSTATUS) &&
drivers/net/phy/bcm84881.c
168
phydev->link = false;
drivers/net/phy/bcm84881.c
177
if (!phydev->link)
drivers/net/phy/bcm84881.c
200
phydev->link = 0;
drivers/net/phy/bcm87xx.c
131
phydev->link = 1;
drivers/net/phy/bcm87xx.c
136
phydev->link = 0;
drivers/net/phy/broadcom.c
1381
if (!phy_polling_mode(phydev) || !phydev->link) {
drivers/net/phy/broadcom.c
1394
phydev->link = status & LRESR_LSTATUS ? 1 : 0;
drivers/net/phy/broadcom.c
1401
phydev->link = 0;
drivers/net/phy/broadcom.c
1411
int err, old_link = phydev->link;
drivers/net/phy/broadcom.c
1420
AUTONEG_ENABLE && old_link && phydev->link)
drivers/net/phy/cortina.c
37
phydev->link = 1;
drivers/net/phy/cortina.c
39
phydev->link = 0;
drivers/net/phy/dp83869.c
180
if (phydev->link) {
drivers/net/phy/dp83td510.c
594
phydev->link = !!(phy_sts & DP83TD510E_LINK_STATUS);
drivers/net/phy/dp83td510.c
595
if (phydev->link) {
drivers/net/phy/dp83td510.c
654
if (!phydev->link)
drivers/net/phy/dp83td510.c
696
if (phydev->link) {
drivers/net/phy/dp83tg720.c
467
phydev->link = !!(phy_sts & DP83TG720S_LINK_STATUS);
drivers/net/phy/dp83tg720.c
468
if (!phydev->link) {
drivers/net/phy/dp83tg720.c
512
if (!phydev->link)
drivers/net/phy/dp83tg720.c
616
if (phydev->link) {
drivers/net/phy/fixed_phy.c
151
fmb_fixed_phys[phy_addr].status.link = true;
drivers/net/phy/fixed_phy.c
55
fp->status.link = new_carrier;
drivers/net/phy/icplus.c
142
phydev->link = 1;
drivers/net/phy/lxt.c
212
phydev->link = 0;
drivers/net/phy/lxt.c
214
phydev->link = 1;
drivers/net/phy/marvell-88q2xxx.c
273
bool link = false;
drivers/net/phy/marvell-88q2xxx.c
291
if (!phy_polling_mode(phydev) || !phydev->link) {
drivers/net/phy/marvell-88q2xxx.c
297
link = true;
drivers/net/phy/marvell-88q2xxx.c
300
if (!link) {
drivers/net/phy/marvell-88q2xxx.c
306
link = true;
drivers/net/phy/marvell-88q2xxx.c
310
phydev->link = link;
drivers/net/phy/marvell-88q2xxx.c
326
phydev->link = false;
drivers/net/phy/marvell-88q2xxx.c
333
phydev->link = true;
drivers/net/phy/marvell-88q2xxx.c
336
} else if (!phydev->link) {
drivers/net/phy/marvell-88q2xxx.c
354
phydev->link = true;
drivers/net/phy/marvell-88q2xxx.c
356
phydev->link = false;
drivers/net/phy/marvell-88q2xxx.c
373
phydev->link = false;
drivers/net/phy/marvell-88x2222.c
326
int val, link = 0;
drivers/net/phy/marvell-88x2222.c
333
link = 1;
drivers/net/phy/marvell-88x2222.c
355
return link;
drivers/net/phy/marvell-88x2222.c
362
int val, link = 0;
drivers/net/phy/marvell-88x2222.c
388
link = 1;
drivers/net/phy/marvell-88x2222.c
408
return link;
drivers/net/phy/marvell-88x2222.c
429
int link;
drivers/net/phy/marvell-88x2222.c
431
phydev->link = 0;
drivers/net/phy/marvell-88x2222.c
439
link = mv2222_read_status_10g(phydev);
drivers/net/phy/marvell-88x2222.c
441
link = mv2222_read_status_1g(phydev);
drivers/net/phy/marvell-88x2222.c
443
if (link < 0)
drivers/net/phy/marvell-88x2222.c
444
return link;
drivers/net/phy/marvell-88x2222.c
446
phydev->link = link;
drivers/net/phy/marvell.c
1671
phydev->link = 0;
drivers/net/phy/marvell.c
1747
phydev->link = !!(status & MII_M1011_PHY_STATUS_LINK);
drivers/net/phy/marvell.c
1819
if (phydev->link)
drivers/net/phy/marvell10g.c
1008
phydev->link = 1;
drivers/net/phy/marvell10g.c
1034
phydev->link = 0;
drivers/net/phy/marvell10g.c
1101
phydev->link = 0;
drivers/net/phy/marvell10g.c
1117
if (phydev->link)
drivers/net/phy/marvell10g.c
965
if (!phydev->link)
drivers/net/phy/mediatek/mtk-2p5ge.c
219
if (phydev->link) {
drivers/net/phy/micrel.c
1637
phydev->link = 1;
drivers/net/phy/micrel.c
1685
phydev->link = 0;
drivers/net/phy/microchip_t1.c
1018
phydev->link = 1;
drivers/net/phy/microchip_t1.c
1020
phydev->link = 0;
drivers/net/phy/microchip_t1.c
2014
if (!phydev->link)
drivers/net/phy/microchip_t1.c
2038
if (!phydev->link)
drivers/net/phy/microchip_t1s.c
501
phydev->link = 1;
drivers/net/phy/motorcomm.c
1356
int link;
drivers/net/phy/motorcomm.c
1384
link = !!(status & YTPHY_SSR_LINK);
drivers/net/phy/motorcomm.c
1401
if (link && fiber_latch_val != fiber_curr_val) {
drivers/net/phy/motorcomm.c
1402
link = 0;
drivers/net/phy/motorcomm.c
1416
if (link) {
drivers/net/phy/motorcomm.c
1422
return phy_restore_page(phydev, old_page, link);
drivers/net/phy/motorcomm.c
1439
int link;
drivers/net/phy/motorcomm.c
1443
link = yt8521_read_status_paged(phydev, priv->reg_page);
drivers/net/phy/motorcomm.c
1444
if (link < 0)
drivers/net/phy/motorcomm.c
1445
return link;
drivers/net/phy/motorcomm.c
1463
link = link_utp || link_fiber;
drivers/net/phy/motorcomm.c
1466
if (link) {
drivers/net/phy/motorcomm.c
1467
if (phydev->link == 0) {
drivers/net/phy/motorcomm.c
1491
phydev->link = 1;
drivers/net/phy/motorcomm.c
1493
if (phydev->link == 1) {
drivers/net/phy/motorcomm.c
1507
phydev->link = 0;
drivers/net/phy/motorcomm.c
2291
int link;
drivers/net/phy/motorcomm.c
2301
link = !!(ret & YTPHY_SSR_LINK);
drivers/net/phy/motorcomm.c
2302
ret = link;
drivers/net/phy/motorcomm.c
2319
int link;
drivers/net/phy/motorcomm.c
2322
link = yt8521_aneg_done_paged(phydev, priv->reg_page);
drivers/net/phy/motorcomm.c
2335
link = link_fiber || link_utp;
drivers/net/phy/motorcomm.c
2340
return link;
drivers/net/phy/motorcomm.c
2859
if (!phydev->link)
drivers/net/phy/motorcomm.c
2885
int link;
drivers/net/phy/motorcomm.c
2911
link = val & YTPHY_SSR_LINK;
drivers/net/phy/motorcomm.c
2912
if (link)
drivers/net/phy/motorcomm.c
2915
if (link) {
drivers/net/phy/motorcomm.c
2916
if (phydev->link == 0)
drivers/net/phy/motorcomm.c
2920
phydev->link = 1;
drivers/net/phy/motorcomm.c
2922
if (phydev->link == 1)
drivers/net/phy/motorcomm.c
2926
phydev->link = 0;
drivers/net/phy/mscc/mscc_ptp.c
252
if (!phydev->link)
drivers/net/phy/mxl-gpy.c
643
phydev->link = (ret & PHY_MIISTAT_LS) ? 1 : 0;
drivers/net/phy/mxl-gpy.c
660
if (phydev->link) {
drivers/net/phy/ncn26000.c
75
if (!phy_polling_mode(phydev) || !phydev->link) {
drivers/net/phy/ncn26000.c
90
phydev->link = 1;
drivers/net/phy/ncn26000.c
95
phydev->link = 0;
drivers/net/phy/nxp-tja11xx.c
216
if (phydev->link)
drivers/net/phy/nxp-tja11xx.c
392
if (phydev->link) {
drivers/net/phy/nxp-tja11xx.c
398
phydev->link = 0;
drivers/net/phy/phy-c45.c
424
bool link = true;
drivers/net/phy/phy-c45.c
435
phydev->link = 0;
drivers/net/phy/phy-c45.c
440
while (mmd_mask && link) {
drivers/net/phy/phy-c45.c
449
if (!phy_polling_mode(phydev) || !phydev->link) {
drivers/net/phy/phy-c45.c
462
link = false;
drivers/net/phy/phy-c45.c
465
phydev->link = link;
drivers/net/phy/phy.c
1022
if (phydev->link && phydev->state != PHY_RUNNING) {
drivers/net/phy/phy.c
1031
} else if (!phydev->link && phydev->state != PHY_NOLINK) {
drivers/net/phy/phy.c
121
if (phydev->link) {
drivers/net/phy/phy.c
1557
if (phydev->link) {
drivers/net/phy/phy.c
1571
if (phydev->link) {
drivers/net/phy/phy.c
1572
phydev->link = 0;
drivers/net/phy/phy.c
1764
if (phydev->link && phydev->state == PHY_RUNNING) {
drivers/net/phy/phy.c
1768
phydev->link = false;
drivers/net/phy/phy.c
1801
phydev->link = true;
drivers/net/phy/phy.c
1950
if (!phydev->link)
drivers/net/phy/phy.c
1958
phydev->link = false;
drivers/net/phy/phy.c
1961
phydev->link = true;
drivers/net/phy/phy_device.c
2265
} else if (phydev->link) {
drivers/net/phy/phy_device.c
2472
if (!phy_polling_mode(phydev) || !phydev->link) {
drivers/net/phy/phy_device.c
2485
phydev->link = status & BMSR_LSTATUS ? 1 : 0;
drivers/net/phy/phy_device.c
2492
phydev->link = 0;
drivers/net/phy/phy_device.c
2586
int err, old_link = phydev->link;
drivers/net/phy/phy_device.c
2594
if (phydev->autoneg == AUTONEG_ENABLE && old_link && phydev->link)
drivers/net/phy/phy_device.c
2639
int lpa, err, old_link = phydev->link;
drivers/net/phy/phy_device.c
2647
if (phydev->autoneg == AUTONEG_ENABLE && old_link && phydev->link) {
drivers/net/phy/phy_device.c
777
dev->link = 0;
drivers/net/phy/phy_led_triggers.c
35
if (!phy->link)
drivers/net/phy/phylink.c
1011
st.link = false;
drivers/net/phy/phylink.c
1411
state->link = 1;
drivers/net/phy/phylink.c
1428
state->link = 0;
drivers/net/phy/phylink.c
1441
state->link = !!gpiod_get_value_cansleep(pl->link_gpio);
drivers/net/phy/phylink.c
1471
link_state.link = false;
drivers/net/phy/phylink.c
1626
link_state.link = false;
drivers/net/phy/phylink.c
1628
link_state.link = false;
drivers/net/phy/phylink.c
1632
mac_config = link_state.link;
drivers/net/phy/phylink.c
1635
mac_config = link_state.link;
drivers/net/phy/phylink.c
1644
if (!link_state.link) {
drivers/net/phy/phylink.c
1655
link_state.link &= pl->phy_state.link;
drivers/net/phy/phylink.c
1658
if (phy && pl->phy_state.link) {
drivers/net/phy/phylink.c
1664
link_state.link = false;
drivers/net/phy/phylink.c
1708
link_state.link = false;
drivers/net/phy/phylink.c
1710
if (link_state.link != cur_link_state) {
drivers/net/phy/phylink.c
1711
pl->old_link_state = link_state.link;
drivers/net/phy/phylink.c
1712
if (!link_state.link)
drivers/net/phy/phylink.c
1717
if (!link_state.link && retrigger) {
drivers/net/phy/phylink.c
1815
pl->link_config.link = 1;
drivers/net/phy/phylink.c
1986
pl->phy_state.link = up;
drivers/net/phy/phylink.c
3363
fs.link = state->link;
drivers/net/phy/phylink.c
3996
state->link = false;
drivers/net/phy/phylink.c
4021
state->link = false;
drivers/net/phy/phylink.c
4031
state->link = false;
drivers/net/phy/phylink.c
4046
state->link = false;
drivers/net/phy/phylink.c
4087
state->link = false;
drivers/net/phy/phylink.c
4123
state->link = false;
drivers/net/phy/phylink.c
4151
state->link = !!(bmsr & BMSR_LSTATUS);
drivers/net/phy/phylink.c
4155
if (!state->link)
drivers/net/phy/phylink.c
4191
state->link = false;
drivers/net/phy/phylink.c
4221
state->link = false;
drivers/net/phy/phylink.c
4345
state->link = false;
drivers/net/phy/phylink.c
4349
state->link = !!(stat & MDIO_STAT1_LSTATUS);
drivers/net/phy/phylink.c
4350
if (!state->link)
drivers/net/phy/phylink.c
768
pl->link_config.link = 1;
drivers/net/phy/qcom/at803x.c
1071
phydev->link ? IPQ5018_PHY_FIFO_RESET : 0);
drivers/net/phy/qcom/qca808x.c
280
if (phydev->link) {
drivers/net/phy/qcom/qca808x.c
421
phydev->link ? QCA8081_PHY_FIFO_RSTN : 0);
drivers/net/phy/qcom/qcom-phy-lib.c
343
int err, old_link = phydev->link;
drivers/net/phy/qcom/qcom-phy-lib.c
351
if (phydev->autoneg == AUTONEG_ENABLE && old_link && phydev->link)
drivers/net/phy/realtek/realtek_main.c
1153
if (!phydev->link)
drivers/net/phy/realtek/realtek_main.c
1508
if (!phydev->link)
drivers/net/phy/realtek/realtek_main.c
1617
if (!phydev->link) {
drivers/net/phy/realtek/realtek_main.c
2125
if (!phydev->link)
drivers/net/phy/smsc.c
244
if (!phydev->link && priv && priv->edpd_enable &&
drivers/net/phy/swphy.c
135
if (state->link) {
drivers/net/phy/swphy.c
97
if (state->link) {
drivers/net/phy/teranetics.c
49
phydev->link = 1;
drivers/net/phy/teranetics.c
58
phydev->link = 0;
drivers/net/phy/teranetics.c
64
phydev->link = 0;
drivers/net/phy/uPD60620.c
44
phydev->link = 0;
drivers/net/phy/uPD60620.c
55
phydev->link = 1;
drivers/net/usb/aqc111.c
780
int link = 0;
drivers/net/usb/aqc111.c
789
link = 1;
drivers/net/usb/aqc111.c
791
link = 0;
drivers/net/usb/aqc111.c
795
aqc111_data->link = link;
drivers/net/usb/aqc111.c
797
if (netif_carrier_ok(dev->net) != link)
drivers/net/usb/aqc111.c
907
if (aqc111_data->link == 1) { /* Link up */
drivers/net/usb/aqc111.h
165
u8 link;
drivers/net/usb/asix_devices.c
37
u8 link;
drivers/net/usb/asix_devices.c
46
int link;
drivers/net/usb/asix_devices.c
52
link = event->link & 0x01;
drivers/net/usb/asix_devices.c
53
if (netif_carrier_ok(dev->net) != link) {
drivers/net/usb/asix_devices.c
54
usbnet_link_change(dev, link, 1);
drivers/net/usb/asix_devices.c
55
netdev_dbg(dev->net, "Link Status is: %d\n", link);
drivers/net/usb/ax88172a.c
36
if (phydev->link) {
drivers/net/usb/ax88179_178a.c
317
u32 link;
drivers/net/usb/ax88179_178a.c
325
link = (((__force u32)event->intdata1) & AX_INT_PPLS_LINK) >> 16;
drivers/net/usb/ax88179_178a.c
327
if (netif_carrier_ok(dev->net) != link) {
drivers/net/usb/ax88179_178a.c
328
usbnet_link_change(dev, link, 1);
drivers/net/usb/ax88179_178a.c
329
if (!link)
drivers/net/usb/ch9200.c
231
int link;
drivers/net/usb/ch9200.c
238
link = !!(buf[0] & 0x01);
drivers/net/usb/ch9200.c
240
if (link) {
drivers/net/usb/cx82310_eth.c
146
u8 link[3];
drivers/net/usb/cx82310_eth.c
188
link, sizeof(link));
drivers/net/usb/cx82310_eth.c
190
if (!ret && link[0] == 1 && link[2] == 1)
drivers/net/usb/dm9601.c
506
int link;
drivers/net/usb/dm9601.c
525
link = !!(buf[0] & 0x40);
drivers/net/usb/dm9601.c
526
if (netif_carrier_ok(dev->net) != link) {
drivers/net/usb/dm9601.c
527
usbnet_link_change(dev, link, 1);
drivers/net/usb/dm9601.c
528
netdev_dbg(dev->net, "Link Status is: %d\n", link);
drivers/net/usb/lan78xx.c
1646
netif_dbg(dev, link, dev->net, "PHY INTR: 0x%08x\n", intdata);
drivers/net/usb/mcs7830.c
548
bool link, link_changed;
drivers/net/usb/mcs7830.c
553
link = !(buf[1] == 0x20);
drivers/net/usb/mcs7830.c
554
link_changed = netif_carrier_ok(dev->net) != link;
drivers/net/usb/mcs7830.c
556
usbnet_link_change(dev, link, 0);
drivers/net/usb/mcs7830.c
557
netdev_dbg(dev->net, "Link Status is: %d\n", link);
drivers/net/usb/net1080.c
183
netif_dbg(dev, link, dev->net,
drivers/net/usb/net1080.c
226
netif_dbg(dev, link, dev->net,
drivers/net/usb/net1080.c
295
netif_info(dev, link, dev->net, "port %c, peer %sconnected\n",
drivers/net/usb/pegasus.c
1057
netif_info(pegasus, link, net, "Promiscuous mode enabled\n");
drivers/net/usb/pegasus.c
1061
netif_dbg(pegasus, link, net, "set allmulti\n");
drivers/net/usb/plusb.c
80
netif_dbg(dev, link, dev->net, "pl_reset --> %d\n", status);
drivers/net/usb/r8152.c
2880
netif_notice(tp, link, netdev, "Promiscuous mode enabled\n");
drivers/net/usb/r8152.c
6797
netif_info(tp, link, netdev, "carrier on\n");
drivers/net/usb/r8152.c
6810
netif_info(tp, link, netdev, "carrier off\n");
drivers/net/usb/r8152.c
8499
netif_info(tp, link, netdev, "linking down\n");
drivers/net/usb/smsc75xx.c
600
netif_dbg(dev, link, dev->net, "rx pause %s, tx pause %s\n",
drivers/net/usb/smsc75xx.c
604
netif_dbg(dev, link, dev->net, "half duplex\n");
drivers/net/usb/smsc75xx.c
644
netif_dbg(dev, link, dev->net, "speed: %u duplex: %d lcladv: %04x rmtadv: %04x\n",
drivers/net/usb/smsc75xx.c
662
netif_dbg(dev, link, dev->net, "intdata: 0x%08X\n", intdata);
drivers/net/usb/smsc95xx.c
570
netif_dbg(dev, link, dev->net, "rx pause %s, tx pause %s\n",
drivers/net/usb/smsc95xx.c
574
netif_dbg(dev, link, dev->net, "half duplex\n");
drivers/net/usb/smsc95xx.c
627
netif_dbg(dev, link, dev->net, "intdata: 0x%08X\n", intdata);
drivers/net/usb/smsc95xx.c
761
return net->phydev->link;
drivers/net/usb/smsc95xx.c
826
if (phydev->link && (!pause->autoneg ||
drivers/net/usb/sr9700.c
168
static void sr9700_handle_link_change(struct net_device *netdev, bool link)
drivers/net/usb/sr9700.c
170
if (netif_carrier_ok(netdev) != link) {
drivers/net/usb/sr9700.c
171
if (link) {
drivers/net/usb/sr9700.c
185
u32 link = 0;
drivers/net/usb/sr9700.c
188
link = !!(value & NSR_LINKST);
drivers/net/usb/sr9700.c
190
sr9700_handle_link_change(netdev, link);
drivers/net/usb/sr9700.c
192
return link;
drivers/net/usb/sr9700.c
422
bool link;
drivers/net/usb/sr9700.c
441
link = !!(buf[0] & NSR_LINKST);
drivers/net/usb/sr9700.c
442
sr9700_handle_link_change(dev->net, link);
drivers/net/usb/sr9800.c
153
int link;
drivers/net/usb/sr9800.c
159
link = event->link & 0x01;
drivers/net/usb/sr9800.c
160
if (netif_carrier_ok(dev->net) != link) {
drivers/net/usb/sr9800.c
161
usbnet_link_change(dev, link, 1);
drivers/net/usb/sr9800.c
162
netdev_dbg(dev->net, "Link Status is: %d\n", link);
drivers/net/usb/sr9800.h
195
u8 link;
drivers/net/usb/usbnet.c
1335
netif_dbg(dev, link, dev->net,
drivers/net/usb/usbnet.c
1637
netif_dbg(dev, link, dev->net,
drivers/net/usb/usbnet.c
2053
void usbnet_link_change(struct usbnet *dev, bool link, bool need_reset)
drivers/net/usb/usbnet.c
2056
if (link && !need_reset) {
drivers/net/usb/usbnet.c
2063
if (need_reset && link)
drivers/net/usb/usbnet.c
645
netif_dbg(dev, link, dev->net,
drivers/net/wan/framer/framer-core.c
472
struct device_link *link;
drivers/net/wan/framer/framer-core.c
492
link = device_link_add(dev, &framer->dev, DL_FLAG_STATELESS);
drivers/net/wan/framer/framer-core.c
493
if (!link) {
drivers/net/wireless/ath/ath10k/usb.c
48
struct ath10k_urb_context, link);
drivers/net/wireless/ath/ath10k/usb.c
49
list_del(&urb_context->link);
drivers/net/wireless/ath/ath10k/usb.c
69
list_add(&urb_context->link, &pipe->urb_list_head);
drivers/net/wireless/ath/ath10k/usb.h
107
struct list_head link;
drivers/net/wireless/ath/ath11k/hal_rx.c
296
struct hal_rx_msdu_link *link = link_desc;
drivers/net/wireless/ath/ath11k/hal_rx.c
302
msdu = &link->msdu_link[0];
drivers/net/wireless/ath/ath11k/hal_rx.c
307
msdu = &link->msdu_link[i];
drivers/net/wireless/ath/ath12k/core.h
385
struct ath12k_link_vif __rcu *link[ATH12K_NUM_MAX_LINKS];
drivers/net/wireless/ath/ath12k/core.h
520
struct ath12k_link_sta __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/ath/ath12k/debugfs.c
930
arvif = rcu_dereference_protected(ahvif->link[link_id],
drivers/net/wireless/ath/ath12k/debugfs_sta.c
161
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/debugfs_sta.c
280
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/dp_peer.c
218
arsta = rcu_dereference(ahsta->link[peer->link_id]);
drivers/net/wireless/ath/ath12k/dp_rx.c
715
ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/dp_rx.c
747
ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
10034
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
10472
ahsta->link[arvif->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
10563
ahvif->link[scan_link_id]);
drivers/net/wireless/ath/ath12k/mac.c
10782
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11105
arvif_p = wiphy_dereference(ahvif->ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11303
arvif = wiphy_dereference(ahvif->ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11338
arvif = wiphy_dereference(ahvif->ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11440
ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
1192
arsta = rcu_dereference(ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
12142
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
12397
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
12922
ahsta->link[arvif->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
12945
ahsta->link[arvif->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
12998
link_sta = rcu_dereference(peer->sta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
13521
arsta = wiphy_dereference(hw->wiphy, ahsta->link[link_sta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
3546
arsta_p = rcu_dereference(ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
3547
arvif = rcu_dereference(ahsta->ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
3865
ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4155
rcu_assign_pointer(ahvif->link[arvif->link_id], arvif);
drivers/net/wireless/ath/ath12k/mac.c
4207
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4237
rcu_assign_pointer(ahvif->link[arvif->link_id], NULL);
drivers/net/wireless/ath/ath12k/mac.c
4267
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4280
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4384
ahvif->link[ahsta->assoc_link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4399
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5070
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5414
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5483
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5738
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5774
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6172
ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6174
ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6205
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
642
tx_ahvif->link[tx_bss_conf->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6452
if (WARN_ON(!rcu_access_pointer(sta->link[link_id])))
drivers/net/wireless/ath/ath12k/mac.c
6782
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6787
rcu_assign_pointer(ahsta->link[link_id], NULL);
drivers/net/wireless/ath/ath12k/mac.c
705
sta->link[arsta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7111
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7117
link_sta = wiphy_dereference(ah->hw->wiphy, sta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7134
rcu_assign_pointer(ahsta->link[link_id], arsta);
drivers/net/wireless/ath/ath12k/mac.c
7157
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7158
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7445
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7539
assoc_arvif = wiphy_dereference(hw->wiphy, ahvif->link[ahsta->assoc_link_id]);
drivers/net/wireless/ath/ath12k/mac.c
761
arvif = rcu_dereference(ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7723
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7724
arsta = wiphy_dereference(hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7815
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7816
arsta = wiphy_dereference(hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7865
arvif = rcu_dereference(ahvif->link[link_sta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7876
arsta = rcu_dereference(ahsta->link[link_sta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7902
link_sta = rcu_dereference(sta->link[arsta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7973
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
8031
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
8191
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
923
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
9298
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[skb_cb->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
9405
u8 link, struct sk_buff *skb, u32 info_flags)
drivers/net/wireless/ath/ath12k/mac.c
9415
if (link != IEEE80211_LINK_UNSPECIFIED)
drivers/net/wireless/ath/ath12k/mac.c
9416
return link;
drivers/net/wireless/ath/ath12k/mac.c
9427
link = ahsta->deflink.link_id;
drivers/net/wireless/ath/ath12k/mac.c
9430
return link;
drivers/net/wireless/ath/ath12k/mac.c
9432
bss_conf = rcu_dereference(vif->link_conf[link]);
drivers/net/wireless/ath/ath12k/mac.c
9440
return link;
drivers/net/wireless/ath/ath12k/mac.c
9451
if (link == IEEE80211_LINK_UNSPECIFIED)
drivers/net/wireless/ath/ath12k/mac.c
9452
link = ahsta->deflink.link_id;
drivers/net/wireless/ath/ath12k/mac.c
9455
return link;
drivers/net/wireless/ath/ath12k/mac.c
9458
bss_conf = rcu_dereference(vif->link_conf[link]);
drivers/net/wireless/ath/ath12k/mac.c
9459
link_sta = rcu_dereference(sta->link[link]);
drivers/net/wireless/ath/ath12k/mac.c
9470
return link;
drivers/net/wireless/ath/ath12k/mac.c
9498
return link;
drivers/net/wireless/ath/ath12k/mac.h
340
u8 link, struct sk_buff *skb, u32 info_flags);
drivers/net/wireless/ath/ath12k/peer.c
220
ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
296
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
297
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
325
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
326
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
431
arvif = rcu_dereference(ahvif->link[skb_cb->link_id]);
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
695
arvif = rcu_dereference(ahvif->link[skb_cb->link_id]);
drivers/net/wireless/ath/ath12k/wifi7/hal_rx.c
290
ath12k_wifi7_hal_rx_msdu_link_info_get(struct hal_rx_msdu_link *link,
drivers/net/wireless/ath/ath12k/wifi7/hal_rx.c
300
msdu = &link->msdu_link[0];
drivers/net/wireless/ath/ath12k/wifi7/hal_rx.c
305
msdu = &link->msdu_link[i];
drivers/net/wireless/ath/ath12k/wifi7/hal_rx.h
838
void ath12k_wifi7_hal_rx_msdu_link_info_get(struct hal_rx_msdu_link *link, u32 *num_msdus,
drivers/net/wireless/ath/ath12k/wifi7/hw.c
815
arvif = rcu_dereference(ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
885
tmp_arvif = rcu_dereference(ahvif->link[link_id]);
drivers/net/wireless/ath/ath5k/ath5k.h
631
u32 *link;
drivers/net/wireless/ath/ath5k/base.c
1058
txq->link = NULL;
drivers/net/wireless/ath/ath5k/base.c
1176
txq->link = NULL;
drivers/net/wireless/ath/ath5k/base.c
878
if (txq->link == NULL) /* is this first packet? */
drivers/net/wireless/ath/ath5k/base.c
881
*txq->link = bf->daddr;
drivers/net/wireless/ath/ath5k/base.c
883
txq->link = &ds->ds_link;
drivers/net/wireless/ath/ath6kl/usb.c
144
struct ath6kl_urb_context, link);
drivers/net/wireless/ath/ath6kl/usb.c
145
list_del(&urb_context->link);
drivers/net/wireless/ath/ath6kl/usb.c
165
list_add(&urb_context->link, &pipe->urb_list_head);
drivers/net/wireless/ath/ath6kl/usb.c
79
struct list_head link;
drivers/net/wireless/ath/ath9k/ar9002_mac.c
223
WRITE_ONCE(ads->ds_link, i->link);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
165
checksum = ads->info + ads->link
drivers/net/wireless/ath/ath9k/ar9003_mac.c
178
ads->link = ds_link;
drivers/net/wireless/ath/ath9k/ar9003_mac.c
44
checksum += i->link;
drivers/net/wireless/ath/ath9k/ar9003_mac.c
45
WRITE_ONCE(ads->link, i->link);
drivers/net/wireless/ath/ath9k/ar9003_mac.h
73
u32 link; /* link pointer */
drivers/net/wireless/ath/ath9k/hw-ops.h
39
u32 link)
drivers/net/wireless/ath/ath9k/hw-ops.h
41
ath9k_hw_ops(ah)->set_desc_link(ds, link);
drivers/net/wireless/ath/ath9k/hw.h
727
void (*set_desc_link)(void *ds, u32 link);
drivers/net/wireless/ath/ath9k/mac.h
699
dma_addr_t link;
drivers/net/wireless/ath/ath9k/xmit.c
1425
info.link = bf->bf_next->bf_daddr;
drivers/net/wireless/ath/ath9k/xmit.c
1427
info.link = (sc->tx99_state) ? bf->bf_daddr : 0;
drivers/net/wireless/ath/wil6210/debugfs.c
1443
DEFINE_SHOW_ATTRIBUTE(link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
111
ctx = wiphy_dereference(mld->wiphy, link->chanctx_conf);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
127
flags |= iwl_mld_get_rate_flags(mld, info, vif, link,
drivers/net/wireless/intel/iwlwifi/mld/ap.c
200
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
205
link = iwl_mld_link_dereference_check(mld_vif, key->link_id);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
206
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/ap.c
209
for (int i = 0; i < ARRAY_SIZE(link->ap_early_keys); i++) {
drivers/net/wireless/intel/iwlwifi/mld/ap.c
210
if (link->ap_early_keys[i] != key)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
215
link->ap_early_keys[i] = NULL;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
223
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
228
link = iwl_mld_link_dereference_check(mld_vif, key->link_id);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
229
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/ap.c
232
for (int i = 0; i < ARRAY_SIZE(link->ap_early_keys); i++) {
drivers/net/wireless/intel/iwlwifi/mld/ap.c
233
if (!link->ap_early_keys[i]) {
drivers/net/wireless/intel/iwlwifi/mld/ap.c
234
link->ap_early_keys[i] = key;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
244
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
246
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
249
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/ap.c
269
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
277
iwl_mld_send_ap_tx_power_constraint_cmd(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
279
ret = iwl_mld_update_beacon_template(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
286
ret = iwl_mld_change_link_in_fw(mld, link,
drivers/net/wireless/intel/iwlwifi/mld/ap.c
293
ret = iwl_mld_add_mcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
308
ret = iwl_mld_add_bcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
316
ret = iwl_mld_send_ap_early_keys(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
328
ctx = wiphy_dereference(mld->wiphy, link->chanctx_conf);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
333
iwl_mld_remove_bcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
340
iwl_mld_remove_mcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
345
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
360
iwl_mld_remove_bcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
362
iwl_mld_remove_mcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
45
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/ap.c
48
u32 legacy = link->beacon_tx_rate.control[band].legacy;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
96
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
98
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/ap.h
19
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/ap.h
22
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/ap.h
35
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/d3.c
1687
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/d3.c
1697
if (iwl_mld_beacon_protection_enabled(mld, link))
drivers/net/wireless/intel/iwlwifi/mld/debugfs.h
89
iwl_mld_from_bss_conf(struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/debugfs.h
91
return iwl_mld_vif_from_mac80211(link->vif)->mld;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
216
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
23
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
259
for_each_vif_active_link(vif, link, link_id) {
drivers/net/wireless/intel/iwlwifi/mld/iface.c
260
if (!link->he_support)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
263
if (link->twt_requester)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
265
if (link->twt_protected)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
267
if (link->twt_broadcast)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
38
for_each_mld_vif_valid_link(mld_vif, link) {
drivers/net/wireless/intel/iwlwifi/mld/iface.c
39
iwl_mld_cleanup_link(mld_vif->mld, link);
drivers/net/wireless/intel/iwlwifi/mld/iface.c
43
link_id == 0 && link == &mld_vif->deflink)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
498
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
501
for_each_vif_active_link(vif, link, link_id) {
drivers/net/wireless/intel/iwlwifi/mld/iface.c
502
if (iwl_mld_link_set_associated(mld, vif, link))
drivers/net/wireless/intel/iwlwifi/mld/iface.c
51
if (link != &mld_vif->deflink)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
52
kfree_rcu(link, rcu_head);
drivers/net/wireless/intel/iwlwifi/mld/iface.c
53
RCU_INIT_POINTER(mld_vif->link[link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/iface.c
629
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
638
link = iwl_mld_fw_id_to_link_conf(mld, notif->link_id);
drivers/net/wireless/intel/iwlwifi/mld/iface.c
639
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/iface.c
642
vif = link->vif;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
647
if (!link->chanreq.oper.chan ||
drivers/net/wireless/intel/iwlwifi/mld/iface.c
648
link->chanreq.oper.chan->band != NL80211_BAND_2GHZ ||
drivers/net/wireless/intel/iwlwifi/mld/iface.c
649
link->chanreq.oper.width < NL80211_CHAN_WIDTH_40)
drivers/net/wireless/intel/iwlwifi/mld/iface.h
174
struct iwl_mld_link __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/intel/iwlwifi/mld/iface.h
205
rcu_dereference_check((mld_vif)->link[link_id], \
drivers/net/wireless/intel/iwlwifi/mld/iface.h
209
for (int link_id = 0; link_id < ARRAY_SIZE((mld_vif)->link); \
drivers/net/wireless/intel/iwlwifi/mld/key.c
377
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/key.c
388
link = iwl_mld_link_dereference_check(mld_vif, key->link_id);
drivers/net/wireless/intel/iwlwifi/mld/key.c
389
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/key.c
393
rcu_assign_pointer(link->bigtks[key->keyidx - 6], key);
drivers/net/wireless/intel/iwlwifi/mld/key.c
395
RCU_INIT_POINTER(link->bigtks[key->keyidx - 6], NULL);
drivers/net/wireless/intel/iwlwifi/mld/key.c
399
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/key.c
401
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/key.c
73
struct iwl_mld_link *link = NULL;
drivers/net/wireless/intel/iwlwifi/mld/key.c
76
link = iwl_mld_link_dereference_check(mld_vif,
drivers/net/wireless/intel/iwlwifi/mld/key.c
79
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/key.c
83
if (WARN_ON(link->bcast_sta.sta_id == IWL_INVALID_STA ||
drivers/net/wireless/intel/iwlwifi/mld/key.c
84
link->mcast_sta.sta_id == IWL_INVALID_STA))
drivers/net/wireless/intel/iwlwifi/mld/key.c
89
return BIT(link->bcast_sta.sta_id);
drivers/net/wireless/intel/iwlwifi/mld/key.c
92
return BIT(link->mcast_sta.sta_id);
drivers/net/wireless/intel/iwlwifi/mld/key.h
44
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
151
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
154
u8 protection_mode = link->ht_operation_mode &
drivers/net/wireless/intel/iwlwifi/mld/link.c
160
if (link->use_cts_prot)
drivers/net/wireless/intel/iwlwifi/mld/link.c
175
if (link->chanreq.oper.width > NL80211_CHAN_WIDTH_20)
drivers/net/wireless/intel/iwlwifi/mld/link.c
193
static void iwl_mld_fill_qos_params(struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
196
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
214
if (link->qos)
drivers/net/wireless/intel/iwlwifi/mld/link.c
217
if (link->chanreq.oper.width != NL80211_CHAN_WIDTH_20_NOHT)
drivers/net/wireless/intel/iwlwifi/mld/link.c
246
iwl_mld_change_link_in_fw(struct iwl_mld *mld, struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
249
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
250
struct ieee80211_vif *vif = link->vif;
drivers/net/wireless/intel/iwlwifi/mld/link.c
262
cmd.spec_link_id = link->link_id;
drivers/net/wireless/intel/iwlwifi/mld/link.c
271
ether_addr_copy(cmd.local_link_addr, link->addr);
drivers/net/wireless/intel/iwlwifi/mld/link.c
285
if (vif->type == NL80211_IFTYPE_ADHOC && link->bssid)
drivers/net/wireless/intel/iwlwifi/mld/link.c
286
ether_addr_copy(cmd.ibss_bssid_addr, link->bssid);
drivers/net/wireless/intel/iwlwifi/mld/link.c
290
iwl_mld_fill_rates(mld, link, chan_ctx, &cmd.cck_rates,
drivers/net/wireless/intel/iwlwifi/mld/link.c
293
cmd.cck_short_preamble = cpu_to_le32(link->use_short_preamble);
drivers/net/wireless/intel/iwlwifi/mld/link.c
294
cmd.short_slot = cpu_to_le32(link->use_short_slot);
drivers/net/wireless/intel/iwlwifi/mld/link.c
296
iwl_mld_fill_protection_flags(mld, link, &cmd.protection_flags);
drivers/net/wireless/intel/iwlwifi/mld/link.c
298
iwl_mld_fill_qos_params(link, cmd.ac, &cmd.qos_flags);
drivers/net/wireless/intel/iwlwifi/mld/link.c
300
cmd.bi = cpu_to_le32(link->beacon_int);
drivers/net/wireless/intel/iwlwifi/mld/link.c
301
cmd.dtim_interval = cpu_to_le32(link->beacon_int * link->dtim_period);
drivers/net/wireless/intel/iwlwifi/mld/link.c
306
if (!link->he_support || iwlwifi_mod_params.disable_11ax ||
drivers/net/wireless/intel/iwlwifi/mld/link.c
316
link->link_id);
drivers/net/wireless/intel/iwlwifi/mld/link.c
324
cmd.htc_trig_based_pkt_ext = link->htc_trig_based_pkt_ext;
drivers/net/wireless/intel/iwlwifi/mld/link.c
326
if (link->uora_exists) {
drivers/net/wireless/intel/iwlwifi/mld/link.c
327
cmd.rand_alloc_ecwmin = link->uora_ocw_range & 0x7;
drivers/net/wireless/intel/iwlwifi/mld/link.c
328
cmd.rand_alloc_ecwmax = (link->uora_ocw_range >> 3) & 0x7;
drivers/net/wireless/intel/iwlwifi/mld/link.c
334
cmd.bss_color = link->he_bss_color.color;
drivers/net/wireless/intel/iwlwifi/mld/link.c
336
if (!link->he_bss_color.enabled)
drivers/net/wireless/intel/iwlwifi/mld/link.c
339
cmd.frame_time_rts_th = cpu_to_le16(link->frame_time_rts_th);
drivers/net/wireless/intel/iwlwifi/mld/link.c
345
if (link->nontransmitted) {
drivers/net/wireless/intel/iwlwifi/mld/link.c
346
ether_addr_copy(cmd.ref_bssid_addr, link->transmitter_bssid);
drivers/net/wireless/intel/iwlwifi/mld/link.c
347
cmd.bssid_index = link->bssid_index;
drivers/net/wireless/intel/iwlwifi/mld/link.c
365
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
367
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
368
struct iwl_mld_vif *mld_vif = iwl_mld_vif_from_mac80211(link->vif);
drivers/net/wireless/intel/iwlwifi/mld/link.c
378
ret = iwl_mld_change_link_in_fw(mld, link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
390
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
392
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
400
iwl_mld_cancel_session_protection(mld, link->vif, link->link_id);
drivers/net/wireless/intel/iwlwifi/mld/link.c
413
iwl_mld_change_link_in_fw(mld, link, LINK_CONTEXT_MODIFY_ACTIVE);
drivers/net/wireless/intel/iwlwifi/mld/link.c
42
struct iwl_mld_link *link = iwl_mld_link_from_mac80211(link_conf);
drivers/net/wireless/intel/iwlwifi/mld/link.c
423
iwl_mld_rm_link_from_fw(struct iwl_mld *mld, struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
425
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
434
cmd.spec_link_id = link->link_id;
drivers/net/wireless/intel/iwlwifi/mld/link.c
440
IWL_MLD_ALLOC_FN(link, bss_conf)
drivers/net/wireless/intel/iwlwifi/mld/link.c
444
iwl_mld_init_link(struct iwl_mld *mld, struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
453
return iwl_mld_allocate_link_fw_id(mld, &mld_link->fw_id, link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
463
struct iwl_mld_link *link = iwl_mld_link_from_mac80211(bss_conf);
drivers/net/wireless/intel/iwlwifi/mld/link.c
467
if (!link) {
drivers/net/wireless/intel/iwlwifi/mld/link.c
469
link = &mld_vif->deflink;
drivers/net/wireless/intel/iwlwifi/mld/link.c
47
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/link.c
471
link = kzalloc_obj(*link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
472
if (!link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
479
ret = iwl_mld_init_link(mld, bss_conf, link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
483
rcu_assign_pointer(mld_vif->link[bss_conf->link_id], link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
487
RCU_INIT_POINTER(mld->fw_id_to_bss_conf[link->fw_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/link.c
488
RCU_INIT_POINTER(mld_vif->link[bss_conf->link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/link.c
496
kfree(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
50
cmd.link_id = cpu_to_le32(link->fw_id);
drivers/net/wireless/intel/iwlwifi/mld/link.c
505
struct iwl_mld_link *link = iwl_mld_link_from_mac80211(bss_conf);
drivers/net/wireless/intel/iwlwifi/mld/link.c
506
bool is_deflink = link == &mld_vif->deflink;
drivers/net/wireless/intel/iwlwifi/mld/link.c
507
u8 fw_id = link->fw_id;
drivers/net/wireless/intel/iwlwifi/mld/link.c
509
if (WARN_ON(!link || link->active))
drivers/net/wireless/intel/iwlwifi/mld/link.c
516
kfree_rcu(link, rcu_head);
drivers/net/wireless/intel/iwlwifi/mld/link.c
518
RCU_INIT_POINTER(mld_vif->link[bss_conf->link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/link.c
643
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
645
return iwl_mld_change_link_in_fw(mld, link, LINK_CONTEXT_MODIFY_ALL &
drivers/net/wireless/intel/iwlwifi/mld/link.c
65
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
73
unsigned long basic = link->basic_rates;
drivers/net/wireless/intel/iwlwifi/mld/link.h
105
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/link.h
107
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/link.h
109
struct ieee80211_bss_conf *link, u32 changes);
drivers/net/wireless/intel/iwlwifi/mld/link.h
116
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/link.h
79
iwl_mld_cleanup_link(struct iwl_mld *mld, struct iwl_mld_link *link)
drivers/net/wireless/intel/iwlwifi/mld/link.h
83
probe_data = wiphy_dereference(mld->wiphy, link->probe_resp_data);
drivers/net/wireless/intel/iwlwifi/mld/link.h
84
RCU_INIT_POINTER(link->probe_resp_data, NULL);
drivers/net/wireless/intel/iwlwifi/mld/link.h
88
CLEANUP_STRUCT(link);
drivers/net/wireless/intel/iwlwifi/mld/link.h
89
if (link->bcast_sta.sta_id != IWL_INVALID_STA)
drivers/net/wireless/intel/iwlwifi/mld/link.h
90
iwl_mld_free_internal_sta(mld, &link->bcast_sta);
drivers/net/wireless/intel/iwlwifi/mld/link.h
91
if (link->mcast_sta.sta_id != IWL_INVALID_STA)
drivers/net/wireless/intel/iwlwifi/mld/link.h
92
iwl_mld_free_internal_sta(mld, &link->mcast_sta);
drivers/net/wireless/intel/iwlwifi/mld/link.h
93
if (link->mon_sta.sta_id != IWL_INVALID_STA)
drivers/net/wireless/intel/iwlwifi/mld/link.h
94
iwl_mld_free_internal_sta(mld, &link->mon_sta);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1025
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1041
link_sta = wiphy_dereference(mld->wiphy, mld_sta->link[link->link_id]);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1050
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1054
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1113
ret = iwl_mld_change_link_in_fw(mld, link,
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1126
if (iwl_mld_can_activate_link(mld, vif, link)) {
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1127
ret = iwl_mld_activate_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1133
iwl_mld_send_ap_tx_power_constraint_cmd(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1136
ret = iwl_mld_add_mon_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1148
iwl_mld_deactivate_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1157
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1162
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1172
iwl_mld_deactivate_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1175
iwl_mld_remove_mon_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1194
iwl_mld_remove_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1195
iwl_mld_add_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1209
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1227
iwl_mld_change_link_in_fw(mld, link, link_changes);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1230
iwl_mld_update_beacon_template(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1580
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1587
link = iwl_mld_link_dereference_check(mld_vif, link_id);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1588
if (!link)
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1591
link->queue_params[ac] = *params;
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
2042
struct ieee80211_bss_conf *link =
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
2045
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
2048
iwl_mld_config_tlc_link(mld, vif, link, link_sta);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
530
rcu_dereference(sta->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
1033
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
1050
for_each_vif_active_link(vif, link, link_id) {
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
1051
if (WARN_ON(!link->chanreq.oper.chan))
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
1054
if (link->chanreq.oper.chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
583
for (int link = 0;
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
584
link < ARRAY_SIZE(queue_counter->per_link);
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
585
link++) {
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
586
total_tx += queue_counter->per_link[link].tx;
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
587
total_rx += queue_counter->per_link[link].rx;
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
692
struct iwl_mld_link_sel_data *link,
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
699
conf = wiphy_dereference(wiphy, vif->link_conf[link->link_id]);
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
703
if (link->chandef->chan->band == NL80211_BAND_2GHZ && mld->bt_is_active)
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
706
if (link->signal <
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
707
iwl_mld_get_emlsr_rssi_thresh(mld, link->chandef, false))
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
715
link->link_id, primary ? "primary" : "secondary");
drivers/net/wireless/intel/iwlwifi/mld/power.c
117
struct iwl_mld_link *link,
drivers/net/wireless/intel/iwlwifi/mld/power.c
137
if (!link->queue_params[ac].uapsd)
drivers/net/wireless/intel/iwlwifi/mld/power.c
147
if (!tid_found && !link->queue_params[ac].acm) {
drivers/net/wireless/intel/iwlwifi/mld/power.c
213
struct iwl_mld_link *link = &mld_vif->deflink;
drivers/net/wireless/intel/iwlwifi/mld/power.c
230
link = iwl_mld_link_dereference_check(mld_vif, link_id);
drivers/net/wireless/intel/iwlwifi/mld/power.c
232
if (WARN_ON(!link_conf || !link))
drivers/net/wireless/intel/iwlwifi/mld/power.c
292
iwl_mld_power_configure_uapsd(mld, link, cmd, ps_poll);
drivers/net/wireless/intel/iwlwifi/mld/power.c
307
const struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/power.c
316
ARRAY_SIZE(link->tpe.psd_local[0].power));
drivers/net/wireless/intel/iwlwifi/mld/power.c
320
cmd->psd_pwr[i] = min(link->tpe.psd_local[0].power[i],
drivers/net/wireless/intel/iwlwifi/mld/power.c
321
link->tpe.psd_reg_client[0].power[i]);
drivers/net/wireless/intel/iwlwifi/mld/power.c
324
ARRAY_SIZE(link->tpe.max_local[0].power));
drivers/net/wireless/intel/iwlwifi/mld/power.c
327
cmd->eirp_pwr[i] = min(link->tpe.max_local[0].power[i],
drivers/net/wireless/intel/iwlwifi/mld/power.c
328
link->tpe.max_reg_client[0].power[i]);
drivers/net/wireless/intel/iwlwifi/mld/power.c
334
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/power.c
341
switch (link->power_type) {
drivers/net/wireless/intel/iwlwifi/mld/power.c
361
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/power.c
364
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/power.c
372
if (link->chanreq.oper.chan->band != NL80211_BAND_6GHZ)
drivers/net/wireless/intel/iwlwifi/mld/power.c
379
if (iwl_mld_set_ap_power_type(&cmd, vif, link))
drivers/net/wireless/intel/iwlwifi/mld/power.c
383
iwl_mld_tpe_sta_cmd_data(&cmd, link);
drivers/net/wireless/intel/iwlwifi/mld/power.h
27
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/rx.c
1815
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/rx.c
1857
link = rcu_dereference(mld_vif->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mld/rx.c
1858
if (WARN_ON_ONCE(!link))
drivers/net/wireless/intel/iwlwifi/mld/rx.c
1864
key = rcu_dereference(link->bigtks[0]);
drivers/net/wireless/intel/iwlwifi/mld/rx.c
1866
key = rcu_dereference(link->bigtks[1]);
drivers/net/wireless/intel/iwlwifi/mld/rx.c
1888
key = rcu_dereference(link->bigtks[keyidx - 6]);
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1410
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1419
link = iwl_mld_link_dereference_check(mld_vif, tsf_report_link_id);
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1420
if (!WARN_ON(!link)) {
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1421
params->fw_link_id = link->fw_id;
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1426
mld->scan.fw_link_id = link->fw_id;
drivers/net/wireless/intel/iwlwifi/mld/session-protect.c
186
struct iwl_mld_link *link =
drivers/net/wireless/intel/iwlwifi/mld/session-protect.c
205
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/session-protect.c
208
cmd.id_and_color = cpu_to_le32(link->fw_id);
drivers/net/wireless/intel/iwlwifi/mld/session-protect.c
50
struct iwl_mld_link *link =
drivers/net/wireless/intel/iwlwifi/mld/session-protect.c
55
.id_and_color = cpu_to_le32(link->fw_id),
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1041
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1043
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1054
addr = vif->type == NL80211_IFTYPE_ADHOC ? link->bssid : bcast_addr;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1064
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1066
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1090
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1092
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1127
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1129
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1144
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1146
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1174
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1176
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1261
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1274
link = link_conf_dereference_protected(mld_sta->vif,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1278
iwl_mld_config_tlc_link(mld, vif, link, link_sta);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1294
struct ieee80211_bss_conf *link =
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1297
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1300
iwl_mld_activate_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
418
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
425
link = link_conf_dereference_protected(mld_sta->vif,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
428
mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
430
if (WARN_ON(!link || !mld_link) || fw_id < 0)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
46
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
472
iwl_mld_fill_ampdu_size_and_dens(link_sta, link,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
484
cpu_to_le32(link->uora_exists ? 1 : 0);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
52
if (WARN_ON(!link_sta || !link))
drivers/net/wireless/intel/iwlwifi/mld/sta.c
548
rcu_assign_pointer(mld_sta->link[link_sta->link_id], mld_link_sta);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
554
RCU_INIT_POINTER(mld_sta->link[link_sta->link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
604
RCU_INIT_POINTER(mld_sta->link[link_sta->link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
66
if (link->chanreq.oper.chan->band == NL80211_BAND_6GHZ) {
drivers/net/wireless/intel/iwlwifi/mld/sta.h
139
struct iwl_mld_link_sta __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/intel/iwlwifi/mld/sta.h
174
RCU_INIT_POINTER(mld_sta->link[link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
241
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
245
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
252
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
256
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
260
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
267
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
50
rcu_dereference_check((mld_sta)->link[link_id], \
drivers/net/wireless/intel/iwlwifi/mld/sta.h
54
for (link_id = 0; link_id < ARRAY_SIZE((mld_sta)->link); \
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
105
rcu_assign_pointer(link->bss->beacon_ies, ies);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
106
rcu_assign_pointer(link->bss->ies, ies);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
109
if (test_param->input.link.active) {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
111
wiphy_dereference(mld->wiphy, link->chanctx_conf);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
118
phy->channel_load_by_us = test_param->input.link.chan_load_by_us;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
128
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
131
u8 link_id = test_param->input.link.link_id;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
132
bool active = test_param->input.link.active;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
135
.chandef = test_param->input.link.chandef,
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
150
link = wiphy_dereference(mld->wiphy, vif->link_conf[link_id]);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
151
KUNIT_ASSERT_NOT_NULL(test, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
153
setup_link(link);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
155
actual_grade = iwl_mld_get_link_grade(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
27
} link;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
33
.input.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
44
.input.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
55
.input.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
67
.input.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
78
static void setup_link(struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
85
KUNIT_ALLOC_AND_ASSERT(test, link->bss);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
87
link->bss->signal = DBM_TO_MBM(test_param->input.link.signal);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
89
link->chanreq.oper = *test_param->input.link.chandef;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
91
if (test_param->input.link.has_chan_util_elem) {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
94
.channel_util = test_param->input.link.chan_util,
drivers/net/wireless/intel/iwlwifi/mld/tests/link.c
104
static struct kunit_suite link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link.c
110
kunit_test_suite(link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
136
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
139
KUNIT_ALLOC_AND_ASSERT(test, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
142
iwlmld_kunit_init_link(vif, link, mld_link, link_id);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
145
return link;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
178
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
185
KUNIT_EXPECT_NULL(test, rcu_access_pointer(link->chanctx_conf));
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
186
rcu_assign_pointer(link->chanctx_conf, ctx);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
190
mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
199
vif->active_links |= BIT(link->link_id);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
217
rcu_assign_pointer(sta->link[link_id], link_sta);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
226
rcu_assign_pointer(mld_sta->link[link_id], mld_link_sta);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
337
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
345
link = iwlmld_kunit_add_link(vif, assoc_link->id);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
347
link = &vif->bss_conf;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
352
iwlmld_kunit_assign_chanctx_to_link(vif, link, chan_ctx);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
413
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
427
link = wiphy_dereference(mld->wiphy, vif->link_conf[link2->id]);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
428
KUNIT_EXPECT_NOT_NULL(test, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
431
iwlmld_kunit_assign_chanctx_to_link(vif, link, chan_ctx);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
464
struct ieee80211_bss_conf *link =
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
467
KUNIT_EXPECT_NOT_NULL(test, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
469
chanctx = wiphy_dereference(mld->wiphy, link->chanctx_conf);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
71
IWL_MLD_ALLOC_FN(link, bss_conf)
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
74
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
83
rcu_assign_pointer(vif->link_conf[link_id], link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
84
link->link_id = link_id;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
85
link->vif = vif;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
86
link->beacon_int = 100;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
87
link->dtim_period = 3;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
88
link->qos = true;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
91
ret = iwl_mld_allocate_link_fw_id(mld, &mld_link->fw_id, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
93
rcu_assign_pointer(mld_vif->link[link_id], mld_link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
94
rcu_assign_pointer(vif->link_conf[link_id], link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.h
97
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
513
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
516
enum nl80211_band band = link->chanreq.oper.chan->band;
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
549
chan_ctx = rcu_dereference_wiphy(mld->wiphy, link->chanctx_conf);
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
644
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
649
for_each_vif_active_link(vif, link, link_id) {
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
653
if (!link || !link_sta)
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
656
iwl_mld_config_tlc_link(mld, vif, link, link_sta);
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
702
struct ieee80211_bss_conf *link =
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
706
if (WARN_ON(!link || !link->chanreq.oper.chan))
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
709
band = link->chanreq.oper.chan->band;
drivers/net/wireless/intel/iwlwifi/mld/tx.c
600
return rcu_dereference(mld_vif->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mld/tx.c
611
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/tx.c
622
link = iwl_mld_get_link_from_tx_info(info);
drivers/net/wireless/intel/iwlwifi/mld/tx.c
624
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/tx.c
634
return link->bcast_sta.queue_id;
drivers/net/wireless/intel/iwlwifi/mld/tx.c
638
return link->mcast_sta.queue_id;
drivers/net/wireless/intel/iwlwifi/mld/tx.c
642
return link->bcast_sta.queue_id;
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
272
link_info = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c
648
phy_ctxt = mvmvif->link[link_id]->phy_ctxt;
drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c
892
struct iwl_mvm_vif_link_info *link_info = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
1011
struct iwl_mvm_vif_link_info *link_info = mvmvif->link[i];
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
1372
cpu_to_le32(mvmvif->link[link_id]->fw_link_id);
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
1536
mvm_link_sta = rcu_dereference_protected(mvmsta->link[link_sta->link_id],
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
1568
mvm_link_sta = rcu_dereference_protected(mvmsta->link[link_sta->link_id],
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
445
*sta_id = mvmvif->link[link_id]->ap_sta_id;
drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c
126
.sta_id = mvmvif->link[link_conf->link_id]->bcast_sta.sta_id,
drivers/net/wireless/intel/iwlwifi/mvm/link.c
185
if (iwl_mvm_set_fw_mu_edca_params(mvm, mvmvif->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/link.c
251
struct iwl_mvm_vif_link_info *link_info = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/link.c
288
void iwl_mvm_init_link(struct iwl_mvm_vif_link_info *link)
drivers/net/wireless/intel/iwlwifi/mvm/link.c
29
mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/link.c
290
link->bcast_sta.sta_id = IWL_INVALID_STA;
drivers/net/wireless/intel/iwlwifi/mvm/link.c
291
link->mcast_sta.sta_id = IWL_INVALID_STA;
drivers/net/wireless/intel/iwlwifi/mvm/link.c
292
link->ap_sta_id = IWL_INVALID_STA;
drivers/net/wireless/intel/iwlwifi/mvm/link.c
295
link->smps_requests[r] =
drivers/net/wireless/intel/iwlwifi/mvm/link.c
40
struct iwl_mvm_vif_link_info *link_info = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/link.c
79
struct iwl_mvm_vif_link_info *link_info = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
1113
if (WARN_ON(!mvmvif->link[link_conf->link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
1118
cpu_to_le32(mvmvif->link[link_conf->link_id]->fw_link_id);
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
481
mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1115
mvmvif->link[link_id]->ap_sta_id = IWL_INVALID_STA;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1116
mvmvif->link[link_id]->fw_link_id = IWL_MVM_FW_LINK_ID_INVALID;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1117
mvmvif->link[link_id]->phy_ctxt = NULL;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1118
mvmvif->link[link_id]->active = 0;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1119
mvmvif->link[link_id]->igtk = NULL;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1120
memset(&mvmvif->link[link_id]->bf_data, 0,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1121
sizeof(mvmvif->link[link_id]->bf_data));
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1464
if (WARN_ON(!mvmvif->link[link_conf->link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1467
link_id = mvmvif->link[link_conf->link_id]->fw_link_id;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1528
u8 ap_sta_id = mvmvif->link[link_id]->ap_sta_id;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1704
mvmvif->link[0] = &mvmvif->deflink;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1719
mvmvif->link[i]->beacon_stats.accu_num_beacons +=
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1720
mvmvif->link[i]->beacon_stats.num_beacons;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2654
mvmvif->link[link_id]->bf_data.ave_beacon_signal = 0;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2696
mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2776
memset(&mvmvif->link[i]->beacon_stats, 0,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2777
sizeof(mvmvif->link[i]->beacon_stats));
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3393
for (link_id = 0; link_id < ARRAY_SIZE(mvm_sta->link); link_id++) {
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3397
if (!mvm_sta->link[link_id])
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3400
link_sta = rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3512
!mvmvif->link[link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3516
mvmvif->link[link_id]->he_ru_2mhz_block = false;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3528
mvmvif->link[link_id]->he_ru_2mhz_block = !iter_data.tolerated;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3676
if (!conf || !link_sta || !mvmvif->link[link_id]->phy_ctxt)
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3680
mvmvif->link[link_id]->phy_ctxt->channel->band);
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3731
if (!link_conf || !mvmvif->link[link_id])
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3737
mvmvif->link[link_id]->he_ru_2mhz_block = false;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3845
if (!mvmvif->link[link_id])
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
4011
if (WARN_ON_ONCE(!mvmvif->link[link_id] ||
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
4012
!mvmvif->link[link_id]->phy_ctxt)) {
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
4659
.link = iwl_mvm_roc_link,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
4812
ret = ops->link(mvm, vif);
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
5750
mvm_link_sta = rcu_dereference_protected(mvmsta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
6054
sinfo->rx_beacon += mvmvif->link[i]->beacon_stats.num_beacons +
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
6055
mvmvif->link[i]->beacon_stats.accu_num_beacons;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
855
rcu_dereference(tmp_sta->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
22
link_info = mvmvif->link[keyconf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
262
mvm_link = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
318
mvm_link = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
392
struct iwl_mvm_vif_link_info *link,
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
399
link->ap_sta_id == IWL_INVALID_STA))
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
107
mvmvif->link[0] = NULL;
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
190
if (WARN_ON_ONCE(!mvmvif->link[link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
205
mvmvif->link[link_id]->phy_ctxt = phy_ctxt;
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
255
mvmvif->link[link_id]->phy_ctxt = NULL;
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
283
if (WARN_ON_ONCE(!mvmvif->link[link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
306
mvmvif->link[link_id]->phy_ctxt = NULL;
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
31
mvmvif->link[i]->beacon_stats.accu_num_beacons +=
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
32
mvmvif->link[i]->beacon_stats.num_beacons;
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
364
mvmvif->link[bss_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
545
if (WARN_ON_ONCE(!mvmvif->link[link_conf->link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
550
vif->cfg.assoc && mvmvif->link[link_conf->link_id]->phy_ctxt)
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
583
memcpy(mvmvif->link[link_conf->link_id]->bssid, link_conf->bssid,
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
594
if (mvmvif->link[i]->ap_sta_id != IWL_INVALID_STA)
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
638
memset(&mvmvif->link[i]->beacon_stats, 0,
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
639
sizeof(mvmvif->link[i]->beacon_stats));
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
64
mvmvif->link[0] = &mvmvif->deflink;
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
833
struct iwl_mvm_vif_link_info *mvm_link = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
883
.link = iwl_mvm_mld_roc_link,
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
928
mvmvif->link[0] = NULL;
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
938
kfree(mvmvif->link[i]);
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
939
mvmvif->link[i] = NULL;
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
949
mvmvif->link[i] = new_link[i];
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
959
mvmvif->link[0] = &mvmvif->deflink;
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
1050
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
1076
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
1078
mvm_vif_link = mvm_vif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
1100
mvm_vif_link = mvm_vif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
1109
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
1124
if (WARN_ON(mvm_sta->link[link_id])) {
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
1138
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
1183
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
1193
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
192
mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
231
mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
265
mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
348
struct iwl_mvm_vif_link_info *link = mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
353
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
359
queueptr = &link->mgmt_queue;
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
370
return iwl_mvm_mld_rm_int_sta(mvm, &link->bcast_sta,
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
381
struct iwl_mvm_vif_link_info *link = mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
385
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
388
return iwl_mvm_mld_rm_int_sta(mvm, &link->mcast_sta, true, 0,
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
389
&link->cab_queue);
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
418
mvm_vif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
506
RCU_INIT_POINTER(mvm_sta->link[link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
517
for (link_id = 0; link_id < ARRAY_SIZE(mvm_sta->link); link_id++) {
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
518
struct iwl_mvm_link_sta *link =
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
519
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
522
if (!link)
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
525
iwl_mvm_mld_free_sta_link(mvm, mvm_sta, link, link_id);
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
537
struct iwl_mvm_link_sta *link;
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
547
if (rcu_access_pointer(sta->link[link_id]) == &sta->deflink) {
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
548
link = &mvm_sta->deflink;
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
550
link = kzalloc_obj(*link);
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
551
if (!link)
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
555
link->sta_id = sta_id;
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
556
rcu_assign_pointer(mvm_sta->link[link_id], link);
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
557
rcu_assign_pointer(mvm->fw_id_to_mac_id[link->sta_id], sta);
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
558
rcu_assign_pointer(mvm->fw_id_to_link_sta[link->sta_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
577
if (WARN_ON(mvm_sta->link[link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
628
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
634
mvm_link = mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
692
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
708
iwl_mvm_mld_set_ap_sta_id(sta, mvm_vif->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
718
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
743
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
801
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
821
rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
1952
void iwl_mvm_init_link(struct iwl_mvm_vif_link_info *link);
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2001
int (*link)(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2451
struct iwl_mvm_vif_link_info *link,
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2506
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
511
struct iwl_mvm_vif_link_info *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
516
link_id < ARRAY_SIZE((mvm_vif)->link); \
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
518
if ((mvm_vif)->link[link_id])
drivers/net/wireless/intel/iwlwifi/mvm/power.c
534
struct iwl_mvm_vif_link_info *link_info = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
445
mvm_link_sta = rcu_dereference(mvmsta->link[link_sta->link_id]);
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
614
mvm_link_sta = rcu_dereference(mvmsta->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
726
for (link_id = 0; link_id < ARRAY_SIZE(mvmsta->link); link_id++) {
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
727
struct iwl_mvm_link_sta *link =
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
728
rcu_dereference_protected(mvmsta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
730
if (!link)
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
733
iwl_mvm_rs_add_sta_link(mvm, link);
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
878
if (link_id >= ARRAY_SIZE(mvmvif->link))
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
882
link_info = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
901
mvmvif->link[link_id]->beacon_stats.accu_num_beacons +=
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
902
mvmvif->link[link_id]->beacon_stats.num_beacons;
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2403
scan_vif->link[params->tsf_report_link_id];
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2895
link_id < ARRAY_SIZE(mvmvif->link);
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2897
struct iwl_mvm_vif_link_info *link =
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2898
mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2900
if (link && link->phy_ctxt->id < NUM_PHY_CTX &&
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2902
link->phy_ctxt->channel->band == data->band)) {
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
3246
scan_vif->link[mvm->scan_link_id];
drivers/net/wireless/intel/iwlwifi/mvm/sf.c
115
for (link_id = 0; link_id < ARRAY_SIZE(sta->link); link_id++) {
drivers/net/wireless/intel/iwlwifi/mvm/sf.c
116
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
1766
rcu_assign_pointer(mvm_sta->link[0], &mvm_sta->deflink);
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
2044
mvmvif->link[link_sta->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
2052
rcu_dereference_protected(mvm_sta->link[link_sta->link_id],
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
823
for (link_id = 0; link_id < ARRAY_SIZE(sta->link); link_id++) {
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
824
struct ieee80211_link_sta *link =
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
825
rcu_dereference(sta->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
827
if (!link)
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
831
if (link->eht_cap.has_eht &&
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
836
if (link->he_cap.has_he &&
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
867
struct iwl_mvm_link_sta *link =
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
868
rcu_dereference_protected(mvmsta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
871
if (!link)
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
874
sta_mask |= BIT(link->sta_id);
drivers/net/wireless/intel/iwlwifi/mvm/sta.h
432
struct iwl_mvm_link_sta __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
665
struct iwl_mvm_vif_link_info *link,
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
688
return link->mgmt_queue;
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
692
return link->cab_queue;
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
696
return link->mgmt_queue;
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
1221
if (vif1->link[i]->phy_ctxt == vif2->link[j]->phy_ctxt)
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
1235
if (mvmvif->link[i]->phy_ctxt &&
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
1236
mvmvif->link[i]->phy_ctxt->id < NUM_PHY_CTX)
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
296
if (WARN_ON_ONCE(!mvmvif->link[link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
299
mvmvif->link[link_id]->smps_requests[req_type] = smps_request;
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
301
if (mvmvif->link[link_id]->smps_requests[i] ==
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
306
if (mvmvif->link[link_id]->smps_requests[i] ==
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
503
struct iwl_mvm_vif_link_info *link_info = mvmvif->link[link_id];
drivers/net/wireless/mediatek/mt76/channel.c
142
rcu_assign_pointer(mvif->link[link_id], mlink);
drivers/net/wireless/mediatek/mt76/channel.c
177
rcu_assign_pointer(mvif->link[link_id], NULL);
drivers/net/wireless/mediatek/mt76/channel.c
274
for (i = 0; i < ARRAY_SIZE(mvif->link); i++) {
drivers/net/wireless/mediatek/mt76/channel.c
275
mlink = mt76_dereference(mvif->link[i], dev);
drivers/net/wireless/mediatek/mt76/mac80211.c
2066
rcu_assign_pointer(mvif->link[0], NULL);
drivers/net/wireless/mediatek/mt76/mt76.h
2066
rcu_assign_pointer(mvif->link[0], mlink);
drivers/net/wireless/mediatek/mt76/mt76.h
2081
return mt76_dereference(mvif->link[link_id], dev);
drivers/net/wireless/mediatek/mt76/mt76.h
2094
return mt76_dereference(mvif->link[link_conf->link_id], dev);
drivers/net/wireless/mediatek/mt76/mt76.h
841
struct mt76_vif_link __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/mediatek/mt76/mt7925/mac.c
849
link_sta = rcu_dereference(sta->link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7925/mac.c
881
mlink = rcu_dereference(msta->link[msta->deflink_id]);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
1181
rcu_assign_pointer(msta->link[link_id], NULL);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
1987
rcu_assign_pointer(mvif->sta.link[link_id], NULL);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
2025
rcu_assign_pointer(mvif->sta.link[link_id], mlink);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
2048
rcu_assign_pointer(mvif->sta.link[link_id], NULL);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
954
rcu_assign_pointer(msta->link[link_id], mlink);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1938
mld->link[cnt].wlan_id = cpu_to_le16(mlink->wcid.idx);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1939
mld->link[cnt++].bss_idx = mconf->mt76.idx;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.h
460
} __packed link[2];
drivers/net/wireless/mediatek/mt76/mt792x.h
115
struct mt792x_link_sta __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/mediatek/mt76/mt792x.h
293
return rcu_dereference_protected(msta->link[link_id],
drivers/net/wireless/mediatek/mt76/mt792x_core.c
118
link_sta = rcu_dereference(control->sta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt792x_mac.c
141
struct mt792x_link_sta *link;
drivers/net/wireless/mediatek/mt76/mt792x_mac.c
152
link = container_of(wcid, struct mt792x_link_sta, wcid);
drivers/net/wireless/mediatek/mt76/mt792x_mac.c
153
sta = link->sta;
drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c
1021
msta_link = mt76_dereference(msta->link[link_sta->link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c
644
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c
648
msta_link = rcu_dereference(msta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1078
rcu_dereference(msta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1083
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1109
link_sta = rcu_dereference(sta->link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1197
mlink = rcu_dereference(mvif->mt76.link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1371
link_sta = rcu_dereference(sta->link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1383
msta_link = rcu_dereference(msta->link[id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
210
mlink = rcu_dereference(msta->vif->mt76.link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2205
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2207
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2208
if (!link || link->phy != phy)
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2398
for (i = 0; i < ARRAY_SIZE(msta->link); i++) {
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2401
msta_link = rcu_replace_pointer(msta->link[i], msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2426
for (i = 0; i < ARRAY_SIZE(mvif->link); i++) {
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2428
mlink = mt76_dereference(mvif->link[i], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2432
rcu_assign_pointer(mvif->link[i], NULL);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
3300
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
3315
if (mt7996_mcu_twt_agrt_update(dev, link, flow, MCU_TWT_AGRT_DELETE))
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
80
for (i = 0; i < ARRAY_SIZE(mvif->mt76.link); i++) {
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
83
mlink = rcu_dereference(mvif->mt76.link[i]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
90
msta_link = rcu_dereference(msta->link[i]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
925
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1027
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1030
msta_link = rcu_replace_pointer(msta->link[link_id], msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1039
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1040
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1043
mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1070
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1073
if (rcu_access_pointer(msta->link[link_id]))
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1082
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1083
if (!link) {
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1094
mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1100
err = mt7996_mac_sta_init_link(dev, link_conf, link_sta, link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1172
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1179
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1180
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1183
msta_link = mt76_dereference(msta->link[link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1190
link, msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1204
link, msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1211
mt7996_mac_twt_teardown_flow(dev, link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1216
link, msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1219
mt7996_mcu_teardown_mld_sta(dev, link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1329
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1331
link_sta = rcu_dereference(sta->link[msta->deflink_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1351
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1373
msta_link = rcu_dereference(msta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1490
u64 __mt7996_get_tsf(struct ieee80211_hw *hw, struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1493
struct mt7996_phy *phy = link->phy;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1505
n = link->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1506
: link->mt76.omac_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1536
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1546
link = mt7996_vif_link(dev, vif, mvif->mt76.deflink_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1547
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1550
n = link->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1551
: link->mt76.omac_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1552
phy = link->phy;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1572
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1582
link = mt7996_vif_link(dev, vif, mvif->mt76.deflink_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1583
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1586
phy = link->phy;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1590
n = link->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1591
: link->mt76.omac_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1739
msta_link = rcu_dereference(msta->link[link_sta->link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1756
msta_link = rcu_dereference(msta->link[msta->deflink_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1800
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1802
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1803
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1806
msta_link = mt76_dereference(msta->link[link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1818
mt7996_mcu_wtbl_update_hdr_trans(dev, vif, link, msta_link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1838
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1840
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1841
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1844
msta_link = mt76_dereference(msta->link[link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1858
mt7996_mcu_wtbl_update_hdr_trans(dev, vif, link, msta_link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
192
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
198
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
199
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
202
if (!mt7996_vif_link_phy(link))
drivers/net/wireless/mediatek/mt76/mt7996/main.c
209
msta_link = mt76_dereference(msta->link[link_id],
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2103
struct mt7996_vif_link *link = &msta->vif->deflink;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2107
mt7996_mac_twt_teardown_flow(dev, link, msta_link, flowid);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
217
msta_link = &link->msta_link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2178
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2180
link = mt7996_vif_link(dev, vif, msta->deflink_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2181
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2184
msta_link = rcu_dereference(msta->link[msta->deflink_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2207
path->mtk_wdma.wdma_idx = link->mt76.band_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2208
path->mtk_wdma.bss = link->mt76.idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
240
if (cmd == SET_KEY && !sta && !link->mt76.cipher) {
drivers/net/wireless/mediatek/mt76/mt7996/main.c
241
link->mt76.cipher =
drivers/net/wireless/mediatek/mt76/mt7996/main.c
243
mt7996_mcu_add_bss_info(link->phy, vif, link_conf,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
244
&link->mt76, msta_link, true);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
258
err = mt7996_mcu_add_key(&dev->mt76, link, key,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
293
struct mt7996_vif_link *link = container_of(mlink, struct mt7996_vif_link, mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
295
struct mt7996_sta_link *msta_link = &link->msta_link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
318
link->mld_idx = mld_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
319
link->phy = phy;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
331
dev->mld_idx_mask |= BIT_ULL(link->mld_idx);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
360
mt7996_init_bitrate_mask(vif, link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
367
mt7996_mcu_add_sta(dev, link_conf, NULL, link, NULL,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
384
struct mt7996_vif_link *link = container_of(mlink, struct mt7996_vif_link, mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
386
struct mt7996_sta_link *msta_link = &link->msta_link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
398
mt7996_mcu_add_sta(dev, link_conf, NULL, link, NULL,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
421
dev->mld_idx_mask &= ~BIT_ULL(link->mld_idx);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
782
mt7996_update_mu_group(struct ieee80211_hw *hw, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
786
u8 band = link->mt76.band_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
813
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
815
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
816
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
819
if (!link->phy)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
822
mt7996_mcu_add_bss_info(link->phy, vif, link_conf,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
823
&link->mt76, &link->msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
825
mt7996_mcu_add_sta(dev, link_conf, NULL, link, NULL,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
839
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
845
link = mt7996_vif_conf_link(dev, vif, info);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
846
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
849
mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
860
mt7996_mcu_add_bss_info(phy, vif, info, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
861
&link->msta_link, true);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
862
mt7996_mcu_add_sta(dev, info, NULL, link, NULL,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
877
link->mt76.mcast_rates_idx =
drivers/net/wireless/mediatek/mt76/mt7996/main.c
881
link->mt76.basic_rates_idx =
drivers/net/wireless/mediatek/mt76/mt7996/main.c
889
mt7996_mcu_add_obss_spr(phy, link, &info->he_obss_pd);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
893
link->mt76.omac_idx <= HW_BSSID_MAX) ||
drivers/net/wireless/mediatek/mt76/mt7996/main.c
895
mt7996_mcu_update_bss_color(dev, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
901
link->mt76.beacon_rates_idx =
drivers/net/wireless/mediatek/mt76/mt7996/main.c
909
mt7996_mcu_beacon_inband_discov(dev, info, link, changed);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
912
mt7996_update_mu_group(hw, link, info);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
940
struct mt7996_vif_link *link, unsigned int link_id)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
944
struct mt7996_phy *phy = link->phy;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
991
rcu_assign_pointer(msta->link[link_id], msta_link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
994
mt7996_mcu_add_sta(dev, link_conf, link_sta, link, msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1059
msta_link = rcu_dereference(msta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1150
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1162
link = container_of(mlink, struct mt7996_vif_link, mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1163
mt7996_mcu_bss_mld_tlv(skb, link_conf, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1233
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1235
msta_link = mt76_dereference(msta->link[link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1239
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1240
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1246
ret = mt7996_mcu_sta_ba(dev, &link->mt76, params,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
125
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1267
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1269
msta_link = mt76_dereference(msta->link[link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1273
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1274
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1277
ret = mt7996_mcu_sta_ba(dev, &link->mt76, params,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1289
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
129
enum nl80211_band band = link->phy->mt76->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
130
const u16 *mask = link->bitrate_mask.control[band].he_mcs;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1314
mt7996_mcu_set_sta_he_mcs(link_sta, link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1318
mt7996_mcu_set_sta_he_mcs(link_sta, link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1323
mt7996_mcu_set_sta_he_mcs(link_sta, link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1777
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1783
struct mt7996_phy *phy = link->phy;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1810
mt7996_mcu_sta_bfer_eht(link_sta, vif, link->phy, bf, ebf);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1812
mt7996_mcu_sta_bfer_he(link_sta, vif, link->phy, bf, ebf);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1814
mt7996_mcu_sta_bfer_vht(link_sta, link->phy, bf, ebf);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1816
mt7996_mcu_sta_bfer_ht(link_sta, link->phy, bf, ebf);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1850
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1852
struct mt7996_phy *phy = link->phy;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1994
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1998
msta_link = rcu_dereference(msta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2027
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2058
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2083
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2084
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2087
msta_link = rcu_dereference(msta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2092
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2096
band = link->phy->mt76->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2098
mask = link->bitrate_mask;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2173
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2176
struct mt76_phy *mphy = link->phy->mt76;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2178
struct cfg80211_bitrate_mask *mask = &link->bitrate_mask;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2283
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2290
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2291
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2294
msta_link = rcu_dereference(msta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2299
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2307
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2320
mt7996_mcu_sta_he_tlv(skb, link_sta, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2325
mt7996_mcu_sta_rate_ctrl_tlv(skb, dev, vif, link_conf, link_sta, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2343
mt7996_mcu_add_group(struct mt7996_dev *dev, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2361
.val = cpu_to_le32(link->mt76.idx % 16),
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2383
msta_link = mt76_dereference(msta->link[msta->deflink_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2397
msta_link = mt76_dereference(msta->link[msta->seclink_id],
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2407
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2409
msta_link = mt76_dereference(msta->link[link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2413
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2414
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2418
mld_setup_link->bss_idx = link->mt76.idx;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2441
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2445
struct mt76_wcid *wcid = msta_link ? &msta_link->wcid : link->mt76.wcid;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2450
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76, wcid,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2474
link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2477
link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2489
mt7996_mcu_sta_he_tlv(skb, link_sta, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2504
ret = mt7996_mcu_add_group(dev, link, wcid);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2515
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2520
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2602
int mt7996_mcu_add_key(struct mt76_dev *dev, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2609
skb = __mt76_connac_mcu_alloc_sta_req(dev, (struct mt76_vif_link *)link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2734
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2739
u8 *buf, keyidx = link->msta_link.wcid.hw_key_idx2;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2743
wcid = &link->msta_link.wcid;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2770
struct mt7996_vif_link *link = mt7996_vif_conf_link(dev, vif, link_conf);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2771
struct mt76_vif_link *mlink = link ? &link->mt76 : NULL;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2785
if (link->phy && link->phy->mt76->offchannel)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2820
mt7996_mcu_beacon_cont(dev, link_conf, link, rskb, skb, bcn, &offs);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2832
struct mt7996_vif_link *link, u32 changed)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2838
struct mt7996_phy *phy = link->phy;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2858
rskb = __mt7996_mcu_alloc_bss_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3433
struct mt7996_vif_link *link = mt7996_vif_conf_link(dev, vif, link_conf);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3441
.bss_idx = link->mt76.idx,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4316
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4320
u8 omac = link->mt76.omac_idx;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4393
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4427
ret = mt7996_mcu_set_obss_spr_siga(phy, link, he_obss_pd);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4463
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4494
.own_mac_idx = link->mt76.omac_idx,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4498
.bss = link->mt76.idx,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4499
.bss_idx = link->mt76.idx,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4587
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4592
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
931
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
940
mld->own_mld_id = link->mld_idx;
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
244
struct mt7996_sta_link __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
602
mt7996_vif_link_phy(struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
604
struct mt76_phy *mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
633
u64 __mt7996_get_tsf(struct ieee80211_hw *hw, struct mt7996_vif_link *link);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
662
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
675
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
679
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
694
struct mt7996_vif_link *link, u32 changed);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
696
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
823
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
852
int mt7996_mcu_add_key(struct mt76_dev *dev, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
856
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
861
struct mt7996_vif_link *link,
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
12094
rt2x00dev->link.watchdog = modparam_watchdog;
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
12097
rt2x00dev->link.watchdog &= ~RT2800_WATCHDOG_DMA_BUSY;
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
12098
if (rt2x00dev->link.watchdog) {
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
12100
rt2x00dev->link.watchdog_interval = msecs_to_jiffies(100);
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
1357
if (rt2x00dev->link.watchdog & RT2800_WATCHDOG_DMA_BUSY)
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
1360
if (rt2x00dev->link.watchdog & RT2800_WATCHDOG_HANG)
drivers/net/wireless/ralink/rt2x00/rt2x00.h
866
struct link link;
drivers/net/wireless/ralink/rt2x00/rt2x00config.c
107
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00config.c
109
struct antenna_setup *active = &rt2x00dev->link.ant.active;
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
447
rt2x00dev->link.qual.tx_success += success;
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
448
rt2x00dev->link.qual.tx_failed += !success;
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
524
rt2x00dev->link.qual.tx_success += success;
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
525
rt2x00dev->link.qual.tx_failed += !success;
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
857
rx_status->antenna = rt2x00dev->link.ant.active.rx;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
110
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
150
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
171
} else if (rt2x00dev->link.count & 1) {
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
183
struct link *link = &rt2x00dev->link;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
184
struct link_qual *qual = &rt2x00dev->link.qual;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
185
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
212
ewma_rssi_add(&link->avg_rssi, -rxdesc->rssi);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
222
struct link *link = &rt2x00dev->link;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
244
&link->work, LINK_TUNE_INTERVAL);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
249
cancel_delayed_work_sync(&rt2x00dev->link.work);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
254
struct link_qual *qual = &rt2x00dev->link.qual;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
268
rt2x00dev->link.count = 0;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
270
ewma_rssi_init(&rt2x00dev->link.avg_rssi);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
290
struct link_qual *qual = &rt2x00dev->link.qual;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
298
static void rt2x00link_tuner_sta(struct rt2x00_dev *rt2x00dev, struct link *link)
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
300
struct link_qual *qual = &rt2x00dev->link.qual;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
317
qual->rssi = rt2x00link_get_avg_rssi(&link->avg_rssi);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
325
rt2x00dev->ops->lib->link_tuner(rt2x00dev, qual, link->count);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
344
container_of(work, struct rt2x00_dev, link.work.work);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
345
struct link *link = &rt2x00dev->link;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
359
rt2x00link_tuner_sta(rt2x00dev, link);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
362
(link->count % (AGC_SECONDS / LINK_TUNE_SECONDS)) == 0)
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
367
(link->count % (VCO_SECONDS / LINK_TUNE_SECONDS)) == 0)
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
375
link->count++;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
379
&link->work, LINK_TUNE_INTERVAL);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
38
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
384
struct link *link = &rt2x00dev->link;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
387
rt2x00dev->ops->lib->watchdog && link->watchdog)
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
389
&link->watchdog_work,
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
390
link->watchdog_interval);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
395
cancel_delayed_work_sync(&rt2x00dev->link.watchdog_work);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
40
if (rt2x00dev->link.qual.rx_success)
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
401
container_of(work, struct rt2x00_dev, link.watchdog_work.work);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
402
struct link *link = &rt2x00dev->link;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
415
&link->watchdog_work,
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
416
link->watchdog_interval);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
421
struct link *link = &rt2x00dev->link;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
423
INIT_DELAYED_WORK(&link->work, rt2x00link_tuner);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
424
INIT_DELAYED_WORK(&link->watchdog_work, rt2x00link_watchdog);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
426
if (link->watchdog_interval == 0)
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
427
link->watchdog_interval = WATCHDOG_INTERVAL;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
48
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
58
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
64
ewma_rssi_init(&rt2x00dev->link.ant.rssi_ant);
drivers/net/wireless/ralink/rt2x00/rt2x00link.c
69
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
657
rt2x00dev->link.count = 0;
drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
747
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
793
struct link_ant *ant = &rt2x00dev->link.ant;
drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
794
struct antenna_setup *active = &rt2x00dev->link.ant.active;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.c
1743
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.c
1752
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.c
1755
if (!scan && !link && !roam)
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.c
2675
bool roam = false, scan = false, link = false, wifi_under_5g = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.c
2720
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8192e2ant.c
2723
"Wifi link/ roam/ scan", link, roam, scan);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c
2028
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c
2044
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c
2047
if (scan || link || roam) {
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c
2276
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c
2282
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c
2285
if (scan || link || roam) {
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c
2458
bool link = false, wifi_under_5g = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c
2511
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c
2514
"Wifi link/ roam/ scan", link, roam, scan);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
1571
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
1579
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
1587
} else if (scan || link || roam) {
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
2746
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
2752
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
2755
if (!scan && !link && !roam)
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
3353
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
3380
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
3383
if (scan || link || roam) {
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
3648
bool link = false, wifi_under_5g = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
3698
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
3701
"Wifi link/ roam/ scan", link, roam, scan);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.c
1734
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.c
1751
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.c
1753
if (scan || link || roam) {
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.c
1992
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.c
1998
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.c
2001
if (scan || link || roam) {
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.c
2108
bool roam = false, scan = false, link = false, wifi_under_5g = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.c
2166
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a1ant.c
2169
link, roam, scan);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
1453
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
1467
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
1472
if (scan || link || roam) {
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
2573
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
2580
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
2583
if (!scan && !link && !roam) {
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
3374
bool scan = false, link = false, roam = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
3407
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
3410
if (scan || link || roam) {
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
3630
bool roam = false, scan = false, link = false, wifi_under_5g = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
3677
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
3680
link, roam, scan);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
811
bool scan = false, link = false, roam = false, wifi_busy = false;
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
846
btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
850
link, roam, scan);
drivers/net/wireless/realtek/rtw88/coex.c
552
bool scan = false, link = false;
drivers/net/wireless/realtek/rtw88/coex.c
576
if (scan || link || reason == COEX_RSN_2GCONSTART ||
drivers/net/wireless/realtek/rtw88/coex.c
830
u8 link = 0;
drivers/net/wireless/realtek/rtw88/coex.c
843
link = 0;
drivers/net/wireless/realtek/rtw88/coex.c
847
link = 0x1;
drivers/net/wireless/realtek/rtw88/coex.c
856
link = 0x3;
drivers/net/wireless/realtek/rtw88/coex.c
864
coex_dm->wl_ch_info[0] = link;
drivers/net/wireless/realtek/rtw88/coex.c
868
rtw_fw_wl_ch_info(rtwdev, link, center_chan, bw);
drivers/net/wireless/realtek/rtw88/coex.c
870
"[BTCoex], %s: para[0:2] = 0x%x 0x%x 0x%x\n", __func__, link,
drivers/net/wireless/realtek/rtw88/fw.c
621
void rtw_fw_wl_ch_info(struct rtw_dev *rtwdev, u8 link, u8 ch, u8 bw)
drivers/net/wireless/realtek/rtw88/fw.c
627
SET_WL_CH_INFO_LINK(h2c_pkt, link);
drivers/net/wireless/realtek/rtw88/fw.h
838
void rtw_fw_wl_ch_info(struct rtw_dev *rtwdev, u8 link, u8 ch, u8 bw);
drivers/net/wireless/realtek/rtw89/chan.c
508
struct rtw89_vif_link *link;
drivers/net/wireless/realtek/rtw89/chan.c
530
link = rtw89_vif_get_link_inst(role, i);
drivers/net/wireless/realtek/rtw89/chan.c
531
if (!link || !link->chanctx_assigned)
drivers/net/wireless/realtek/rtw89/chan.c
534
if (link->chanctx_idx == RTW89_CHANCTX_0) {
drivers/net/wireless/realtek/rtw89/chan.c
535
rtw89_normalize_link_chanctx(rtwdev, link);
drivers/net/wireless/realtek/rtw89/chan.c
554
link = rtw89_vif_get_link_inst(role, i);
drivers/net/wireless/realtek/rtw89/chan.c
555
if (!link || !link->chanctx_assigned)
drivers/net/wireless/realtek/rtw89/chan.c
558
mgnt->chanctx_tbl[pos][i] = link->chanctx_idx;
drivers/net/wireless/realtek/rtw89/core.c
6019
struct rtw89_vif_link *link = *container;
drivers/net/wireless/realtek/rtw89/core.c
6022
if (!link)
drivers/net/wireless/realtek/rtw89/core.c
6025
index = rtw89_vif_link_inst_get_index(link);
drivers/net/wireless/realtek/rtw89/core.c
6028
list_del(&link->dlink_schd);
drivers/net/wireless/realtek/rtw89/core.c
6071
struct rtw89_sta_link *link = *container;
drivers/net/wireless/realtek/rtw89/core.c
6074
if (!link)
drivers/net/wireless/realtek/rtw89/core.c
6077
index = rtw89_sta_link_inst_get_index(link);
drivers/net/wireless/realtek/rtw89/core.c
6080
list_del(&link->dlink_schd);
drivers/net/wireless/realtek/rtw89/core.h
6947
link_sta = rcu_dereference(sta->link[rtwsta_link->link_id]);
drivers/net/wireless/silabs/wfx/data_tx.c
122
entry = list_entry(cache->free.prev, struct wfx_tx_policy, link);
drivers/net/wireless/silabs/wfx/data_tx.c
195
list_add(&cache->cache[i].link, &cache->free);
drivers/net/wireless/silabs/wfx/data_tx.c
77
list_for_each_entry(it, &cache->used, link)
drivers/net/wireless/silabs/wfx/data_tx.c
80
list_for_each_entry(it, &cache->free, link)
drivers/net/wireless/silabs/wfx/data_tx.c
89
list_move(&entry->link, &cache->used);
drivers/net/wireless/silabs/wfx/data_tx.c
97
list_move(&entry->link, &cache->free);
drivers/net/wireless/silabs/wfx/data_tx.h
22
struct list_head link;
drivers/net/wireless/st/cw1200/sta.c
45
list_for_each_entry_safe(event, tmp, list, link) {
drivers/net/wireless/st/cw1200/sta.c
46
list_del(&event->link);
drivers/net/wireless/st/cw1200/sta.c
976
list_for_each_entry(event, &list, link) {
drivers/net/wireless/st/cw1200/txrx.c
222
list_for_each_entry(it, &cache->used, link) {
drivers/net/wireless/st/cw1200/txrx.c
227
list_for_each_entry(it, &cache->free, link) {
drivers/net/wireless/st/cw1200/txrx.c
238
list_move(&entry->link, &cache->used);
drivers/net/wireless/st/cw1200/txrx.c
246
list_move(&entry->link, &cache->free);
drivers/net/wireless/st/cw1200/txrx.c
267
list_move(&entry->link, &cache->free);
drivers/net/wireless/st/cw1200/txrx.c
293
list_add(&cache->cache[i].link, &cache->free);
drivers/net/wireless/st/cw1200/txrx.c
322
struct tx_policy_cache_entry, link);
drivers/net/wireless/st/cw1200/txrx.h
34
struct list_head link;
drivers/net/wireless/st/cw1200/wsm.c
937
list_add_tail(&event->link, &priv->event_queue);
drivers/net/wireless/st/cw1200/wsm.h
876
struct list_head link;
drivers/net/wireless/ti/wlcore/cmd.c
312
u8 link = find_first_zero_bit(wl->links_map, wl->num_links);
drivers/net/wireless/ti/wlcore/cmd.c
313
if (link >= wl->num_links)
drivers/net/wireless/ti/wlcore/cmd.c
316
wl->session_ids[link] = wlcore_get_new_session_id(wl, link);
drivers/net/wireless/ti/wlcore/cmd.c
320
__set_bit(link, wl->links_map);
drivers/net/wireless/ti/wlcore/cmd.c
321
__set_bit(link, wlvif->links_map);
drivers/net/wireless/ti/wlcore/cmd.c
330
wl->links[link].prev_freed_pkts =
drivers/net/wireless/ti/wlcore/cmd.c
331
wl->fw_status->counters.tx_lnk_free_pkts[link];
drivers/net/wireless/ti/wlcore/cmd.c
332
wl->links[link].wlvif = wlvif;
drivers/net/wireless/ti/wlcore/cmd.c
339
wl->links[link].prev_sec_pn16 =
drivers/net/wireless/ti/wlcore/cmd.c
340
le16_to_cpu(wl->fw_status->counters.tx_lnk_sec_pn16[link]);
drivers/net/wireless/ti/wlcore/cmd.c
347
wl->links[link].total_freed_pkts = wlvif->total_freed_pkts;
drivers/net/wireless/ti/wlcore/cmd.c
349
*hlid = link;
drivers/net/wireless/virtual/mac80211_hwsim.c
1939
*link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/virtual/mac80211_hwsim.c
2000
u8 link = u32_get_bits(IEEE80211_SKB_CB(skb)->control.flags,
drivers/net/wireless/virtual/mac80211_hwsim.c
2012
if (link != IEEE80211_LINK_UNSPECIFIED) {
drivers/net/wireless/virtual/mac80211_hwsim.c
2013
bss_conf = rcu_dereference(vif->link_conf[link]);
drivers/net/wireless/virtual/mac80211_hwsim.c
2015
link_sta = rcu_dereference(sta->link[link]);
drivers/net/wireless/virtual/mac80211_hwsim.c
2026
WARN(link != IEEE80211_LINK_UNSPECIFIED || !sta || !sta->mlo,
drivers/net/wireless/virtual/mac80211_hwsim.c
2028
link, sta ? sta->addr : NULL, sta ? sta->mlo : -1);
drivers/net/wireless/virtual/mac80211_hwsim.c
2663
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wwan/iosm/iosm_ipc_pm.c
166
new_cond.link = active;
drivers/net/wwan/iosm/iosm_ipc_pm.c
180
link_active = old_cond.link == IPC_PM_ACTIVE;
drivers/net/wwan/iosm/iosm_ipc_pm.c
186
if (new_cond.link)
drivers/net/wwan/iosm/iosm_ipc_pm.c
191
if (old_cond.link == IPC_PM_SLEEP && new_cond.raw) {
drivers/net/wwan/iosm/iosm_ipc_pm.c
196
link_active = old_cond.link == IPC_PM_ACTIVE;
drivers/net/wwan/iosm/iosm_ipc_pm.c
240
ipc_pm->pm_cond.link = IPC_PM_ACTIVE;
drivers/net/wwan/iosm/iosm_ipc_pm.c
308
ipc_pm->pm_cond.link = IPC_PM_ACTIVE;
drivers/net/wwan/iosm/iosm_ipc_pm.h
30
link:1;
drivers/net/wwan/mhi_wwan_mbim.c
154
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
155
struct mhi_mbim_context *mbim = link->mbim;
drivers/net/wwan/mhi_wwan_mbim.c
162
skb = mbim_tx_fixup(skb, link->session, mbim->tx_seq);
drivers/net/wwan/mhi_wwan_mbim.c
187
u64_stats_update_begin(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
188
u64_stats_inc(&link->tx_dropped);
drivers/net/wwan/mhi_wwan_mbim.c
189
u64_stats_update_end(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
270
struct mhi_mbim_link *link;
drivers/net/wwan/mhi_wwan_mbim.c
298
link = mhi_mbim_get_link_rcu(mbim, session);
drivers/net/wwan/mhi_wwan_mbim.c
299
if (!link) {
drivers/net/wwan/mhi_wwan_mbim.c
319
skbn = netdev_alloc_skb(link->ndev, dgram_len);
drivers/net/wwan/mhi_wwan_mbim.c
335
link->ndev->name);
drivers/net/wwan/mhi_wwan_mbim.c
337
u64_stats_update_begin(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
338
u64_stats_inc(&link->rx_errors);
drivers/net/wwan/mhi_wwan_mbim.c
339
u64_stats_update_end(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
343
u64_stats_update_begin(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
344
u64_stats_inc(&link->rx_packets);
drivers/net/wwan/mhi_wwan_mbim.c
345
u64_stats_add(&link->rx_bytes, skbn->len);
drivers/net/wwan/mhi_wwan_mbim.c
346
u64_stats_update_end(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
467
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
471
start = u64_stats_fetch_begin(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
472
stats->rx_packets = u64_stats_read(&link->rx_packets);
drivers/net/wwan/mhi_wwan_mbim.c
473
stats->rx_bytes = u64_stats_read(&link->rx_bytes);
drivers/net/wwan/mhi_wwan_mbim.c
474
stats->rx_errors = u64_stats_read(&link->rx_errors);
drivers/net/wwan/mhi_wwan_mbim.c
475
} while (u64_stats_fetch_retry(&link->rx_syncp, start));
drivers/net/wwan/mhi_wwan_mbim.c
478
start = u64_stats_fetch_begin(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
479
stats->tx_packets = u64_stats_read(&link->tx_packets);
drivers/net/wwan/mhi_wwan_mbim.c
480
stats->tx_bytes = u64_stats_read(&link->tx_bytes);
drivers/net/wwan/mhi_wwan_mbim.c
481
stats->tx_errors = u64_stats_read(&link->tx_errors);
drivers/net/wwan/mhi_wwan_mbim.c
482
stats->tx_dropped = u64_stats_read(&link->tx_dropped);
drivers/net/wwan/mhi_wwan_mbim.c
483
} while (u64_stats_fetch_retry(&link->tx_syncp, start));
drivers/net/wwan/mhi_wwan_mbim.c
492
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
499
u64_stats_update_begin(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
503
u64_stats_update_end(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
507
u64_stats_inc(&link->tx_errors);
drivers/net/wwan/mhi_wwan_mbim.c
509
u64_stats_inc(&link->tx_packets);
drivers/net/wwan/mhi_wwan_mbim.c
510
u64_stats_add(&link->tx_bytes, mhi_res->bytes_xferd);
drivers/net/wwan/mhi_wwan_mbim.c
512
u64_stats_update_end(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
520
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
523
schedule_delayed_work(&link->mbim->rx_refill, 0);
drivers/net/wwan/mhi_wwan_mbim.c
551
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
554
link->mbim = mbim;
drivers/net/wwan/mhi_wwan_mbim.c
555
link->session = mhi_mbim_get_link_mux_id(link->mbim->mdev->mhi_cntrl) + if_id;
drivers/net/wwan/mhi_wwan_mbim.c
556
link->ndev = ndev;
drivers/net/wwan/mhi_wwan_mbim.c
557
u64_stats_init(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
558
u64_stats_init(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
568
hlist_add_head_rcu(&link->hlnode, &mbim->link_list[LINK_HASH(if_id)]);
drivers/net/wwan/mhi_wwan_mbim.c
576
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
578
hlist_del_init_rcu(&link->hlnode);
drivers/net/wwan/mhi_wwan_mbim.c
88
struct mhi_mbim_link *link;
drivers/net/wwan/mhi_wwan_mbim.c
90
hlist_for_each_entry_rcu(link, &mbim->link_list[LINK_HASH(session)], hlnode) {
drivers/net/wwan/mhi_wwan_mbim.c
91
if (link->session == session)
drivers/net/wwan/mhi_wwan_mbim.c
92
return link;
drivers/net/xen-netback/common.h
238
struct list_head link;
drivers/net/xen-netback/hash.c
106
list_for_each_entry_safe(entry, n, &vif->hash.cache.list, link) {
drivers/net/xen-netback/hash.c
107
list_del_rcu(&entry->link);
drivers/net/xen-netback/hash.c
132
list_for_each_entry_rcu(entry, &vif->hash.cache.list, link) {
drivers/net/xen-netback/hash.c
54
list_for_each_entry_rcu(entry, &vif->hash.cache.list, link,
drivers/net/xen-netback/hash.c
66
list_add_rcu(&new->link, &vif->hash.cache.list);
drivers/net/xen-netback/hash.c
69
list_del_rcu(&oldest->link);
drivers/nfc/nfcsim.c
101
mutex_unlock(&link->lock);
drivers/nfc/nfcsim.c
104
static void nfcsim_link_recv_cancel(struct nfcsim_link *link)
drivers/nfc/nfcsim.c
106
mutex_lock(&link->lock);
drivers/nfc/nfcsim.c
108
link->mode = NFCSIM_MODE_NONE;
drivers/nfc/nfcsim.c
110
mutex_unlock(&link->lock);
drivers/nfc/nfcsim.c
112
nfcsim_link_recv_wake(link);
drivers/nfc/nfcsim.c
115
static void nfcsim_link_shutdown(struct nfcsim_link *link)
drivers/nfc/nfcsim.c
117
mutex_lock(&link->lock);
drivers/nfc/nfcsim.c
119
link->shutdown = 1;
drivers/nfc/nfcsim.c
120
link->mode = NFCSIM_MODE_NONE;
drivers/nfc/nfcsim.c
122
mutex_unlock(&link->lock);
drivers/nfc/nfcsim.c
124
nfcsim_link_recv_wake(link);
drivers/nfc/nfcsim.c
127
static struct sk_buff *nfcsim_link_recv_skb(struct nfcsim_link *link,
drivers/nfc/nfcsim.c
133
rc = wait_event_interruptible_timeout(link->recv_wait,
drivers/nfc/nfcsim.c
134
link->cond,
drivers/nfc/nfcsim.c
137
mutex_lock(&link->lock);
drivers/nfc/nfcsim.c
139
skb = link->skb;
drivers/nfc/nfcsim.c
140
link->skb = NULL;
drivers/nfc/nfcsim.c
147
if (!skb || link->rf_tech != rf_tech || link->mode == mode) {
drivers/nfc/nfcsim.c
152
if (link->shutdown) {
drivers/nfc/nfcsim.c
158
mutex_unlock(&link->lock);
drivers/nfc/nfcsim.c
165
link->cond = 0;
drivers/nfc/nfcsim.c
67
struct nfcsim_link *link;
drivers/nfc/nfcsim.c
69
link = kzalloc_obj(struct nfcsim_link);
drivers/nfc/nfcsim.c
70
if (!link)
drivers/nfc/nfcsim.c
73
mutex_init(&link->lock);
drivers/nfc/nfcsim.c
74
init_waitqueue_head(&link->recv_wait);
drivers/nfc/nfcsim.c
76
return link;
drivers/nfc/nfcsim.c
79
static void nfcsim_link_free(struct nfcsim_link *link)
drivers/nfc/nfcsim.c
81
dev_kfree_skb(link->skb);
drivers/nfc/nfcsim.c
82
kfree(link);
drivers/nfc/nfcsim.c
85
static void nfcsim_link_recv_wake(struct nfcsim_link *link)
drivers/nfc/nfcsim.c
87
link->cond = 1;
drivers/nfc/nfcsim.c
88
wake_up_interruptible(&link->recv_wait);
drivers/nfc/nfcsim.c
91
static void nfcsim_link_set_skb(struct nfcsim_link *link, struct sk_buff *skb,
drivers/nfc/nfcsim.c
94
mutex_lock(&link->lock);
drivers/nfc/nfcsim.c
96
dev_kfree_skb(link->skb);
drivers/nfc/nfcsim.c
97
link->skb = skb;
drivers/nfc/nfcsim.c
98
link->rf_tech = rf_tech;
drivers/nfc/nfcsim.c
99
link->mode = mode;
drivers/ntb/test/ntb_perf.c
251
u64 link;
drivers/ntb/test/ntb_perf.c
253
link = ntb_link_is_up(peer->perf->ntb, NULL, NULL);
drivers/ntb/test/ntb_perf.c
254
return !!(link & BIT_ULL_MASK(peer->pidx));
drivers/ntb/test/ntb_pingpong.c
118
u64 link, out_db;
drivers/ntb/test/ntb_pingpong.c
121
link = ntb_link_is_up(pp->ntb, NULL, NULL);
drivers/ntb/test/ntb_pingpong.c
124
if (link & pp->nmask)
drivers/ntb/test/ntb_pingpong.c
125
pidx = __ffs64(link & pp->nmask);
drivers/ntb/test/ntb_pingpong.c
126
else if (link & pp->pmask)
drivers/ntb/test/ntb_pingpong.c
127
pidx = __ffs64(link & pp->pmask);
drivers/nvme/target/configfs.c
1035
struct nvmet_subsys_link *link, *p;
drivers/nvme/target/configfs.c
1043
link = kmalloc_obj(*link);
drivers/nvme/target/configfs.c
1044
if (!link)
drivers/nvme/target/configfs.c
1046
link->subsys = subsys;
drivers/nvme/target/configfs.c
1061
list_add_tail(&link->entry, &port->subsystems);
drivers/nvme/target/configfs.c
1069
kfree(link);
drivers/nvme/target/configfs.c
1114
struct nvmet_host_link *link, *p;
drivers/nvme/target/configfs.c
1123
link = kmalloc_obj(*link);
drivers/nvme/target/configfs.c
1124
if (!link)
drivers/nvme/target/configfs.c
1126
link->host = host;
drivers/nvme/target/configfs.c
1140
list_add_tail(&link->entry, &subsys->hosts);
drivers/nvme/target/configfs.c
1147
kfree(link);
drivers/nvme/target/pci-epf.c
1187
list_add_tail(&iod->link, &cq->list);
drivers/nvme/target/pci-epf.c
1200
link);
drivers/nvme/target/pci-epf.c
1201
list_del_init(&iod->link);
drivers/nvme/target/pci-epf.c
122
struct list_head link;
drivers/nvme/target/pci-epf.c
1775
struct nvmet_pci_epf_iod, link);
drivers/nvme/target/pci-epf.c
1777
list_del_init(&iod->link);
drivers/nvme/target/pci-epf.c
691
INIT_LIST_HEAD(&iod->link);
drivers/of/base.c
1884
list_add_tail(&ap->link, &aliases_lookup);
drivers/of/base.c
1978
list_for_each_entry(app, &aliases_lookup, link) {
drivers/of/base.c
2006
list_for_each_entry(app, &aliases_lookup, link) {
drivers/of/device.c
242
list_for_each_entry(app, &aliases_lookup, link) {
drivers/of/of_private.h
26
struct list_head link;
drivers/parport/parport_cs.c
100
static void parport_detach(struct pcmcia_device *link)
drivers/parport/parport_cs.c
102
dev_dbg(&link->dev, "parport_detach\n");
drivers/parport/parport_cs.c
104
parport_cs_release(link);
drivers/parport/parport_cs.c
106
kfree(link->priv);
drivers/parport/parport_cs.c
119
static int parport_config(struct pcmcia_device *link)
drivers/parport/parport_cs.c
121
parport_info_t *info = link->priv;
drivers/parport/parport_cs.c
125
dev_dbg(&link->dev, "parport_config\n");
drivers/parport/parport_cs.c
128
link->config_index |= FORCE_EPP_MODE;
drivers/parport/parport_cs.c
130
ret = pcmcia_loop_config(link, parport_config_check, NULL);
drivers/parport/parport_cs.c
134
if (!link->irq)
drivers/parport/parport_cs.c
136
ret = pcmcia_enable_device(link);
drivers/parport/parport_cs.c
140
p = parport_pc_probe_port(link->resource[0]->start,
drivers/parport/parport_cs.c
141
link->resource[1]->start,
drivers/parport/parport_cs.c
142
link->irq, PARPORT_DMA_NONE,
drivers/parport/parport_cs.c
143
&link->dev, IRQF_SHARED);
drivers/parport/parport_cs.c
146
(unsigned int)link->resource[0]->start, link->irq);
drivers/parport/parport_cs.c
159
parport_cs_release(link);
drivers/parport/parport_cs.c
160
kfree(link->priv);
drivers/parport/parport_cs.c
164
static void parport_cs_release(struct pcmcia_device *link)
drivers/parport/parport_cs.c
166
parport_info_t *info = link->priv;
drivers/parport/parport_cs.c
168
dev_dbg(&link->dev, "parport_release\n");
drivers/parport/parport_cs.c
176
pcmcia_disable_device(link);
drivers/parport/parport_cs.c
80
static int parport_config(struct pcmcia_device *link);
drivers/parport/parport_cs.c
83
static int parport_probe(struct pcmcia_device *link)
drivers/parport/parport_cs.c
87
dev_dbg(&link->dev, "parport_attach()\n");
drivers/parport/parport_cs.c
92
link->priv = info;
drivers/parport/parport_cs.c
93
info->p_dev = link;
drivers/parport/parport_cs.c
95
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/parport/parport_cs.c
97
return parport_config(link);
drivers/pci/controller/cadence/pcie-cadence-plat.c
127
device_link_del(cdns_plat_pcie->pcie->link[phy_count]);
drivers/pci/controller/cadence/pcie-cadence.c
225
struct device_link **link;
drivers/pci/controller/cadence/pcie-cadence.c
241
link = devm_kcalloc(dev, phy_count, sizeof(*link), GFP_KERNEL);
drivers/pci/controller/cadence/pcie-cadence.c
242
if (!link)
drivers/pci/controller/cadence/pcie-cadence.c
252
link[i] = device_link_add(dev, &phy[i]->dev, DL_FLAG_STATELESS);
drivers/pci/controller/cadence/pcie-cadence.c
253
if (!link[i]) {
drivers/pci/controller/cadence/pcie-cadence.c
262
pcie->link = link;
drivers/pci/controller/cadence/pcie-cadence.c
272
device_link_del(link[i]);
drivers/pci/controller/cadence/pcie-cadence.h
98
struct device_link **link;
drivers/pci/controller/dwc/pci-dra7xx.c
686
struct device_link **link;
drivers/pci/controller/dwc/pci-dra7xx.c
734
link = devm_kcalloc(dev, phy_count, sizeof(*link), GFP_KERNEL);
drivers/pci/controller/dwc/pci-dra7xx.c
735
if (!link)
drivers/pci/controller/dwc/pci-dra7xx.c
753
link[i] = device_link_add(dev, &phy[i]->dev, DL_FLAG_STATELESS);
drivers/pci/controller/dwc/pci-dra7xx.c
754
if (!link[i]) {
drivers/pci/controller/dwc/pci-dra7xx.c
861
device_link_del(link[i]);
drivers/pci/controller/dwc/pci-imx6.c
629
struct device_link *link;
drivers/pci/controller/dwc/pci-imx6.c
641
link = device_link_add(dev, imx_pcie->pd_pcie,
drivers/pci/controller/dwc/pci-imx6.c
645
if (!link) {
drivers/pci/controller/dwc/pci-imx6.c
654
link = device_link_add(dev, imx_pcie->pd_pcie_phy,
drivers/pci/controller/dwc/pci-imx6.c
658
if (!link) {
drivers/pci/controller/dwc/pci-keystone.c
1120
struct device_link **link;
drivers/pci/controller/dwc/pci-keystone.c
1191
link = devm_kcalloc(dev, num_lanes, sizeof(*link), GFP_KERNEL);
drivers/pci/controller/dwc/pci-keystone.c
1192
if (!link)
drivers/pci/controller/dwc/pci-keystone.c
1206
link[i] = device_link_add(dev, &phy[i]->dev, DL_FLAG_STATELESS);
drivers/pci/controller/dwc/pci-keystone.c
1207
if (!link[i]) {
drivers/pci/controller/dwc/pci-keystone.c
1215
ks_pcie->link = link;
drivers/pci/controller/dwc/pci-keystone.c
132
struct device_link **link;
drivers/pci/controller/dwc/pci-keystone.c
1328
while (--i >= 0 && link[i])
drivers/pci/controller/dwc/pci-keystone.c
1329
device_link_del(link[i]);
drivers/pci/controller/dwc/pci-keystone.c
1337
struct device_link **link = ks_pcie->link;
drivers/pci/controller/dwc/pci-keystone.c
1345
device_link_del(link[num_lanes]);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
208
val = readl_relaxed(k1->link + K1_PHY_AHB_LINK_STS);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
223
writel_relaxed(MSI_CTRL_INT, k1->link + INTR_ENABLE);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
226
val = readl_relaxed(k1->link + K1_PHY_AHB_IRQ_EN);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
228
writel_relaxed(val, k1->link + K1_PHY_AHB_IRQ_EN);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
239
val = readl_relaxed(k1->link + K1_PHY_AHB_IRQ_EN);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
241
writel_relaxed(val, k1->link + K1_PHY_AHB_IRQ_EN);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
243
writel_relaxed(0, k1->link + INTR_ENABLE);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
296
k1->link = devm_platform_ioremap_resource_byname(pdev, "link");
drivers/pci/controller/dwc/pcie-spacemit-k1.c
297
if (IS_ERR(k1->link))
drivers/pci/controller/dwc/pcie-spacemit-k1.c
298
return dev_err_probe(dev, PTR_ERR(k1->link),
drivers/pci/controller/dwc/pcie-spacemit-k1.c
55
void __iomem *link;
drivers/pci/hotplug/ibmphp_core.c
161
rtable->slots[loop].irq[0].link);
drivers/pci/hotplug/ibmphp_core.c
163
rtable->slots[loop].irq[1].link);
drivers/pci/hotplug/ibmphp_core.c
165
rtable->slots[loop].irq[2].link);
drivers/pci/hotplug/ibmphp_core.c
167
rtable->slots[loop].irq[3].link);
drivers/pci/hotplug/pnv_php.c
103
list_for_each_entry(tmp, &php_slot->children, link) {
drivers/pci/hotplug/pnv_php.c
118
list_for_each_entry(tmp, &pnv_php_slot_list, link) {
drivers/pci/hotplug/pnv_php.c
767
list_del(&php_slot->link);
drivers/pci/hotplug/pnv_php.c
828
INIT_LIST_HEAD(&php_slot->link);
drivers/pci/hotplug/pnv_php.c
874
list_add_tail(&php_slot->link, &parent->children);
drivers/pci/hotplug/pnv_php.c
876
list_add_tail(&php_slot->link, &pnv_php_slot_list);
drivers/pci/iov.c
705
if (iov->link != dev->devfn) {
drivers/pci/iov.c
706
pdev = pci_get_slot(dev->bus, iov->link);
drivers/pci/iov.c
757
if (iov->link != dev->devfn)
drivers/pci/iov.c
789
if (iov->link != dev->devfn)
drivers/pci/iov.c
889
pci_read_config_byte(dev, pos + PCI_SRIOV_FUNC_LINK, &iov->link);
drivers/pci/iov.c
891
iov->link = PCI_DEVFN(PCI_SLOT(dev->devfn), iov->link);
drivers/pci/pci.h
670
u8 link; /* Function Dependency Link */
drivers/pci/pcie/aspm.c
1004
link->aspm_enabled = state;
drivers/pci/pcie/aspm.c
1007
pci_save_aspm_l1ss_state(link->downstream);
drivers/pci/pcie/aspm.c
1008
pci_update_aspm_saved_state(link->downstream);
drivers/pci/pcie/aspm.c
1013
static void pcie_config_aspm_path(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
1015
while (link) {
drivers/pci/pcie/aspm.c
1016
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1017
link = link->parent;
drivers/pci/pcie/aspm.c
1021
static void free_link_state(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
1023
link->pdev->link_state = NULL;
drivers/pci/pcie/aspm.c
1024
kfree(link);
drivers/pci/pcie/aspm.c
1064
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
1066
link = kzalloc_obj(*link);
drivers/pci/pcie/aspm.c
1067
if (!link)
drivers/pci/pcie/aspm.c
1070
INIT_LIST_HEAD(&link->sibling);
drivers/pci/pcie/aspm.c
1071
link->pdev = pdev;
drivers/pci/pcie/aspm.c
1072
link->downstream = pci_function_0(pdev->subordinate);
drivers/pci/pcie/aspm.c
1084
link->root = link;
drivers/pci/pcie/aspm.c
1090
kfree(link);
drivers/pci/pcie/aspm.c
1094
link->parent = parent;
drivers/pci/pcie/aspm.c
1095
link->root = link->parent->root;
drivers/pci/pcie/aspm.c
1098
list_add(&link->sibling, &link_list);
drivers/pci/pcie/aspm.c
1099
pdev->link_state = link;
drivers/pci/pcie/aspm.c
1100
return link;
drivers/pci/pcie/aspm.c
1118
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
1145
link = alloc_pcie_link_state(pdev);
drivers/pci/pcie/aspm.c
1146
if (!link)
drivers/pci/pcie/aspm.c
1153
pcie_aspm_cap_init(link, blacklist);
drivers/pci/pcie/aspm.c
1156
pcie_clkpm_cap_init(link, blacklist);
drivers/pci/pcie/aspm.c
1168
pcie_config_aspm_path(link);
drivers/pci/pcie/aspm.c
1169
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1255
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
1257
list_for_each_entry(link, &link_list, sibling) {
drivers/pci/pcie/aspm.c
1258
if (link->root != root)
drivers/pci/pcie/aspm.c
1260
link->aspm_capable = link->aspm_support;
drivers/pci/pcie/aspm.c
1262
list_for_each_entry(link, &link_list, sibling) {
drivers/pci/pcie/aspm.c
1264
struct pci_bus *linkbus = link->pdev->subordinate;
drivers/pci/pcie/aspm.c
1265
if (link->root != root)
drivers/pci/pcie/aspm.c
1280
struct pcie_link_state *link, *root, *parent_link;
drivers/pci/pcie/aspm.c
1288
link = parent->link_state;
drivers/pci/pcie/aspm.c
1289
root = link->root;
drivers/pci/pcie/aspm.c
1290
parent_link = link->parent;
drivers/pci/pcie/aspm.c
1300
if (pdev != link->downstream)
drivers/pci/pcie/aspm.c
1303
pcie_config_aspm_link(link, 0);
drivers/pci/pcie/aspm.c
1304
list_del(&link->sibling);
drivers/pci/pcie/aspm.c
1305
free_link_state(link);
drivers/pci/pcie/aspm.c
1324
struct pcie_link_state *link = pdev->link_state;
drivers/pci/pcie/aspm.c
1326
if (aspm_disabled || !link)
drivers/pci/pcie/aspm.c
1335
pcie_update_aspm_capable(link->root);
drivers/pci/pcie/aspm.c
1336
pcie_config_aspm_path(link);
drivers/pci/pcie/aspm.c
1344
struct pcie_link_state *link = pdev->link_state;
drivers/pci/pcie/aspm.c
1346
if (aspm_disabled || !link)
drivers/pci/pcie/aspm.c
1355
pcie_config_aspm_path(link);
drivers/pci/pcie/aspm.c
1356
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1399
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1401
if (!link)
drivers/pci/pcie/aspm.c
1419
link->aspm_disable |= pci_calc_aspm_disable_mask(state);
drivers/pci/pcie/aspm.c
1420
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1423
link->clkpm_disable = 1;
drivers/pci/pcie/aspm.c
1424
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1457
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1459
if (!link)
drivers/pci/pcie/aspm.c
1475
link->aspm_default = pci_calc_aspm_enable_mask(state);
drivers/pci/pcie/aspm.c
1476
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1478
link->clkpm_default = (state & PCIE_LINK_STATE_CLKPM) ? 1 : 0;
drivers/pci/pcie/aspm.c
1479
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1546
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
1559
list_for_each_entry(link, &link_list, sibling) {
drivers/pci/pcie/aspm.c
1560
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1561
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1594
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1596
if (!link)
drivers/pci/pcie/aspm.c
1599
return link->aspm_enabled;
drivers/pci/pcie/aspm.c
1608
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1610
return sysfs_emit(buf, "%d\n", (link->aspm_enabled & state) ? 1 : 0);
drivers/pci/pcie/aspm.c
1618
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1628
link->aspm_disable &= ~state;
drivers/pci/pcie/aspm.c
1631
link->aspm_disable &= ~PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
1633
link->aspm_disable |= state;
drivers/pci/pcie/aspm.c
1635
link->aspm_disable |= PCIE_LINK_STATE_L1SS;
drivers/pci/pcie/aspm.c
1638
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1667
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1669
return sysfs_emit(buf, "%d\n", link->clkpm_enabled);
drivers/pci/pcie/aspm.c
1677
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1686
link->clkpm_disable = !state_enable;
drivers/pci/pcie/aspm.c
1687
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1719
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1729
if (aspm_disabled || !link)
drivers/pci/pcie/aspm.c
1733
return link->clkpm_capable ? a->mode : 0;
drivers/pci/pcie/aspm.c
1735
return link->aspm_capable & aspm_state_map[n - 1] ? a->mode : 0;
drivers/pci/pcie/aspm.c
291
static int policy_to_aspm_state(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
304
return link->aspm_default;
drivers/pci/pcie/aspm.c
309
static int policy_to_clkpm_state(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
320
return link->clkpm_default;
drivers/pci/pcie/aspm.c
349
static void pcie_set_clkpm_nocheck(struct pcie_link_state *link, int enable)
drivers/pci/pcie/aspm.c
352
struct pci_bus *linkbus = link->pdev->subordinate;
drivers/pci/pcie/aspm.c
361
link->clkpm_enabled = !!enable;
drivers/pci/pcie/aspm.c
364
static void pcie_set_clkpm(struct pcie_link_state *link, int enable)
drivers/pci/pcie/aspm.c
370
if (!link->clkpm_capable || link->clkpm_disable)
drivers/pci/pcie/aspm.c
373
if (link->clkpm_enabled == enable)
drivers/pci/pcie/aspm.c
375
pcie_set_clkpm_nocheck(link, enable);
drivers/pci/pcie/aspm.c
378
static void pcie_clkpm_cap_init(struct pcie_link_state *link, int blacklist)
drivers/pci/pcie/aspm.c
384
struct pci_bus *linkbus = link->pdev->subordinate;
drivers/pci/pcie/aspm.c
398
link->clkpm_enabled = enabled;
drivers/pci/pcie/aspm.c
399
link->clkpm_default = enabled;
drivers/pci/pcie/aspm.c
400
link->clkpm_capable = capable;
drivers/pci/pcie/aspm.c
401
link->clkpm_disable = blacklist ? 1 : 0;
drivers/pci/pcie/aspm.c
409
static void pcie_aspm_configure_common_clock(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
413
struct pci_dev *child, *parent = link->pdev;
drivers/pci/pcie/aspm.c
464
if (pcie_retrain_link(link->pdev, true)) {
drivers/pci/pcie/aspm.c
574
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
581
link = endpoint->bus->self->link_state;
drivers/pci/pcie/aspm.c
591
while (link) {
drivers/pci/pcie/aspm.c
592
struct pci_dev *dev = pci_function_0(link->pdev->subordinate);
drivers/pci/pcie/aspm.c
595
pcie_capability_read_dword(link->pdev, PCI_EXP_LNKCAP,
drivers/pci/pcie/aspm.c
605
if ((link->aspm_capable & PCIE_LINK_STATE_L0S_UP) &&
drivers/pci/pcie/aspm.c
607
link->aspm_capable &= ~PCIE_LINK_STATE_L0S_UP;
drivers/pci/pcie/aspm.c
610
if ((link->aspm_capable & PCIE_LINK_STATE_L0S_DW) &&
drivers/pci/pcie/aspm.c
612
link->aspm_capable &= ~PCIE_LINK_STATE_L0S_DW;
drivers/pci/pcie/aspm.c
627
if ((link->aspm_capable & PCIE_LINK_STATE_L1) &&
drivers/pci/pcie/aspm.c
629
link->aspm_capable &= ~PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
632
link = link->parent;
drivers/pci/pcie/aspm.c
637
static void aspm_calc_l12_info(struct pcie_link_state *link,
drivers/pci/pcie/aspm.c
640
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/pcie/aspm.c
736
static void aspm_l1ss_init(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
738
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/pcie/aspm.c
765
link->aspm_support |= PCIE_LINK_STATE_L1_1;
drivers/pci/pcie/aspm.c
767
link->aspm_support |= PCIE_LINK_STATE_L1_2;
drivers/pci/pcie/aspm.c
769
link->aspm_support |= PCIE_LINK_STATE_L1_1_PCIPM;
drivers/pci/pcie/aspm.c
771
link->aspm_support |= PCIE_LINK_STATE_L1_2_PCIPM;
drivers/pci/pcie/aspm.c
781
link->aspm_enabled |= PCIE_LINK_STATE_L1_1;
drivers/pci/pcie/aspm.c
783
link->aspm_enabled |= PCIE_LINK_STATE_L1_2;
drivers/pci/pcie/aspm.c
785
link->aspm_enabled |= PCIE_LINK_STATE_L1_1_PCIPM;
drivers/pci/pcie/aspm.c
787
link->aspm_enabled |= PCIE_LINK_STATE_L1_2_PCIPM;
drivers/pci/pcie/aspm.c
789
if (link->aspm_support & PCIE_LINK_STATE_L1_2_MASK)
drivers/pci/pcie/aspm.c
790
aspm_calc_l12_info(link, parent_l1ss_cap, child_l1ss_cap);
drivers/pci/pcie/aspm.c
795
static void pcie_aspm_override_default_link_state(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
797
struct pci_dev *pdev = link->downstream;
drivers/pci/pcie/aspm.c
802
if (link->aspm_support & PCIE_LINK_STATE_L0S)
drivers/pci/pcie/aspm.c
803
link->aspm_default |= PCIE_LINK_STATE_L0S;
drivers/pci/pcie/aspm.c
804
if (link->aspm_support & PCIE_LINK_STATE_L1)
drivers/pci/pcie/aspm.c
805
link->aspm_default |= PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
806
override = link->aspm_default & ~link->aspm_enabled;
drivers/pci/pcie/aspm.c
814
static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
drivers/pci/pcie/aspm.c
816
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/pcie/aspm.c
822
link->aspm_enabled = PCIE_LINK_STATE_ASPM_ALL;
drivers/pci/pcie/aspm.c
823
link->aspm_disable = PCIE_LINK_STATE_ASPM_ALL;
drivers/pci/pcie/aspm.c
836
pcie_aspm_configure_common_clock(link);
drivers/pci/pcie/aspm.c
864
link->aspm_support |= PCIE_LINK_STATE_L0S;
drivers/pci/pcie/aspm.c
867
link->aspm_enabled |= PCIE_LINK_STATE_L0S_UP;
drivers/pci/pcie/aspm.c
869
link->aspm_enabled |= PCIE_LINK_STATE_L0S_DW;
drivers/pci/pcie/aspm.c
873
link->aspm_support |= PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
876
link->aspm_enabled |= PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
878
aspm_l1ss_init(link);
drivers/pci/pcie/aspm.c
888
link->aspm_default = link->aspm_enabled;
drivers/pci/pcie/aspm.c
890
pcie_aspm_override_default_link_state(link);
drivers/pci/pcie/aspm.c
893
link->aspm_capable = link->aspm_support;
drivers/pci/pcie/aspm.c
906
static void pcie_config_aspm_l1ss(struct pcie_link_state *link, u32 state)
drivers/pci/pcie/aspm.c
909
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/pcie/aspm.c
947
static void pcie_config_aspm_link(struct pcie_link_state *link, u32 state)
drivers/pci/pcie/aspm.c
950
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/pcie/aspm.c
954
state &= (link->aspm_capable & ~link->aspm_disable);
drivers/pci/pcie/aspm.c
963
state |= (link->aspm_enabled & PCIE_LINK_STATE_L1_SS_PCIPM);
drivers/pci/pcie/aspm.c
967
if (link->aspm_enabled == state)
drivers/pci/pcie/aspm.c
997
if (link->aspm_capable & PCIE_LINK_STATE_L1SS)
drivers/pci/pcie/aspm.c
998
pcie_config_aspm_l1ss(link, state);
drivers/pci/quirks.c
1162
dev->sriov->link = dev->devfn;
drivers/pci/vc.c
108
struct pci_dev *link = NULL;
drivers/pci/vc.c
142
link = dev->bus->self;
drivers/pci/vc.c
147
if (!link)
drivers/pci/vc.c
153
pci_write_config_dword(link, ctrl_pos2, ctrl2);
drivers/pci/vc.c
158
pci_write_config_dword(link, ctrl_pos2, ctrl2);
drivers/pci/vc.c
166
if (link && !pci_wait_for_pending(link, status_pos2,
drivers/pci/vc.c
168
pci_err(link, "VC%d negotiation stuck pending\n", id);
drivers/pcmcia/cistpl.c
476
u_char link[5];
drivers/pcmcia/cistpl.c
483
tuple->LinkOffset, 5, link);
drivers/pcmcia/cistpl.c
486
ofs = get_unaligned_le32(link + 1);
drivers/pcmcia/cistpl.c
487
SPACE(tuple->Flags) = (link[0] == CISTPL_MFC_ATTR);
drivers/pcmcia/cistpl.c
501
ret = read_cis_cache(s, SPACE(tuple->Flags), ofs, 5, link);
drivers/pcmcia/cistpl.c
504
if ((link[0] == CISTPL_LINKTARGET) && (link[1] >= 3) &&
drivers/pcmcia/cistpl.c
505
(strncmp(link+2, "CIS", 3) == 0))
drivers/pcmcia/cistpl.c
511
ret = read_cis_cache(s, SPACE(tuple->Flags), ofs, 5, link);
drivers/pcmcia/cistpl.c
514
if ((link[0] == CISTPL_LINKTARGET) && (link[1] >= 3) &&
drivers/pcmcia/cistpl.c
515
(strncmp(link+2, "CIS", 3) == 0))
drivers/pcmcia/cistpl.c
524
u_char link[2], tmp;
drivers/pcmcia/cistpl.c
533
link[1] = tuple->TupleLink;
drivers/pcmcia/cistpl.c
538
if (link[1] == 0xff)
drivers/pcmcia/cistpl.c
539
link[0] = CISTPL_END;
drivers/pcmcia/cistpl.c
541
ret = read_cis_cache(s, attr, ofs, 2, link);
drivers/pcmcia/cistpl.c
544
if (link[0] == CISTPL_NULL) {
drivers/pcmcia/cistpl.c
551
if (link[0] == CISTPL_END) {
drivers/pcmcia/cistpl.c
556
ret = read_cis_cache(s, attr, ofs, 2, link);
drivers/pcmcia/cistpl.c
562
if ((link[0] == CISTPL_LONGLINK_A) ||
drivers/pcmcia/cistpl.c
563
(link[0] == CISTPL_LONGLINK_C) ||
drivers/pcmcia/cistpl.c
564
(link[0] == CISTPL_LONGLINK_MFC) ||
drivers/pcmcia/cistpl.c
565
(link[0] == CISTPL_LINKTARGET) ||
drivers/pcmcia/cistpl.c
566
(link[0] == CISTPL_INDIRECT) ||
drivers/pcmcia/cistpl.c
567
(link[0] == CISTPL_NO_LINK)) {
drivers/pcmcia/cistpl.c
568
switch (link[0]) {
drivers/pcmcia/cistpl.c
618
if (link[0] == tuple->DesiredTuple)
drivers/pcmcia/cistpl.c
620
ofs += link[1] + 2;
drivers/pcmcia/cistpl.c
627
tuple->TupleCode = link[0];
drivers/pcmcia/cistpl.c
628
tuple->TupleLink = link[1];
drivers/pcmcia/cistpl.c
733
static int parse_longlink(tuple_t *tuple, cistpl_longlink_t *link)
drivers/pcmcia/cistpl.c
737
link->addr = get_unaligned_le32(tuple->TupleData);
drivers/pcmcia/cistpl.c
742
static int parse_longlink_mfc(tuple_t *tuple, cistpl_longlink_mfc_t *link)
drivers/pcmcia/cistpl.c
749
link->nfn = *p; p++;
drivers/pcmcia/cistpl.c
750
if (tuple->TupleDataLen <= link->nfn*5)
drivers/pcmcia/cistpl.c
752
for (i = 0; i < link->nfn; i++) {
drivers/pcmcia/cistpl.c
753
link->fn[i].space = *p; p++;
drivers/pcmcia/cistpl.c
754
link->fn[i].addr = get_unaligned_le32(p);
drivers/phy/phy-core.c
787
struct device_link *link;
drivers/phy/phy-core.c
811
link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS);
drivers/phy/phy-core.c
812
if (!link)
drivers/phy/phy-core.c
888
struct device_link *link;
drivers/phy/phy-core.c
903
link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS);
drivers/phy/phy-core.c
904
if (!link)
drivers/phy/phy-core.c
958
struct device_link *link;
drivers/phy/phy-core.c
980
link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS);
drivers/phy/phy-core.c
981
if (!link)
drivers/platform/surface/aggregator/controller.c
320
struct rb_node **link = &nf->refcount.rb_node;
drivers/platform/surface/aggregator/controller.c
329
while (*link) {
drivers/platform/surface/aggregator/controller.c
330
entry = rb_entry(*link, struct ssam_nf_refcount_entry, node);
drivers/platform/surface/aggregator/controller.c
331
parent = *link;
drivers/platform/surface/aggregator/controller.c
335
link = &(*link)->rb_left;
drivers/platform/surface/aggregator/controller.c
337
link = &(*link)->rb_right;
drivers/platform/surface/aggregator/controller.c
354
rb_link_node(&entry->node, parent, link);
drivers/platform/surface/aggregator/core.c
133
struct device_link *link;
drivers/platform/surface/aggregator/core.c
149
link = device_link_add(client, ctrldev, flags);
drivers/platform/surface/aggregator/core.c
150
if (!link) {
drivers/platform/surface/aggregator/core.c
161
if (READ_ONCE(link->status) == DL_STATE_SUPPLIER_UNBIND) {
drivers/platform/surface/surface_acpi_notify.c
104
if (READ_ONCE(link->status) == DL_STATE_SUPPLIER_UNBIND) {
drivers/platform/surface/surface_acpi_notify.c
745
struct device_link *link;
drivers/platform/surface/surface_acpi_notify.c
758
link = device_link_add(&adev->dev, &pdev->dev, flags);
drivers/platform/surface/surface_acpi_notify.c
759
if (!link) {
drivers/platform/surface/surface_acpi_notify.c
89
struct device_link *link;
drivers/platform/surface/surface_acpi_notify.c
98
link = device_link_add(client, san_rqsg_if.dev, flags);
drivers/platform/surface/surface_acpi_notify.c
99
if (!link) {
drivers/platform/wmi/core.c
1243
struct device_link *link;
drivers/platform/wmi/core.c
1254
link = device_link_add(&wdev->dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER);
drivers/platform/wmi/core.c
1255
if (!link)
drivers/platform/x86/intel/vsec.c
187
struct device_link *link;
drivers/platform/x86/intel/vsec.c
198
link = device_link_add(dev, suppliers[supplier_id],
drivers/platform/x86/intel/vsec.c
200
if (!link)
drivers/pmdomain/core.c
1027
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1028
genpd_sd_counter_dec(link->parent);
drivers/pmdomain/core.c
1029
genpd_lock_nested(link->parent, depth + 1);
drivers/pmdomain/core.c
1030
genpd_power_off(link->parent, false, depth + 1);
drivers/pmdomain/core.c
1031
genpd_unlock(link->parent);
drivers/pmdomain/core.c
1045
struct gpd_link *link;
drivers/pmdomain/core.c
1059
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1060
struct generic_pm_domain *parent = link->parent;
drivers/pmdomain/core.c
1084
list_for_each_entry_continue_reverse(link,
drivers/pmdomain/core.c
1087
genpd_sd_counter_dec(link->parent);
drivers/pmdomain/core.c
1088
genpd_lock_nested(link->parent, depth + 1);
drivers/pmdomain/core.c
1089
genpd_power_off(link->parent, false, depth + 1);
drivers/pmdomain/core.c
1090
genpd_unlock(link->parent);
drivers/pmdomain/core.c
1412
struct gpd_link *link;
drivers/pmdomain/core.c
1422
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
1423
struct generic_pm_domain *child = link->child;
drivers/pmdomain/core.c
1445
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1446
genpd_sd_counter_dec(link->parent);
drivers/pmdomain/core.c
1449
genpd_lock_nested(link->parent, depth + 1);
drivers/pmdomain/core.c
1451
genpd_sync_power_off(link->parent, use_lock, depth + 1);
drivers/pmdomain/core.c
1454
genpd_unlock(link->parent);
drivers/pmdomain/core.c
1471
struct gpd_link *link;
drivers/pmdomain/core.c
1476
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1477
genpd_sd_counter_inc(link->parent);
drivers/pmdomain/core.c
1480
genpd_lock_nested(link->parent, depth + 1);
drivers/pmdomain/core.c
1482
genpd_sync_power_on(link->parent, use_lock, depth + 1);
drivers/pmdomain/core.c
1485
genpd_unlock(link->parent);
drivers/pmdomain/core.c
1877
struct gpd_link *link;
drivers/pmdomain/core.c
1882
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1883
struct generic_pm_domain *parent = link->parent;
drivers/pmdomain/core.c
2146
struct gpd_link *link, *itr;
drivers/pmdomain/core.c
2164
link = kzalloc_obj(*link);
drivers/pmdomain/core.c
2165
if (!link)
drivers/pmdomain/core.c
2183
link->parent = genpd;
drivers/pmdomain/core.c
2184
list_add_tail(&link->parent_node, &genpd->parent_links);
drivers/pmdomain/core.c
2185
link->child = subdomain;
drivers/pmdomain/core.c
2186
list_add_tail(&link->child_node, &subdomain->child_links);
drivers/pmdomain/core.c
2194
kfree(link);
drivers/pmdomain/core.c
2224
struct gpd_link *l, *link;
drivers/pmdomain/core.c
2240
list_for_each_entry_safe(link, l, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
2241
if (link->child != subdomain)
drivers/pmdomain/core.c
2244
list_del(&link->parent_node);
drivers/pmdomain/core.c
2245
list_del(&link->child_node);
drivers/pmdomain/core.c
2246
kfree(link);
drivers/pmdomain/core.c
2467
struct gpd_link *l, *link;
drivers/pmdomain/core.c
2486
list_for_each_entry_safe(link, l, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
2487
list_del(&link->parent_node);
drivers/pmdomain/core.c
2488
list_del(&link->child_node);
drivers/pmdomain/core.c
2489
kfree(link);
drivers/pmdomain/core.c
2555
struct list_head link;
drivers/pmdomain/core.c
2636
list_add(&cp->link, &of_genpd_providers);
drivers/pmdomain/core.c
2853
list_for_each_entry_safe(cp, tmp, &of_genpd_providers, link) {
drivers/pmdomain/core.c
2874
list_del(&cp->link);
drivers/pmdomain/core.c
2908
list_for_each_entry(provider, &of_genpd_providers, link) {
drivers/pmdomain/core.c
360
struct gpd_link *link;
drivers/pmdomain/core.c
3652
struct gpd_link *link;
drivers/pmdomain/core.c
3675
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
3676
if (list_is_first(&link->parent_node, &genpd->parent_links))
drivers/pmdomain/core.c
3678
seq_printf(s, "%s", link->child->name);
drivers/pmdomain/core.c
3679
if (!list_is_last(&link->parent_node, &genpd->parent_links))
drivers/pmdomain/core.c
3750
struct gpd_link *link;
drivers/pmdomain/core.c
3757
list_for_each_entry(link, &genpd->parent_links, parent_node)
drivers/pmdomain/core.c
3758
seq_printf(s, "%s\n", link->child->name);
drivers/pmdomain/core.c
392
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
393
if (link->performance_state > state)
drivers/pmdomain/core.c
394
state = link->performance_state;
drivers/pmdomain/core.c
415
static void _genpd_rollback_parent_state(struct gpd_link *link, int depth)
drivers/pmdomain/core.c
417
struct generic_pm_domain *parent = link->parent;
drivers/pmdomain/core.c
422
parent_state = link->prev_performance_state;
drivers/pmdomain/core.c
423
link->performance_state = parent_state;
drivers/pmdomain/core.c
435
struct gpd_link *link,
drivers/pmdomain/core.c
438
struct generic_pm_domain *parent = link->parent;
drivers/pmdomain/core.c
450
link->prev_performance_state = link->performance_state;
drivers/pmdomain/core.c
451
link->performance_state = parent_state;
drivers/pmdomain/core.c
456
link->performance_state = link->prev_performance_state;
drivers/pmdomain/core.c
466
struct gpd_link *link = NULL;
drivers/pmdomain/core.c
474
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
475
ret = _genpd_set_parent_state(genpd, link, state, depth);
drivers/pmdomain/core.c
484
if (link)
drivers/pmdomain/core.c
492
list_for_each_entry_reverse(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
493
ret = _genpd_set_parent_state(genpd, link, state, depth);
drivers/pmdomain/core.c
503
list_for_each_entry_continue_reverse(link, &genpd->child_links, child_node)
drivers/pmdomain/core.c
504
_genpd_rollback_parent_state(link, depth);
drivers/pmdomain/core.c
507
list_for_each_entry_continue(link, &genpd->child_links, child_node)
drivers/pmdomain/core.c
508
_genpd_rollback_parent_state(link, depth);
drivers/pmdomain/core.c
960
struct gpd_link *link;
drivers/pmdomain/core.c
982
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
983
struct generic_pm_domain *child = link->child;
drivers/pmdomain/governor.c
131
struct gpd_link *link;
drivers/pmdomain/governor.c
151
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/governor.c
152
struct genpd_governor_data *cgd = link->child->gd;
drivers/pmdomain/governor.c
181
struct gpd_link *link;
drivers/pmdomain/governor.c
195
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/governor.c
196
struct genpd_governor_data *cgd = link->child->gd;
drivers/pmdomain/governor.c
275
struct gpd_link *link;
drivers/pmdomain/governor.c
312
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/governor.c
313
struct genpd_governor_data *pgd = link->parent->gd;
drivers/pnp/card.c
327
dev->dev.driver = &drv->link.driver;
drivers/pnp/card.c
350
drv->link.remove = &card_remove;
drivers/pnp/card.c
352
drv->link.remove = &card_remove_first;
drivers/pnp/card.c
361
struct pnp_card_link *link = dev->card_link;
drivers/pnp/card.c
363
if (link->pm_state.event == state.event)
drivers/pnp/card.c
365
link->pm_state = state;
drivers/pnp/card.c
366
return link->driver->suspend(link, state);
drivers/pnp/card.c
371
struct pnp_card_link *link = dev->card_link;
drivers/pnp/card.c
373
if (link->pm_state.event == PM_EVENT_ON)
drivers/pnp/card.c
375
link->pm_state = PMSG_ON;
drivers/pnp/card.c
376
link->driver->resume(link);
drivers/pnp/card.c
389
drv->link.name = drv->name;
drivers/pnp/card.c
390
drv->link.id_table = NULL; /* this will disable auto matching */
drivers/pnp/card.c
391
drv->link.flags = drv->flags;
drivers/pnp/card.c
392
drv->link.probe = NULL;
drivers/pnp/card.c
393
drv->link.remove = &card_remove_first;
drivers/pnp/card.c
394
drv->link.suspend = drv->suspend ? card_suspend : NULL;
drivers/pnp/card.c
395
drv->link.resume = drv->resume ? card_resume : NULL;
drivers/pnp/card.c
397
error = pnp_register_driver(&drv->link);
drivers/pnp/card.c
423
pnp_unregister_driver(&drv->link);
drivers/pnp/card.c
66
drv->link.remove = &card_remove;
drivers/ps3/ps3-vuart.c
457
struct list_head link;
drivers/ps3/ps3-vuart.c
524
list_add_tail(&lb->link, &priv->tx_list.head);
drivers/ps3/ps3-vuart.c
578
list_add_tail(&lb->link, &priv->rx_list.head);
drivers/ps3/ps3-vuart.c
627
list_for_each_entry_safe(lb, n, &priv->rx_list.head, link) {
drivers/ps3/ps3-vuart.c
648
list_del(&lb->link);
drivers/ps3/ps3-vuart.c
730
list_for_each_entry_safe(lb, n, &priv->tx_list.head, link) {
drivers/ps3/ps3-vuart.c
758
list_del(&lb->link);
drivers/ptp/ptp_ocp.c
4448
ptp_ocp_symlink(struct ptp_ocp *bp, struct device *child, const char *link)
drivers/ptp/ptp_ocp.c
4452
if (sysfs_create_link(&dev->kobj, &child->kobj, link))
drivers/ptp/ptp_ocp.c
4453
dev_err(dev, "%s symlink failed\n", link);
drivers/ptp/ptp_ocp.c
4457
ptp_ocp_link_child(struct ptp_ocp *bp, const char *name, const char *link)
drivers/ptp/ptp_ocp.c
4469
ptp_ocp_symlink(bp, child, link);
drivers/ras/amd/atl/access.c
78
F4 = node_to_amd_nb(node)->link;
drivers/regulator/core.c
2411
struct device_link *link;
drivers/regulator/core.c
2526
link = device_link_add(dev, &rdev->dev, DL_FLAG_STATELESS);
drivers/regulator/core.c
2527
if (!IS_ERR_OR_NULL(link))
drivers/s390/cio/chp.c
656
int chp_ssd_get_mask(struct chsc_ssd_info *ssd, struct chp_link *link)
drivers/s390/cio/chp.c
665
if (!chp_id_is_equal(&ssd->chpid[i], &link->chpid))
drivers/s390/cio/chp.c
668
((ssd->fla[i] & link->fla_mask) != link->fla))
drivers/s390/cio/chsc.c
252
struct chp_link link;
drivers/s390/cio/chsc.c
260
memset(&link, 0, sizeof(struct chp_link));
drivers/s390/cio/chsc.c
261
link.chpid = chpid;
drivers/s390/cio/chsc.c
269
for_each_subchannel_staged(s390_subchannel_remove_chpid, NULL, &link);
drivers/s390/cio/chsc.c
282
static void s390_process_res_acc(struct chp_link *link)
drivers/s390/cio/chsc.c
286
scnprintf(dbf_txt, sizeof(dbf_txt), "accpr%x.%02x", link->chpid.cssid,
drivers/s390/cio/chsc.c
287
link->chpid.id);
drivers/s390/cio/chsc.c
289
if (link->fla != 0) {
drivers/s390/cio/chsc.c
290
scnprintf(dbf_txt, sizeof(dbf_txt), "fla%x", link->fla);
drivers/s390/cio/chsc.c
302
for_each_subchannel_staged(__s390_process_res_acc, NULL, link);
drivers/s390/cio/chsc.c
392
static void chsc_link_from_sei(struct chp_link *link,
drivers/s390/cio/chsc.c
396
link->fla = sei_area->fla;
drivers/s390/cio/chsc.c
397
link->fla_mask = ((sei_area->vf & SEI_VF_FLA) == SEI_VF_FLA) ?
drivers/s390/cio/chsc.c
466
struct chp_link link;
drivers/s390/cio/chsc.c
489
memset(&link, 0, sizeof(struct chp_link));
drivers/s390/cio/chsc.c
490
link.chpid = chpid;
drivers/s390/cio/chsc.c
491
chsc_link_from_sei(&link, sei_area);
drivers/s390/cio/chsc.c
492
s390_process_res_acc(&link);
drivers/s390/cio/chsc.c
603
struct chp_link link;
drivers/s390/cio/chsc.c
621
memset(&link, 0, sizeof(struct chp_link));
drivers/s390/cio/chsc.c
622
link.chpid = chpid;
drivers/s390/cio/chsc.c
623
chsc_link_from_sei(&link, sei_area);
drivers/s390/cio/chsc.c
625
for_each_subchannel_staged(process_fces_event, NULL, &link);
drivers/s390/cio/chsc.c
756
struct chp_link link;
drivers/s390/cio/chsc.c
763
memset(&link, 0, sizeof(struct chp_link));
drivers/s390/cio/chsc.c
764
link.chpid = chpid;
drivers/s390/cio/chsc.c
773
&link);
drivers/s390/cio/chsc.c
782
struct chp_link link;
drivers/s390/cio/chsc.c
784
memset(&link, 0, sizeof(struct chp_link));
drivers/s390/cio/chsc.c
785
link.chpid = chpid;
drivers/s390/cio/chsc.c
788
sch->driver->chp_event(sch, &link,
drivers/s390/cio/device.c
1146
struct chp_link *link, int event)
drivers/s390/cio/device.c
1152
mask = chp_ssd_get_mask(&sch->ssd_info, link);
drivers/s390/cio/vfio_ccw_drv.c
300
struct chp_link *link, int event)
drivers/s390/cio/vfio_ccw_drv.c
304
int mask = chp_ssd_get_mask(&sch->ssd_info, link);
drivers/s390/cio/vfio_ccw_drv.c
332
link->chpid.id);
drivers/s390/cio/vfio_ccw_drv.c
343
link->chpid.id);
drivers/scsi/a100u2w.c
642
scb->link = 0xFF;
drivers/scsi/a100u2w.c
887
scb->link = 0xFF;
drivers/scsi/a100u2w.h
160
u8 link; /*1F Link pointer, default 0xFF */
drivers/scsi/be2iscsi/be_main.c
1474
list_del_init(&pasync_handle->link);
drivers/scsi/be2iscsi/be_main.c
1486
list_for_each_entry_safe(pasync_handle, tmp_handle, plist, link)
drivers/scsi/be2iscsi/be_main.c
1583
if (pasync_handle->in_use || !list_empty(&pasync_handle->link)) {
drivers/scsi/be2iscsi/be_main.c
1590
list_del_init(&pasync_handle->link);
drivers/scsi/be2iscsi/be_main.c
1617
list_for_each_entry(pasync_handle, plist, link) {
drivers/scsi/be2iscsi/be_main.c
1685
list_add_tail(&pasync_handle->link, &wq->list);
drivers/scsi/be2iscsi/be_main.c
1701
list_add_tail(&pasync_handle->link, &wq->list);
drivers/scsi/be2iscsi/be_main.c
2882
INIT_LIST_HEAD(&pasync_header_h->link);
drivers/scsi/be2iscsi/be_main.c
2902
INIT_LIST_HEAD(&pasync_data_h->link);
drivers/scsi/be2iscsi/be_main.h
543
struct list_head link;
drivers/scsi/bnx2fc/bnx2fc.h
409
struct list_head link;
drivers/scsi/bnx2fc/bnx2fc_els.c
145
list_del_init(&els_req->link);
drivers/scsi/bnx2fc/bnx2fc_els.c
52
list_del_init(&rrq_req->link);
drivers/scsi/bnx2fc/bnx2fc_els.c
795
list_add_tail(&els_req->link, &tgt->els_queue);
drivers/scsi/bnx2fc/bnx2fc_els.c
831
list_del_init(&els_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
1196
list_del_init(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
1199
list_add_tail(&io_req->link, &tgt->io_retire_queue);
drivers/scsi/bnx2fc/bnx2fc_io.c
1442
list_del_init(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
1445
list_add_tail(&io_req->link, &tgt->io_retire_queue);
drivers/scsi/bnx2fc/bnx2fc_io.c
1466
list_for_each_entry_safe(cmd, tmp, &tgt->active_cmd_queue, link) {
drivers/scsi/bnx2fc/bnx2fc_io.c
1503
list_for_each_entry_safe(cmd, tmp, &tgt->active_cmd_queue, link) {
drivers/scsi/bnx2fc/bnx2fc_io.c
1609
list_del_init(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
1950
list_del_init(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
1953
list_add_tail(&io_req->link, &tgt->io_retire_queue);
drivers/scsi/bnx2fc/bnx2fc_io.c
2095
list_add_tail(&io_req->link, &tgt->active_cmd_queue);
drivers/scsi/bnx2fc/bnx2fc_io.c
280
INIT_LIST_HEAD(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
285
list_add_tail(&io_req->link,
drivers/scsi/bnx2fc/bnx2fc_io.c
289
list_add_tail(&io_req->link,
drivers/scsi/bnx2fc/bnx2fc_io.c
381
&cmgr->free_list[i], link) {
drivers/scsi/bnx2fc/bnx2fc_io.c
382
list_del(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
445
INIT_LIST_HEAD(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
499
INIT_LIST_HEAD(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
533
list_del_init(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_io.c
535
list_add(&io_req->link,
drivers/scsi/bnx2fc/bnx2fc_io.c
768
list_add_tail(&io_req->link, &tgt->active_tm_queue);
drivers/scsi/bnx2fc/bnx2fc_io.c
785
list_del_init(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_tgt.c
176
list_for_each_entry_safe(io_req, tmp, &tgt->active_cmd_queue, link) {
drivers/scsi/bnx2fc/bnx2fc_tgt.c
178
list_del_init(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_tgt.c
206
list_for_each_entry_safe(io_req, tmp, &tgt->active_tm_queue, link) {
drivers/scsi/bnx2fc/bnx2fc_tgt.c
208
list_del_init(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_tgt.c
215
list_for_each_entry_safe(io_req, tmp, &tgt->els_queue, link) {
drivers/scsi/bnx2fc/bnx2fc_tgt.c
217
list_del_init(&io_req->link);
drivers/scsi/bnx2fc/bnx2fc_tgt.c
240
list_for_each_entry_safe(io_req, tmp, &tgt->io_retire_queue, link) {
drivers/scsi/bnx2fc/bnx2fc_tgt.c
242
list_del_init(&io_req->link);
drivers/scsi/bnx2i/bnx2i.h
223
struct list_head link;
drivers/scsi/bnx2i/bnx2i.h
400
struct list_head link;
drivers/scsi/bnx2i/bnx2i.h
749
struct list_head link;
drivers/scsi/bnx2i/bnx2i_init.c
118
list_for_each_entry(tmp_hba, &adapter_list, link) {
drivers/scsi/bnx2i/bnx2i_init.c
140
list_for_each_entry_safe(hba, temp, &adapter_list, link) {
drivers/scsi/bnx2i/bnx2i_init.c
203
bnx2i_ep = list_entry(pos, struct bnx2i_endpoint, link);
drivers/scsi/bnx2i/bnx2i_init.c
290
list_add_tail(&hba->link, &adapter_list);
drivers/scsi/bnx2i/bnx2i_init.c
353
list_del_init(&hba->link);
drivers/scsi/bnx2i/bnx2i_init.c
526
hba = list_entry(adapter_list.next, struct bnx2i_hba, link);
drivers/scsi/bnx2i/bnx2i_init.c
527
list_del(&hba->link);
drivers/scsi/bnx2i/bnx2i_iscsi.c
1586
link);
drivers/scsi/bnx2i/bnx2i_iscsi.c
395
INIT_LIST_HEAD(&bnx2i_ep->link);
drivers/scsi/bnx2i/bnx2i_iscsi.c
608
list_add_tail(&ep->link, &hba->ep_destroy_list);
drivers/scsi/bnx2i/bnx2i_iscsi.c
625
list_del_init(&ep->link);
drivers/scsi/bnx2i/bnx2i_iscsi.c
642
list_add_tail(&ep->link, &hba->ep_ofld_list);
drivers/scsi/bnx2i/bnx2i_iscsi.c
658
list_del_init(&ep->link);
drivers/scsi/bnx2i/bnx2i_iscsi.c
733
list_add_tail(&ep->link, &hba->ep_active_list);
drivers/scsi/bnx2i/bnx2i_iscsi.c
749
list_del_init(&ep->link);
drivers/scsi/elx/efct/efct_hw.c
102
hw->link.status = SLI4_LINK_STATUS_NO_ALPA;
drivers/scsi/elx/efct/efct_hw.c
105
hw->link.status = SLI4_LINK_STATUS_MAX;
drivers/scsi/elx/efct/efct_hw.c
111
hw->link.topology = SLI4_LINK_TOPO_NON_FC_AL;
drivers/scsi/elx/efct/efct_hw.c
114
hw->link.topology = SLI4_LINK_TOPO_FC_AL;
drivers/scsi/elx/efct/efct_hw.c
115
if (hw->link.status == SLI4_LINK_STATUS_UP)
drivers/scsi/elx/efct/efct_hw.c
116
hw->link.loop_map = hw->loop_map.virt;
drivers/scsi/elx/efct/efct_hw.c
117
hw->link.fc_id = read_topo->acquired_al_pa;
drivers/scsi/elx/efct/efct_hw.c
120
hw->link.topology = SLI4_LINK_TOPO_MAX;
drivers/scsi/elx/efct/efct_hw.c
124
hw->link.medium = SLI4_LINK_MEDIUM_FC;
drivers/scsi/elx/efct/efct_hw.c
130
hw->link.speed = 1 * 1000;
drivers/scsi/elx/efct/efct_hw.c
133
hw->link.speed = 2 * 1000;
drivers/scsi/elx/efct/efct_hw.c
136
hw->link.speed = 4 * 1000;
drivers/scsi/elx/efct/efct_hw.c
139
hw->link.speed = 8 * 1000;
drivers/scsi/elx/efct/efct_hw.c
142
hw->link.speed = 16 * 1000;
drivers/scsi/elx/efct/efct_hw.c
145
hw->link.speed = 32 * 1000;
drivers/scsi/elx/efct/efct_hw.c
148
hw->link.speed = 64 * 1000;
drivers/scsi/elx/efct/efct_hw.c
151
hw->link.speed = 128 * 1000;
drivers/scsi/elx/efct/efct_hw.c
155
drec.speed = hw->link.speed;
drivers/scsi/elx/efct/efct_hw.c
156
drec.fc_id = hw->link.fc_id;
drivers/scsi/elx/efct/efct_hw.c
177
hw->link = *event;
drivers/scsi/elx/efct/efct_hw.c
213
hw->link.status = event->status;
drivers/scsi/elx/efct/efct_hw.c
3345
u8 link[SLI4_BMBX_SIZE];
drivers/scsi/elx/efct/efct_hw.c
3351
if (!sli_cmd_config_link(&hw->sli, link))
drivers/scsi/elx/efct/efct_hw.c
3352
rc = efct_hw_command(hw, link, EFCT_CMD_NOWAIT,
drivers/scsi/elx/efct/efct_hw.c
3363
if (!sli_cmd_init_link(&hw->sli, link, speed, reset_alpa))
drivers/scsi/elx/efct/efct_hw.c
3364
rc = efct_hw_command(hw, link, EFCT_CMD_NOWAIT,
drivers/scsi/elx/efct/efct_hw.c
3372
if (!sli_cmd_down_link(&hw->sli, link))
drivers/scsi/elx/efct/efct_hw.c
3373
rc = efct_hw_command(hw, link, EFCT_CMD_NOWAIT,
drivers/scsi/elx/efct/efct_hw.c
36
hw->link.status = SLI4_LINK_STATUS_MAX;
drivers/scsi/elx/efct/efct_hw.c
37
hw->link.topology = SLI4_LINK_TOPO_NONE;
drivers/scsi/elx/efct/efct_hw.c
38
hw->link.medium = SLI4_LINK_MEDIUM_MAX;
drivers/scsi/elx/efct/efct_hw.c
39
hw->link.speed = 0;
drivers/scsi/elx/efct/efct_hw.c
40
hw->link.loop_map = NULL;
drivers/scsi/elx/efct/efct_hw.c
41
hw->link.fc_id = U32_MAX;
drivers/scsi/elx/efct/efct_hw.c
96
hw->link.status = SLI4_LINK_STATUS_UP;
drivers/scsi/elx/efct/efct_hw.c
99
hw->link.status = SLI4_LINK_STATUS_DOWN;
drivers/scsi/elx/efct/efct_hw.h
428
struct sli4_link_event link;
drivers/scsi/elx/efct/efct_hw.h
588
return hw->link.speed;
drivers/scsi/elx/libefc_sli/sli4.c
2509
if (!sli4->link)
drivers/scsi/elx/libefc_sli/sli4.c
2563
sli4->link(sli4->link_arg, (void *)&event);
drivers/scsi/elx/libefc_sli/sli4.c
4810
sli4->link = func;
drivers/scsi/elx/libefc_sli/sli4.h
3708
int (*link)(void *ctx, void *event);
drivers/scsi/hisi_sas/hisi_sas_main.c
1360
struct ata_link *link;
drivers/scsi/hisi_sas/hisi_sas_main.c
1365
ata_for_each_link(link, ap, EDGE) {
drivers/scsi/hisi_sas/hisi_sas_main.c
1366
int pmp = sata_srst_pmp(link);
drivers/scsi/hisi_sas/hisi_sas_main.c
1368
hisi_sas_fill_ata_reset_cmd(link->device, 1, pmp, fis);
drivers/scsi/hisi_sas/hisi_sas_main.c
1376
ata_for_each_link(link, ap, EDGE) {
drivers/scsi/hisi_sas/hisi_sas_main.c
1377
int pmp = sata_srst_pmp(link);
drivers/scsi/hisi_sas/hisi_sas_main.c
1379
hisi_sas_fill_ata_reset_cmd(link->device, 0, pmp, fis);
drivers/scsi/hisi_sas/hisi_sas_main.c
1504
struct ata_link *link;
drivers/scsi/hisi_sas/hisi_sas_main.c
1512
ata_for_each_link(link, ap, EDGE) {
drivers/scsi/hisi_sas/hisi_sas_main.c
1513
int pmp = sata_srst_pmp(link);
drivers/scsi/hisi_sas/hisi_sas_main.c
1515
hisi_sas_fill_ata_reset_cmd(link->device, 1, pmp, fis);
drivers/scsi/hisi_sas/hisi_sas_main.c
1870
struct ata_link *link = &device->sata_dev.ap->link;
drivers/scsi/hisi_sas/hisi_sas_main.c
1872
rc = ata_wait_after_reset(link, jiffies + HISI_SAS_WAIT_PHYUP_TIMEOUT,
drivers/scsi/libsas/sas_ata.c
100
link = &ap->link;
drivers/scsi/libsas/sas_ata.c
123
if (!link->sactive) {
drivers/scsi/libsas/sas_ata.c
126
link->eh_info.err_mask |= ac_err_mask(dev->sata_dev.fis[2]);
drivers/scsi/libsas/sas_ata.c
127
if (unlikely(link->eh_info.err_mask))
drivers/scsi/libsas/sas_ata.c
135
if (!link->sactive) {
drivers/scsi/libsas/sas_ata.c
138
link->eh_info.err_mask |= AC_ERR_DEV;
drivers/scsi/libsas/sas_ata.c
186
ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *)&task->ata_task.fis);
drivers/scsi/libsas/sas_ata.c
301
int smp_ata_check_ready_type(struct ata_link *link)
drivers/scsi/libsas/sas_ata.c
303
struct domain_device *dev = link->ap->private_data;
drivers/scsi/libsas/sas_ata.c
326
static int smp_ata_check_ready(struct ata_link *link)
drivers/scsi/libsas/sas_ata.c
329
struct ata_port *ap = link->ap;
drivers/scsi/libsas/sas_ata.c
358
static int local_ata_check_ready(struct ata_link *link)
drivers/scsi/libsas/sas_ata.c
360
struct ata_port *ap = link->ap;
drivers/scsi/libsas/sas_ata.c
400
int (*check_ready)(struct ata_link *link);
drivers/scsi/libsas/sas_ata.c
402
struct ata_link *link = &ap->link;
drivers/scsi/libsas/sas_ata.c
413
ret = ata_wait_after_reset(link, deadline, check_ready);
drivers/scsi/libsas/sas_ata.c
420
static int sas_ata_hard_reset(struct ata_link *link, unsigned int *class,
drivers/scsi/libsas/sas_ata.c
423
struct ata_port *ap = link->ap;
drivers/scsi/libsas/sas_ata.c
547
static int sas_ata_prereset(struct ata_link *link, unsigned long deadline)
drivers/scsi/libsas/sas_ata.c
549
struct ata_port *ap = link->ap;
drivers/scsi/libsas/sas_ata.c
82
struct ata_link *link;
drivers/scsi/libsas/sas_ata.c
918
ehi = &ap->link.eh_info;
drivers/scsi/libsas/sas_ata.c
936
struct ata_link *link = &ap->link;
drivers/scsi/libsas/sas_ata.c
943
link->eh_info.err_mask |= AC_ERR_DEV;
drivers/scsi/libsas/sas_ata.c
945
link->eh_info.action |= ATA_EH_RESET;
drivers/scsi/libsas/sas_ata.c
946
ata_link_abort(link);
drivers/scsi/lpfc/lpfc_attr.c
1257
struct lpfc_trunk_link link = phba->trunk_link;
drivers/scsi/lpfc/lpfc_attr.c
1262
(link.link0.state == LPFC_LINK_UP) ?
drivers/scsi/lpfc/lpfc_attr.c
1264
trunk_errmsg[link.link0.fault]);
drivers/scsi/lpfc/lpfc_attr.c
1269
(link.link1.state == LPFC_LINK_UP) ?
drivers/scsi/lpfc/lpfc_attr.c
1271
trunk_errmsg[link.link1.fault]);
drivers/scsi/lpfc/lpfc_attr.c
1276
(link.link2.state == LPFC_LINK_UP) ?
drivers/scsi/lpfc/lpfc_attr.c
1278
trunk_errmsg[link.link2.fault]);
drivers/scsi/lpfc/lpfc_attr.c
1283
(link.link3.state == LPFC_LINK_UP) ?
drivers/scsi/lpfc/lpfc_attr.c
1285
trunk_errmsg[link.link3.fault]);
drivers/scsi/lpfc/lpfc_init.c
6123
((phba->trunk_link.link##__idx.state == LPFC_LINK_UP) ?\
drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h
2132
u8 link;
drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h
2187
u8 link;
drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h
2348
u8 link;
drivers/scsi/ncr53c8xx.c
1161
struct link jump_tcb;
drivers/scsi/ncr53c8xx.c
1179
struct link call_lun;
drivers/scsi/ncr53c8xx.c
1191
struct link jump_lcb[4]; /* JUMPs for reselection */
drivers/scsi/ncr53c8xx.c
1260
struct link jump_lcb;
drivers/scsi/ncr53c8xx.c
1262
struct link jump_tag;
drivers/scsi/ncr53c8xx.c
1338
struct link schedule; /* Jump to scheduler point */
drivers/scsi/ncr53c8xx.c
1638
struct link jump_tcb[4]; /* JUMPs for reselection */
drivers/scsi/pcmcia/aha152x_stub.c
101
info->p_dev = link;
drivers/scsi/pcmcia/aha152x_stub.c
102
link->priv = info;
drivers/scsi/pcmcia/aha152x_stub.c
104
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/scsi/pcmcia/aha152x_stub.c
105
link->config_regs = PRESENT_OPTION;
drivers/scsi/pcmcia/aha152x_stub.c
107
return aha152x_config_cs(link);
drivers/scsi/pcmcia/aha152x_stub.c
112
static void aha152x_detach(struct pcmcia_device *link)
drivers/scsi/pcmcia/aha152x_stub.c
114
dev_dbg(&link->dev, "aha152x_detach\n");
drivers/scsi/pcmcia/aha152x_stub.c
116
aha152x_release_cs(link);
drivers/scsi/pcmcia/aha152x_stub.c
119
kfree(link->priv);
drivers/scsi/pcmcia/aha152x_stub.c
144
static int aha152x_config_cs(struct pcmcia_device *link)
drivers/scsi/pcmcia/aha152x_stub.c
146
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/aha152x_stub.c
151
dev_dbg(&link->dev, "aha152x_config\n");
drivers/scsi/pcmcia/aha152x_stub.c
153
ret = pcmcia_loop_config(link, aha152x_config_check, NULL);
drivers/scsi/pcmcia/aha152x_stub.c
157
if (!link->irq)
drivers/scsi/pcmcia/aha152x_stub.c
160
ret = pcmcia_enable_device(link);
drivers/scsi/pcmcia/aha152x_stub.c
167
s.io_port = link->resource[0]->start;
drivers/scsi/pcmcia/aha152x_stub.c
168
s.irq = link->irq;
drivers/scsi/pcmcia/aha152x_stub.c
188
aha152x_release_cs(link);
drivers/scsi/pcmcia/aha152x_stub.c
192
static void aha152x_release_cs(struct pcmcia_device *link)
drivers/scsi/pcmcia/aha152x_stub.c
194
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/aha152x_stub.c
197
pcmcia_disable_device(link);
drivers/scsi/pcmcia/aha152x_stub.c
200
static int aha152x_resume(struct pcmcia_device *link)
drivers/scsi/pcmcia/aha152x_stub.c
202
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/aha152x_stub.c
88
static void aha152x_release_cs(struct pcmcia_device *link);
drivers/scsi/pcmcia/aha152x_stub.c
90
static int aha152x_config_cs(struct pcmcia_device *link);
drivers/scsi/pcmcia/aha152x_stub.c
92
static int aha152x_probe(struct pcmcia_device *link)
drivers/scsi/pcmcia/aha152x_stub.c
96
dev_dbg(&link->dev, "aha152x_attach()\n");
drivers/scsi/pcmcia/fdomain_cs.c
31
static int fdomain_probe(struct pcmcia_device *link)
drivers/scsi/pcmcia/fdomain_cs.c
36
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/scsi/pcmcia/fdomain_cs.c
37
link->config_regs = PRESENT_OPTION;
drivers/scsi/pcmcia/fdomain_cs.c
39
ret = pcmcia_loop_config(link, fdomain_config_check, NULL);
drivers/scsi/pcmcia/fdomain_cs.c
43
ret = pcmcia_enable_device(link);
drivers/scsi/pcmcia/fdomain_cs.c
47
if (!request_region(link->resource[0]->start, FDOMAIN_REGION_SIZE,
drivers/scsi/pcmcia/fdomain_cs.c
53
sh = fdomain_create(link->resource[0]->start, link->irq, 7, &link->dev);
drivers/scsi/pcmcia/fdomain_cs.c
55
dev_err(&link->dev, "Controller initialization failed");
drivers/scsi/pcmcia/fdomain_cs.c
60
link->priv = sh;
drivers/scsi/pcmcia/fdomain_cs.c
65
release_region(link->resource[0]->start, FDOMAIN_REGION_SIZE);
drivers/scsi/pcmcia/fdomain_cs.c
67
pcmcia_disable_device(link);
drivers/scsi/pcmcia/fdomain_cs.c
71
static void fdomain_remove(struct pcmcia_device *link)
drivers/scsi/pcmcia/fdomain_cs.c
73
fdomain_destroy(link->priv);
drivers/scsi/pcmcia/fdomain_cs.c
74
release_region(link->resource[0]->start, FDOMAIN_REGION_SIZE);
drivers/scsi/pcmcia/fdomain_cs.c
75
pcmcia_disable_device(link);
drivers/scsi/pcmcia/nsp_cs.c
1514
static int nsp_cs_probe(struct pcmcia_device *link)
drivers/scsi/pcmcia/nsp_cs.c
1525
info->p_dev = link;
drivers/scsi/pcmcia/nsp_cs.c
1526
link->priv = info;
drivers/scsi/pcmcia/nsp_cs.c
1531
ret = nsp_cs_config(link);
drivers/scsi/pcmcia/nsp_cs.c
1533
nsp_dbg(NSP_DEBUG_INIT, "link=0x%p", link);
drivers/scsi/pcmcia/nsp_cs.c
1538
static void nsp_cs_detach(struct pcmcia_device *link)
drivers/scsi/pcmcia/nsp_cs.c
1540
nsp_dbg(NSP_DEBUG_INIT, "in, link=0x%p", link);
drivers/scsi/pcmcia/nsp_cs.c
1542
((scsi_info_t *)link->priv)->stop = 1;
drivers/scsi/pcmcia/nsp_cs.c
1543
nsp_cs_release(link);
drivers/scsi/pcmcia/nsp_cs.c
1545
kfree(link->priv);
drivers/scsi/pcmcia/nsp_cs.c
1546
link->priv = NULL;
drivers/scsi/pcmcia/nsp_cs.c
1590
static int nsp_cs_config(struct pcmcia_device *link)
drivers/scsi/pcmcia/nsp_cs.c
1593
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/nsp_cs.c
1599
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_CHECK_VCC |
drivers/scsi/pcmcia/nsp_cs.c
1603
ret = pcmcia_loop_config(link, nsp_cs_config_check, data);
drivers/scsi/pcmcia/nsp_cs.c
1607
if (pcmcia_request_irq(link, nspintr))
drivers/scsi/pcmcia/nsp_cs.c
1610
ret = pcmcia_enable_device(link);
drivers/scsi/pcmcia/nsp_cs.c
1615
if (link->resource[0]) {
drivers/scsi/pcmcia/nsp_cs.c
1616
release_region(link->resource[0]->start,
drivers/scsi/pcmcia/nsp_cs.c
1617
resource_size(link->resource[0]));
drivers/scsi/pcmcia/nsp_cs.c
1619
if (link->resource[1]) {
drivers/scsi/pcmcia/nsp_cs.c
1620
release_region(link->resource[1]->start,
drivers/scsi/pcmcia/nsp_cs.c
1621
resource_size(link->resource[1]));
drivers/scsi/pcmcia/nsp_cs.c
1626
data->BaseAddress = link->resource[0]->start;
drivers/scsi/pcmcia/nsp_cs.c
1627
data->NumAddress = resource_size(link->resource[0]);
drivers/scsi/pcmcia/nsp_cs.c
1628
data->IrqNumber = link->irq;
drivers/scsi/pcmcia/nsp_cs.c
1655
nsp_cs_release(link);
drivers/scsi/pcmcia/nsp_cs.c
1661
static void nsp_cs_release(struct pcmcia_device *link)
drivers/scsi/pcmcia/nsp_cs.c
1663
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/nsp_cs.c
1672
nsp_dbg(NSP_DEBUG_INIT, "link=0x%p", link);
drivers/scsi/pcmcia/nsp_cs.c
1679
if (resource_size(link->resource[2])) {
drivers/scsi/pcmcia/nsp_cs.c
1684
pcmcia_disable_device(link);
drivers/scsi/pcmcia/nsp_cs.c
1691
static int nsp_cs_suspend(struct pcmcia_device *link)
drivers/scsi/pcmcia/nsp_cs.c
1693
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/nsp_cs.c
1711
static int nsp_cs_resume(struct pcmcia_device *link)
drivers/scsi/pcmcia/nsp_cs.c
1713
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/nsp_cs.h
289
static void nsp_cs_release(struct pcmcia_device *link);
drivers/scsi/pcmcia/nsp_cs.h
290
static int nsp_cs_config (struct pcmcia_device *link);
drivers/scsi/pcmcia/qlogic_stub.c
148
static int qlogic_probe(struct pcmcia_device *link)
drivers/scsi/pcmcia/qlogic_stub.c
152
dev_dbg(&link->dev, "qlogic_attach()\n");
drivers/scsi/pcmcia/qlogic_stub.c
158
info->p_dev = link;
drivers/scsi/pcmcia/qlogic_stub.c
159
link->priv = info;
drivers/scsi/pcmcia/qlogic_stub.c
160
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/scsi/pcmcia/qlogic_stub.c
161
link->config_regs = PRESENT_OPTION;
drivers/scsi/pcmcia/qlogic_stub.c
163
return qlogic_config(link);
drivers/scsi/pcmcia/qlogic_stub.c
168
static void qlogic_detach(struct pcmcia_device *link)
drivers/scsi/pcmcia/qlogic_stub.c
170
dev_dbg(&link->dev, "qlogic_detach\n");
drivers/scsi/pcmcia/qlogic_stub.c
172
qlogic_release(link);
drivers/scsi/pcmcia/qlogic_stub.c
173
kfree(link->priv);
drivers/scsi/pcmcia/qlogic_stub.c
191
static int qlogic_config(struct pcmcia_device * link)
drivers/scsi/pcmcia/qlogic_stub.c
193
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/qlogic_stub.c
197
dev_dbg(&link->dev, "qlogic_config\n");
drivers/scsi/pcmcia/qlogic_stub.c
199
ret = pcmcia_loop_config(link, qlogic_config_check, NULL);
drivers/scsi/pcmcia/qlogic_stub.c
203
if (!link->irq)
drivers/scsi/pcmcia/qlogic_stub.c
206
ret = pcmcia_enable_device(link);
drivers/scsi/pcmcia/qlogic_stub.c
212
outb(0xb4, link->resource[0]->start + 0xd);
drivers/scsi/pcmcia/qlogic_stub.c
213
outb(0x24, link->resource[0]->start + 0x9);
drivers/scsi/pcmcia/qlogic_stub.c
214
outb(0x04, link->resource[0]->start + 0xd);
drivers/scsi/pcmcia/qlogic_stub.c
218
if (resource_size(link->resource[0]) == 32)
drivers/scsi/pcmcia/qlogic_stub.c
219
host = qlogic_detect(&qlogicfas_driver_template, link,
drivers/scsi/pcmcia/qlogic_stub.c
220
link->resource[0]->start + 16, link->irq);
drivers/scsi/pcmcia/qlogic_stub.c
222
host = qlogic_detect(&qlogicfas_driver_template, link,
drivers/scsi/pcmcia/qlogic_stub.c
223
link->resource[0]->start, link->irq);
drivers/scsi/pcmcia/qlogic_stub.c
235
pcmcia_disable_device(link);
drivers/scsi/pcmcia/qlogic_stub.c
241
static void qlogic_release(struct pcmcia_device *link)
drivers/scsi/pcmcia/qlogic_stub.c
243
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/qlogic_stub.c
245
dev_dbg(&link->dev, "qlogic_release\n");
drivers/scsi/pcmcia/qlogic_stub.c
249
free_irq(link->irq, info->host);
drivers/scsi/pcmcia/qlogic_stub.c
250
pcmcia_disable_device(link);
drivers/scsi/pcmcia/qlogic_stub.c
257
static int qlogic_resume(struct pcmcia_device *link)
drivers/scsi/pcmcia/qlogic_stub.c
259
scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/qlogic_stub.c
262
ret = pcmcia_enable_device(link);
drivers/scsi/pcmcia/qlogic_stub.c
269
outb(0x80, link->resource[0]->start + 0xd);
drivers/scsi/pcmcia/qlogic_stub.c
270
outb(0x24, link->resource[0]->start + 0x9);
drivers/scsi/pcmcia/qlogic_stub.c
271
outb(0x04, link->resource[0]->start + 0xd);
drivers/scsi/pcmcia/qlogic_stub.c
89
static void qlogic_release(struct pcmcia_device *link);
drivers/scsi/pcmcia/qlogic_stub.c
91
static int qlogic_config(struct pcmcia_device * link);
drivers/scsi/pcmcia/qlogic_stub.c
94
struct pcmcia_device *link, int qbase, int qlirq)
drivers/scsi/pcmcia/sym53c500_cs.c
507
SYM53C500_release(struct pcmcia_device *link)
drivers/scsi/pcmcia/sym53c500_cs.c
509
struct scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/sym53c500_cs.c
512
dev_dbg(&link->dev, "SYM53C500_release\n");
drivers/scsi/pcmcia/sym53c500_cs.c
528
pcmcia_disable_device(link);
drivers/scsi/pcmcia/sym53c500_cs.c
699
SYM53C500_config(struct pcmcia_device *link)
drivers/scsi/pcmcia/sym53c500_cs.c
701
struct scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/sym53c500_cs.c
708
dev_dbg(&link->dev, "SYM53C500_config\n");
drivers/scsi/pcmcia/sym53c500_cs.c
710
info->manf_id = link->manf_id;
drivers/scsi/pcmcia/sym53c500_cs.c
712
ret = pcmcia_loop_config(link, SYM53C500_config_check, NULL);
drivers/scsi/pcmcia/sym53c500_cs.c
716
if (!link->irq)
drivers/scsi/pcmcia/sym53c500_cs.c
719
ret = pcmcia_enable_device(link);
drivers/scsi/pcmcia/sym53c500_cs.c
732
outb(0xb4, link->resource[0]->start + 0xd);
drivers/scsi/pcmcia/sym53c500_cs.c
733
outb(0x24, link->resource[0]->start + 0x9);
drivers/scsi/pcmcia/sym53c500_cs.c
734
outb(0x04, link->resource[0]->start + 0xd);
drivers/scsi/pcmcia/sym53c500_cs.c
747
port_base = link->resource[0]->start;
drivers/scsi/pcmcia/sym53c500_cs.c
748
irq_level = link->irq;
drivers/scsi/pcmcia/sym53c500_cs.c
808
SYM53C500_release(link);
drivers/scsi/pcmcia/sym53c500_cs.c
812
static int sym53c500_resume(struct pcmcia_device *link)
drivers/scsi/pcmcia/sym53c500_cs.c
814
struct scsi_info_t *info = link->priv;
drivers/scsi/pcmcia/sym53c500_cs.c
820
outb(0x80, link->resource[0]->start + 0xd);
drivers/scsi/pcmcia/sym53c500_cs.c
821
outb(0x24, link->resource[0]->start + 0x9);
drivers/scsi/pcmcia/sym53c500_cs.c
822
outb(0x04, link->resource[0]->start + 0xd);
drivers/scsi/pcmcia/sym53c500_cs.c
828
SYM53C500_int_host_reset(link->resource[0]->start);
drivers/scsi/pcmcia/sym53c500_cs.c
834
SYM53C500_detach(struct pcmcia_device *link)
drivers/scsi/pcmcia/sym53c500_cs.c
836
dev_dbg(&link->dev, "SYM53C500_detach\n");
drivers/scsi/pcmcia/sym53c500_cs.c
838
SYM53C500_release(link);
drivers/scsi/pcmcia/sym53c500_cs.c
840
kfree(link->priv);
drivers/scsi/pcmcia/sym53c500_cs.c
841
link->priv = NULL;
drivers/scsi/pcmcia/sym53c500_cs.c
845
SYM53C500_probe(struct pcmcia_device *link)
drivers/scsi/pcmcia/sym53c500_cs.c
849
dev_dbg(&link->dev, "SYM53C500_attach()\n");
drivers/scsi/pcmcia/sym53c500_cs.c
855
info->p_dev = link;
drivers/scsi/pcmcia/sym53c500_cs.c
856
link->priv = info;
drivers/scsi/pcmcia/sym53c500_cs.c
857
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/scsi/pcmcia/sym53c500_cs.c
859
return SYM53C500_config(link);
drivers/scsi/qedf/qedf.h
97
struct list_head link;
drivers/scsi/qedf/qedf_main.c
456
struct qed_link_output *link)
drivers/scsi/qedf/qedf_main.c
465
switch (link->speed) {
drivers/scsi/qedf/qedf_main.c
504
if (linkmode_intersects(link->supported_caps, sup_caps))
drivers/scsi/qedf/qedf_main.c
512
if (linkmode_intersects(link->supported_caps, sup_caps))
drivers/scsi/qedf/qedf_main.c
521
if (linkmode_intersects(link->supported_caps, sup_caps))
drivers/scsi/qedf/qedf_main.c
529
if (linkmode_intersects(link->supported_caps, sup_caps))
drivers/scsi/qedf/qedf_main.c
538
if (linkmode_intersects(link->supported_caps, sup_caps))
drivers/scsi/qedf/qedf_main.c
544
if (linkmode_intersects(link->supported_caps, sup_caps))
drivers/scsi/qedf/qedf_main.c
555
struct qed_link_output link;
drivers/scsi/qedf/qedf_main.c
558
qed_ops->common->get_link(qedf->cdev, &link);
drivers/scsi/qedf/qedf_main.c
566
if (link.link_up) {
drivers/scsi/qedf/qedf_main.c
568
qedf_update_link_speed(qedf, &link);
drivers/scsi/qedf/qedf_main.c
578
static void qedf_link_update(void *dev, struct qed_link_output *link)
drivers/scsi/qedf/qedf_main.c
592
if (link->link_up) {
drivers/scsi/qedf/qedf_main.c
599
link->speed / 1000);
drivers/scsi/qedf/qedf_main.c
605
qedf_update_link_speed(qedf, link);
drivers/scsi/qedf/qedf_main.c
635
qedf_update_link_speed(qedf, link);
drivers/scsi/qedi/qedi_main.c
1180
static void qedi_link_update(void *dev, struct qed_link_output *link)
drivers/scsi/qedi/qedi_main.c
1184
if (link->link_up) {
drivers/scsi/qla2xxx/qla_target.c
853
struct fc_port *sess, enum qlt_plogi_link_t link)
drivers/scsi/qla2xxx/qla_target.c
862
sess, link, sess->port_name,
drivers/scsi/qla2xxx/qla_target.c
865
pla->ref_count, pla, link);
drivers/scsi/qla2xxx/qla_target.c
867
if (link == QLT_PLOGI_LINK_CONFLICT) {
drivers/scsi/qla2xxx/qla_target.c
878
if (sess->plogi_link[link])
drivers/scsi/qla2xxx/qla_target.c
879
qlt_plogi_ack_unref(vha, sess->plogi_link[link]);
drivers/scsi/qla2xxx/qla_target.c
881
if (link == QLT_PLOGI_LINK_SAME_WWN)
drivers/scsi/qla2xxx/qla_target.c
884
sess->plogi_link[link] = pla;
drivers/scsi/qla4xxx/ql4_fw.h
813
uint16_t link;
drivers/soc/fsl/dpio/dpio-service.c
300
struct device_link *link;
drivers/soc/fsl/dpio/dpio-service.c
307
link = device_link_add(dev, d->dev, DL_FLAG_AUTOREMOVE_CONSUMER);
drivers/soc/fsl/dpio/dpio-service.c
308
if (!link)
drivers/soc/qcom/ice.c
614
struct device_link *link;
drivers/soc/qcom/ice.c
658
link = device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER);
drivers/soc/qcom/ice.c
659
if (!link) {
drivers/soc/qcom/qcom-pbs.c
169
pbs->link = device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER);
drivers/soc/qcom/qcom-pbs.c
170
if (!pbs->link) {
drivers/soc/qcom/qcom-pbs.c
30
struct device_link *link;
drivers/soundwire/amd_manager.c
642
struct fwnode_handle *link;
drivers/soundwire/amd_manager.c
652
link = device_get_named_child_node(bus->dev, name);
drivers/soundwire/amd_manager.c
653
if (!link) {
drivers/soundwire/amd_manager.c
657
fwnode_property_read_u32(link, "amd-sdw-enable", &quirk_mask);
drivers/soundwire/amd_manager.c
663
fwnode_property_read_u32(link, "amd-sdw-wakeup-enable", &wake_en_mask);
drivers/soundwire/amd_manager.c
665
fwnode_property_read_u32(link, "amd-sdw-power-mode", &power_mode_mask);
drivers/soundwire/amd_manager.c
668
fwnode_handle_put(link);
drivers/soundwire/intel_auxdevice.c
154
struct fwnode_handle *link;
drivers/soundwire/intel_auxdevice.c
162
link = device_get_named_child_node(bus->dev, name);
drivers/soundwire/intel_auxdevice.c
163
if (!link) {
drivers/soundwire/intel_auxdevice.c
168
fwnode_property_read_u32(link,
drivers/soundwire/intel_auxdevice.c
179
fwnode_property_read_u32(link,
drivers/soundwire/intel_auxdevice.c
191
fwnode_handle_put(link);
drivers/soundwire/intel_auxdevice.c
206
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
209
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
212
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
215
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
218
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
221
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
224
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
227
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
230
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
241
fwnode_handle_put(link);
drivers/soundwire/intel_init.c
146
struct sdw_intel_link_res *link;
drivers/soundwire/intel_init.c
148
list_for_each_entry(link, &ctx->link_list, list)
drivers/soundwire/intel_init.c
149
sdw_cdns_irq(irq, link->cdns);
drivers/soundwire/intel_init.c
158
struct sdw_intel_link_res *link;
drivers/soundwire/intel_init.c
237
link = &ldev->link_res;
drivers/soundwire/intel_init.c
238
link->cdns = auxiliary_get_drvdata(&ldev->auxdev);
drivers/soundwire/intel_init.c
240
if (!link->cdns) {
drivers/soundwire/intel_init.c
249
list_add_tail(&link->list, &ctx->link_list);
drivers/soundwire/intel_init.c
250
bus = &link->cdns->bus;
drivers/soundwire/intel_init.c
261
list_for_each_entry(link, &ctx->link_list, list) {
drivers/soundwire/intel_init.c
262
bus = &link->cdns->bus;
drivers/soundwire/intel_init.c
359
struct sdw_intel_link_res *link;
drivers/soundwire/intel_init.c
362
list_for_each_entry(link, &ctx->link_list, list) {
drivers/soundwire/intel_init.c
363
struct sdw_bus *bus = &link->cdns->bus;
drivers/soundwire/intel_init.c
39
struct sdw_intel_link_res *link;
drivers/soundwire/intel_init.c
64
link = &ldev->link_res;
drivers/soundwire/intel_init.c
65
link->hw_ops = res->hw_ops;
drivers/soundwire/intel_init.c
66
link->mmio_base = res->mmio_base;
drivers/soundwire/intel_init.c
68
link->registers = res->mmio_base + SDW_LINK_BASE
drivers/soundwire/intel_init.c
70
link->ip_offset = 0;
drivers/soundwire/intel_init.c
71
link->shim = res->mmio_base + res->shim_base;
drivers/soundwire/intel_init.c
72
link->alh = res->mmio_base + res->alh_base;
drivers/soundwire/intel_init.c
73
link->shim_lock = &ctx->shim_lock;
drivers/soundwire/intel_init.c
75
link->registers = res->mmio_base + SDW_IP_BASE(link_id);
drivers/soundwire/intel_init.c
76
link->ip_offset = SDW_CADENCE_MCP_IP_OFFSET;
drivers/soundwire/intel_init.c
77
link->shim = res->mmio_base + SDW_SHIM2_GENERIC_BASE(link_id);
drivers/soundwire/intel_init.c
78
link->shim_vs = res->mmio_base + SDW_SHIM2_VS_BASE(link_id);
drivers/soundwire/intel_init.c
79
link->shim_lock = res->eml_lock;
drivers/soundwire/intel_init.c
80
link->mic_privacy = res->mic_privacy;
drivers/soundwire/intel_init.c
83
link->ops = res->ops;
drivers/soundwire/intel_init.c
84
link->dev = res->dev;
drivers/soundwire/intel_init.c
86
link->clock_stop_quirks = res->clock_stop_quirks;
drivers/soundwire/intel_init.c
87
link->shim_mask = &ctx->shim_mask;
drivers/soundwire/intel_init.c
88
link->link_mask = ctx->link_mask;
drivers/soundwire/intel_init.c
90
link->hbus = res->hbus;
drivers/soundwire/mipi_disco.c
117
nval = fwnode_property_count_u32(link, scales_prop);
drivers/soundwire/mipi_disco.c
120
nval = fwnode_property_count_u32(link, scales_prop);
drivers/soundwire/mipi_disco.c
128
fwnode_handle_put(link);
drivers/soundwire/mipi_disco.c
132
ret = fwnode_property_read_u32_array(link,
drivers/soundwire/mipi_disco.c
140
fwnode_property_read_u32(link, "mipi-sdw-default-frame-rate",
drivers/soundwire/mipi_disco.c
143
fwnode_property_read_u32(link, "mipi-sdw-default-frame-row-size",
drivers/soundwire/mipi_disco.c
146
fwnode_property_read_u32(link, "mipi-sdw-default-frame-col-size",
drivers/soundwire/mipi_disco.c
149
prop->dynamic_frame = mipi_fwnode_property_read_bool(link,
drivers/soundwire/mipi_disco.c
152
fwnode_property_read_u32(link, "mipi-sdw-command-error-threshold",
drivers/soundwire/mipi_disco.c
155
fwnode_handle_put(link);
drivers/soundwire/mipi_disco.c
53
struct fwnode_handle *link;
drivers/soundwire/mipi_disco.c
68
link = device_get_named_child_node(bus->dev, name);
drivers/soundwire/mipi_disco.c
69
if (!link) {
drivers/soundwire/mipi_disco.c
74
if (mipi_fwnode_property_read_bool(link,
drivers/soundwire/mipi_disco.c
78
if (mipi_fwnode_property_read_bool(link,
drivers/soundwire/mipi_disco.c
82
fwnode_property_read_u32(link,
drivers/soundwire/mipi_disco.c
86
nval = fwnode_property_count_u32(link, "mipi-sdw-clock-frequencies-supported");
drivers/soundwire/mipi_disco.c
93
fwnode_handle_put(link);
drivers/soundwire/mipi_disco.c
97
ret = fwnode_property_read_u32_array(link,
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3661
struct media_link *link;
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3666
link = media_entity_find_link(
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3669
if (!link) {
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3680
link->flags |= MEDIA_LNK_FL_ENABLED;
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3682
link->flags &= ~MEDIA_LNK_FL_ENABLED;
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3684
link->reverse->flags = link->flags;
drivers/staging/media/atomisp/pci/atomisp_compat.h
124
int link,
drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
1477
int link,
drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
1483
s_config->isys_config[isys_stream].linked_isys_stream_id = link;
drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
395
sensor->link = atomisp_csi2_get_port(adev, clock_num);
drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
396
if (sensor->link >= ATOMISP_CAMERA_NR_PORTS) {
drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
398
dev_name(&adev->dev), sensor->link);
drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
415
sensor->orientation = (sensor->link == 1) ?
drivers/staging/media/imx/imx-ic-prp.c
290
struct media_link *link,
drivers/staging/media/imx/imx-ic-prp.c
299
ret = v4l2_subdev_link_validate_default(sd, link,
drivers/staging/media/imx/imx-media-csi.c
1118
struct media_link *link,
drivers/staging/media/imx/imx-media-csi.c
1127
ret = v4l2_subdev_link_validate_default(sd, link,
drivers/staging/media/imx/imx-media-dev-common.c
103
list_for_each_entry(link, &entity->links, list) {
drivers/staging/media/imx/imx-media-dev-common.c
104
if (link->sink != pad)
drivers/staging/media/imx/imx-media-dev-common.c
107
link->source);
drivers/staging/media/imx/imx-media-dev-common.c
150
struct media_link *link;
drivers/staging/media/imx/imx-media-dev-common.c
158
link = list_first_entry(&vdev->vfd->entity.links,
drivers/staging/media/imx/imx-media-dev-common.c
160
ret = imx_media_add_vdev_to_pad(imxmd, vdev, link->source);
drivers/staging/media/imx/imx-media-dev-common.c
235
static int imx_media_link_notify(struct media_link *link, u32 flags,
drivers/staging/media/imx/imx-media-dev-common.c
238
struct imx_media_dev *imxmd = container_of(link->graph_obj.mdev,
drivers/staging/media/imx/imx-media-dev-common.c
240
struct media_entity *source = link->source->entity;
drivers/staging/media/imx/imx-media-dev-common.c
247
ret = v4l2_pipeline_link_notify(link, flags, notification);
drivers/staging/media/imx/imx-media-dev-common.c
256
pad_idx = link->source->index;
drivers/staging/media/imx/imx-media-dev-common.c
284
(link->flags & MEDIA_LNK_FL_ENABLED)) {
drivers/staging/media/imx/imx-media-dev-common.c
58
struct media_link *link;
drivers/staging/media/imx/imx-media-internal-sd.c
100
.link = {
drivers/staging/media/imx/imx-media-internal-sd.c
110
.link = {
drivers/staging/media/imx/imx-media-internal-sd.c
136
const struct internal_link *link)
drivers/staging/media/imx/imx-media-internal-sd.c
141
if (media_entity_find_link(&src->entity.pads[link->local_pad],
drivers/staging/media/imx/imx-media-internal-sd.c
142
&sink->entity.pads[link->remote_pad]))
drivers/staging/media/imx/imx-media-internal-sd.c
146
src->name, link->local_pad,
drivers/staging/media/imx/imx-media-internal-sd.c
147
sink->name, link->remote_pad);
drivers/staging/media/imx/imx-media-internal-sd.c
149
ret = media_create_pad_link(&src->entity, link->local_pad,
drivers/staging/media/imx/imx-media-internal-sd.c
150
&sink->entity, link->remote_pad, 0);
drivers/staging/media/imx/imx-media-internal-sd.c
163
const struct internal_link *link;
drivers/staging/media/imx/imx-media-internal-sd.c
178
link = &intpad->link[j];
drivers/staging/media/imx/imx-media-internal-sd.c
179
sink = imxmd->sync_sd[ipu_id][link->remote];
drivers/staging/media/imx/imx-media-internal-sd.c
181
ret = create_internal_link(imxmd, sd, sink, link);
drivers/staging/media/imx/imx-media-internal-sd.c
27
struct internal_link link[MAX_INTERNAL_LINKS];
drivers/staging/media/imx/imx-media-internal-sd.c
46
.link = {
drivers/staging/media/imx/imx-media-internal-sd.c
64
.link = {
drivers/staging/media/imx/imx-media-internal-sd.c
84
.link = {
drivers/staging/media/imx/imx-media-vdic.c
705
struct media_link *link,
drivers/staging/media/imx/imx-media-vdic.c
712
ret = v4l2_subdev_link_validate_default(sd, link,
drivers/staging/media/ipu7/abi/ipu7_fw_isys_abi.h
264
struct ipu7_insys_output_link link;
drivers/staging/media/ipu7/ipu7-fw-isys.c
249
cfg->output_pins[i].link.buffer_lines);
drivers/staging/media/ipu7/ipu7-fw-isys.c
251
cfg->output_pins[i].link.foreign_key);
drivers/staging/media/ipu7/ipu7-fw-isys.c
253
cfg->output_pins[i].link.granularity_pointer_update);
drivers/staging/media/ipu7/ipu7-fw-isys.c
255
cfg->output_pins[i].link.msg_link_streaming_mode);
drivers/staging/media/ipu7/ipu7-fw-isys.c
257
cfg->output_pins[i].link.pbk_id);
drivers/staging/media/ipu7/ipu7-fw-isys.c
259
cfg->output_pins[i].link.pbk_slot_id);
drivers/staging/media/ipu7/ipu7-fw-isys.c
261
cfg->output_pins[i].link.dest);
drivers/staging/media/ipu7/ipu7-fw-isys.c
263
cfg->output_pins[i].link.use_sw_managed);
drivers/staging/media/ipu7/ipu7-fw-isys.c
265
cfg->output_pins[i].link.is_snoop);
drivers/staging/media/ipu7/ipu7-isys-video.c
280
static int link_validate(struct media_link *link)
drivers/staging/media/ipu7/ipu7-isys-video.c
283
container_of(link->sink, struct ipu7_isys_video, pad);
drivers/staging/media/ipu7/ipu7-isys-video.c
292
if (!link->source->entity)
drivers/staging/media/ipu7/ipu7-isys-video.c
295
s_sd = media_entity_to_v4l2_subdev(link->source->entity);
drivers/staging/media/ipu7/ipu7-isys-video.c
301
link->source->entity->name, link->source->index,
drivers/staging/media/ipu7/ipu7-isys-video.c
302
link->sink->entity->name);
drivers/staging/media/ipu7/ipu7-isys-video.c
400
output_pin->link.buffer_lines = 0;
drivers/staging/media/ipu7/ipu7-isys-video.c
401
output_pin->link.foreign_key = IPU_MSG_LINK_FOREIGN_KEY_NONE;
drivers/staging/media/ipu7/ipu7-isys-video.c
402
output_pin->link.granularity_pointer_update = 0;
drivers/staging/media/ipu7/ipu7-isys-video.c
403
output_pin->link.msg_link_streaming_mode =
drivers/staging/media/ipu7/ipu7-isys-video.c
406
output_pin->link.pbk_id = IPU_MSG_LINK_PBK_ID_DONT_CARE;
drivers/staging/media/ipu7/ipu7-isys-video.c
407
output_pin->link.pbk_slot_id = IPU_MSG_LINK_PBK_SLOT_ID_DONT_CARE;
drivers/staging/media/ipu7/ipu7-isys-video.c
408
output_pin->link.dest = IPU_INSYS_OUTPUT_LINK_DEST_MEM;
drivers/staging/media/ipu7/ipu7-isys-video.c
409
output_pin->link.use_sw_managed = 1;
drivers/staging/media/ipu7/ipu7-isys-video.c
411
output_pin->link.is_snoop = 0;
drivers/staging/media/starfive/camss/stf-video.c
467
static int stf_link_validate(struct media_link *link)
drivers/staging/media/starfive/camss/stf-video.c
470
media_entity_to_video_device(link->sink->entity);
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.c
592
static int sun6i_isp_capture_link_validate(struct media_link *link)
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.c
595
media_entity_to_video_device(link->sink->entity);
drivers/staging/media/tegra-video/vi.c
1486
struct v4l2_fwnode_link link;
drivers/staging/media/tegra-video/vi.c
1502
ret = v4l2_fwnode_parse_link(ep, &link);
drivers/staging/media/tegra-video/vi.c
1509
if (link.local_port >= local->num_pads) {
drivers/staging/media/tegra-video/vi.c
1511
link.local_port, to_of_node(link.local_node));
drivers/staging/media/tegra-video/vi.c
1512
v4l2_fwnode_put_link(&link);
drivers/staging/media/tegra-video/vi.c
1517
local_pad = &local->pads[link.local_port];
drivers/staging/media/tegra-video/vi.c
1521
if (link.remote_node == of_fwnode_handle(vi->dev->of_node)) {
drivers/staging/media/tegra-video/vi.c
1533
to_of_node(link.local_node), link.local_port);
drivers/staging/media/tegra-video/vi.c
1534
v4l2_fwnode_put_link(&link);
drivers/staging/media/tegra-video/vi.c
1540
link.remote_node);
drivers/staging/media/tegra-video/vi.c
1543
to_of_node(link.remote_node));
drivers/staging/media/tegra-video/vi.c
1544
v4l2_fwnode_put_link(&link);
drivers/staging/media/tegra-video/vi.c
1550
if (link.remote_port >= remote->num_pads) {
drivers/staging/media/tegra-video/vi.c
1552
link.remote_port,
drivers/staging/media/tegra-video/vi.c
1553
to_of_node(link.remote_node));
drivers/staging/media/tegra-video/vi.c
1554
v4l2_fwnode_put_link(&link);
drivers/staging/media/tegra-video/vi.c
1559
remote_pad = &remote->pads[link.remote_port];
drivers/staging/media/tegra-video/vi.c
1569
v4l2_fwnode_put_link(&link);
drivers/staging/octeon/ethernet-mdio.c
85
link_info.s.link_up = dev->phydev->link ? 1 : 0;
drivers/staging/octeon/ethernet-mdio.c
96
if (priv->last_link != dev->phydev->link) {
drivers/staging/octeon/ethernet-mdio.c
97
priv->last_link = dev->phydev->link;
drivers/staging/octeon/ethernet.c
479
if (r == 0 && dev->phydev->link == 0)
drivers/target/sbp/sbp_target.c
123
list_for_each_entry(login, &sess->login_list, link) {
drivers/target/sbp/sbp_target.c
149
list_for_each_entry(login, &sess->login_list, link) {
drivers/target/sbp/sbp_target.c
166
hlist_for_each_entry_rcu(se_lun, &se_tpg->tpg_lun_hlist, link) {
drivers/target/sbp/sbp_target.c
1775
hlist_for_each_entry_rcu(lun, &tpg->tpg_lun_hlist, link)
drivers/target/sbp/sbp_target.c
1848
hlist_for_each_entry_rcu(lun, &tport->tpg->se_tpg.tpg_lun_hlist, link) {
drivers/target/sbp/sbp_target.c
245
list_del(&login->link);
drivers/target/sbp/sbp_target.c
427
list_add_tail(&login->link, &sess->login_list);
drivers/target/sbp/sbp_target.c
624
list_for_each_entry_safe(login, temp, &sess->login_list, link) {
drivers/target/sbp/sbp_target.c
626
list_move_tail(&login->link, &login_list);
drivers/target/sbp/sbp_target.c
630
list_for_each_entry_safe(login, temp, &login_list, link) {
drivers/target/sbp/sbp_target.c
631
list_del(&login->link);
drivers/target/sbp/sbp_target.c
99
list_for_each_entry(login, &session->login_list, link) {
drivers/target/sbp/sbp_target.h
127
struct list_head link;
drivers/target/target_core_device.c
212
hlist_for_each_entry_rcu(deve, &nacl->lun_entry_hlist, link) {
drivers/target/target_core_device.c
240
hlist_for_each_entry_rcu(deve, &nacl->lun_entry_hlist, link)
drivers/target/target_core_device.c
266
hlist_for_each_entry_rcu(deve, &nacl->lun_entry_hlist, link)
drivers/target/target_core_device.c
307
hlist_for_each_entry_rcu(tmp, &nacl->lun_entry_hlist, link) {
drivers/target/target_core_device.c
376
hlist_del_rcu(&orig->link);
drivers/target/target_core_device.c
377
hlist_add_head_rcu(&new->link, &nacl->lun_entry_hlist);
drivers/target/target_core_device.c
395
hlist_add_head_rcu(&new->link, &nacl->lun_entry_hlist);
drivers/target/target_core_device.c
455
hlist_del_rcu(&orig->link);
drivers/target/target_core_device.c
486
hlist_for_each_entry_rcu(deve, &nacl->lun_entry_hlist, link) {
drivers/target/target_core_spc.c
1283
hlist_for_each_entry_rcu(deve, &nacl->lun_entry_hlist, link) {
drivers/target/target_core_tpg.c
114
hlist_for_each_entry_rcu(lun, &tpg->tpg_lun_hlist, link) {
drivers/target/target_core_tpg.c
683
hlist_add_head_rcu(&lun->link, &tpg->tpg_lun_hlist);
drivers/target/target_core_tpg.c
724
hlist_del_rcu(&lun->link);
drivers/target/target_core_tpg.c
93
hlist_for_each_entry_rcu(deve, &nacl->lun_entry_hlist, link)
drivers/target/target_core_xcopy.c
88
hlist_for_each_entry_rcu(deve, &nacl->lun_entry_hlist, link) {
drivers/tee/optee/notif.c
100
list_for_each_entry(entry, &optee->notif.db, link)
drivers/tee/optee/notif.c
16
struct list_head link;
drivers/tee/optee/notif.c
25
list_for_each_entry(entry, &optee->notif.db, link)
drivers/tee/optee/notif.c
67
list_add_tail(&entry->link, &optee->notif.db);
drivers/tee/optee/notif.c
81
list_del(&entry->link);
drivers/tee/optee/supp.c
103
list_add_tail(&req->link, &supp->reqs);
drivers/tee/optee/supp.c
11
struct list_head link;
drivers/tee/optee/supp.c
120
list_del(&req->link);
drivers/tee/optee/supp.c
149
req = list_first_entry(&supp->reqs, struct optee_supp_req, link);
drivers/tee/optee/supp.c
160
list_del(&req->link);
drivers/tee/optee/supp.c
54
list_for_each_entry_safe(req, req_tmp, &supp->reqs, link) {
drivers/tee/optee/supp.c
55
list_del(&req->link);
drivers/thunderbolt/acpi.c
49
const struct device_link *link;
drivers/thunderbolt/acpi.c
60
link = device_link_add(&pdev->dev, &nhi->pdev->dev,
drivers/thunderbolt/acpi.c
64
if (link) {
drivers/thunderbolt/icm.c
1000
sw = tb_switch_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
1002
tb_warn(tb, "no switch exists at %u.%u, ignoring\n", link,
drivers/thunderbolt/icm.c
1007
add_xdomain(sw, route, &pkg->local_uuid, &pkg->remote_uuid, link,
drivers/thunderbolt/icm.c
109
int (*get_route)(struct tb *tb, u8 link, u8 depth, u64 *route);
drivers/thunderbolt/icm.c
1545
static int icm_ar_get_route(struct tb *tb, u8 link, u8 depth, u64 *route)
drivers/thunderbolt/icm.c
1550
.link_info = depth << ICM_LINK_INFO_DEPTH_SHIFT | link,
drivers/thunderbolt/icm.c
191
u8 link;
drivers/thunderbolt/icm.c
193
link = depth ? route >> ((depth - 1) * 8) : route;
drivers/thunderbolt/icm.c
194
return tb_phy_port_from_link(link);
drivers/thunderbolt/icm.c
197
static inline u8 dual_link_from_link(u8 link)
drivers/thunderbolt/icm.c
199
return link ? ((link - 1) ^ 0x01) + 1 : 0;
drivers/thunderbolt/icm.c
420
static int icm_fr_get_route(struct tb *tb, u8 link, u8 depth, u64 *route)
drivers/thunderbolt/icm.c
440
index = icm_fr_get_switch_index(sw->ports[link]);
drivers/thunderbolt/icm.c
592
request.link_info = xd->depth << ICM_LINK_INFO_DEPTH_SHIFT | xd->link;
drivers/thunderbolt/icm.c
620
phy_port = tb_phy_port_from_link(xd->link);
drivers/thunderbolt/icm.c
673
u8 connection_key, u8 link, u8 depth, bool boot)
drivers/thunderbolt/icm.c
687
sw->link = link;
drivers/thunderbolt/icm.c
706
u8 link, u8 depth)
drivers/thunderbolt/icm.c
716
xd->link = link;
drivers/thunderbolt/icm.c
728
static void update_xdomain(struct tb_xdomain *xd, u64 route, u8 link)
drivers/thunderbolt/icm.c
730
xd->link = link;
drivers/thunderbolt/icm.c
755
u8 link, depth;
drivers/thunderbolt/icm.c
761
link = pkg->link_info & ICM_LINK_INFO_LINK_MASK;
drivers/thunderbolt/icm.c
773
link, depth);
drivers/thunderbolt/icm.c
781
sw_phy_port = tb_phy_port_from_link(sw->link);
drivers/thunderbolt/icm.c
782
phy_port = tb_phy_port_from_link(link);
drivers/thunderbolt/icm.c
798
if (sw->link != link) {
drivers/thunderbolt/icm.c
799
ret = icm->get_route(tb, link, depth, &route);
drivers/thunderbolt/icm.c
802
link, depth);
drivers/thunderbolt/icm.c
811
pkg->connection_key, link, depth, boot);
drivers/thunderbolt/icm.c
831
sw = tb_switch_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
835
dual_link = dual_link_from_link(link);
drivers/thunderbolt/icm.c
845
xd = tb_xdomain_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
851
parent_sw = tb_switch_find_by_link_depth(tb, link, depth - 1);
drivers/thunderbolt/icm.c
854
link, depth);
drivers/thunderbolt/icm.c
858
ret = icm->get_route(tb, link, depth, &route);
drivers/thunderbolt/icm.c
861
link, depth);
drivers/thunderbolt/icm.c
872
sw->link = link;
drivers/thunderbolt/icm.c
898
u8 link, depth;
drivers/thunderbolt/icm.c
900
link = pkg->link_info & ICM_LINK_INFO_LINK_MASK;
drivers/thunderbolt/icm.c
904
if (link > ICM_MAX_LINK || depth > TB_SWITCH_MAX_DEPTH) {
drivers/thunderbolt/icm.c
905
tb_warn(tb, "invalid topology %u.%u, ignoring\n", link, depth);
drivers/thunderbolt/icm.c
909
sw = tb_switch_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
911
tb_warn(tb, "no switch exists at %u.%u, ignoring\n", link,
drivers/thunderbolt/icm.c
933
u8 link, depth;
drivers/thunderbolt/icm.c
936
link = pkg->link_info & ICM_LINK_INFO_LINK_MASK;
drivers/thunderbolt/icm.c
940
if (link > ICM_MAX_LINK || depth > TB_SWITCH_MAX_DEPTH) {
drivers/thunderbolt/icm.c
941
tb_warn(tb, "invalid topology %u.%u, ignoring\n", link, depth);
drivers/thunderbolt/icm.c
955
update_xdomain(xd, route, link);
drivers/thunderbolt/icm.c
975
xd = tb_xdomain_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
979
dual_link = dual_link_from_link(link);
drivers/thunderbolt/switch.c
3734
u8 link;
drivers/thunderbolt/switch.c
3762
return sw->link == lookup->link && sw->depth == lookup->depth;
drivers/thunderbolt/switch.c
3776
struct tb_switch *tb_switch_find_by_link_depth(struct tb *tb, u8 link, u8 depth)
drivers/thunderbolt/switch.c
3783
lookup.link = link;
drivers/thunderbolt/tb.c
3342
const struct device_link *link;
drivers/thunderbolt/tb.c
3350
link = device_link_add(&pdev->dev, &nhi->pdev->dev,
drivers/thunderbolt/tb.c
3353
if (link) {
drivers/thunderbolt/tb.h
1265
struct tb_xdomain *tb_xdomain_find_by_link_depth(struct tb *tb, u8 link,
drivers/thunderbolt/tb.h
206
u8 link;
drivers/thunderbolt/tb.h
860
struct tb_switch *tb_switch_find_by_link_depth(struct tb *tb, u8 link,
drivers/thunderbolt/usb4_port.c
47
const char *link;
drivers/thunderbolt/usb4_port.c
53
link = port->sw->link_usb4 ? "usb4" : "tbt";
drivers/thunderbolt/usb4_port.c
55
link = port->remote->sw->link_usb4 ? "usb4" : "tbt";
drivers/thunderbolt/usb4_port.c
57
link = port->xdomain->link_usb4 ? "usb4" : "tbt";
drivers/thunderbolt/usb4_port.c
59
link = "none";
drivers/thunderbolt/usb4_port.c
63
return sysfs_emit(buf, "%s\n", link);
drivers/thunderbolt/usb4_port.c
65
static DEVICE_ATTR_RO(link);
drivers/thunderbolt/xdomain.c
2301
u8 link;
drivers/thunderbolt/xdomain.c
2322
if (lookup->link && lookup->link == xd->link &&
drivers/thunderbolt/xdomain.c
2386
struct tb_xdomain *tb_xdomain_find_by_link_depth(struct tb *tb, u8 link,
drivers/thunderbolt/xdomain.c
2393
lookup.link = link;
drivers/tty/ipwireless/main.c
171
struct pcmcia_device *link = ipw->link;
drivers/tty/ipwireless/main.c
175
link->config_flags |= CONF_AUTO_SET_IO | CONF_AUTO_SET_IOMEM |
drivers/tty/ipwireless/main.c
178
ret = pcmcia_loop_config(link, ipwireless_probe, ipw);
drivers/tty/ipwireless/main.c
184
ipwireless_init_hardware_v1(ipw->hardware, link->resource[0]->start,
drivers/tty/ipwireless/main.c
189
ret = pcmcia_request_irq(link, ipwireless_interrupt);
drivers/tty/ipwireless/main.c
196
": I/O ports %pR, irq %d\n", link->resource[0],
drivers/tty/ipwireless/main.c
197
(unsigned int) link->irq);
drivers/tty/ipwireless/main.c
201
link->resource[3],
drivers/tty/ipwireless/main.c
202
link->resource[2]);
drivers/tty/ipwireless/main.c
218
ret = pcmcia_enable_device(link);
drivers/tty/ipwireless/main.c
226
release_mem_region(link->resource[2]->start,
drivers/tty/ipwireless/main.c
227
resource_size(link->resource[2]));
drivers/tty/ipwireless/main.c
231
release_mem_region(link->resource[3]->start,
drivers/tty/ipwireless/main.c
232
resource_size(link->resource[3]));
drivers/tty/ipwireless/main.c
235
pcmcia_disable_device(link);
drivers/tty/ipwireless/main.c
241
release_region(ipw->link->resource[0]->start,
drivers/tty/ipwireless/main.c
242
resource_size(ipw->link->resource[0]));
drivers/tty/ipwireless/main.c
244
release_mem_region(ipw->link->resource[2]->start,
drivers/tty/ipwireless/main.c
245
resource_size(ipw->link->resource[2]));
drivers/tty/ipwireless/main.c
249
release_mem_region(ipw->link->resource[3]->start,
drivers/tty/ipwireless/main.c
250
resource_size(ipw->link->resource[3]));
drivers/tty/ipwireless/main.c
253
pcmcia_disable_device(ipw->link);
drivers/tty/ipwireless/main.c
265
static int ipwireless_attach(struct pcmcia_device *link)
drivers/tty/ipwireless/main.c
274
ipw->link = link;
drivers/tty/ipwireless/main.c
275
link->priv = ipw;
drivers/tty/ipwireless/main.c
287
ipwireless_detach(link);
drivers/tty/ipwireless/main.c
300
static void ipwireless_detach(struct pcmcia_device *link)
drivers/tty/ipwireless/main.c
302
struct ipw_dev *ipw = link->priv;
drivers/tty/ipwireless/main.c
44
static void ipwireless_detach(struct pcmcia_device *link);
drivers/tty/ipwireless/main.c
67
struct pcmcia_device *link = ipw->link;
drivers/tty/ipwireless/main.c
68
pcmcia_reset_card(link->socket);
drivers/tty/ipwireless/main.h
45
struct pcmcia_device *link;
drivers/tty/n_tty.c
1095
if (tty->link)
drivers/tty/n_tty.c
1869
if (tty->link)
drivers/tty/n_tty.c
2235
if (packet && tty->link->ctrl.pktstatus) {
drivers/tty/n_tty.c
2239
scoped_guard(spinlock_irq, &tty->link->ctrl.lock) {
drivers/tty/n_tty.c
2240
cs = tty->link->ctrl.pktstatus;
drivers/tty/n_tty.c
2241
tty->link->ctrl.pktstatus = 0;
drivers/tty/n_tty.c
2360
if (tty_hung_up_p(file) || (tty->link && !tty->link->count)) {
drivers/tty/n_tty.c
2447
if (tty->ctrl.packet && tty->link->ctrl.pktstatus)
drivers/tty/n_tty.c
261
tty_wakeup(tty->link);
drivers/tty/n_tty.c
327
if (tty->link->ctrl.packet) {
drivers/tty/n_tty.c
330
wake_up_interruptible(&tty->link->read_wait);
drivers/tty/n_tty.c
353
if (tty->link)
drivers/tty/pty.c
111
struct tty_struct *to = tty->link;
drivers/tty/pty.c
131
return tty_buffer_space_avail(tty->link->port);
drivers/tty/pty.c
172
tty->link->ctrl.pktstatus = 0;
drivers/tty/pty.c
195
if (tty->link) {
drivers/tty/pty.c
196
pgrp = tty_get_pgrp(tty->link);
drivers/tty/pty.c
206
struct tty_struct *to = tty->link;
drivers/tty/pty.c
221
if (!tty || !tty->link)
drivers/tty/pty.c
226
if (test_bit(TTY_PTY_LOCK, &tty->link->flags))
drivers/tty/pty.c
228
if (tty->driver->subtype == PTY_TYPE_SLAVE && tty->link->count != 1)
drivers/tty/pty.c
232
clear_bit(TTY_OTHER_CLOSED, &tty->link->flags);
drivers/tty/pty.c
245
if (tty->link && tty->link->ctrl.packet) {
drivers/tty/pty.c
265
wake_up_interruptible(&tty->link->read_wait);
drivers/tty/pty.c
285
struct tty_struct *pty = tty->link;
drivers/tty/pty.c
322
if (!tty->link || !tty->link->ctrl.packet)
drivers/tty/pty.c
329
wake_up_interruptible_poll(&tty->link->read_wait, EPOLLIN);
drivers/tty/pty.c
334
if (!tty->link || !tty->link->ctrl.packet)
drivers/tty/pty.c
341
wake_up_interruptible_poll(&tty->link->read_wait, EPOLLIN);
drivers/tty/pty.c
402
tty->link = o_tty;
drivers/tty/pty.c
403
o_tty->link = tty;
drivers/tty/pty.c
442
struct tty_struct *pair = tty->link;
drivers/tty/pty.c
598
path.dentry = tty->link->driver_data;
drivers/tty/pty.c
63
if (!tty->link)
drivers/tty/pty.c
65
set_bit(TTY_OTHER_CLOSED, &tty->link->flags);
drivers/tty/pty.c
66
wake_up_interruptible(&tty->link->read_wait);
drivers/tty/pty.c
67
wake_up_interruptible(&tty->link->write_wait);
drivers/tty/pty.c
707
fsi = tty->link->driver_data;
drivers/tty/pty.c
73
if (tty->link->driver_data)
drivers/tty/pty.c
74
devpts_pty_kill(tty->link->driver_data);
drivers/tty/pty.c
77
tty_vhangup(tty->link);
drivers/tty/pty.c
814
dentry = devpts_pty_new(fsi, index, tty->link);
drivers/tty/pty.c
819
tty->link->driver_data = dentry;
drivers/tty/pty.c
93
tty_wakeup(tty->link);
drivers/tty/serial/8250/serial_cs.c
102
static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_8250_port *uart)
drivers/tty/serial/8250/serial_cs.c
107
static int quirk_post_ibm(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
112
ret = pcmcia_read_config_byte(link, 0x800, &val);
drivers/tty/serial/8250/serial_cs.c
116
ret = pcmcia_write_config_byte(link, 0x800, val | 1);
drivers/tty/serial/8250/serial_cs.c
129
static void quirk_config_nokia(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
131
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
137
static void quirk_wakeup_oxsemi(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
139
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
151
static void quirk_wakeup_possio_gcc(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
153
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
174
static void quirk_config_socket(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
176
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
179
link->config_flags |= CONF_ENABLE_ESR;
drivers/tty/serial/8250/serial_cs.c
255
static int serial_config(struct pcmcia_device *link);
drivers/tty/serial/8250/serial_cs.c
258
static void serial_remove(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
260
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
263
dev_dbg(&link->dev, "serial_release\n");
drivers/tty/serial/8250/serial_cs.c
272
pcmcia_disable_device(link);
drivers/tty/serial/8250/serial_cs.c
275
static int serial_suspend(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
277
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
286
static int serial_resume(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
288
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
295
info->quirk->wakeup(link);
drivers/tty/serial/8250/serial_cs.c
300
static int serial_probe(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
305
dev_dbg(&link->dev, "serial_attach()\n");
drivers/tty/serial/8250/serial_cs.c
311
info->p_dev = link;
drivers/tty/serial/8250/serial_cs.c
312
link->priv = info;
drivers/tty/serial/8250/serial_cs.c
314
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/tty/serial/8250/serial_cs.c
316
link->config_flags |= CONF_ENABLE_SPKR;
drivers/tty/serial/8250/serial_cs.c
318
ret = serial_config(link);
drivers/tty/serial/8250/serial_cs.c
329
static void serial_detach(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
331
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
333
dev_dbg(&link->dev, "serial_detach\n");
drivers/tty/serial/8250/serial_cs.c
338
serial_remove(link);
drivers/tty/serial/8250/serial_cs.c
443
static int simple_config(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
445
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
452
link->config_flags |= CONF_AUTO_SET_VPP;
drivers/tty/serial/8250/serial_cs.c
454
if (!pcmcia_loop_config(link, simple_config_check, &try))
drivers/tty/serial/8250/serial_cs.c
462
ret = pcmcia_loop_config(link, simple_config_check_notpicky, NULL);
drivers/tty/serial/8250/serial_cs.c
464
dev_warn(&link->dev, "no usable port range found, giving up\n");
drivers/tty/serial/8250/serial_cs.c
470
link->config_index &= ~(0x08);
drivers/tty/serial/8250/serial_cs.c
476
info->quirk->config(link);
drivers/tty/serial/8250/serial_cs.c
478
ret = pcmcia_enable_device(link);
drivers/tty/serial/8250/serial_cs.c
481
return setup_serial(link, info, link->resource[0]->start, link->irq);
drivers/tty/serial/8250/serial_cs.c
527
static int multi_config(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
529
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
533
if (!pcmcia_loop_config(link, multi_config_check, &info->multi))
drivers/tty/serial/8250/serial_cs.c
534
base2 = link->resource[0]->start + 8;
drivers/tty/serial/8250/serial_cs.c
538
if (pcmcia_loop_config(link, multi_config_check_notpicky,
drivers/tty/serial/8250/serial_cs.c
540
dev_warn(&link->dev,
drivers/tty/serial/8250/serial_cs.c
546
if (!link->irq)
drivers/tty/serial/8250/serial_cs.c
547
dev_warn(&link->dev, "no usable IRQ found, continuing...\n");
drivers/tty/serial/8250/serial_cs.c
553
info->quirk->config(link);
drivers/tty/serial/8250/serial_cs.c
555
i = pcmcia_enable_device(link);
drivers/tty/serial/8250/serial_cs.c
565
if (link->config_index == 1 ||
drivers/tty/serial/8250/serial_cs.c
566
link->config_index == 3) {
drivers/tty/serial/8250/serial_cs.c
567
setup_serial(link, info, base2, link->irq);
drivers/tty/serial/8250/serial_cs.c
568
base2 = link->resource[0]->start;
drivers/tty/serial/8250/serial_cs.c
570
setup_serial(link, info, link->resource[0]->start,
drivers/tty/serial/8250/serial_cs.c
571
link->irq);
drivers/tty/serial/8250/serial_cs.c
580
info->quirk->wakeup(link);
drivers/tty/serial/8250/serial_cs.c
585
setup_serial(link, info, link->resource[0]->start, link->irq);
drivers/tty/serial/8250/serial_cs.c
587
setup_serial(link, info, base2 + (8 * i),
drivers/tty/serial/8250/serial_cs.c
588
link->irq);
drivers/tty/serial/8250/serial_cs.c
610
static int serial_config(struct pcmcia_device *link)
drivers/tty/serial/8250/serial_cs.c
612
struct serial_info *info = link->priv;
drivers/tty/serial/8250/serial_cs.c
615
dev_dbg(&link->dev, "serial_config\n");
drivers/tty/serial/8250/serial_cs.c
618
info->multi = (link->socket->functions > 1);
drivers/tty/serial/8250/serial_cs.c
621
info->manfid = link->manf_id;
drivers/tty/serial/8250/serial_cs.c
622
info->prodid = link->card_id;
drivers/tty/serial/8250/serial_cs.c
638
(link->has_func_id) &&
drivers/tty/serial/8250/serial_cs.c
639
(link->socket->pcmcia_pfc == 0) &&
drivers/tty/serial/8250/serial_cs.c
640
((link->func_id == CISTPL_FUNCID_MULTI) ||
drivers/tty/serial/8250/serial_cs.c
641
(link->func_id == CISTPL_FUNCID_SERIAL))) {
drivers/tty/serial/8250/serial_cs.c
642
if (pcmcia_loop_config(link, serial_check_for_multi, info))
drivers/tty/serial/8250/serial_cs.c
652
dev_info(&link->dev,
drivers/tty/serial/8250/serial_cs.c
654
link->manf_id, link->card_id,
drivers/tty/serial/8250/serial_cs.c
655
link->socket->pcmcia_pfc, info->multi, info->quirk);
drivers/tty/serial/8250/serial_cs.c
656
if (link->socket->pcmcia_pfc)
drivers/tty/serial/8250/serial_cs.c
657
i = pfc_config(link);
drivers/tty/serial/8250/serial_cs.c
659
i = multi_config(link);
drivers/tty/serial/8250/serial_cs.c
661
i = simple_config(link);
drivers/tty/serial/8250/serial_cs.c
671
if (info->quirk->post(link))
drivers/tty/serial/8250/serial_cs.c
677
dev_warn(&link->dev, "failed to initialize\n");
drivers/tty/serial/8250/serial_cs.c
678
serial_remove(link);
drivers/tty/tty_io.c
1431
retval = tty_ldisc_setup(tty, tty->link);
drivers/tty/tty_io.c
1493
if (tty->link) {
drivers/tty/tty_io.c
1494
flush_work(&tty->link->SAK_work);
drivers/tty/tty_io.c
1495
flush_work(&tty->link->hangup_work);
drivers/tty/tty_io.c
1585
if (tty->link)
drivers/tty/tty_io.c
1586
tty->link->port->itty = NULL;
drivers/tty/tty_io.c
1589
if (tty->link)
drivers/tty/tty_io.c
1590
tty_buffer_cancel_work(tty->link->port);
drivers/tty/tty_io.c
1592
tty_kref_put(tty->link);
drivers/tty/tty_io.c
1622
struct tty_struct *o_tty = tty->link;
drivers/tty/tty_io.c
1629
if (o_tty->link != tty) {
drivers/tty/tty_io.c
1630
tty_debug(tty, "bad link = %p\n", o_tty->link);
drivers/tty/tty_io.c
1735
o_tty = tty->link;
drivers/tty/tty_io.c
2661
tty = tty->link;
drivers/tty/tty_io.c
285
tty->link && tty->link->count)
drivers/tty/tty_ioctl.c
774
real_tty = tty->link;
drivers/tty/tty_ldisc.c
773
struct tty_struct *o_tty = tty->link;
drivers/tty/tty_mutex.c
42
if (tty && tty != tty->link)
drivers/tty/tty_mutex.c
48
if (tty && tty != tty->link)
drivers/ufs/core/ufshcd.c
5165
struct device_link *link;
drivers/ufs/core/ufshcd.c
5172
link = device_link_add(&sdev->sdev_gendev,
drivers/ufs/core/ufshcd.c
5175
if (!link) {
drivers/ufs/host/ufs-mediatek.c
2351
struct device_link *link;
drivers/ufs/host/ufs-mediatek.c
2366
link = device_link_add(dev, &reset_pdev->dev,
drivers/ufs/host/ufs-mediatek.c
2369
if (!link) {
drivers/ufs/host/ufs-mediatek.c
2374
if (link->status == DL_STATE_DORMANT) {
drivers/usb/cdns3/cdnsp-gadget.h
1073
struct cdnsp_link_trb link;
drivers/usb/cdns3/cdnsp-mem.c
110
struct cdnsp_link_trb *link;
drivers/usb/cdns3/cdnsp-mem.c
118
link = &prev->trbs[TRBS_PER_SEGMENT - 1].link;
drivers/usb/cdns3/cdnsp-mem.c
119
link->segment_ptr = cpu_to_le64(next->dma);
drivers/usb/cdns3/cdnsp-mem.c
125
val = le32_to_cpu(link->control);
drivers/usb/cdns3/cdnsp-mem.c
128
link->control = cpu_to_le32(val);
drivers/usb/cdns3/cdnsp-mem.c
154
ring->last_seg->trbs[TRBS_PER_SEGMENT - 1].link.control &=
drivers/usb/cdns3/cdnsp-mem.c
156
last->trbs[TRBS_PER_SEGMENT - 1].link.control |=
drivers/usb/cdns3/cdnsp-mem.c
399
ring->last_seg->trbs[TRBS_PER_SEGMENT - 1].link.control |=
drivers/usb/cdns3/cdnsp-mem.c
57
seg->trbs[i].link.control |= cpu_to_le32(TRB_CYCLE);
drivers/usb/cdns3/cdnsp-ring.c
106
return le32_to_cpu(trb->link.control) & LINK_TOGGLE;
drivers/usb/cdns3/cdnsp-ring.c
113
trb->link.control &= cpu_to_le32(~TRB_CHAIN);
drivers/usb/cdns3/cdnsp-ring.c
1662
ep_ring->enqueue->link.control |= cpu_to_le32(TRB_CHAIN);
drivers/usb/cdns3/cdnsp-ring.c
1665
ep_ring->enqueue->link.control ^= cpu_to_le32(TRB_CYCLE);
drivers/usb/cdns3/cdnsp-ring.c
213
next->link.control &= cpu_to_le32(~TRB_CHAIN);
drivers/usb/cdns3/cdnsp-ring.c
214
next->link.control |= cpu_to_le32(chain);
drivers/usb/cdns3/cdnsp-ring.c
218
next->link.control ^= cpu_to_le32(TRB_CYCLE);
drivers/usb/cdns3/cdnsp-ring.c
89
return TRB_TYPE_LINK_LE32(trb->link.control);
drivers/usb/core/usb-acpi.c
160
struct device_link *link;
drivers/usb/core/usb-acpi.c
178
link = device_link_add(&port_dev->child->dev, nhi_fwnode->dev,
drivers/usb/core/usb-acpi.c
182
if (!link) {
drivers/usb/core/usb-acpi.c
191
udev->usb4_link = link;
drivers/usb/gadget/function/u_ether.c
1067
void gether_suspend(struct gether *link)
drivers/usb/gadget/function/u_ether.c
1069
struct eth_dev *dev = link->ioport;
drivers/usb/gadget/function/u_ether.c
1084
link->is_suspend = true;
drivers/usb/gadget/function/u_ether.c
1089
void gether_resume(struct gether *link)
drivers/usb/gadget/function/u_ether.c
1091
struct eth_dev *dev = link->ioport;
drivers/usb/gadget/function/u_ether.c
1101
link->is_suspend = false;
drivers/usb/gadget/function/u_ether.c
1139
struct net_device *gether_connect(struct gether *link)
drivers/usb/gadget/function/u_ether.c
1141
struct eth_dev *dev = link->ioport;
drivers/usb/gadget/function/u_ether.c
1147
link->in_ep->driver_data = dev;
drivers/usb/gadget/function/u_ether.c
1148
result = usb_ep_enable(link->in_ep);
drivers/usb/gadget/function/u_ether.c
1151
link->in_ep->name, result);
drivers/usb/gadget/function/u_ether.c
1155
link->out_ep->driver_data = dev;
drivers/usb/gadget/function/u_ether.c
1156
result = usb_ep_enable(link->out_ep);
drivers/usb/gadget/function/u_ether.c
1159
link->out_ep->name, result);
drivers/usb/gadget/function/u_ether.c
1164
result = alloc_requests(dev, link, qlen(dev->gadget,
drivers/usb/gadget/function/u_ether.c
1168
dev->zlp = link->is_zlp_ok;
drivers/usb/gadget/function/u_ether.c
1172
dev->header_len = link->header_len;
drivers/usb/gadget/function/u_ether.c
1173
dev->unwrap = link->unwrap;
drivers/usb/gadget/function/u_ether.c
1174
dev->wrap = link->wrap;
drivers/usb/gadget/function/u_ether.c
1177
dev->port_usb = link;
drivers/usb/gadget/function/u_ether.c
1179
if (link->open)
drivers/usb/gadget/function/u_ether.c
1180
link->open(link);
drivers/usb/gadget/function/u_ether.c
1182
if (link->close)
drivers/usb/gadget/function/u_ether.c
1183
link->close(link);
drivers/usb/gadget/function/u_ether.c
1193
(void) usb_ep_disable(link->out_ep);
drivers/usb/gadget/function/u_ether.c
1195
(void) usb_ep_disable(link->in_ep);
drivers/usb/gadget/function/u_ether.c
1217
void gether_disconnect(struct gether *link)
drivers/usb/gadget/function/u_ether.c
1219
struct eth_dev *dev = link->ioport;
drivers/usb/gadget/function/u_ether.c
1230
link->is_suspend = false;
drivers/usb/gadget/function/u_ether.c
1240
usb_ep_disable(link->in_ep);
drivers/usb/gadget/function/u_ether.c
1247
usb_ep_free_request(link->in_ep, req);
drivers/usb/gadget/function/u_ether.c
1251
link->in_ep->desc = NULL;
drivers/usb/gadget/function/u_ether.c
1253
usb_ep_disable(link->out_ep);
drivers/usb/gadget/function/u_ether.c
1260
usb_ep_free_request(link->out_ep, req);
drivers/usb/gadget/function/u_ether.c
1264
link->out_ep->desc = NULL;
drivers/usb/gadget/function/u_ether.c
355
static int alloc_requests(struct eth_dev *dev, struct gether *link, unsigned n)
drivers/usb/gadget/function/u_ether.c
360
status = prealloc(&dev->tx_reqs, link->in_ep, n);
drivers/usb/gadget/function/u_ether.c
363
status = prealloc(&dev->rx_reqs, link->out_ep, n);
drivers/usb/gadget/function/u_ether.c
620
struct gether *link;
drivers/usb/gadget/function/u_ether.c
627
link = dev->port_usb;
drivers/usb/gadget/function/u_ether.c
628
if (link && link->open)
drivers/usb/gadget/function/u_ether.c
629
link->open(link);
drivers/usb/gadget/function/u_ether.c
651
struct gether *link = dev->port_usb;
drivers/usb/gadget/function/u_ether.c
655
if (link->close)
drivers/usb/gadget/function/u_ether.c
656
link->close(link);
drivers/usb/gadget/function/u_ether.c
667
in = link->in_ep->desc;
drivers/usb/gadget/function/u_ether.c
668
out = link->out_ep->desc;
drivers/usb/gadget/function/u_ether.c
669
usb_ep_disable(link->in_ep);
drivers/usb/gadget/function/u_ether.c
670
usb_ep_disable(link->out_ep);
drivers/usb/gadget/function/u_ether.c
673
link->in_ep->desc = in;
drivers/usb/gadget/function/u_ether.c
674
link->out_ep->desc = out;
drivers/usb/gadget/function/u_ether.c
675
usb_ep_enable(link->in_ep);
drivers/usb/gadget/function/u_ether.c
676
usb_ep_enable(link->out_ep);
drivers/usb/gadget/function/u_ether.h
288
void gether_suspend(struct gether *link);
drivers/usb/gadget/function/u_ether.h
289
void gether_resume(struct gether *link);
drivers/usb/gadget/udc/fsl_udc_core.c
2319
char *name, int link)
drivers/usb/gadget/udc/fsl_udc_core.c
2352
if (link)
drivers/usb/host/sl811_cs.c
116
static void sl811_cs_detach(struct pcmcia_device *link)
drivers/usb/host/sl811_cs.c
118
dev_dbg(&link->dev, "sl811_cs_detach\n");
drivers/usb/host/sl811_cs.c
120
sl811_cs_release(link);
drivers/usb/host/sl811_cs.c
123
kfree(link->priv);
drivers/usb/host/sl811_cs.c
126
static void sl811_cs_release(struct pcmcia_device * link)
drivers/usb/host/sl811_cs.c
128
dev_dbg(&link->dev, "sl811_cs_release\n");
drivers/usb/host/sl811_cs.c
130
pcmcia_disable_device(link);
drivers/usb/host/sl811_cs.c
143
static int sl811_cs_config(struct pcmcia_device *link)
drivers/usb/host/sl811_cs.c
145
struct device *parent = &link->dev;
drivers/usb/host/sl811_cs.c
148
dev_dbg(&link->dev, "sl811_cs_config\n");
drivers/usb/host/sl811_cs.c
150
link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_VPP |
drivers/usb/host/sl811_cs.c
153
if (pcmcia_loop_config(link, sl811_cs_config_check, NULL))
drivers/usb/host/sl811_cs.c
157
if (resource_size(link->resource[0]) < 2)
drivers/usb/host/sl811_cs.c
160
if (!link->irq)
drivers/usb/host/sl811_cs.c
163
ret = pcmcia_enable_device(link);
drivers/usb/host/sl811_cs.c
167
if (sl811_hc_init(parent, link->resource[0]->start, link->irq)
drivers/usb/host/sl811_cs.c
171
sl811_cs_release(link);
drivers/usb/host/sl811_cs.c
177
static int sl811_cs_probe(struct pcmcia_device *link)
drivers/usb/host/sl811_cs.c
184
local->p_dev = link;
drivers/usb/host/sl811_cs.c
185
link->priv = local;
drivers/usb/host/sl811_cs.c
187
return sl811_cs_config(link);
drivers/usb/host/sl811_cs.c
48
static void sl811_cs_release(struct pcmcia_device * link);
drivers/usb/host/uhci-debug.c
183
hc32_to_cpu(uhci, qh->link),
drivers/usb/host/uhci-debug.c
382
__hc32 link;
drivers/usb/host/uhci-debug.c
421
link = uhci->frame[i];
drivers/usb/host/uhci-debug.c
427
i, hc32_to_cpu(uhci, link));
drivers/usb/host/uhci-debug.c
436
if (link != LINK_TO_TD(uhci, td)) {
drivers/usb/host/uhci-debug.c
451
link = td->link;
drivers/usb/host/uhci-debug.c
456
if (link != qh_dma) {
drivers/usb/host/uhci-debug.c
461
i, hc32_to_cpu(uhci, link));
drivers/usb/host/uhci-debug.c
500
link = fsbr_link;
drivers/usb/host/uhci-debug.c
501
if (!link)
drivers/usb/host/uhci-debug.c
502
link = LINK_TO_QH(uhci, uhci->skel_term_qh);
drivers/usb/host/uhci-debug.c
52
hc32_to_cpu(uhci, td->link));
drivers/usb/host/uhci-debug.c
524
link = UHCI_PTR_TERM(uhci);
drivers/usb/host/uhci-debug.c
528
link = LINK_TO_QH(uhci, uhci->skel_async_qh);
drivers/usb/host/uhci-debug.c
532
link = LINK_TO_QH(uhci, uhci->skel_term_qh);
drivers/usb/host/uhci-debug.c
534
if (qh->link != link)
drivers/usb/host/uhci-hcd.c
642
uhci->skelqh[i]->link = LINK_TO_QH(uhci, uhci->skel_async_qh);
drivers/usb/host/uhci-hcd.c
643
uhci->skel_async_qh->link = UHCI_PTR_TERM(uhci);
drivers/usb/host/uhci-hcd.c
644
uhci->skel_term_qh->link = LINK_TO_QH(uhci, uhci->skel_term_qh);
drivers/usb/host/uhci-hcd.c
649
uhci->term_td->link = UHCI_PTR_TERM(uhci);
drivers/usb/host/uhci-hcd.h
153
__hc32 link; /* Next QH in the schedule */
drivers/usb/host/uhci-hcd.h
260
__hc32 link;
drivers/usb/host/uhci-q.c
1020
plink = &td->link;
drivers/usb/host/uhci-q.c
1151
qh->element = td->link;
drivers/usb/host/uhci-q.c
171
td->link = ltd->link;
drivers/usb/host/uhci-q.c
1713
qh->element = qh->post_td->link;
drivers/usb/host/uhci-q.c
173
ltd->link = LINK_TO_TD(uhci, td);
drivers/usb/host/uhci-q.c
175
td->link = uhci->frame[framenum];
drivers/usb/host/uhci-q.c
193
uhci->frame[td->frame] = td->link;
drivers/usb/host/uhci-q.c
208
ptd->link = td->link;
drivers/usb/host/uhci-q.c
225
uhci->frame[framenum] = ltd->link;
drivers/usb/host/uhci-q.c
258
qh->link = UHCI_PTR_TERM(uhci);
drivers/usb/host/uhci-q.c
344
ptd->link = td->link;
drivers/usb/host/uhci-q.c
442
qh->link = pqh->link;
drivers/usb/host/uhci-q.c
444
pqh->link = LINK_TO_QH(uhci, qh);
drivers/usb/host/uhci-q.c
466
qh->link = pqh->link;
drivers/usb/host/uhci-q.c
469
pqh->link = link_to_new_qh;
drivers/usb/host/uhci-q.c
474
uhci->skel_term_qh->link = link_to_new_qh;
drivers/usb/host/uhci-q.c
526
pqh->link = qh->link;
drivers/usb/host/uhci-q.c
536
__hc32 link_to_next_qh = qh->link;
drivers/usb/host/uhci-q.c
539
pqh->link = link_to_next_qh;
drivers/usb/host/uhci-q.c
544
uhci->skel_term_qh->link = link_to_next_qh;
drivers/usb/host/uhci-q.c
57
lqh->link = LINK_TO_QH(uhci, uhci->skel_term_qh);
drivers/usb/host/uhci-q.c
69
lqh->link = UHCI_PTR_TERM(uhci);
drivers/usb/host/uhci-q.c
816
plink = &td->link;
drivers/usb/host/uhci-q.c
855
plink = &td->link;
drivers/usb/host/uhci-q.c
876
plink = &td->link;
drivers/usb/host/uhci-q.c
984
plink = &td->link;
drivers/usb/host/xhci-dbgcap.c
280
if (TRB_TYPE_LINK_LE32(next->link.control)) {
drivers/usb/host/xhci-dbgcap.c
281
next->link.control ^= cpu_to_le32(TRB_CYCLE);
drivers/usb/host/xhci-dbgcap.c
474
trb->link.segment_ptr = cpu_to_le64(ring->first_seg->dma);
drivers/usb/host/xhci-dbgcap.c
475
trb->link.control = cpu_to_le32(LINK_TOGGLE | TRB_TYPE(TRB_LINK));
drivers/usb/host/xhci-mem.c
107
val = le32_to_cpu(trb->link.control);
drivers/usb/host/xhci-mem.c
112
trb->link.control = cpu_to_le32(val);
drivers/usb/host/xhci-mem.c
113
trb->link.segment_ptr = cpu_to_le64(seg->next->dma);
drivers/usb/host/xhci-mem.c
129
ring->last_seg->trbs[TRBS_PER_SEGMENT - 1].link.control |= cpu_to_le32(LINK_TOGGLE);
drivers/usb/host/xhci-mem.c
148
seg->trbs[i].link.control |= cpu_to_le32(TRB_CYCLE);
drivers/usb/host/xhci-mem.c
163
dst->last_seg->trbs[TRBS_PER_SEGMENT-1].link.control
drivers/usb/host/xhci-mem.c
168
src->last_seg->trbs[TRBS_PER_SEGMENT-1].link.control &= ~cpu_to_le32(LINK_TOGGLE);
drivers/usb/host/xhci-ring.c
109
return TRB_TYPE_LINK_LE32(trb->link.control);
drivers/usb/host/xhci-ring.c
125
return le32_to_cpu(trb->link.control) & LINK_TOGGLE;
drivers/usb/host/xhci-ring.c
152
trb->link.control &= cpu_to_le32(~TRB_CHAIN);
drivers/usb/host/xhci-ring.c
248
ring->enqueue->link.control &= cpu_to_le32(~TRB_CHAIN);
drivers/usb/host/xhci-ring.c
249
ring->enqueue->link.control |= cpu_to_le32(chain);
drivers/usb/host/xhci-ring.c
254
ring->enqueue->link.control ^= cpu_to_le32(TRB_CYCLE);
drivers/usb/host/xhci.c
872
seg->trbs[TRBS_PER_SEGMENT - 1].link.control &= cpu_to_le32(~TRB_CYCLE);
drivers/usb/host/xhci.h
1088
struct xhci_link_trb link;
drivers/usb/misc/usb-ljca.c
208
list_for_each_entry(client, &adap->client_list, link) {
drivers/usb/misc/usb-ljca.c
563
list_add_tail(&client->link, &adap->client_list);
drivers/usb/misc/usb-ljca.c
743
list_for_each_entry_safe_reverse(client, next, &adap->client_list, link) {
drivers/usb/misc/usb-ljca.c
747
list_del_init(&client->link);
drivers/usb/misc/usb-ljca.c
857
list_for_each_entry_safe_reverse(client, next, &adap->client_list, link) {
drivers/usb/misc/usb-ljca.c
861
list_del_init(&client->link);
drivers/usb/misc/usbio.c
132
struct list_head link;
drivers/usb/misc/usbio.c
468
list_add_tail(&client->link, &usbio->cli_list);
drivers/usb/misc/usbio.c
528
list_for_each_entry(client, &usbio->cli_list, link) {
drivers/usb/misc/usbio.c
538
list_for_each_entry_reverse(client, &usbio->cli_list, link) {
drivers/usb/mtu3/mtu3_core.c
674
u32 link;
drivers/usb/mtu3/mtu3_core.c
677
link = mtu3_readl(mbase, U3D_DEV_LINK_INTR);
drivers/usb/mtu3/mtu3_core.c
678
link &= mtu3_readl(mbase, U3D_DEV_LINK_INTR_ENABLE);
drivers/usb/mtu3/mtu3_core.c
679
mtu3_writel(mbase, U3D_DEV_LINK_INTR, link); /* W1C */
drivers/usb/mtu3/mtu3_core.c
680
dev_dbg(mtu->dev, "=== LINK[%x] ===\n", link);
drivers/usb/mtu3/mtu3_core.c
682
if (!(link & SSUSB_DEV_SPEED_CHG_INTR))
drivers/vfio/platform/vfio_platform_common.c
38
list_for_each_entry(iter, &reset_list, link) {
drivers/vfio/platform/vfio_platform_common.c
675
list_add(&node->link, &reset_list);
drivers/vfio/platform/vfio_platform_common.c
686
list_for_each_entry_safe(iter, temp, &reset_list, link) {
drivers/vfio/platform/vfio_platform_common.c
688
list_del(&iter->link);
drivers/vfio/platform/vfio_platform_private.h
75
struct list_head link;
drivers/vfio/vfio_iommu_type1.c
217
struct rb_node **link = &iommu->dma_list.rb_node, *parent = NULL;
drivers/vfio/vfio_iommu_type1.c
222
while (*link) {
drivers/vfio/vfio_iommu_type1.c
223
parent = *link;
drivers/vfio/vfio_iommu_type1.c
227
link = &(*link)->rb_left;
drivers/vfio/vfio_iommu_type1.c
229
link = &(*link)->rb_right;
drivers/vfio/vfio_iommu_type1.c
232
rb_link_node(&new->node, parent, link);
drivers/vfio/vfio_iommu_type1.c
363
struct rb_node **link, *parent = NULL;
drivers/vfio/vfio_iommu_type1.c
366
link = &dma->pfn_list.rb_node;
drivers/vfio/vfio_iommu_type1.c
367
while (*link) {
drivers/vfio/vfio_iommu_type1.c
368
parent = *link;
drivers/vfio/vfio_iommu_type1.c
372
link = &(*link)->rb_left;
drivers/vfio/vfio_iommu_type1.c
374
link = &(*link)->rb_right;
drivers/vfio/vfio_iommu_type1.c
377
rb_link_node(&new->node, parent, link);
drivers/vhost/iotlb.c
32
list_del(&map->link);
drivers/vhost/iotlb.c
78
map = list_first_entry(&iotlb->list, typeof(*map), link);
drivers/vhost/iotlb.c
96
INIT_LIST_HEAD(&map->link);
drivers/vhost/iotlb.c
97
list_add_tail(&map->link, &iotlb->list);
drivers/vhost/vhost.c
1263
list_for_each_entry(map, &umem->list, link) {
drivers/vhost/vhost.c
2470
list_for_each_entry(u, &umem->list, link) {
drivers/video/backlight/led_bl.c
214
struct device_link *link;
drivers/video/backlight/led_bl.c
216
link = device_link_add(&pdev->dev, priv->leds[i]->dev->parent,
drivers/video/backlight/led_bl.c
218
if (!link) {
drivers/xen/acpi.c
109
if (entry->link)
drivers/xen/acpi.c
110
ret = acpi_pci_link_allocate_irq(entry->link,
drivers/xen/acpi.c
83
acpi_handle link;
drivers/xen/xen-scsiback.c
951
hlist_for_each_entry(se_lun, &tpg_entry->se_tpg.tpg_lun_hlist, link) {
fs/9p/vfs_inode.c
1363
.link = v9fs_vfs_link,
fs/9p/vfs_inode_dotl.c
919
.link = v9fs_vfs_link_dotl,
fs/affs/dir.c
68
.link = affs_link,
fs/affs/symlink.c
18
char *link = folio_address(folio);
fs/affs/symlink.c
40
link[i++] = c;
fs/affs/symlink.c
43
link[i++] = lf->symname[j++];
fs/affs/symlink.c
45
link[i++] = '/';
fs/affs/symlink.c
51
link[i++] = '.';
fs/affs/symlink.c
52
link[i++] = '.';
fs/affs/symlink.c
54
link[i++] = c;
fs/affs/symlink.c
58
link[i] = '\0';
fs/afs/dir.c
59
.link = afs_link,
fs/afs/flock.c
122
list_for_each_entry_safe(p, _p, &vnode->pending_locks, fl_u.afs.link) {
fs/afs/flock.c
126
list_del_init(&p->fl_u.afs.link);
fs/afs/flock.c
165
struct file_lock, fl_u.afs.link);
fs/afs/flock.c
166
list_del_init(&p->fl_u.afs.link);
fs/afs/flock.c
469
INIT_LIST_HEAD(&fl->fl_u.afs.link);
fs/afs/flock.c
498
list_add_tail(&fl->fl_u.afs.link, &vnode->pending_locks);
fs/afs/flock.c
512
list_move_tail(&fl->fl_u.afs.link, &vnode->granted_locks);
fs/afs/flock.c
519
list_move_tail(&fl->fl_u.afs.link, &vnode->granted_locks);
fs/afs/flock.c
566
list_del_init(&fl->fl_u.afs.link);
fs/afs/flock.c
573
list_del_init(&fl->fl_u.afs.link);
fs/afs/flock.c
580
list_del_init(&fl->fl_u.afs.link);
fs/afs/flock.c
590
ASSERTCMP(vnode->pending_locks.next, ==, &fl->fl_u.afs.link);
fs/afs/flock.c
624
list_del_init(&fl->fl_u.afs.link);
fs/afs/flock.c
688
list_del_init(&fl->fl_u.afs.link);
fs/afs/flock.c
854
list_add(&new->fl_u.afs.link, &fl->fl_u.afs.link);
fs/afs/flock.c
871
list_del_init(&fl->fl_u.afs.link);
fs/afs/flock.c
95
list_for_each_entry_safe(p, _p, &vnode->pending_locks, fl_u.afs.link) {
fs/afs/flock.c
99
list_move_tail(&p->fl_u.afs.link, &vnode->granted_locks);
fs/afs/fs_operation.c
122
list_add_tail(&myself.link, &vnode->io_lock_waiters);
fs/afs/fs_operation.c
143
list_del(&myself.link);
fs/afs/fs_operation.c
53
struct list_head link;
fs/afs/fs_operation.c
67
struct afs_io_locker, link);
fs/afs/fs_operation.c
69
list_del(&locker->link);
fs/afs/fs_operation.c
94
list_add_tail(&myself.link, &vnode->io_lock_waiters);
fs/bad_inode.c
167
.link = bad_inode_link,
fs/befs/linuxvfs.c
478
char *link = folio_address(folio);
fs/befs/linuxvfs.c
487
if (befs_read_lsymlink(sb, data, link, len) != len) {
fs/befs/linuxvfs.c
491
link[len - 1] = '\0';
fs/bfs/dir.c
262
.link = bfs_link,
fs/btrfs/free-space-cache.c
2642
goto link;
fs/btrfs/free-space-cache.c
2656
link:
fs/btrfs/inode.c
10686
.link = btrfs_link,
fs/ceph/dir.c
2250
.link = ceph_link,
fs/coda/dir.c
562
.link = coda_link,
fs/coda/upcall.c
387
offset = INSIZE(link);
fs/coda/upcall.c
388
insize = max_t(unsigned int, offset + len + 1, OUTSIZE(link));
fs/crypto/hooks.c
455
const char *link;
fs/crypto/hooks.c
463
link = READ_ONCE(inode->i_link);
fs/crypto/hooks.c
464
if (!link) {
fs/crypto/hooks.c
465
link = inode->i_op->get_link(dentry, inode, &done);
fs/crypto/hooks.c
466
if (IS_ERR(link))
fs/crypto/hooks.c
467
return PTR_ERR(link);
fs/crypto/hooks.c
469
stat->size = strlen(link);
fs/debugfs/inode.c
668
char *link = kstrdup(target, GFP_KERNEL);
fs/debugfs/inode.c
669
if (!link)
fs/debugfs/inode.c
674
kfree(link);
fs/debugfs/inode.c
682
kfree(link);
fs/debugfs/inode.c
687
inode->i_link = link;
fs/ecryptfs/inode.c
1155
.link = ecryptfs_link,
fs/ecryptfs/inode.c
643
const char *link;
fs/ecryptfs/inode.c
647
link = vfs_get_link(lower_dentry, &done);
fs/ecryptfs/inode.c
648
if (IS_ERR(link))
fs/ecryptfs/inode.c
649
return ERR_CAST(link);
fs/ecryptfs/inode.c
652
link, strlen(link));
fs/efs/symlink.c
17
char *link = folio_address(folio);
fs/efs/symlink.c
32
memcpy(link, bh->b_data, (size > EFS_BLOCKSIZE) ? EFS_BLOCKSIZE : size);
fs/efs/symlink.c
38
memcpy(link + EFS_BLOCKSIZE, bh->b_data, size - EFS_BLOCKSIZE);
fs/efs/symlink.c
41
link[size] = '\0';
fs/erofs/inode.c
14
char *link;
fs/erofs/inode.c
22
link = kmemdup_nul(bptr + ofs, inode->i_size, GFP_KERNEL);
fs/erofs/inode.c
23
if (!link)
fs/erofs/inode.c
25
if (unlikely(!inode->i_size || strlen(link) != inode->i_size)) {
fs/erofs/inode.c
28
kfree(link);
fs/erofs/inode.c
31
inode_set_cached_link(inode, link, inode->i_size);
fs/ext2/namei.c
410
.link = ext2_link,
fs/ext4/inline.c
1514
void *link;
fs/ext4/inline.c
1522
link = kmalloc(inline_size + 1, GFP_NOFS);
fs/ext4/inline.c
1523
if (!link)
fs/ext4/inline.c
1526
ret = ext4_read_inline_data(inode, link, inline_size, &iloc);
fs/ext4/inline.c
1528
kfree(link);
fs/ext4/inline.c
1531
nd_terminate_link(link, inode->i_size, ret);
fs/ext4/inline.c
1534
link = ERR_PTR(ret);
fs/ext4/inline.c
1536
return link;
fs/ext4/namei.c
4215
.link = ext4_link,
fs/f2fs/namei.c
1355
.link = f2fs_link,
fs/f2fs/namei.c
623
const char *link = page_get_link(dentry, inode, done);
fs/f2fs/namei.c
625
if (!IS_ERR(link) && !*link) {
fs/f2fs/namei.c
629
link = ERR_PTR(-ENOENT);
fs/f2fs/namei.c
631
return link;
fs/fuse/dir.c
1131
struct dentry *entry, const char *link)
fs/fuse/dir.c
1134
unsigned len = strlen(link) + 1;
fs/fuse/dir.c
1143
args.in_args[2].value = link;
fs/fuse/dir.c
1824
char *link;
fs/fuse/dir.c
1844
link = folio_address(folio);
fs/fuse/dir.c
1845
link[res] = '\0';
fs/fuse/dir.c
2407
.link = fuse_link,
fs/fuse/file.c
2686
struct rb_node **link = &fc->polled_files.rb_node;
fs/fuse/file.c
2689
while (*link) {
fs/fuse/file.c
2692
last = *link;
fs/fuse/file.c
2696
link = &last->rb_left;
fs/fuse/file.c
2698
link = &last->rb_right;
fs/fuse/file.c
2700
return link;
fs/fuse/file.c
2705
return link;
fs/fuse/file.c
2719
struct rb_node **link, *parent;
fs/fuse/file.c
2721
link = fuse_find_polled_node(fc, ff->kh, &parent);
fs/fuse/file.c
2722
BUG_ON(*link);
fs/fuse/file.c
2723
rb_link_node(&ff->polled_node, parent, link);
fs/fuse/file.c
2781
struct rb_node **link;
fs/fuse/file.c
2785
link = fuse_find_polled_node(fc, kh, NULL);
fs/fuse/file.c
2786
if (*link) {
fs/fuse/file.c
2789
ff = rb_entry(*link, struct fuse_file, polled_node);
fs/fuse/fuse_i.h
501
void (*send_forget)(struct fuse_iqueue *fiq, struct fuse_forget_link *link);
fs/fuse/virtio_fs.c
1234
static void virtio_fs_send_forget(struct fuse_iqueue *fiq, struct fuse_forget_link *link)
fs/fuse/virtio_fs.c
1248
.nodeid = link->forget_one.nodeid,
fs/fuse/virtio_fs.c
1253
.nlookup = link->forget_one.nlookup,
fs/fuse/virtio_fs.c
1257
kfree(link);
fs/gfs2/inode.c
2309
.link = gfs2_link,
fs/hfsplus/dir.c
612
.link = hfsplus_link,
fs/hostfs/hostfs_kern.c
139
static char *follow_link(char *link)
fs/hostfs/hostfs_kern.c
150
n = hostfs_do_readlink(link, name, PATH_MAX);
fs/hostfs/hostfs_kern.c
161
end = strrchr(link, '/');
fs/hostfs/hostfs_kern.c
167
resolved = kasprintf(GFP_KERNEL, "%s%s", link, name);
fs/hostfs/hostfs_kern.c
884
.link = hostfs_link,
fs/hostfs/hostfs_kern.c
899
char *link;
fs/hostfs/hostfs_kern.c
902
link = kmalloc(PATH_MAX, GFP_KERNEL);
fs/hostfs/hostfs_kern.c
903
if (link) {
fs/hostfs/hostfs_kern.c
907
err = hostfs_do_readlink(path, link, PATH_MAX);
fs/hostfs/hostfs_kern.c
913
kfree(link);
fs/hostfs/hostfs_kern.c
920
set_delayed_call(done, kfree_link, link);
fs/hostfs/hostfs_kern.c
921
return link;
fs/hostfs/hostfs_user.c
342
err = link(to, from);
fs/hpfs/namei.c
481
char *link = folio_address(folio);
fs/hpfs/namei.c
491
err = hpfs_read_ea(i->i_sb, fnode, "SYMLINK", link, PAGE_SIZE);
fs/hugetlbfs/inode.c
1252
.link = simple_link,
fs/internal.h
58
int may_linkat(struct mnt_idmap *idmap, const struct path *link);
fs/isofs/rock.c
456
slp = &rr->u.SL.link;
fs/isofs/rock.c
612
slp = &rr->u.SL.link;
fs/isofs/rock.c
700
char *link = folio_address(folio);
fs/isofs/rock.c
703
char *rpnt = link;
fs/isofs/rock.c
763
link + (PAGE_SIZE - 1));
fs/isofs/rock.c
783
if (rpnt == link)
fs/isofs/rock.h
52
struct SL_component link;
fs/jffs2/dir.c
60
.link = jffs2_link,
fs/jffs2/nodelist.c
125
struct rb_node **link = &parent;
fs/jffs2/nodelist.c
129
while (*link) {
fs/jffs2/nodelist.c
130
parent = *link;
fs/jffs2/nodelist.c
134
link = &base->rb.rb_right;
fs/jffs2/nodelist.c
136
link = &base->rb.rb_left;
fs/jffs2/nodelist.c
143
rb_link_node(&newfrag->rb, &base->rb, link);
fs/jffs2/readinode.c
339
struct rb_node **link = &rii->tn_root.rb_node;
fs/jffs2/readinode.c
342
while (*link) {
fs/jffs2/readinode.c
343
parent = *link;
fs/jffs2/readinode.c
346
link = &insert_point->rb.rb_right;
fs/jffs2/readinode.c
349
link = &insert_point->rb.rb_left;
fs/jffs2/readinode.c
351
link = &insert_point->rb.rb_right;
fs/jffs2/readinode.c
353
rb_link_node(&tn->rb, &insert_point->rb, link);
fs/jffs2/readinode.c
405
struct rb_node **link;
fs/jffs2/readinode.c
411
link = &root->rb_node;
fs/jffs2/readinode.c
413
link = &parent->rb_left;
fs/jffs2/readinode.c
415
link = &parent->rb_right;
fs/jffs2/readinode.c
417
*link = node->rb_left;
fs/jffs2/readinode.c
426
struct rb_node **link = &ver_root->rb_node;
fs/jffs2/readinode.c
430
while (*link) {
fs/jffs2/readinode.c
431
parent = *link;
fs/jffs2/readinode.c
435
link = &parent->rb_left;
fs/jffs2/readinode.c
437
link = &parent->rb_right;
fs/jffs2/readinode.c
439
dbg_readinode("Link new node at %p (root is %p)\n", link, ver_root);
fs/jffs2/readinode.c
440
rb_link_node(&tn->rb, parent, link);
fs/jfs/jfs_incore.h
104
#define i_inline u.link._inline_sym
fs/jfs/jfs_incore.h
105
#define i_inline_ea u.link._inline_ea
fs/jfs/jfs_incore.h
106
#define i_inline_all u.link._inline_all
fs/jfs/jfs_incore.h
92
} link;
fs/jfs/namei.c
1526
.link = jfs_link,
fs/minix/namei.c
282
.link = minix_link,
fs/namei.c
1196
path_put(&last->link);
fs/namei.c
1294
audit_inode(nd->name, nd->stack[0].link.dentry, 0);
fs/namei.c
1355
int may_linkat(struct mnt_idmap *idmap, const struct path *link)
fs/namei.c
1357
struct inode *inode = link->dentry->d_inode;
fs/namei.c
1976
static int reserve_stack(struct nameidata *nd, struct path *link)
fs/namei.c
1991
bool grabbed_link = legitimize_path(nd, link, nd->next_seq);
fs/namei.c
2004
static noinline const char *pick_link(struct nameidata *nd, struct path *link,
fs/namei.c
2013
if (read_seqcount_retry(&link->dentry->d_seq, nd->next_seq))
fs/namei.c
2016
if (link->mnt == nd->path.mnt)
fs/namei.c
2017
mntget(link->mnt);
fs/namei.c
2020
error = reserve_stack(nd, link);
fs/namei.c
2023
path_put(link);
fs/namei.c
2027
last->link = *link;
fs/namei.c
2038
unlikely(link->mnt->mnt_flags & MNT_NOSYMFOLLOW))
fs/namei.c
2041
if (unlikely(atime_needs_update(&last->link, inode))) {
fs/namei.c
2046
touch_atime(&last->link);
fs/namei.c
2050
error = security_inode_follow_link(link->dentry, inode,
fs/namei.c
2063
res = get(link->dentry, inode, &last->done);
fs/namei.c
2065
res = get(link->dentry, inode, &last->done);
fs/namei.c
2597
const char *link;
fs/namei.c
2650
link = walk_component(nd, 0);
fs/namei.c
2653
link = walk_component(nd, WALK_MORE);
fs/namei.c
2655
if (unlikely(link)) {
fs/namei.c
2656
if (IS_ERR(link))
fs/namei.c
2657
return PTR_ERR(link);
fs/namei.c
2660
name = link;
fs/namei.c
5732
if (!dir->i_op->link)
fs/namei.c
5752
error = dir->i_op->link(old_dentry, dir, new_dentry);
fs/namei.c
5849
SYSCALL_DEFINE2(link, const char __user *, oldname, const char __user *, newname)
fs/namei.c
6197
int readlink_copy(char __user *buffer, int buflen, const char *link, int linklen)
fs/namei.c
6204
if (copy_to_user(buffer, link, copylen))
fs/namei.c
6223
const char *link;
fs/namei.c
6241
link = READ_ONCE(inode->i_link);
fs/namei.c
6242
if (!link) {
fs/namei.c
6243
link = inode->i_op->get_link(dentry, inode, &done);
fs/namei.c
6244
if (IS_ERR(link))
fs/namei.c
6245
return PTR_ERR(link);
fs/namei.c
6247
res = readlink_copy(buffer, buflen, link, strlen(link));
fs/namei.c
6354
const char *link;
fs/namei.c
6358
link = page_get_link(dentry, d_inode(dentry), &done);
fs/namei.c
6359
res = PTR_ERR(link);
fs/namei.c
6360
if (!IS_ERR(link))
fs/namei.c
6361
res = readlink_copy(buffer, buflen, link, strlen(link));
fs/namei.c
734
struct path link;
fs/namei.c
846
path_put(&nd->stack[i].link);
fs/namei.c
890
if (unlikely(!legitimize_path(nd, &last->link, last->seq))) {
fs/namespace.c
1077
struct rb_node **link = &ns->mounts.rb_node;
fs/namespace.c
1083
while (*link) {
fs/namespace.c
1084
parent = *link;
fs/namespace.c
1086
link = &parent->rb_left;
fs/namespace.c
1089
link = &parent->rb_right;
fs/namespace.c
1098
rb_link_node(&mnt->mnt_node, parent, link);
fs/nfs/dir.c
2701
error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name);
fs/nfs/nfs3proc.c
1045
.link = nfs_link,
fs/nfs/nfs3proc.c
1097
.link = nfs3_proc_link,
fs/nfs/nfs3xdr.c
2467
PROC(LINK, link, link, 0),
fs/nfs/nfs4proc.c
10590
.link = nfs_link,
fs/nfs/nfs4proc.c
10653
.link = nfs4_proc_link,
fs/nfs/proc.c
710
.link = nfs_link,
fs/nfs/proc.c
750
.link = nfs_proc_link,
fs/nfsd/nfs4proc.c
950
struct nfsd4_link *link = &u->link;
fs/nfsd/nfs4proc.c
954
link->li_name, link->li_namelen, &cstate->save_fh);
fs/nfsd/nfs4proc.c
956
set_change_info(&link->li_cinfo, &cstate->current_fh);
fs/nfsd/nfs4xdr.c
1012
struct nfsd4_link *link = &u->link;
fs/nfsd/nfs4xdr.c
1013
memset(link, 0, sizeof(*link));
fs/nfsd/nfs4xdr.c
1014
return nfsd4_decode_component4(argp, &link->li_name, &link->li_namelen);
fs/nfsd/nfs4xdr.c
4557
struct nfsd4_link *link = &u->link;
fs/nfsd/nfs4xdr.c
4560
return nfsd4_encode_change_info4(xdr, &link->li_cinfo);
fs/nfsd/vfs.c
1913
const char *link;
fs/nfsd/vfs.c
1930
link = vfs_get_link(path.dentry, &done);
fs/nfsd/vfs.c
1931
if (IS_ERR(link))
fs/nfsd/vfs.c
1932
return nfserrno(PTR_ERR(link));
fs/nfsd/vfs.c
1934
len = strlen(link);
fs/nfsd/vfs.c
1937
memcpy(buf, link, *lenp);
fs/nfsd/xdr.h
136
struct nfsd_linkargs link;
fs/nfsd/xdr4.h
237
} link; /* NF4LNK */
fs/nfsd/xdr4.h
252
#define cr_datalen u.link.datalen
fs/nfsd/xdr4.h
253
#define cr_data u.link.data
fs/nfsd/xdr4.h
254
#define cr_first u.link.first
fs/nfsd/xdr4.h
837
struct nfsd4_link link;
fs/nilfs2/namei.c
565
.link = nilfs_link,
fs/ntfs3/namei.c
508
.link = ntfs_link,
fs/ocfs2/namei.c
2932
.link = ocfs2_link,
fs/ocfs2/symlink.c
61
const char *link;
fs/ocfs2/symlink.c
70
link = (char *) fe->id2.i_symlink;
fs/ocfs2/symlink.c
72
len = strnlen(link, ocfs2_fast_symlink_chars(inode->i_sb));
fs/ocfs2/symlink.c
73
memcpy_to_folio(folio, 0, link, len + 1);
fs/overlayfs/copy_up.c
1177
ctx.link = vfs_get_link(ctx.lowerpath.dentry, &done);
fs/overlayfs/copy_up.c
1178
if (IS_ERR(ctx.link))
fs/overlayfs/copy_up.c
1179
return PTR_ERR(ctx.link);
fs/overlayfs/copy_up.c
583
const char *link;
fs/overlayfs/copy_up.c
770
.link = c->link
fs/overlayfs/dir.c
100
link = ovl_start_creating_temp(ofs, workdir);
fs/overlayfs/dir.c
101
if (IS_ERR(link))
fs/overlayfs/dir.c
102
return link;
fs/overlayfs/dir.c
103
err = ovl_do_link(ofs, ofs->whiteout, wdir, link);
fs/overlayfs/dir.c
105
whiteout = dget(link);
fs/overlayfs/dir.c
106
end_creating(link);
fs/overlayfs/dir.c
1467
.link = ovl_link,
fs/overlayfs/dir.c
204
err = ovl_do_symlink(ofs, dir, newdentry, attr->link);
fs/overlayfs/dir.c
678
const char *link)
fs/overlayfs/dir.c
684
.link = link,
fs/overlayfs/dir.c
742
struct dentry *dentry, const char *link)
fs/overlayfs/dir.c
744
return ovl_create_object(dentry, S_IFLNK, 0, link);
fs/overlayfs/dir.c
81
struct dentry *whiteout, *link;
fs/overlayfs/overlayfs.h
904
const char *link;
fs/overlayfs/readdir.c
100
struct rb_node ***link,
fs/overlayfs/readdir.c
104
struct rb_node **newp = *link;
fs/overlayfs/readdir.c
120
*link = newp;
fs/proc/proc_sysctl.c
1182
struct ctl_table *link_table, *link;
fs/proc/proc_sysctl.c
1206
link = link_table;
fs/proc/proc_sysctl.c
1211
link->procname = link_name;
fs/proc/proc_sysctl.c
1212
link->mode = S_IFLNK|S_IRWXUGO;
fs/proc/proc_sysctl.c
1213
link->data = head->root;
fs/proc/proc_sysctl.c
1215
link++;
fs/proc/proc_sysctl.c
1229
const struct ctl_table *entry, *link;
fs/proc/proc_sysctl.c
1238
link = find_entry(&tmp_head, dir, procname, strlen(procname));
fs/proc/proc_sysctl.c
1239
if (!link)
fs/proc/proc_sysctl.c
1241
if (S_ISDIR(link->mode) && S_ISDIR(entry->mode))
fs/proc/proc_sysctl.c
1243
if (S_ISLNK(link->mode) && (link->data == link_root))
fs/proc/proc_sysctl.c
1251
link = find_entry(&tmp_head, dir, procname, strlen(procname));
fs/proc/proc_sysctl.c
1491
const struct ctl_table *link;
fs/proc/proc_sysctl.c
1494
link = find_entry(&link_head, core_parent, name, strlen(name));
fs/proc/proc_sysctl.c
1495
if (link &&
fs/proc/proc_sysctl.c
1496
((S_ISDIR(link->mode) && S_ISDIR(entry->mode)) ||
fs/proc/proc_sysctl.c
1497
(S_ISLNK(link->mode) && (link->data == root)))) {
fs/qnx4/dir.c
53
ino = ( le32_to_cpu(de->link.dl_inode_blk) - 1 ) *
fs/qnx4/dir.c
55
de->link.dl_inode_ndx;
fs/qnx4/qnx4.h
101
*size = sizeof(de->link.dl_fname);
fs/qnx4/qnx4.h
82
struct qnx4_link_info link;
fs/ramfs/inode.c
192
.link = simple_link,
fs/smb/client/cifsfs.c
1205
.link = cifs_hardlink,
fs/sysfs/group.c
473
struct kernfs_node *link;
fs/sysfs/group.c
497
link = kernfs_create_link(kobj->sd, symlink_name, entry);
fs/sysfs/group.c
498
if (PTR_ERR(link) == -EEXIST)
fs/sysfs/group.c
503
return PTR_ERR_OR_ZERO(link);
fs/ubifs/dir.c
1745
.link = ubifs_link,
fs/udf/namei.c
1020
.link = udf_link,
fs/ufs/namei.c
323
.link = ufs_link,
fs/vboxsf/file.c
364
char *link;
fs/vboxsf/file.c
374
link = kzalloc(PATH_MAX, GFP_KERNEL);
fs/vboxsf/file.c
375
if (!link) {
fs/vboxsf/file.c
380
err = vboxsf_readlink(sbi->root, path, PATH_MAX, link);
fs/vboxsf/file.c
383
kfree(link);
fs/vboxsf/file.c
387
set_delayed_call(done, kfree_link, link);
fs/vboxsf/file.c
388
return link;
fs/xfs/libxfs/xfs_symlink_remote.c
241
char *link)
fs/xfs/libxfs/xfs_symlink_remote.c
295
memcpy(link + offset, cur_chunk, byte_cnt);
fs/xfs/libxfs/xfs_symlink_remote.c
304
link[ip->i_disk_size] = '\0';
fs/xfs/libxfs/xfs_symlink_remote.h
22
int xfs_symlink_remote_read(struct xfs_inode *ip, char *link);
fs/xfs/xfs_iops.c
1297
.link = xfs_vn_link,
fs/xfs/xfs_iops.c
1325
.link = xfs_vn_link,
fs/xfs/xfs_iops.c
515
char *link;
fs/xfs/xfs_iops.c
521
link = kmalloc(XFS_SYMLINK_MAXLEN+1, GFP_KERNEL);
fs/xfs/xfs_iops.c
522
if (!link)
fs/xfs/xfs_iops.c
525
error = xfs_readlink(XFS_I(d_inode(dentry)), link);
fs/xfs/xfs_iops.c
529
set_delayed_call(done, kfree_link, link);
fs/xfs/xfs_iops.c
530
return link;
fs/xfs/xfs_iops.c
533
kfree(link);
fs/xfs/xfs_symlink.c
34
char *link)
fs/xfs/xfs_symlink.c
69
memcpy(link, ip->i_df.if_data, pathlen + 1);
fs/xfs/xfs_symlink.c
72
error = xfs_symlink_remote_read(ip, link);
fs/xfs/xfs_symlink.h
13
int xfs_readlink(struct xfs_inode *ip, char *link);
include/drm/drm_buddy.h
50
struct list_head link;
include/drm/drm_file.h
148
struct list_head link;
include/drm/drm_pagemap_util.h
28
struct list_head link;
include/drm/ttm/ttm_resource.h
79
struct list_head link;
include/drm/ttm/ttm_resource.h
92
INIT_LIST_HEAD(&item->link);
include/keys/asymmetric-parser.h
19
struct list_head link;
include/linux/bnge/hsi.h
4738
u8 link;
include/linux/bnxt/hsi.h
4514
u8 link;
include/linux/bpf-cgroup.h
101
struct bpf_link link;
include/linux/bpf-cgroup.h
108
struct bpf_cgroup_link *link;
include/linux/bpf.h
1458
int bpf_trampoline_link_prog(struct bpf_tramp_link *link,
include/linux/bpf.h
1461
int bpf_trampoline_unlink_prog(struct bpf_tramp_link *link,
include/linux/bpf.h
1545
static inline int bpf_trampoline_link_prog(struct bpf_tramp_link *link,
include/linux/bpf.h
1551
static inline int bpf_trampoline_unlink_prog(struct bpf_tramp_link *link,
include/linux/bpf.h
1847
void (*release)(struct bpf_link *link);
include/linux/bpf.h
1851
void (*dealloc)(struct bpf_link *link);
include/linux/bpf.h
1862
void (*dealloc_deferred)(struct bpf_link *link);
include/linux/bpf.h
1863
int (*detach)(struct bpf_link *link);
include/linux/bpf.h
1864
int (*update_prog)(struct bpf_link *link, struct bpf_prog *new_prog,
include/linux/bpf.h
1866
void (*show_fdinfo)(const struct bpf_link *link, struct seq_file *seq);
include/linux/bpf.h
1867
int (*fill_link_info)(const struct bpf_link *link,
include/linux/bpf.h
1869
int (*update_map)(struct bpf_link *link, struct bpf_map *new_map,
include/linux/bpf.h
1875
struct bpf_link link;
include/linux/bpf.h
1881
struct bpf_tramp_link link;
include/linux/bpf.h
1886
struct bpf_tramp_link link;
include/linux/bpf.h
1892
struct bpf_tracing_link link;
include/linux/bpf.h
1897
struct bpf_link link;
include/linux/bpf.h
1903
struct bpf_link *link;
include/linux/bpf.h
1996
int (*reg)(void *kdata, struct bpf_link *link);
include/linux/bpf.h
1997
void (*unreg)(void *kdata, struct bpf_link *link);
include/linux/bpf.h
1998
int (*update)(void *kdata, void *old_kdata, struct bpf_link *link);
include/linux/bpf.h
2098
struct bpf_tramp_link *link,
include/linux/bpf.h
2196
if (fentries.links[i]->link.prog->expected_attach_type == BPF_TRACE_FSESSION)
include/linux/bpf.h
2203
static inline bool bpf_prog_calls_session_cookie(struct bpf_tramp_link *link)
include/linux/bpf.h
2205
return link->link.prog->call_session_cookie;
include/linux/bpf.h
2761
void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
include/linux/bpf.h
2764
void bpf_link_init_sleepable(struct bpf_link *link, enum bpf_link_type type,
include/linux/bpf.h
2767
int bpf_link_prime(struct bpf_link *link, struct bpf_link_primer *primer);
include/linux/bpf.h
2770
void bpf_link_inc(struct bpf_link *link);
include/linux/bpf.h
2771
struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link);
include/linux/bpf.h
2772
void bpf_link_put(struct bpf_link *link);
include/linux/bpf.h
2773
int bpf_link_new_fd(struct bpf_link *link);
include/linux/bpf.h
2886
int bpf_iter_new_fd(struct bpf_link *link);
include/linux/bpf.h
2887
bool bpf_link_is_iter(struct bpf_link *link);
include/linux/bpf.h
3120
static inline void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
include/linux/bpf.h
3126
static inline void bpf_link_init_sleepable(struct bpf_link *link, enum bpf_link_type type,
include/linux/bpf.h
3132
static inline int bpf_link_prime(struct bpf_link *link,
include/linux/bpf.h
3147
static inline void bpf_link_inc(struct bpf_link *link)
include/linux/bpf.h
3151
static inline struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link)
include/linux/bpf.h
3156
static inline void bpf_link_put(struct bpf_link *link)
include/linux/bpf_mprog.h
119
t.link = cp->link; \
include/linux/bpf_mprog.h
136
struct bpf_link *link;
include/linux/bpf_mprog.h
155
struct bpf_link *link;
include/linux/bpf_mprog.h
219
if (!tuple->link)
include/linux/bpf_mprog.h
317
cp->link = tuple->link;
include/linux/bpf_mprog.h
322
struct bpf_prog *prog_new, struct bpf_link *link,
include/linux/bpf_mprog.h
328
struct bpf_prog *prog, struct bpf_link *link,
include/linux/comedi/comedi_pcmcia.h
24
int comedi_pcmcia_auto_config(struct pcmcia_device *link,
include/linux/comedi/comedi_pcmcia.h
26
void comedi_pcmcia_auto_unconfig(struct pcmcia_device *link);
include/linux/coresight.h
205
struct coresight_sysfs_link *link;
include/linux/device.h
1237
void device_link_del(struct device_link *link);
include/linux/device.h
1243
static inline bool device_link_test(const struct device_link *link, u32 flags)
include/linux/device.h
1245
return !!(link->flags & flags);
include/linux/dynamic_debug.h
87
struct list_head link;
include/linux/edac.h
500
struct list_head link; /* for global list of mem_ctl_info structs */
include/linux/filelock.h
124
struct list_head link; /* link in AFS vnode's pending_locks list */
include/linux/firewire.h
123
struct list_head link;
include/linux/firewire.h
341
struct list_head link;
include/linux/firewire.h
348
struct list_head link;
include/linux/firewire.h
372
struct list_head link;
include/linux/firewire.h
480
struct list_head link;
include/linux/fs.h
2011
int (*link) (struct dentry *,struct inode *,struct dentry *);
include/linux/fs.h
951
static inline void inode_set_cached_link(struct inode *inode, char *link, int linklen)
include/linux/fs.h
953
VFS_WARN_ON_INODE(strlen(link) != linklen, inode);
include/linux/fs.h
955
inode->i_link = link;
include/linux/hsi/hsi.h
186
struct list_head link;
include/linux/hugetlb.h
89
struct list_head link;
include/linux/interval_tree_generic.h
41
struct rb_node **link = &root->rb_root.rb_node, *rb_parent = NULL; \
include/linux/interval_tree_generic.h
46
while (*link) { \
include/linux/interval_tree_generic.h
47
rb_parent = *link; \
include/linux/interval_tree_generic.h
52
link = &parent->ITRB.rb_left; \
include/linux/interval_tree_generic.h
54
link = &parent->ITRB.rb_right; \
include/linux/interval_tree_generic.h
60
rb_link_node(&node->ITRB, rb_parent, link); \
include/linux/io_uring_types.h
254
struct io_submit_link link;
include/linux/io_uring_types.h
761
struct io_kiocb *link;
include/linux/iommu.h
1442
static inline int iommu_device_link(struct device *dev, struct device *link)
include/linux/iommu.h
1447
static inline void iommu_device_unlink(struct device *dev, struct device *link)
include/linux/iommu.h
867
int iommu_device_link(struct iommu_device *iommu, struct device *link);
include/linux/iommu.h
868
void iommu_device_unlink(struct iommu_device *iommu, struct device *link);
include/linux/ipmi.h
269
struct list_head link;
include/linux/ipmi.h
40
struct list_head link;
include/linux/ipmi_smi.h
108
struct list_head link;
include/linux/irqdomain.h
169
struct list_head link;
include/linux/key-type.h
164
struct list_head link; /* link in types list */
include/linux/kvm_host.h
1778
struct hlist_node link;
include/linux/kvm_host.h
239
struct list_head link;
include/linux/kvm_host.h
688
struct hlist_node link;
include/linux/kvm_irqfd.h
36
struct list_head link;
include/linux/libata.h
1127
extern int ata_std_prereset(struct ata_link *link, unsigned long deadline);
include/linux/libata.h
1128
extern int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
include/linux/libata.h
1129
int (*check_ready)(struct ata_link *link));
include/linux/libata.h
1130
extern void ata_std_postreset(struct ata_link *link, unsigned int *classes);
include/linux/libata.h
1161
extern bool ata_link_online(struct ata_link *link);
include/linux/libata.h
1162
extern bool ata_link_offline(struct ata_link *link);
include/linux/libata.h
1227
int ata_set_mode(struct ata_link *link, struct ata_device **r_failed_dev);
include/linux/libata.h
1248
extern int sata_scr_valid(struct ata_link *link);
include/linux/libata.h
1249
extern int sata_scr_read(struct ata_link *link, int reg, u32 *val);
include/linux/libata.h
1250
extern int sata_scr_write(struct ata_link *link, int reg, u32 val);
include/linux/libata.h
1251
extern int sata_scr_write_flush(struct ata_link *link, int reg, u32 val);
include/linux/libata.h
1252
extern int sata_set_spd(struct ata_link *link);
include/linux/libata.h
1253
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
include/linux/libata.h
1255
extern int sata_link_hardreset(struct ata_link *link,
include/linux/libata.h
1258
extern int sata_link_resume(struct ata_link *link, const unsigned int *params,
include/linux/libata.h
1260
extern void ata_eh_analyze_ncq_error(struct ata_link *link);
include/linux/libata.h
1267
static inline int sata_scr_valid(struct ata_link *link) { return 0; }
include/linux/libata.h
1268
static inline int sata_scr_read(struct ata_link *link, int reg, u32 *val)
include/linux/libata.h
1272
static inline int sata_scr_write(struct ata_link *link, int reg, u32 val)
include/linux/libata.h
1276
static inline int sata_scr_write_flush(struct ata_link *link, int reg, u32 val)
include/linux/libata.h
1280
static inline int sata_set_spd(struct ata_link *link) { return -EOPNOTSUPP; }
include/linux/libata.h
1281
static inline int sata_std_hardreset(struct ata_link *link, unsigned int *class,
include/linux/libata.h
1286
static inline int sata_link_hardreset(struct ata_link *link,
include/linux/libata.h
1296
static inline int sata_link_resume(struct ata_link *link,
include/linux/libata.h
1302
static inline void ata_eh_analyze_ncq_error(struct ata_link *link) { }
include/linux/libata.h
1304
extern int sata_link_debounce(struct ata_link *link,
include/linux/libata.h
1306
extern int sata_link_scr_lpm(struct ata_link *link, enum ata_lpm_policy policy,
include/linux/libata.h
1321
extern bool sata_lpm_ignore_phy_events(struct ata_link *link);
include/linux/libata.h
1411
extern int ata_link_abort(struct ata_link *link);
include/linux/libata.h
1424
extern int ata_link_nr_enabled(struct ata_link *link);
include/linux/libata.h
1517
static inline bool ata_is_host_link(const struct ata_link *link)
include/linux/libata.h
1519
return link == &link->ap->link || link == link->ap->slave_link;
include/linux/libata.h
1532
static inline bool ata_is_host_link(const struct ata_link *link)
include/linux/libata.h
1538
static inline int sata_srst_pmp(struct ata_link *link)
include/linux/libata.h
1540
if (sata_pmp_supported(link->ap) && ata_is_host_link(link))
include/linux/libata.h
1542
return link->pmp;
include/linux/libata.h
1559
#define ata_link_printk(level, link, fmt, ...) \
include/linux/libata.h
1561
if (sata_pmp_attached((link)->ap) || \
include/linux/libata.h
1562
(link)->ap->slave_link) \
include/linux/libata.h
1564
(link)->ap->print_id, \
include/linux/libata.h
1565
(link)->pmp, \
include/linux/libata.h
1569
(link)->ap->print_id, \
include/linux/libata.h
1573
#define ata_link_err(link, fmt, ...) \
include/linux/libata.h
1574
ata_link_printk(err, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1575
#define ata_link_warn(link, fmt, ...) \
include/linux/libata.h
1576
ata_link_printk(warn, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1577
#define ata_link_notice(link, fmt, ...) \
include/linux/libata.h
1578
ata_link_printk(notice, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1579
#define ata_link_info(link, fmt, ...) \
include/linux/libata.h
1580
ata_link_printk(info, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1581
#define ata_link_dbg(link, fmt, ...) \
include/linux/libata.h
1582
ata_link_printk(debug, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1586
(dev)->link->ap->print_id, \
include/linux/libata.h
1587
(dev)->link->pmp + (dev)->devno, \
include/linux/libata.h
1603
(dev)->link->ap->print_id, \
include/linux/libata.h
1604
(dev)->link->pmp + (dev)->devno, \
include/linux/libata.h
1720
static inline int ata_link_max_devices(const struct ata_link *link)
include/linux/libata.h
1722
if (ata_is_host_link(link) && link->ap->flags & ATA_FLAG_SLAVE_POSS)
include/linux/libata.h
1727
static inline int ata_link_active(struct ata_link *link)
include/linux/libata.h
1729
return ata_tag_valid(link->active_tag) || link->sactive;
include/linux/libata.h
1759
extern struct ata_link *ata_link_next(struct ata_link *link,
include/linux/libata.h
1764
struct ata_link *link,
include/linux/libata.h
1781
#define ata_for_each_link(link, ap, mode) \
include/linux/libata.h
1782
for ((link) = ata_link_next(NULL, (ap), ATA_LITER_##mode); (link); \
include/linux/libata.h
1783
(link) = ata_link_next((link), (ap), ATA_LITER_##mode))
include/linux/libata.h
1785
#define ata_for_each_dev(dev, link, mode) \
include/linux/libata.h
1786
for ((dev) = ata_dev_next(NULL, (link), ATA_DITER_##mode); (dev); \
include/linux/libata.h
1787
(dev) = ata_dev_next((dev), (link), ATA_DITER_##mode))
include/linux/libata.h
1886
tf->ctl = dev->link->ap->ctl;
include/linux/libata.h
2030
extern int ata_sff_wait_ready(struct ata_link *link, unsigned long deadline);
include/linux/libata.h
2045
extern void ata_sff_queue_pio_task(struct ata_link *link, unsigned long delay);
include/linux/libata.h
2054
extern int ata_sff_prereset(struct ata_link *link, unsigned long deadline);
include/linux/libata.h
2057
extern int ata_sff_wait_after_reset(struct ata_link *link, unsigned int devmask,
include/linux/libata.h
2059
extern int ata_sff_softreset(struct ata_link *link, unsigned int *classes,
include/linux/libata.h
2061
extern int sata_sff_hardreset(struct ata_link *link, unsigned int *class,
include/linux/libata.h
2063
extern void ata_sff_postreset(struct ata_link *link, unsigned int *classes);
include/linux/libata.h
2165
static inline int sata_sff_hardreset(struct ata_link *link, unsigned int *class,
include/linux/libata.h
541
typedef int (*ata_prereset_fn_t)(struct ata_link *link, unsigned long deadline);
include/linux/libata.h
542
typedef int (*ata_reset_fn_t)(struct ata_link *link, unsigned int *classes,
include/linux/libata.h
544
typedef void (*ata_postreset_fn_t)(struct ata_link *link, unsigned int *classes);
include/linux/libata.h
720
struct ata_link *link;
include/linux/libata.h
905
struct ata_link link; /* host default link */
include/linux/libata.h
976
int (*set_mode)(struct ata_link *link, struct ata_device **r_failed_dev);
include/linux/libata.h
995
int (*scr_read)(struct ata_link *link, unsigned int sc_reg, u32 *val);
include/linux/libata.h
996
int (*scr_write)(struct ata_link *link, unsigned int sc_reg, u32 val);
include/linux/libata.h
999
int (*set_lpm)(struct ata_link *link, enum ata_lpm_policy policy,
include/linux/mroute_base.h
36
int link;
include/linux/netdevice.h
1007
struct bpf_xdp_link *link;
include/linux/nfs_xdr.h
1812
int (*link) (struct inode *, struct inode *, const struct qstr *);
include/linux/pci-pwrctrl.h
48
struct device_link *link;
include/linux/phy.h
696
unsigned link:1;
include/linux/phy_fixed.h
10
bool link:1;
include/linux/phylink.h
128
unsigned int link:1;
include/linux/phylink.h
766
int phylink_ethtool_get_eee(struct phylink *link, struct ethtool_keee *eee);
include/linux/phylink.h
767
int phylink_ethtool_set_eee(struct phylink *link, struct ethtool_keee *eee);
include/linux/pm_runtime.h
325
static inline void pm_runtime_drop_link(struct device_link *link) {}
include/linux/pm_runtime.h
326
static inline void pm_runtime_release_supplier(struct device_link *link) {}
include/linux/pm_runtime.h
95
extern void pm_runtime_drop_link(struct device_link *link);
include/linux/pm_runtime.h
96
extern void pm_runtime_release_supplier(struct device_link *link);
include/linux/pnp.h
398
struct pnp_driver link;
include/linux/pnp.h
401
#define to_pnp_card_driver(drv) container_of(drv, struct pnp_card_driver, link)
include/linux/preempt.h
350
struct hlist_node link;
include/linux/preempt.h
363
notifier->link.next = NULL;
include/linux/preempt.h
364
notifier->link.pprev = NULL;
include/linux/qed/qed_if.h
819
void (*link_update)(void *dev, struct qed_link_output *link);
include/linux/rbtree.h
196
struct rb_node **link = &tree->rb_root.rb_node;
include/linux/rbtree.h
200
while (*link) {
include/linux/rbtree.h
201
parent = *link;
include/linux/rbtree.h
203
link = &parent->rb_left;
include/linux/rbtree.h
205
link = &parent->rb_right;
include/linux/rbtree.h
210
rb_link_node(node, parent, link);
include/linux/rbtree.h
226
struct rb_node **link = &tree->rb_node;
include/linux/rbtree.h
229
while (*link) {
include/linux/rbtree.h
230
parent = *link;
include/linux/rbtree.h
232
link = &parent->rb_left;
include/linux/rbtree.h
234
link = &parent->rb_right;
include/linux/rbtree.h
237
rb_link_node(node, parent, link);
include/linux/rbtree.h
255
struct rb_node **link = &tree->rb_root.rb_node;
include/linux/rbtree.h
259
while (*link) {
include/linux/rbtree.h
260
parent = *link;
include/linux/rbtree.h
264
link = &parent->rb_left;
include/linux/rbtree.h
266
link = &parent->rb_right;
include/linux/rbtree.h
273
rb_link_node(node, parent, link);
include/linux/rbtree.h
291
struct rb_node **link = &tree->rb_node;
include/linux/rbtree.h
295
while (*link) {
include/linux/rbtree.h
296
parent = *link;
include/linux/rbtree.h
300
link = &parent->rb_left;
include/linux/rbtree.h
302
link = &parent->rb_right;
include/linux/rbtree.h
307
rb_link_node(node, parent, link);
include/linux/rbtree.h
327
struct rb_node **link = &tree->rb_node;
include/linux/rbtree.h
331
while (*link) {
include/linux/rbtree.h
332
parent = *link;
include/linux/rbtree.h
336
link = &parent->rb_left;
include/linux/rbtree.h
338
link = &parent->rb_right;
include/linux/rbtree.h
343
rb_link_node_rcu(node, parent, link);
include/linux/rbtree_augmented.h
68
struct rb_node **link = &tree->rb_root.rb_node;
include/linux/rbtree_augmented.h
72
while (*link) {
include/linux/rbtree_augmented.h
73
parent = *link;
include/linux/rbtree_augmented.h
75
link = &parent->rb_left;
include/linux/rbtree_augmented.h
77
link = &parent->rb_right;
include/linux/rbtree_augmented.h
82
rb_link_node(node, parent, link);
include/linux/rbtree_latch.h
80
struct rb_node **link = &root->rb_node;
include/linux/rbtree_latch.h
85
while (*link) {
include/linux/rbtree_latch.h
86
parent = *link;
include/linux/rbtree_latch.h
90
link = &parent->rb_left;
include/linux/rbtree_latch.h
92
link = &parent->rb_right;
include/linux/rbtree_latch.h
95
rb_link_node_rcu(node, parent, link);
include/linux/skmsg.h
103
struct list_head link;
include/linux/skmsg.h
465
static inline void sk_psock_free_link(struct sk_psock_link *link)
include/linux/skmsg.h
467
kfree(link);
include/linux/stm.h
132
int (*link)(struct stm_source_data *data);
include/linux/stm.h
99
int (*link)(struct stm_data *, unsigned int,
include/linux/thunderbolt.h
101
static inline unsigned int tb_phy_port_from_link(unsigned int link)
include/linux/thunderbolt.h
103
return (link - 1) / TB_LINKS_PER_PHY_PORT;
include/linux/thunderbolt.h
276
u8 link;
include/linux/trace_events.h
775
int bpf_probe_register(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link);
include/linux/trace_events.h
776
int bpf_probe_unregister(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link);
include/linux/trace_events.h
806
static inline int bpf_probe_register(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link)
include/linux/trace_events.h
810
static inline int bpf_probe_unregister(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link)
include/linux/trace_events.h
902
void bpf_trace_run1(struct bpf_raw_tp_link *link, u64 arg1);
include/linux/trace_events.h
903
void bpf_trace_run2(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2);
include/linux/trace_events.h
904
void bpf_trace_run3(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
906
void bpf_trace_run4(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
908
void bpf_trace_run5(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
910
void bpf_trace_run6(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
912
void bpf_trace_run7(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
914
void bpf_trace_run8(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
917
void bpf_trace_run9(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
920
void bpf_trace_run10(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
923
void bpf_trace_run11(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
926
void bpf_trace_run12(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/tty.h
229
struct tty_struct *link;
include/linux/usb/ljca.h
50
struct list_head link;
include/linux/user-return-notifier.h
12
struct hlist_node link;
include/linux/vhost_iotlb.h
9
struct list_head link;
include/media/ipu-bridge.h
136
u8 link;
include/media/ipu-bridge.h
76
u8 link;
include/media/media-device.h
403
#define media_device_for_each_link(link, mdev) \
include/media/media-device.h
404
list_for_each_entry(link, &(mdev)->links, graph_obj.list)
include/media/media-device.h
68
int (*link_notify)(struct media_link *link, u32 flags,
include/media/media-entity.h
1351
void __media_remove_intf_link(struct media_link *link);
include/media/media-entity.h
1360
void media_remove_intf_link(struct media_link *link);
include/media/media-entity.h
1432
struct media_link *link,
include/media/media-entity.h
1443
#define for_each_media_entity_data_link(entity, link) \
include/media/media-entity.h
1444
for (link = __media_entity_next_link(entity, NULL, \
include/media/media-entity.h
1446
link; \
include/media/media-entity.h
1447
link = __media_entity_next_link(entity, link, \
include/media/media-entity.h
284
int (*link_validate)(struct media_link *link);
include/media/media-entity.h
869
int __media_entity_setup_link(struct media_link *link, u32 flags);
include/media/media-entity.h
907
int media_entity_setup_link(struct media_link *link, u32 flags);
include/media/media-entity.h
93
struct list_head *link;
include/media/v4l2-fwnode.h
304
struct v4l2_fwnode_link *link);
include/media/v4l2-fwnode.h
313
void v4l2_fwnode_put_link(struct v4l2_fwnode_link *link);
include/media/v4l2-mc.h
193
int v4l2_pipeline_link_notify(struct media_link *link, u32 flags,
include/media/v4l2-mc.h
225
static inline int v4l2_pipeline_link_notify(struct media_link *link, u32 flags,
include/media/v4l2-subdev.h
1224
struct media_link *link,
include/media/v4l2-subdev.h
1245
int v4l2_subdev_link_validate(struct media_link *link);
include/media/v4l2-subdev.h
868
int (*link_validate)(struct v4l2_subdev *sd, struct media_link *link,
include/net/bluetooth/hci_core.h
779
struct hci_link *link;
include/net/bond_3ad.h
304
void bond_3ad_handle_link_change(struct slave *slave, char link);
include/net/bond_alb.h
157
void bond_alb_handle_link_change(struct bonding *bond, struct slave *slave, char link);
include/net/bonding.h
168
s8 link; /* one of BOND_LINK_XXXX */
include/net/bonding.h
410
if (tmp->link == BOND_LINK_UP)
include/net/bonding.h
412
else if (tmp->link == BOND_LINK_DOWN)
include/net/bonding.h
442
return bond_slave_is_up(slave) && slave->link == BOND_LINK_UP &&
include/net/bonding.h
622
slave->link = slave->link_new_state;
include/net/bonding.h
709
const char *bond_slave_link_status(s8 link);
include/net/dst_metadata.h
29
int link;
include/net/ip6_tunnel.h
23
int link; /* ifindex of underlying L2 interface */
include/net/ip_tunnels.h
149
int link;
include/net/ip_tunnels.h
419
int link, const unsigned long *flags,
include/net/llc_conn.h
64
u16 link; /* network layer link number */
include/net/mac80211.h
2147
#define for_each_vif_active_link(vif, link, link_id) \
include/net/mac80211.h
2151
(link = link_conf_dereference_check(vif, link_id)))
include/net/mac80211.h
2592
struct ieee80211_link_sta __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
include/net/mac80211.h
2608
rcu_dereference_protected((sta)->link[link_id], \
include/net/mac80211.h
2612
rcu_dereference_check((sta)->link[link_id], \
include/net/mac80211.h
2616
for (link_id = 0; link_id < ARRAY_SIZE((sta)->link); link_id++) \
include/net/pkt_cls.h
481
struct list_head link;
include/net/tcx.h
21
struct bpf_link link;
include/net/tcx.h
40
static inline struct tcx_link *tcx_link(const struct bpf_link *link)
include/net/tcx.h
42
return container_of(link, struct tcx_link, link);
include/net/xfrm.h
1116
int link; /* ifindex of underlying L2 interface */
include/scsi/libsas.h
406
return &dev->sata_dev.ap->link.device[0];
include/scsi/sas_ata.h
34
int smp_ata_check_ready_type(struct ata_link *link);
include/scsi/sas_ata.h
60
static inline int smp_ata_check_ready_type(struct ata_link *link)
include/sound/hdaudio_ext.h
109
#define hdac_ext_link_alt(link) ((link)->lcaps & AZX_ML_HDA_LCAP_ALT)
include/sound/hdaudio_ext.h
110
#define hdac_ext_link_ofls(link) ((link)->lcaps & AZX_ML_HDA_LCAP_OFLS)
include/sound/simple_card_utils.h
135
int link; /* number of link */
include/sound/simple_card_utils.h
259
struct snd_soc_dai_link *link = simple_priv_to_link(priv, i);
include/sound/simple_card_utils.h
266
dev_dbg(dev, "cpu num = %d\n", link->num_cpus);
include/sound/simple_card_utils.h
269
dev_dbg(dev, "codec num = %d\n", link->num_codecs);
include/sound/simple_card_utils.h
273
if (link->name)
include/sound/simple_card_utils.h
274
dev_dbg(dev, "link name = %s\n", link->name);
include/sound/simple_card_utils.h
275
if (link->dai_fmt)
include/sound/simple_card_utils.h
276
dev_dbg(dev, "link format = %04x\n", link->dai_fmt);
include/sound/simple_card_utils.h
277
if (link->playback_only)
include/sound/simple_card_utils.h
279
if (link->capture_only)
include/sound/soc-acpi.h
256
const struct snd_soc_acpi_link_adr *link,
include/sound/soc-topology.h
142
struct snd_soc_dai_link *link,
include/sound/soc.h
1025
struct snd_soc_dai_link *link);
include/sound/soc.h
1027
struct snd_soc_dai_link *link);
include/sound/soc.h
1100
#define for_each_card_prelinks(card, i, link) \
include/sound/soc.h
1102
((i) < (card)->num_links) && ((link) = &(card)->dai_link[i]); \
include/sound/soc.h
815
static inline int snd_soc_link_num_ch_map(const struct snd_soc_dai_link *link)
include/sound/soc.h
817
return max(link->num_cpus, link->num_codecs);
include/sound/soc.h
821
snd_soc_link_to_cpu(struct snd_soc_dai_link *link, int n) {
include/sound/soc.h
822
return &(link)->cpus[n];
include/sound/soc.h
826
snd_soc_link_to_codec(struct snd_soc_dai_link *link, int n) {
include/sound/soc.h
827
return &(link)->codecs[n];
include/sound/soc.h
831
snd_soc_link_to_platform(struct snd_soc_dai_link *link, int n) {
include/sound/soc.h
832
return &(link)->platforms[n];
include/sound/soc.h
835
#define for_each_link_codecs(link, i, codec) \
include/sound/soc.h
837
((i) < link->num_codecs) && \
include/sound/soc.h
838
((codec) = snd_soc_link_to_codec(link, i)); \
include/sound/soc.h
841
#define for_each_link_platforms(link, i, platform) \
include/sound/soc.h
843
((i) < link->num_platforms) && \
include/sound/soc.h
844
((platform) = snd_soc_link_to_platform(link, i)); \
include/sound/soc.h
847
#define for_each_link_cpus(link, i, cpu) \
include/sound/soc.h
849
((i) < link->num_cpus) && \
include/sound/soc.h
850
((cpu) = snd_soc_link_to_cpu(link, i)); \
include/sound/soc.h
853
#define for_each_link_ch_maps(link, i, ch_map) \
include/sound/soc.h
855
((i) < snd_soc_link_num_ch_map(link) && \
include/sound/soc.h
856
((ch_map) = link->ch_maps + i)); \
include/target/target_core_base.h
702
struct hlist_node link;
include/target/target_core_base.h
792
struct hlist_node link;
include/trace/events/ext4.h
2910
DEFINE_EVENT_CLASS_DENTRY(link);
include/trace/events/fsi.h
109
TP_PROTO(const struct fsi_master *master, int link),
include/trace/events/fsi.h
110
TP_ARGS(master, link),
include/trace/events/fsi.h
113
__field(int, link)
include/trace/events/fsi.h
117
__entry->link = link;
include/trace/events/fsi.h
12
TP_PROTO(const struct fsi_master *master, int link, int id,
include/trace/events/fsi.h
121
__entry->link
include/trace/events/fsi.h
14
TP_ARGS(master, link, id, addr, size),
include/trace/events/fsi.h
163
__field(int, link)
include/trace/events/fsi.h
17
__field(int, link)
include/trace/events/fsi.h
172
__entry->link = slave->link;
include/trace/events/fsi.h
180
__entry->link,
include/trace/events/fsi.h
189
TP_PROTO(const struct fsi_master *master, int link, uint32_t cfam_id),
include/trace/events/fsi.h
190
TP_ARGS(master, link, cfam_id),
include/trace/events/fsi.h
194
__field(int, link)
include/trace/events/fsi.h
200
__entry->link = link;
include/trace/events/fsi.h
206
__entry->link,
include/trace/events/fsi.h
216
__field(int, link)
include/trace/events/fsi.h
225
__entry->link = dev->slave->link;
include/trace/events/fsi.h
234
__entry->link,
include/trace/events/fsi.h
24
__entry->link = link;
include/trace/events/fsi.h
31
__entry->link,
include/trace/events/fsi.h
39
TP_PROTO(const struct fsi_master *master, int link, int id,
include/trace/events/fsi.h
41
TP_ARGS(master, link, id, addr, size, data),
include/trace/events/fsi.h
44
__field(int, link)
include/trace/events/fsi.h
52
__entry->link = link;
include/trace/events/fsi.h
61
__entry->link,
include/trace/events/fsi.h
70
TP_PROTO(const struct fsi_master *master, int link, int id,
include/trace/events/fsi.h
73
TP_ARGS(master, link, id, addr, size, write, data, ret),
include/trace/events/fsi.h
76
__field(int, link)
include/trace/events/fsi.h
86
__entry->link = link;
include/trace/events/fsi.h
98
__entry->link,
include/trace/events/io_uring.h
285
TP_PROTO(struct io_kiocb *req, struct io_kiocb *link),
include/trace/events/io_uring.h
287
TP_ARGS(req, link),
include/trace/events/io_uring.h
294
__field( void *, link )
include/trace/events/io_uring.h
304
__entry->link = link;
include/trace/events/io_uring.h
311
__get_str(op_str), __entry->link)
include/trace/events/libata.h
211
__entry->ata_dev = qc->dev->link->pmp + qc->dev->devno;
include/trace/events/libata.h
277
__entry->ata_dev = qc->dev->link->pmp + qc->dev->devno;
include/trace/events/libata.h
454
__entry->ata_port = dev->link->ap->print_id;
include/trace/events/libata.h
455
__entry->ata_dev = dev->link->pmp + dev->devno;
include/trace/events/libata.h
482
__entry->ata_dev = qc->dev->link->pmp + qc->dev->devno;
include/trace/events/libata.h
496
TP_PROTO(struct ata_link *link, unsigned int devno, unsigned int eh_action),
include/trace/events/libata.h
498
TP_ARGS(link, devno, eh_action),
include/trace/events/libata.h
507
__entry->ata_port = link->ap->print_id;
include/trace/events/libata.h
508
__entry->ata_dev = link->pmp + devno;
include/trace/events/libata.h
518
TP_PROTO(struct ata_link *link, unsigned int devno, unsigned int eh_action),
include/trace/events/libata.h
519
TP_ARGS(link, devno, eh_action));
include/trace/events/libata.h
522
TP_PROTO(struct ata_link *link, unsigned int devno, unsigned int eh_action),
include/trace/events/libata.h
523
TP_ARGS(link, devno, eh_action));
include/trace/events/libata.h
527
TP_PROTO(struct ata_link *link, unsigned int *class, unsigned long deadline),
include/trace/events/libata.h
529
TP_ARGS(link, class, deadline),
include/trace/events/libata.h
538
__entry->ata_port = link->ap->print_id;
include/trace/events/libata.h
550
TP_PROTO(struct ata_link *link, unsigned int *class, unsigned long deadline),
include/trace/events/libata.h
551
TP_ARGS(link, class, deadline));
include/trace/events/libata.h
554
TP_PROTO(struct ata_link *link, unsigned int *class, unsigned long deadline),
include/trace/events/libata.h
555
TP_ARGS(link, class, deadline));
include/trace/events/libata.h
558
TP_PROTO(struct ata_link *link, unsigned int *class, unsigned long deadline),
include/trace/events/libata.h
559
TP_ARGS(link, class, deadline));
include/trace/events/libata.h
563
TP_PROTO(struct ata_link *link, unsigned int *class, int rc),
include/trace/events/libata.h
565
TP_ARGS(link, class, rc),
include/trace/events/libata.h
574
__entry->ata_port = link->ap->print_id;
include/trace/events/libata.h
586
TP_PROTO(struct ata_link *link, unsigned int *class, int rc),
include/trace/events/libata.h
587
TP_ARGS(link, class, rc));
include/trace/events/libata.h
590
TP_PROTO(struct ata_link *link, unsigned int *class, int rc),
include/trace/events/libata.h
591
TP_ARGS(link, class, rc));
include/trace/events/libata.h
594
TP_PROTO(struct ata_link *link, unsigned int *class, int rc),
include/trace/events/libata.h
595
TP_ARGS(link, class, rc));
include/trace/events/libata.h
598
TP_PROTO(struct ata_link *link, unsigned int *class, int rc),
include/trace/events/libata.h
599
TP_ARGS(link, class, rc));
include/trace/events/libata.h
602
TP_PROTO(struct ata_link *link, unsigned int *class, int rc),
include/trace/events/libata.h
603
TP_ARGS(link, class, rc));
include/trace/events/libata.h
652
__entry->ata_dev = qc->dev->link->pmp + qc->dev->devno;
include/trace/events/libata.h
697
__entry->ata_dev = qc->dev->link->pmp + qc->dev->devno;
include/uapi/linux/if_bonding.h
118
__s8 link;
include/uapi/linux/if_tunnel.h
50
int link;
include/uapi/linux/ip6_tunnel.h
29
int link; /* ifindex of underlying L2 interface */
include/uapi/linux/ip6_tunnel.h
41
int link; /* ifindex of underlying L2 interface */
io_uring/io_uring.c
1020
nxt = req->link;
io_uring/io_uring.c
1021
req->link = NULL;
io_uring/io_uring.c
1371
struct io_kiocb *link = NULL;
io_uring/io_uring.c
1378
link = __io_prep_linked_timeout(req);
io_uring/io_uring.c
1389
if (unlikely(creds || link)) {
io_uring/io_uring.c
1392
if (link)
io_uring/io_uring.c
1393
io_queue_linked_timeout(link);
io_uring/io_uring.c
168
req->link = IO_URING_PTR_POISON;
io_uring/io_uring.c
1692
struct io_kiocb *head = ctx->submit_state.link.head;
io_uring/io_uring.c
1784
if (unlikely(ctx->drain_next) && !ctx->submit_state.link.head) {
io_uring/io_uring.c
1835
struct io_submit_link *link = &ctx->submit_state.link;
io_uring/io_uring.c
1836
struct io_kiocb *head = link->head;
io_uring/io_uring.c
1852
link->last->link = req;
io_uring/io_uring.c
1853
link->head = NULL;
io_uring/io_uring.c
1861
link->last->link = req;
io_uring/io_uring.c
1863
link->head = req;
io_uring/io_uring.c
1864
link->last = req;
io_uring/io_uring.c
1872
struct io_submit_link *link = &ctx->submit_state.link;
io_uring/io_uring.c
1894
if (unlikely(link->head)) {
io_uring/io_uring.c
1895
trace_io_uring_link(req, link->last);
io_uring/io_uring.c
1897
link->last->link = req;
io_uring/io_uring.c
1898
link->last = req;
io_uring/io_uring.c
1903
req = link->head;
io_uring/io_uring.c
1904
link->head = NULL;
io_uring/io_uring.c
1911
link->head = req;
io_uring/io_uring.c
1912
link->last = req;
io_uring/io_uring.c
1931
if (unlikely(state->link.head))
io_uring/io_uring.c
1932
io_queue_sqe_fallback(state->link.head);
io_uring/io_uring.c
1949
state->link.head = NULL;
io_uring/io_uring.c
344
if (WARN_ON_ONCE(!req->link))
io_uring/io_uring.c
352
__io_req_set_refcount(req->link, 2);
io_uring/io_uring.c
353
return req->link;
io_uring/io_uring.h
254
for (pos = (head); pos; pos = pos->link)
io_uring/timeout.c
163
struct io_kiocb *link = tw_req.req;
io_uring/timeout.c
165
io_tw_lock(link->ctx, tw);
io_uring/timeout.c
166
while (link) {
io_uring/timeout.c
167
struct io_kiocb *nxt = link->link;
io_uring/timeout.c
170
if (link->flags & REQ_F_FAIL)
io_uring/timeout.c
171
res = link->cqe.res;
io_uring/timeout.c
172
link->link = NULL;
io_uring/timeout.c
173
io_req_set_res(link, res, 0);
io_uring/timeout.c
174
io_req_task_complete((struct io_tw_req){link}, tw);
io_uring/timeout.c
175
link = nxt;
io_uring/timeout.c
182
struct io_kiocb *link = req->link;
io_uring/timeout.c
185
if (!link)
io_uring/timeout.c
188
while (link) {
io_uring/timeout.c
190
link->flags |= REQ_F_CQE_SKIP;
io_uring/timeout.c
192
link->flags &= ~REQ_F_CQE_SKIP;
io_uring/timeout.c
193
trace_io_uring_fail_link(req, link);
io_uring/timeout.c
194
link = link->link;
io_uring/timeout.c
197
link = req->link;
io_uring/timeout.c
198
link->io_task_work.func = io_req_tw_fail_links;
io_uring/timeout.c
199
io_req_task_work_add(link);
io_uring/timeout.c
200
req->link = NULL;
io_uring/timeout.c
205
struct io_kiocb *nxt = req->link;
io_uring/timeout.c
207
req->link = nxt->link;
io_uring/timeout.c
208
nxt->link = NULL;
io_uring/timeout.c
214
struct io_kiocb *link = NULL;
io_uring/timeout.c
217
link = req->link;
io_uring/timeout.c
219
if (link && link->opcode == IORING_OP_LINK_TIMEOUT) {
io_uring/timeout.c
221
io_req_queue_tw_complete(link, -ECANCELED);
io_uring/timeout.c
227
if (req->link && req->link->opcode == IORING_OP_LINK_TIMEOUT)
io_uring/timeout.c
228
link = __io_disarm_linked_timeout(req, req->link);
io_uring/timeout.c
231
if (link)
io_uring/timeout.c
232
io_req_queue_tw_complete(link, -ECANCELED);
io_uring/timeout.c
240
struct io_kiocb *link)
io_uring/timeout.c
244
struct io_timeout_data *io = link->async_data;
io_uring/timeout.c
245
struct io_timeout *timeout = io_kiocb_to_cmd(link, struct io_timeout);
io_uring/timeout.c
251
return link;
io_uring/timeout.c
39
struct io_kiocb *link);
io_uring/timeout.c
569
struct io_submit_link *link = &req->ctx->submit_state.link;
io_uring/timeout.c
571
if (!link->head)
io_uring/timeout.c
573
if (link->last->opcode == IORING_OP_LINK_TIMEOUT)
io_uring/timeout.c
575
timeout->head = link->last;
io_uring/timeout.c
576
link->last->flags |= REQ_F_ARM_LTIMEOUT;
kernel/bpf/bpf_iter.c
17
struct bpf_link link;
kernel/bpf/bpf_iter.c
242
__get_seq_info(struct bpf_iter_link *link)
kernel/bpf/bpf_iter.c
246
if (link->aux.map) {
kernel/bpf/bpf_iter.c
247
seq_info = link->aux.map->ops->iter_seq_info;
kernel/bpf/bpf_iter.c
252
return link->tinfo->reg_info->seq_info;
kernel/bpf/bpf_iter.c
257
struct bpf_iter_link *link = inode->i_private;
kernel/bpf/bpf_iter.c
259
return prepare_seq_file(file, link);
kernel/bpf/bpf_iter.c
391
static void bpf_iter_link_release(struct bpf_link *link)
kernel/bpf/bpf_iter.c
394
container_of(link, struct bpf_iter_link, link);
kernel/bpf/bpf_iter.c
400
static void bpf_iter_link_dealloc(struct bpf_link *link)
kernel/bpf/bpf_iter.c
403
container_of(link, struct bpf_iter_link, link);
kernel/bpf/bpf_iter.c
408
static int bpf_iter_link_replace(struct bpf_link *link,
kernel/bpf/bpf_iter.c
41
static int prepare_seq_file(struct file *file, struct bpf_iter_link *link);
kernel/bpf/bpf_iter.c
415
if (old_prog && link->prog != old_prog) {
kernel/bpf/bpf_iter.c
420
if (link->prog->type != new_prog->type ||
kernel/bpf/bpf_iter.c
421
link->prog->expected_attach_type != new_prog->expected_attach_type ||
kernel/bpf/bpf_iter.c
422
link->prog->aux->attach_btf_id != new_prog->aux->attach_btf_id) {
kernel/bpf/bpf_iter.c
427
old_prog = xchg(&link->prog, new_prog);
kernel/bpf/bpf_iter.c
435
static void bpf_iter_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/bpf_iter.c
439
container_of(link, struct bpf_iter_link, link);
kernel/bpf/bpf_iter.c
451
static int bpf_iter_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/bpf_iter.c
455
container_of(link, struct bpf_iter_link, link);
kernel/bpf/bpf_iter.c
499
bool bpf_link_is_iter(struct bpf_link *link)
kernel/bpf/bpf_iter.c
501
return link->ops == &bpf_iter_link_lops;
kernel/bpf/bpf_iter.c
510
struct bpf_iter_link *link;
kernel/bpf/bpf_iter.c
551
link = kzalloc_obj(*link, GFP_USER | __GFP_NOWARN);
kernel/bpf/bpf_iter.c
552
if (!link)
kernel/bpf/bpf_iter.c
555
bpf_link_init(&link->link, BPF_LINK_TYPE_ITER, &bpf_iter_link_lops, prog,
kernel/bpf/bpf_iter.c
557
link->tinfo = tinfo;
kernel/bpf/bpf_iter.c
559
err = bpf_link_prime(&link->link, &link_primer);
kernel/bpf/bpf_iter.c
561
kfree(link);
kernel/bpf/bpf_iter.c
566
err = tinfo->reg_info->attach_target(prog, &linfo, &link->aux);
kernel/bpf/bpf_iter.c
589
static int prepare_seq_file(struct file *file, struct bpf_iter_link *link)
kernel/bpf/bpf_iter.c
591
const struct bpf_iter_seq_info *seq_info = __get_seq_info(link);
kernel/bpf/bpf_iter.c
600
prog = link->link.prog;
kernel/bpf/bpf_iter.c
604
tinfo = link->tinfo;
kernel/bpf/bpf_iter.c
615
err = seq_info->init_seq_private(priv_data->target_private, &link->aux);
kernel/bpf/bpf_iter.c
634
int bpf_iter_new_fd(struct bpf_link *link)
kernel/bpf/bpf_iter.c
640
if (link->ops != &bpf_iter_link_lops)
kernel/bpf/bpf_iter.c
649
iter_link = container_of(link, struct bpf_iter_link, link);
kernel/bpf/bpf_struct_ops.c
1216
static void bpf_struct_ops_map_link_dealloc(struct bpf_link *link)
kernel/bpf/bpf_struct_ops.c
1221
st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1225
st_map->st_ops_desc->st_ops->unreg(&st_map->kvalue.data, link);
kernel/bpf/bpf_struct_ops.c
1231
static void bpf_struct_ops_map_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/bpf_struct_ops.c
1237
st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1245
static int bpf_struct_ops_map_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/bpf_struct_ops.c
1251
st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1260
static int bpf_struct_ops_map_link_update(struct bpf_link *link, struct bpf_map *new_map,
kernel/bpf/bpf_struct_ops.c
1268
st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1296
err = st_map->st_ops_desc->st_ops->update(st_map->kvalue.data, old_st_map->kvalue.data, link);
kernel/bpf/bpf_struct_ops.c
1310
static int bpf_struct_ops_map_link_detach(struct bpf_link *link)
kernel/bpf/bpf_struct_ops.c
1312
struct bpf_struct_ops_link *st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1325
st_map->st_ops_desc->st_ops->unreg(&st_map->kvalue.data, link);
kernel/bpf/bpf_struct_ops.c
1361
struct bpf_struct_ops_link *link = NULL;
kernel/bpf/bpf_struct_ops.c
1378
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/bpf_struct_ops.c
1379
if (!link) {
kernel/bpf/bpf_struct_ops.c
1383
bpf_link_init(&link->link, BPF_LINK_TYPE_STRUCT_OPS, &bpf_struct_ops_map_lops, NULL,
kernel/bpf/bpf_struct_ops.c
1386
err = bpf_link_prime(&link->link, &link_primer);
kernel/bpf/bpf_struct_ops.c
1390
init_waitqueue_head(&link->wait_hup);
kernel/bpf/bpf_struct_ops.c
1396
err = st_map->st_ops_desc->st_ops->reg(st_map->kvalue.data, &link->link);
kernel/bpf/bpf_struct_ops.c
1400
link = NULL;
kernel/bpf/bpf_struct_ops.c
1403
RCU_INIT_POINTER(link->map, map);
kernel/bpf/bpf_struct_ops.c
1410
kfree(link);
kernel/bpf/bpf_struct_ops.c
581
static void bpf_struct_ops_link_release(struct bpf_link *link)
kernel/bpf/bpf_struct_ops.c
585
static void bpf_struct_ops_link_dealloc(struct bpf_link *link)
kernel/bpf/bpf_struct_ops.c
587
struct bpf_tramp_link *tlink = container_of(link, struct bpf_tramp_link, link);
kernel/bpf/bpf_struct_ops.c
59
struct bpf_link link;
kernel/bpf/bpf_struct_ops.c
598
struct bpf_tramp_link *link,
kernel/bpf/bpf_struct_ops.c
608
tlinks[BPF_TRAMP_FENTRY].links[0] = link;
kernel/bpf/bpf_struct_ops.c
749
struct bpf_tramp_link *link;
kernel/bpf/bpf_struct_ops.c
817
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/bpf_struct_ops.c
818
if (!link) {
kernel/bpf/bpf_struct_ops.c
823
bpf_link_init(&link->link, BPF_LINK_TYPE_STRUCT_OPS,
kernel/bpf/bpf_struct_ops.c
825
*plink++ = &link->link;
kernel/bpf/bpf_struct_ops.c
835
err = bpf_struct_ops_prepare_trampoline(tlinks, link,
kernel/bpf/cgroup.c
1005
old_prog = xchg(&link->link.prog, new_prog);
kernel/bpf/cgroup.c
1006
replace_effective_prog(cgrp, atype, link);
kernel/bpf/cgroup.c
1011
static int cgroup_bpf_replace(struct bpf_link *link, struct bpf_prog *new_prog,
kernel/bpf/cgroup.c
1017
cg_link = container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1025
if (old_prog && link->prog != old_prog) {
kernel/bpf/cgroup.c
1037
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
1053
if (!prog && !link)
kernel/bpf/cgroup.c
1061
if (pl->prog == prog && pl->link == link)
kernel/bpf/cgroup.c
1078
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
1104
if (pl->prog == prog && pl->link == link)
kernel/bpf/cgroup.c
1136
struct bpf_cgroup_link *link, enum bpf_attach_type type,
kernel/bpf/cgroup.c
1148
if (link)
kernel/bpf/cgroup.c
1149
attach_btf_id = link->link.prog->aux->attach_btf_id;
kernel/bpf/cgroup.c
1161
if (prog && link)
kernel/bpf/cgroup.c
1165
pl = find_detach_entry(progs, prog, link, flags & BPF_F_ALLOW_MULTI);
kernel/bpf/cgroup.c
1172
pl->link = NULL;
kernel/bpf/cgroup.c
1177
pl->link = link;
kernel/bpf/cgroup.c
1178
purge_effective_progs(cgrp, old_prog, link, atype);
kernel/bpf/cgroup.c
1377
static void bpf_cgroup_link_release(struct bpf_link *link)
kernel/bpf/cgroup.c
1380
container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1398
link->attach_type, 0));
kernel/bpf/cgroup.c
1399
if (link->attach_type == BPF_LSM_CGROUP)
kernel/bpf/cgroup.c
1400
bpf_trampoline_unlink_cgroup_shim(cg_link->link.prog);
kernel/bpf/cgroup.c
1410
static void bpf_cgroup_link_dealloc(struct bpf_link *link)
kernel/bpf/cgroup.c
1413
container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1418
static int bpf_cgroup_link_detach(struct bpf_link *link)
kernel/bpf/cgroup.c
1420
bpf_cgroup_link_release(link);
kernel/bpf/cgroup.c
1425
static void bpf_cgroup_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/cgroup.c
1429
container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1441
link->attach_type);
kernel/bpf/cgroup.c
1444
static int bpf_cgroup_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/cgroup.c
1448
container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1457
info->cgroup.attach_type = link->attach_type;
kernel/bpf/cgroup.c
1480
struct bpf_cgroup_link *link;
kernel/bpf/cgroup.c
1491
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/cgroup.c
1492
if (!link) {
kernel/bpf/cgroup.c
1496
bpf_link_init(&link->link, BPF_LINK_TYPE_CGROUP, &bpf_cgroup_link_lops,
kernel/bpf/cgroup.c
1498
link->cgroup = cgrp;
kernel/bpf/cgroup.c
1500
err = bpf_link_prime(&link->link, &link_primer);
kernel/bpf/cgroup.c
1502
kfree(link);
kernel/bpf/cgroup.c
1506
err = cgroup_bpf_attach(cgrp, NULL, NULL, link,
kernel/bpf/cgroup.c
1507
link->link.attach_type, BPF_F_ALLOW_MULTI | attr->link_create.flags,
kernel/bpf/cgroup.c
293
static void bpf_cgroup_link_auto_detach(struct bpf_cgroup_link *link)
kernel/bpf/cgroup.c
295
cgroup_put(link->cgroup);
kernel/bpf/cgroup.c
296
link->cgroup = NULL;
kernel/bpf/cgroup.c
328
if (pl->link) {
kernel/bpf/cgroup.c
329
if (pl->link->link.prog->expected_attach_type == BPF_LSM_CGROUP)
kernel/bpf/cgroup.c
330
bpf_trampoline_unlink_cgroup_shim(pl->link->link.prog);
kernel/bpf/cgroup.c
331
bpf_cgroup_link_auto_detach(pl->link);
kernel/bpf/cgroup.c
376
if (pl->link)
kernel/bpf/cgroup.c
377
return pl->link->link.prog;
kernel/bpf/cgroup.c
624
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
641
if (link && pl->link == link)
kernel/bpf/cgroup.c
662
struct bpf_link *link = ERR_PTR(-EINVAL);
kernel/bpf/cgroup.c
665
link = bpf_link_by_id(id_or_fd);
kernel/bpf/cgroup.c
667
link = bpf_link_get_from_fd(id_or_fd);
kernel/bpf/cgroup.c
668
return link;
kernel/bpf/cgroup.c
683
struct bpf_cgroup_link *link, u32 flags, u32 id_or_fd)
kernel/bpf/cgroup.c
698
if ((is_link && !link) || (!is_link && !prog))
kernel/bpf/cgroup.c
733
(anchor_link && anchor_link == &pltmp->link->link)) {
kernel/bpf/cgroup.c
751
struct bpf_prog *prog, struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
756
pltmp = get_prog_list(progs, prog, link, flags, id_or_fd);
kernel/bpf/cgroup.c
787
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
795
struct bpf_prog *new_prog = prog ? : link->link.prog;
kernel/bpf/cgroup.c
808
if (link && (prog || replace_prog))
kernel/bpf/cgroup.c
836
pl = find_attach_entry(progs, prog, link, replace_prog,
kernel/bpf/cgroup.c
842
prog ? : link->link.prog, cgrp))
kernel/bpf/cgroup.c
854
err = insert_pl_to_hlist(pl, progs, prog, link, flags, id_or_fd);
kernel/bpf/cgroup.c
863
pl->link = link;
kernel/bpf/cgroup.c
896
pl->link = NULL;
kernel/bpf/cgroup.c
908
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
915
ret = __cgroup_bpf_attach(cgrp, prog, replace_prog, link, type, flags,
kernel/bpf/cgroup.c
926
struct bpf_cgroup_link *link)
kernel/bpf/cgroup.c
951
if (pl->link == link)
kernel/bpf/cgroup.c
962
WRITE_ONCE(item->prog, link->link.prog);
kernel/bpf/cgroup.c
977
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
986
atype = bpf_cgroup_atype_find(link->link.attach_type, new_prog->aux->attach_btf_id);
kernel/bpf/cgroup.c
992
if (link->link.prog->type != new_prog->type)
kernel/bpf/cgroup.c
996
if (pl->link == link) {
kernel/bpf/helpers.c
2508
struct rb_node **link = &((struct rb_root_cached *)root)->rb_root.rb_node;
kernel/bpf/helpers.c
2522
while (*link) {
kernel/bpf/helpers.c
2523
parent = *link;
kernel/bpf/helpers.c
2525
link = &parent->rb_left;
kernel/bpf/helpers.c
2527
link = &parent->rb_right;
kernel/bpf/helpers.c
2532
rb_link_node(n, parent, link);
kernel/bpf/inode.c
362
struct bpf_link *link = arg;
kernel/bpf/inode.c
365
bpf_link_is_iter(link) ?
kernel/bpf/inode.c
385
char *link = kstrdup(target, GFP_USER | __GFP_NOWARN);
kernel/bpf/inode.c
388
if (!link)
kernel/bpf/inode.c
393
kfree(link);
kernel/bpf/inode.c
398
inode->i_link = link;
kernel/bpf/inode.c
410
.link = simple_link,
kernel/bpf/inode.c
416
const char *name, struct bpf_link *link)
kernel/bpf/inode.c
425
ret = bpf_mkobj_ops(dentry, mode, link, &bpf_link_iops,
kernel/bpf/inode.c
982
bpf_link_inc(objs[i].link);
kernel/bpf/inode.c
984
objs[i].link_name, objs[i].link);
kernel/bpf/inode.c
986
bpf_link_put(objs[i].link);
kernel/bpf/link_iter.c
16
struct bpf_link *link;
kernel/bpf/link_iter.c
18
link = bpf_link_get_curr_or_next(&info->link_id);
kernel/bpf/link_iter.c
19
if (!link)
kernel/bpf/link_iter.c
24
return link;
kernel/bpf/link_iter.c
39
__bpf_md_ptr(struct bpf_link *, link);
kernel/bpf/link_iter.c
42
DEFINE_BPF_ITER_FUNC(bpf_link, struct bpf_iter_meta *meta, struct bpf_link *link)
kernel/bpf/link_iter.c
52
ctx.link = v;
kernel/bpf/link_iter.c
94
{ offsetof(struct bpf_iter__bpf_link, link),
kernel/bpf/mprog.c
11
struct bpf_link *link = ERR_PTR(-EINVAL);
kernel/bpf/mprog.c
119
if (!ntuple->link) {
kernel/bpf/mprog.c
120
WARN_ON_ONCE(cp->link);
kernel/bpf/mprog.c
15
link = bpf_link_by_id(id_or_fd);
kernel/bpf/mprog.c
17
link = bpf_link_get_from_fd(id_or_fd);
kernel/bpf/mprog.c
18
if (IS_ERR(link))
kernel/bpf/mprog.c
188
return tuple->link == cp->link ? i : -EBUSY;
kernel/bpf/mprog.c
19
return PTR_ERR(link);
kernel/bpf/mprog.c
20
if (type && link->prog->type != type) {
kernel/bpf/mprog.c
203
(!tuple->link || tuple->link == cp->link))
kernel/bpf/mprog.c
21
bpf_link_put(link);
kernel/bpf/mprog.c
219
(!tuple->link || tuple->link == cp->link))
kernel/bpf/mprog.c
227
struct bpf_prog *prog_new, struct bpf_link *link,
kernel/bpf/mprog.c
233
.link = link,
kernel/bpf/mprog.c
236
.link = link,
kernel/bpf/mprog.c
25
tuple->link = link;
kernel/bpf/mprog.c
26
tuple->prog = link->prog;
kernel/bpf/mprog.c
304
struct bpf_link *link;
kernel/bpf/mprog.c
312
link = cp->link;
kernel/bpf/mprog.c
319
if (link && !tuple->link)
kernel/bpf/mprog.c
322
WARN_ON_ONCE(tuple->link && tuple->link != link);
kernel/bpf/mprog.c
324
tuple->link = link;
kernel/bpf/mprog.c
330
struct bpf_prog *prog, struct bpf_link *link,
kernel/bpf/mprog.c
335
.link = link,
kernel/bpf/mprog.c
441
id = cp->link ? cp->link->id : 0;
kernel/bpf/mprog.c
48
tuple->link = NULL;
kernel/bpf/mprog.c
57
bool link = flags & BPF_F_LINK;
kernel/bpf/mprog.c
61
if (link)
kernel/bpf/mprog.c
74
if (tuple->link)
kernel/bpf/mprog.c
75
bpf_link_put(tuple->link);
kernel/bpf/net_namespace.c
101
static void bpf_netns_link_release(struct bpf_link *link)
kernel/bpf/net_namespace.c
104
container_of(link, struct bpf_netns_link, link);
kernel/bpf/net_namespace.c
13
struct bpf_link link;
kernel/bpf/net_namespace.c
149
static int bpf_netns_link_detach(struct bpf_link *link)
kernel/bpf/net_namespace.c
151
bpf_netns_link_release(link);
kernel/bpf/net_namespace.c
155
static void bpf_netns_link_dealloc(struct bpf_link *link)
kernel/bpf/net_namespace.c
158
container_of(link, struct bpf_netns_link, link);
kernel/bpf/net_namespace.c
163
static int bpf_netns_link_update_prog(struct bpf_link *link,
kernel/bpf/net_namespace.c
168
container_of(link, struct bpf_netns_link, link);
kernel/bpf/net_namespace.c
174
if (old_prog && old_prog != link->prog)
kernel/bpf/net_namespace.c
176
if (new_prog->type != link->prog->type)
kernel/bpf/net_namespace.c
195
old_prog = xchg(&link->prog, new_prog);
kernel/bpf/net_namespace.c
203
static int bpf_netns_link_fill_info(const struct bpf_link *link,
kernel/bpf/net_namespace.c
207
container_of(link, struct bpf_netns_link, link);
kernel/bpf/net_namespace.c
218
info->netns.attach_type = link->attach_type;
kernel/bpf/net_namespace.c
222
static void bpf_netns_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/net_namespace.c
227
bpf_netns_link_fill_info(link, &info);
kernel/bpf/net_namespace.c
232
link->attach_type);
kernel/bpf/net_namespace.c
420
static int netns_bpf_link_attach(struct net *net, struct bpf_link *link,
kernel/bpf/net_namespace.c
424
container_of(link, struct bpf_netns_link, link);
kernel/bpf/net_namespace.c
443
err = flow_dissector_bpf_prog_attach_check(net, link->prog);
kernel/bpf/net_namespace.c
502
bpf_link_init(&net_link->link, BPF_LINK_TYPE_NETNS,
kernel/bpf/net_namespace.c
507
err = bpf_link_prime(&net_link->link, &link_primer);
kernel/bpf/net_namespace.c
513
err = netns_bpf_link_attach(net, &net_link->link, netns_type);
kernel/bpf/net_namespace.c
66
struct bpf_netns_link *link)
kernel/bpf/net_namespace.c
72
if (pos == link)
kernel/bpf/net_namespace.c
96
prog_array->items[i].prog = pos->link.prog;
kernel/bpf/preload/bpf_preload.h
7
struct bpf_link *link;
kernel/bpf/preload/bpf_preload_kern.c
27
obj[0].link = maps_link;
kernel/bpf/preload/bpf_preload_kern.c
29
obj[1].link = progs_link;
kernel/bpf/range_tree.c
102
rb_link_node(&rn->rb_range_size, rb, link);
kernel/bpf/range_tree.c
88
struct rb_node **link = &root->rb_root.rb_node, *rb = NULL;
kernel/bpf/range_tree.c
92
while (*link) {
kernel/bpf/range_tree.c
93
rb = *link;
kernel/bpf/range_tree.c
95
link = &rb->rb_left;
kernel/bpf/range_tree.c
97
link = &rb->rb_right;
kernel/bpf/syscall.c
3191
void bpf_link_init_sleepable(struct bpf_link *link, enum bpf_link_type type,
kernel/bpf/syscall.c
3196
atomic64_set(&link->refcnt, 1);
kernel/bpf/syscall.c
3197
link->type = type;
kernel/bpf/syscall.c
3198
link->sleepable = sleepable;
kernel/bpf/syscall.c
3199
link->id = 0;
kernel/bpf/syscall.c
3200
link->ops = ops;
kernel/bpf/syscall.c
3201
link->prog = prog;
kernel/bpf/syscall.c
3202
link->attach_type = attach_type;
kernel/bpf/syscall.c
3205
void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
kernel/bpf/syscall.c
3209
bpf_link_init_sleepable(link, type, ops, prog, attach_type, false);
kernel/bpf/syscall.c
3233
primer->link->prog = NULL;
kernel/bpf/syscall.c
3239
void bpf_link_inc(struct bpf_link *link)
kernel/bpf/syscall.c
3241
atomic64_inc(&link->refcnt);
kernel/bpf/syscall.c
3244
static void bpf_link_dealloc(struct bpf_link *link)
kernel/bpf/syscall.c
3247
if (link->prog)
kernel/bpf/syscall.c
3248
bpf_prog_put(link->prog);
kernel/bpf/syscall.c
3251
if (link->ops->dealloc_deferred)
kernel/bpf/syscall.c
3252
link->ops->dealloc_deferred(link);
kernel/bpf/syscall.c
3254
link->ops->dealloc(link);
kernel/bpf/syscall.c
3259
struct bpf_link *link = container_of(rcu, struct bpf_link, rcu);
kernel/bpf/syscall.c
3261
bpf_link_dealloc(link);
kernel/bpf/syscall.c
3264
static bool bpf_link_is_tracepoint(struct bpf_link *link)
kernel/bpf/syscall.c
3272
return link->type == BPF_LINK_TYPE_RAW_TRACEPOINT ||
kernel/bpf/syscall.c
3273
(link->type == BPF_LINK_TYPE_TRACING && link->attach_type == BPF_TRACE_RAW_TP);
kernel/bpf/syscall.c
3285
static void bpf_link_free(struct bpf_link *link)
kernel/bpf/syscall.c
3287
const struct bpf_link_ops *ops = link->ops;
kernel/bpf/syscall.c
3289
bpf_link_free_id(link->id);
kernel/bpf/syscall.c
3291
if (link->prog)
kernel/bpf/syscall.c
3292
ops->release(link);
kernel/bpf/syscall.c
3308
if (link->sleepable || (link->prog && link->prog->sleepable))
kernel/bpf/syscall.c
3309
call_rcu_tasks_trace(&link->rcu, bpf_link_defer_dealloc_mult_rcu_gp);
kernel/bpf/syscall.c
3311
else if (bpf_link_is_tracepoint(link))
kernel/bpf/syscall.c
3312
call_tracepoint_unregister_atomic(&link->rcu, bpf_link_defer_dealloc_rcu_gp);
kernel/bpf/syscall.c
3314
call_rcu(&link->rcu, bpf_link_defer_dealloc_rcu_gp);
kernel/bpf/syscall.c
3316
bpf_link_dealloc(link);
kernel/bpf/syscall.c
3322
struct bpf_link *link = container_of(work, struct bpf_link, work);
kernel/bpf/syscall.c
3324
bpf_link_free(link);
kernel/bpf/syscall.c
3330
void bpf_link_put(struct bpf_link *link)
kernel/bpf/syscall.c
3332
if (!atomic64_dec_and_test(&link->refcnt))
kernel/bpf/syscall.c
3335
INIT_WORK(&link->work, bpf_link_put_deferred);
kernel/bpf/syscall.c
3336
schedule_work(&link->work);
kernel/bpf/syscall.c
3340
static void bpf_link_put_direct(struct bpf_link *link)
kernel/bpf/syscall.c
3342
if (!atomic64_dec_and_test(&link->refcnt))
kernel/bpf/syscall.c
3344
bpf_link_free(link);
kernel/bpf/syscall.c
3349
struct bpf_link *link = filp->private_data;
kernel/bpf/syscall.c
3351
bpf_link_put_direct(link);
kernel/bpf/syscall.c
3369
const struct bpf_link *link = filp->private_data;
kernel/bpf/syscall.c
3370
const struct bpf_prog *prog = link->prog;
kernel/bpf/syscall.c
3371
enum bpf_link_type type = link->type;
kernel/bpf/syscall.c
3375
if (link->type == BPF_LINK_TYPE_KPROBE_MULTI)
kernel/bpf/syscall.c
3376
seq_printf(m, "link_type:\t%s\n", link->flags == BPF_F_KPROBE_MULTI_RETURN ?
kernel/bpf/syscall.c
3378
else if (link->type == BPF_LINK_TYPE_UPROBE_MULTI)
kernel/bpf/syscall.c
3379
seq_printf(m, "link_type:\t%s\n", link->flags == BPF_F_UPROBE_MULTI_RETURN ?
kernel/bpf/syscall.c
3387
seq_printf(m, "link_id:\t%u\n", link->id);
kernel/bpf/syscall.c
3397
if (link->ops->show_fdinfo)
kernel/bpf/syscall.c
3398
link->ops->show_fdinfo(link, m);
kernel/bpf/syscall.c
3404
struct bpf_link *link = file->private_data;
kernel/bpf/syscall.c
3406
return link->ops->poll(file, pts);
kernel/bpf/syscall.c
3428
static int bpf_link_alloc_id(struct bpf_link *link)
kernel/bpf/syscall.c
3434
id = idr_alloc_cyclic(&link_idr, link, 1, INT_MAX, GFP_ATOMIC);
kernel/bpf/syscall.c
3454
int bpf_link_prime(struct bpf_link *link, struct bpf_link_primer *primer)
kernel/bpf/syscall.c
3464
id = bpf_link_alloc_id(link);
kernel/bpf/syscall.c
3471
link->ops->poll ? &bpf_link_fops_poll : &bpf_link_fops,
kernel/bpf/syscall.c
3472
link, O_CLOEXEC);
kernel/bpf/syscall.c
3479
primer->link = link;
kernel/bpf/syscall.c
3490
primer->link->id = primer->id;
kernel/bpf/syscall.c
3498
int bpf_link_new_fd(struct bpf_link *link)
kernel/bpf/syscall.c
3501
link->ops->poll ? &bpf_link_fops_poll : &bpf_link_fops,
kernel/bpf/syscall.c
3502
link, O_CLOEXEC);
kernel/bpf/syscall.c
3508
struct bpf_link *link;
kernel/bpf/syscall.c
3515
link = fd_file(f)->private_data;
kernel/bpf/syscall.c
3516
bpf_link_inc(link);
kernel/bpf/syscall.c
3517
return link;
kernel/bpf/syscall.c
3521
static void bpf_tracing_link_release(struct bpf_link *link)
kernel/bpf/syscall.c
3524
container_of(link, struct bpf_tracing_link, link.link);
kernel/bpf/syscall.c
3526
WARN_ON_ONCE(bpf_trampoline_unlink_prog(&tr_link->link,
kernel/bpf/syscall.c
3537
static void bpf_tracing_link_dealloc(struct bpf_link *link)
kernel/bpf/syscall.c
3540
container_of(link, struct bpf_tracing_link, link.link);
kernel/bpf/syscall.c
3545
static void bpf_tracing_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/syscall.c
3549
container_of(link, struct bpf_tracing_link, link.link);
kernel/bpf/syscall.c
3559
link->attach_type,
kernel/bpf/syscall.c
3562
tr_link->link.cookie);
kernel/bpf/syscall.c
3565
static int bpf_tracing_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/syscall.c
3569
container_of(link, struct bpf_tracing_link, link.link);
kernel/bpf/syscall.c
3571
info->tracing.attach_type = link->attach_type;
kernel/bpf/syscall.c
3572
info->tracing.cookie = tr_link->link.cookie;
kernel/bpf/syscall.c
3596
struct bpf_tracing_link *link;
kernel/bpf/syscall.c
3659
bpf_link_init(&fslink->fexit.link, BPF_LINK_TYPE_TRACING,
kernel/bpf/syscall.c
3662
link = &fslink->link;
kernel/bpf/syscall.c
3664
link = NULL;
kernel/bpf/syscall.c
3667
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/syscall.c
3669
if (!link) {
kernel/bpf/syscall.c
3673
bpf_link_init(&link->link.link, BPF_LINK_TYPE_TRACING,
kernel/bpf/syscall.c
3676
link->link.cookie = bpf_cookie;
kernel/bpf/syscall.c
3758
err = bpf_link_prime(&link->link.link, &link_primer);
kernel/bpf/syscall.c
3762
err = bpf_trampoline_link_prog(&link->link, tr, tgt_prog);
kernel/bpf/syscall.c
3765
link = NULL;
kernel/bpf/syscall.c
3769
link->tgt_prog = tgt_prog;
kernel/bpf/syscall.c
3770
link->trampoline = tr;
kernel/bpf/syscall.c
3793
kfree(link);
kernel/bpf/syscall.c
3800
static void bpf_raw_tp_link_release(struct bpf_link *link)
kernel/bpf/syscall.c
3803
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
3809
static void bpf_raw_tp_link_dealloc(struct bpf_link *link)
kernel/bpf/syscall.c
3812
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
3817
static void bpf_raw_tp_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/syscall.c
3821
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
3849
static int bpf_raw_tp_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/syscall.c
3853
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
3880
struct bpf_link link;
kernel/bpf/syscall.c
3884
static void bpf_perf_link_release(struct bpf_link *link)
kernel/bpf/syscall.c
3886
struct bpf_perf_link *perf_link = container_of(link, struct bpf_perf_link, link);
kernel/bpf/syscall.c
3893
static void bpf_perf_link_dealloc(struct bpf_link *link)
kernel/bpf/syscall.c
3895
struct bpf_perf_link *perf_link = container_of(link, struct bpf_perf_link, link);
kernel/bpf/syscall.c
4094
static int bpf_perf_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/syscall.c
4100
perf_link = container_of(link, struct bpf_perf_link, link);
kernel/bpf/syscall.c
4162
static void bpf_perf_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/syscall.c
4168
perf_link = container_of(link, struct bpf_perf_link, link);
kernel/bpf/syscall.c
4195
struct bpf_perf_link *link;
kernel/bpf/syscall.c
4207
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/syscall.c
4208
if (!link) {
kernel/bpf/syscall.c
4212
bpf_link_init(&link->link, BPF_LINK_TYPE_PERF_EVENT, &bpf_perf_link_lops, prog,
kernel/bpf/syscall.c
4214
link->perf_file = perf_file;
kernel/bpf/syscall.c
4216
err = bpf_link_prime(&link->link, &link_primer);
kernel/bpf/syscall.c
4218
kfree(link);
kernel/bpf/syscall.c
4249
struct bpf_raw_tp_link *link;
kernel/bpf/syscall.c
4285
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/syscall.c
4286
if (!link) {
kernel/bpf/syscall.c
4290
bpf_link_init_sleepable(&link->link, BPF_LINK_TYPE_RAW_TRACEPOINT,
kernel/bpf/syscall.c
4293
link->btp = btp;
kernel/bpf/syscall.c
4294
link->cookie = cookie;
kernel/bpf/syscall.c
4296
err = bpf_link_prime(&link->link, &link_primer);
kernel/bpf/syscall.c
4298
kfree(link);
kernel/bpf/syscall.c
4302
err = bpf_probe_register(link->btp, link);
kernel/bpf/syscall.c
5390
struct bpf_link *link,
kernel/bpf/syscall.c
5408
info.type = link->type;
kernel/bpf/syscall.c
5409
info.id = link->id;
kernel/bpf/syscall.c
5410
if (link->prog)
kernel/bpf/syscall.c
5411
info.prog_id = link->prog->aux->id;
kernel/bpf/syscall.c
5413
if (link->ops->fill_link_info) {
kernel/bpf/syscall.c
5414
err = link->ops->fill_link_info(link, &info);
kernel/bpf/syscall.c
5605
struct bpf_link *link = file->private_data;
kernel/bpf/syscall.c
5607
if (link->ops == &bpf_raw_tp_link_lops) {
kernel/bpf/syscall.c
5609
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
5613
raw_tp->link.prog->aux->id,
kernel/bpf/syscall.c
5806
static int link_update_map(struct bpf_link *link, union bpf_attr *attr)
kernel/bpf/syscall.c
5826
ret = link->ops->update_map(link, new_map, old_map);
kernel/bpf/syscall.c
5840
struct bpf_link *link;
kernel/bpf/syscall.c
5851
link = bpf_link_get_from_fd(attr->link_update.link_fd);
kernel/bpf/syscall.c
5852
if (IS_ERR(link))
kernel/bpf/syscall.c
5853
return PTR_ERR(link);
kernel/bpf/syscall.c
5855
if (link->ops->update_map) {
kernel/bpf/syscall.c
5856
ret = link_update_map(link, attr);
kernel/bpf/syscall.c
5878
if (link->ops->update_prog)
kernel/bpf/syscall.c
5879
ret = link->ops->update_prog(link, new_prog, old_prog);
kernel/bpf/syscall.c
5889
bpf_link_put_direct(link);
kernel/bpf/syscall.c
5897
struct bpf_link *link;
kernel/bpf/syscall.c
5903
link = bpf_link_get_from_fd(attr->link_detach.link_fd);
kernel/bpf/syscall.c
5904
if (IS_ERR(link))
kernel/bpf/syscall.c
5905
return PTR_ERR(link);
kernel/bpf/syscall.c
5907
if (link->ops->detach)
kernel/bpf/syscall.c
5908
ret = link->ops->detach(link);
kernel/bpf/syscall.c
5912
bpf_link_put_direct(link);
kernel/bpf/syscall.c
5916
struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link)
kernel/bpf/syscall.c
5918
return atomic64_fetch_add_unless(&link->refcnt, 1, 0) ? link : ERR_PTR(-ENOENT);
kernel/bpf/syscall.c
5924
struct bpf_link *link;
kernel/bpf/syscall.c
5931
link = idr_find(&link_idr, id);
kernel/bpf/syscall.c
5932
if (link) {
kernel/bpf/syscall.c
5933
if (link->id)
kernel/bpf/syscall.c
5934
link = bpf_link_inc_not_zero(link);
kernel/bpf/syscall.c
5936
link = ERR_PTR(-EAGAIN);
kernel/bpf/syscall.c
5938
link = ERR_PTR(-ENOENT);
kernel/bpf/syscall.c
5941
return link;
kernel/bpf/syscall.c
5946
struct bpf_link *link;
kernel/bpf/syscall.c
5950
link = idr_get_next(&link_idr, id);
kernel/bpf/syscall.c
5951
if (link) {
kernel/bpf/syscall.c
5952
link = bpf_link_inc_not_zero(link);
kernel/bpf/syscall.c
5953
if (IS_ERR(link)) {
kernel/bpf/syscall.c
5960
return link;
kernel/bpf/syscall.c
5967
struct bpf_link *link;
kernel/bpf/syscall.c
5977
link = bpf_link_by_id(id);
kernel/bpf/syscall.c
5978
if (IS_ERR(link))
kernel/bpf/syscall.c
5979
return PTR_ERR(link);
kernel/bpf/syscall.c
5981
fd = bpf_link_new_fd(link);
kernel/bpf/syscall.c
5983
bpf_link_put_direct(link);
kernel/bpf/syscall.c
6046
struct bpf_link *link;
kernel/bpf/syscall.c
6055
link = bpf_link_get_from_fd(attr->iter_create.link_fd);
kernel/bpf/syscall.c
6056
if (IS_ERR(link))
kernel/bpf/syscall.c
6057
return PTR_ERR(link);
kernel/bpf/syscall.c
6059
err = bpf_iter_new_fd(link);
kernel/bpf/syscall.c
6060
bpf_link_put_direct(link);
kernel/bpf/tcx.c
112
if (tuple.link)
kernel/bpf/tcx.c
113
tcx_link(tuple.link)->dev = NULL;
kernel/bpf/tcx.c
141
static int tcx_link_prog_attach(struct bpf_link *link, u32 flags, u32 id_or_fd,
kernel/bpf/tcx.c
144
struct tcx_link *tcx = tcx_link(link);
kernel/bpf/tcx.c
145
bool created, ingress = link->attach_type == BPF_TCX_INGRESS;
kernel/bpf/tcx.c
154
ret = bpf_mprog_attach(entry, &entry_new, link->prog, link, NULL, flags,
kernel/bpf/tcx.c
169
static void tcx_link_release(struct bpf_link *link)
kernel/bpf/tcx.c
171
struct tcx_link *tcx = tcx_link(link);
kernel/bpf/tcx.c
172
bool ingress = link->attach_type == BPF_TCX_INGRESS;
kernel/bpf/tcx.c
186
ret = bpf_mprog_detach(entry, &entry_new, link->prog, link, 0, 0, 0);
kernel/bpf/tcx.c
203
static int tcx_link_update(struct bpf_link *link, struct bpf_prog *nprog,
kernel/bpf/tcx.c
206
struct tcx_link *tcx = tcx_link(link);
kernel/bpf/tcx.c
207
bool ingress = link->attach_type == BPF_TCX_INGRESS;
kernel/bpf/tcx.c
218
if (oprog && link->prog != oprog) {
kernel/bpf/tcx.c
222
oprog = link->prog;
kernel/bpf/tcx.c
232
ret = bpf_mprog_attach(entry, &entry_new, nprog, link, oprog,
kernel/bpf/tcx.c
234
link->prog->aux->id, 0);
kernel/bpf/tcx.c
237
oprog = xchg(&link->prog, nprog);
kernel/bpf/tcx.c
246
static void tcx_link_dealloc(struct bpf_link *link)
kernel/bpf/tcx.c
248
kfree(tcx_link(link));
kernel/bpf/tcx.c
251
static void tcx_link_fdinfo(const struct bpf_link *link, struct seq_file *seq)
kernel/bpf/tcx.c
253
const struct tcx_link *tcx = tcx_link(link);
kernel/bpf/tcx.c
263
link->attach_type,
kernel/bpf/tcx.c
264
link->attach_type == BPF_TCX_INGRESS ? "ingress" : "egress");
kernel/bpf/tcx.c
267
static int tcx_link_fill_info(const struct bpf_link *link,
kernel/bpf/tcx.c
270
const struct tcx_link *tcx = tcx_link(link);
kernel/bpf/tcx.c
279
info->tcx.attach_type = link->attach_type;
kernel/bpf/tcx.c
283
static int tcx_link_detach(struct bpf_link *link)
kernel/bpf/tcx.c
285
tcx_link_release(link);
kernel/bpf/tcx.c
304
bpf_link_init(&tcx->link, BPF_LINK_TYPE_TCX, &tcx_link_lops, prog,
kernel/bpf/tcx.c
307
return bpf_link_prime(&tcx->link, link_primer);
kernel/bpf/tcx.c
334
ret = tcx_link_prog_attach(&tcx->link, attr->link_create.flags,
kernel/bpf/trampoline.c
1005
if (shim_link && !IS_ERR(bpf_link_inc_not_zero(&shim_link->link.link))) {
kernel/bpf/trampoline.c
1020
err = __bpf_trampoline_link_prog(&shim_link->link, tr, NULL);
kernel/bpf/trampoline.c
1034
bpf_link_put(&shim_link->link.link);
kernel/bpf/trampoline.c
1062
bpf_link_put(&shim_link->link.link);
kernel/bpf/trampoline.c
443
struct bpf_tramp_link *link;
kernel/bpf/trampoline.c
458
hlist_for_each_entry(link, &tr->progs_hlist[kind], tramp_hlist) {
kernel/bpf/trampoline.c
459
*ip_arg |= link->link.prog->call_get_func_ip;
kernel/bpf/trampoline.c
460
*links++ = link;
kernel/bpf/trampoline.c
767
static int __bpf_trampoline_link_prog(struct bpf_tramp_link *link,
kernel/bpf/trampoline.c
778
kind = bpf_attach_type_to_tramp(link->link.prog);
kernel/bpf/trampoline.c
795
tr->extension_prog = link->link.prog;
kernel/bpf/trampoline.c
798
link->link.prog->bpf_func);
kernel/bpf/trampoline.c
808
if (!hlist_unhashed(&link->tramp_hlist))
kernel/bpf/trampoline.c
812
if (link_exiting->link.prog != link->link.prog)
kernel/bpf/trampoline.c
818
hlist_add_head(&link->tramp_hlist, prog_list);
kernel/bpf/trampoline.c
821
fslink = container_of(link, struct bpf_fsession_link, link.link);
kernel/bpf/trampoline.c
829
hlist_del_init(&link->tramp_hlist);
kernel/bpf/trampoline.c
841
int bpf_trampoline_link_prog(struct bpf_tramp_link *link,
kernel/bpf/trampoline.c
848
err = __bpf_trampoline_link_prog(link, tr, tgt_prog);
kernel/bpf/trampoline.c
853
static int __bpf_trampoline_unlink_prog(struct bpf_tramp_link *link,
kernel/bpf/trampoline.c
860
kind = bpf_attach_type_to_tramp(link->link.prog);
kernel/bpf/trampoline.c
872
container_of(link, struct bpf_fsession_link, link.link);
kernel/bpf/trampoline.c
878
hlist_del_init(&link->tramp_hlist);
kernel/bpf/trampoline.c
884
int bpf_trampoline_unlink_prog(struct bpf_tramp_link *link,
kernel/bpf/trampoline.c
891
err = __bpf_trampoline_unlink_prog(link, tr, tgt_prog);
kernel/bpf/trampoline.c
897
static void bpf_shim_tramp_link_release(struct bpf_link *link)
kernel/bpf/trampoline.c
900
container_of(link, struct bpf_shim_tramp_link, link.link);
kernel/bpf/trampoline.c
906
WARN_ON_ONCE(bpf_trampoline_unlink_prog(&shim_link->link, shim_link->trampoline, NULL));
kernel/bpf/trampoline.c
910
static void bpf_shim_tramp_link_dealloc(struct bpf_link *link)
kernel/bpf/trampoline.c
913
container_of(link, struct bpf_shim_tramp_link, link.link);
kernel/bpf/trampoline.c
952
bpf_link_init(&shim_link->link.link, BPF_LINK_TYPE_UNSPEC,
kernel/bpf/trampoline.c
962
struct bpf_tramp_link *link;
kernel/bpf/trampoline.c
966
hlist_for_each_entry(link, &tr->progs_hlist[kind], tramp_hlist) {
kernel/bpf/trampoline.c
967
struct bpf_prog *p = link->link.prog;
kernel/bpf/trampoline.c
970
return container_of(link, struct bpf_shim_tramp_link, link);
kernel/cgroup/cgroup-v1.c
107
struct cgrp_cset_link *link;
kernel/cgroup/cgroup-v1.c
125
list_for_each_entry(link, &from->cset_links, cset_link)
kernel/cgroup/cgroup-v1.c
126
cgroup_migrate_add_src(link->cset, to, &mgctx);
kernel/cgroup/cgroup.c
1000
cgroup_put(link->cgrp);
kernel/cgroup/cgroup.c
1001
kfree(link);
kernel/cgroup/cgroup.c
1147
struct cgrp_cset_link *link, *tmp_link;
kernel/cgroup/cgroup.c
1149
list_for_each_entry_safe(link, tmp_link, links_to_free, cset_link) {
kernel/cgroup/cgroup.c
1150
list_del(&link->cset_link);
kernel/cgroup/cgroup.c
1151
kfree(link);
kernel/cgroup/cgroup.c
1165
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
1171
link = kzalloc_obj(*link);
kernel/cgroup/cgroup.c
1172
if (!link) {
kernel/cgroup/cgroup.c
1176
list_add(&link->cset_link, tmp_links);
kernel/cgroup/cgroup.c
1190
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
1197
link = list_first_entry(tmp_links, struct cgrp_cset_link, cset_link);
kernel/cgroup/cgroup.c
1198
link->cset = cset;
kernel/cgroup/cgroup.c
1199
link->cgrp = cgrp;
kernel/cgroup/cgroup.c
1205
list_move_tail(&link->cset_link, &cgrp->cset_links);
kernel/cgroup/cgroup.c
1206
list_add_tail(&link->cgrp_link, &cset->cgrp_links);
kernel/cgroup/cgroup.c
1226
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
1273
list_for_each_entry(link, &old_cset->cgrp_links, cgrp_link) {
kernel/cgroup/cgroup.c
1274
struct cgroup *c = link->cgrp;
kernel/cgroup/cgroup.c
1390
struct cgrp_cset_link *link, *tmp_link;
kernel/cgroup/cgroup.c
1413
list_for_each_entry_safe(link, tmp_link, &cgrp->cset_links, cset_link) {
kernel/cgroup/cgroup.c
1414
list_del(&link->cset_link);
kernel/cgroup/cgroup.c
1415
list_del(&link->cgrp_link);
kernel/cgroup/cgroup.c
1416
kfree(link);
kernel/cgroup/cgroup.c
1449
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
1452
list_for_each_entry(link, &cset->cgrp_links, cgrp_link) {
kernel/cgroup/cgroup.c
1453
struct cgroup *c = link->cgrp;
kernel/cgroup/cgroup.c
3194
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
3205
list_for_each_entry(link, &dsct->cset_links, cset_link)
kernel/cgroup/cgroup.c
3206
cgroup_migrate_add_src(link->cset, dsct, &mgctx);
kernel/cgroup/cgroup.c
4962
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
4991
link = list_entry(l, struct cgrp_cset_link, cset_link);
kernel/cgroup/cgroup.c
4992
cset = link->cset;
kernel/cgroup/cgroup.c
6159
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
6188
list_for_each_entry(link, &cgrp->cset_links, cset_link)
kernel/cgroup/cgroup.c
6189
link->cset->dead = true;
kernel/cgroup/cgroup.c
647
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
651
list_for_each_entry(link, &cgrp->cset_links, cset_link)
kernel/cgroup/cgroup.c
652
count += link->cset->nr_tasks;
kernel/cgroup/cgroup.c
7074
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
7089
list_for_each_entry(link, &cset->cgrp_links, cgrp_link)
kernel/cgroup/cgroup.c
7090
if (waitqueue_active(&link->cgrp->dying_populated_waitq))
kernel/cgroup/cgroup.c
7091
wake_up(&link->cgrp->dying_populated_waitq);
kernel/cgroup/cgroup.c
881
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
885
list_for_each_entry(link, &cset->cgrp_links, cgrp_link)
kernel/cgroup/cgroup.c
886
cgroup_update_populated(link->cgrp, populated);
kernel/cgroup/cgroup.c
977
struct cgrp_cset_link *link, *tmp_link;
kernel/cgroup/cgroup.c
996
list_for_each_entry_safe(link, tmp_link, &cset->cgrp_links, cgrp_link) {
kernel/cgroup/cgroup.c
997
list_del(&link->cset_link);
kernel/cgroup/cgroup.c
998
list_del(&link->cgrp_link);
kernel/cgroup/cgroup.c
999
if (cgroup_parent(link->cgrp))
kernel/cgroup/debug.c
113
struct cgrp_cset_link *link;
kernel/cgroup/debug.c
118
list_for_each_entry(link, &css->cgroup->cset_links, cset_link) {
kernel/cgroup/debug.c
119
struct css_set *cset = link->cset;
kernel/cgroup/debug.c
87
struct cgrp_cset_link *link;
kernel/cgroup/debug.c
97
list_for_each_entry(link, &cset->cgrp_links, cgrp_link) {
kernel/cgroup/debug.c
98
struct cgroup *c = link->cgrp;
kernel/irq/irqdomain.c
2155
list_for_each_entry(d, &irq_domain_list, link)
kernel/irq/irqdomain.c
293
list_add(&domain->link, &irq_domain_list);
kernel/irq/irqdomain.c
408
list_del(&domain->link);
kernel/irq/irqdomain.c
541
list_for_each_entry(h, &irq_domain_list, link) {
kernel/liveupdate/luo_flb.c
326
struct luo_flb_link *link __free(kfree) = NULL;
kernel/liveupdate/luo_flb.c
346
link = kzalloc_obj(*link);
kernel/liveupdate/luo_flb.c
347
if (!link)
kernel/liveupdate/luo_flb.c
397
link->flb = flb;
kernel/liveupdate/luo_flb.c
398
list_add_tail(&no_free_ptr(link)->list, flb_list);
kernel/locking/locktorture.c
631
struct list_head link;
kernel/locking/locktorture.c
637
list_add(&locks[0].link, &list);
kernel/locking/locktorture.c
640
list_add(&locks[1].link, &list);
kernel/locking/locktorture.c
643
list_add(&locks[2].link, &list);
kernel/locking/locktorture.c
647
list_for_each_entry(ll, &list, link) {
kernel/locking/locktorture.c
655
list_for_each_entry_continue_reverse(ln, &list, link)
kernel/locking/locktorture.c
662
list_move(&ll->link, &list);
kernel/locking/test-ww_mutex.c
491
struct list_head link;
kernel/locking/test-ww_mutex.c
514
list_add(&ll->link, &locks);
kernel/locking/test-ww_mutex.c
522
list_for_each_entry(ll, &locks, link) {
kernel/locking/test-ww_mutex.c
528
list_for_each_entry_continue_reverse(ln, &locks, link)
kernel/locking/test-ww_mutex.c
538
list_move(&ll->link, &locks); /* restarts iteration */
kernel/locking/test-ww_mutex.c
542
list_for_each_entry(ll, &locks, link)
kernel/locking/test-ww_mutex.c
549
list_for_each_entry_safe(ll, ln, &locks, link)
kernel/sched/core.c
4826
hlist_add_head(&notifier->link, &current->preempt_notifiers);
kernel/sched/core.c
4838
hlist_del(&notifier->link);
kernel/sched/core.c
4846
hlist_for_each_entry(notifier, &curr->preempt_notifiers, link)
kernel/sched/core.c
4862
hlist_for_each_entry(notifier, &curr->preempt_notifiers, link)
kernel/sched/ext.c
5323
static int scx_enable(struct sched_ext_ops *ops, struct bpf_link *link)
kernel/sched/ext.c
5483
static int bpf_scx_reg(void *kdata, struct bpf_link *link)
kernel/sched/ext.c
5485
return scx_enable(kdata, link);
kernel/sched/ext.c
5488
static void bpf_scx_unreg(void *kdata, struct bpf_link *link)
kernel/sched/ext.c
5505
static int bpf_scx_update(void *kdata, void *old_kdata, struct bpf_link *link)
kernel/sched/fair.c
8710
list_for_each_entry_rcu(entry, &asym_cap_list, link) {
kernel/sched/sched.h
120
struct list_head link;
kernel/sched/topology.c
1407
list_for_each_entry(entry, &asym_cap_list, link) {
kernel/sched/topology.c
1444
list_for_each_entry(entry, &asym_cap_list, link) {
kernel/sched/topology.c
1448
insert_entry = list_prev_entry(entry, link);
kernel/sched/topology.c
1458
list_add_tail_rcu(&entry->link, &asym_cap_list);
kernel/sched/topology.c
1460
list_add_rcu(&entry->link, &insert_entry->link);
kernel/sched/topology.c
1475
list_for_each_entry(entry, &asym_cap_list, link)
kernel/sched/topology.c
1481
list_for_each_entry_safe(entry, next, &asym_cap_list, link) {
kernel/sched/topology.c
1483
list_del_rcu(&entry->link);
kernel/sched/topology.c
1493
entry = list_first_entry(&asym_cap_list, typeof(*entry), link);
kernel/sched/topology.c
1494
list_del_rcu(&entry->link);
kernel/trace/bpf_trace.c
2073
void __bpf_trace_run(struct bpf_raw_tp_link *link, u64 *args)
kernel/trace/bpf_trace.c
2075
struct bpf_prog *prog = link->link.prog;
kernel/trace/bpf_trace.c
2085
run_ctx.bpf_cookie = link->cookie;
kernel/trace/bpf_trace.c
2120
void bpf_trace_run##x(struct bpf_raw_tp_link *link, \
kernel/trace/bpf_trace.c
2125
__bpf_trace_run(link, args); \
kernel/trace/bpf_trace.c
2141
int bpf_probe_register(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link)
kernel/trace/bpf_trace.c
2144
struct bpf_prog *prog = link->link.prog;
kernel/trace/bpf_trace.c
2156
return tracepoint_probe_register_may_exist(tp, (void *)btp->bpf_func, link);
kernel/trace/bpf_trace.c
2159
int bpf_probe_unregister(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link)
kernel/trace/bpf_trace.c
2161
return tracepoint_probe_unregister(btp->tp, (void *)btp->bpf_func, link);
kernel/trace/bpf_trace.c
2292
struct bpf_link link;
kernel/trace/bpf_trace.c
2303
struct bpf_kprobe_multi_link *link;
kernel/trace/bpf_trace.c
2382
static void bpf_kprobe_multi_link_release(struct bpf_link *link)
kernel/trace/bpf_trace.c
2386
kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
kernel/trace/bpf_trace.c
2391
static void bpf_kprobe_multi_link_dealloc(struct bpf_link *link)
kernel/trace/bpf_trace.c
2395
kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
kernel/trace/bpf_trace.c
2402
static int bpf_kprobe_multi_link_fill_link_info(const struct bpf_link *link,
kernel/trace/bpf_trace.c
2416
kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
kernel/trace/bpf_trace.c
2418
info->kprobe_multi.flags = kmulti_link->link.flags;
kernel/trace/bpf_trace.c
2453
static void bpf_kprobe_multi_show_fdinfo(const struct bpf_link *link,
kernel/trace/bpf_trace.c
2459
kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
kernel/trace/bpf_trace.c
2489
const struct bpf_kprobe_multi_link *link = priv;
kernel/trace/bpf_trace.c
2493
cookie_a = link->cookies + (addr_a - link->addrs);
kernel/trace/bpf_trace.c
2494
cookie_b = link->cookies + (addr_b - link->addrs);
kernel/trace/bpf_trace.c
2518
struct bpf_kprobe_multi_link *link;
kernel/trace/bpf_trace.c
2526
link = run_ctx->link;
kernel/trace/bpf_trace.c
2527
if (!link->cookies)
kernel/trace/bpf_trace.c
2530
addr = bsearch(&entry_ip, link->addrs, link->cnt, sizeof(entry_ip),
kernel/trace/bpf_trace.c
2534
cookie = link->cookies + (addr - link->addrs);
kernel/trace/bpf_trace.c
2548
kprobe_multi_link_prog_run(struct bpf_kprobe_multi_link *link,
kernel/trace/bpf_trace.c
2557
.link = link,
kernel/trace/bpf_trace.c
2572
bpf_prog_inc_misses_counter(link->link.prog);
kernel/trace/bpf_trace.c
2580
err = bpf_prog_run(link->link.prog, regs);
kernel/trace/bpf_trace.c
2595
struct bpf_kprobe_multi_link *link;
kernel/trace/bpf_trace.c
2598
link = container_of(fp, struct bpf_kprobe_multi_link, fp);
kernel/trace/bpf_trace.c
2599
err = kprobe_multi_link_prog_run(link, ftrace_get_entry_ip(fentry_ip),
kernel/trace/bpf_trace.c
2601
return is_kprobe_session(link->link.prog) ? err : 0;
kernel/trace/bpf_trace.c
2609
struct bpf_kprobe_multi_link *link;
kernel/trace/bpf_trace.c
2611
link = container_of(fp, struct bpf_kprobe_multi_link, fp);
kernel/trace/bpf_trace.c
2612
kprobe_multi_link_prog_run(link, ftrace_get_entry_ip(fentry_ip),
kernel/trace/bpf_trace.c
2735
struct bpf_kprobe_multi_link *link = NULL;
kernel/trace/bpf_trace.c
2828
link = kzalloc_obj(*link);
kernel/trace/bpf_trace.c
2829
if (!link) {
kernel/trace/bpf_trace.c
2834
bpf_link_init(&link->link, BPF_LINK_TYPE_KPROBE_MULTI,
kernel/trace/bpf_trace.c
2837
err = bpf_link_prime(&link->link, &link_primer);
kernel/trace/bpf_trace.c
2842
link->fp.entry_handler = kprobe_multi_link_handler;
kernel/trace/bpf_trace.c
2844
link->fp.exit_handler = kprobe_multi_link_exit_handler;
kernel/trace/bpf_trace.c
2846
link->fp.entry_data_size = sizeof(u64);
kernel/trace/bpf_trace.c
2848
link->addrs = addrs;
kernel/trace/bpf_trace.c
2849
link->cookies = cookies;
kernel/trace/bpf_trace.c
2850
link->cnt = cnt;
kernel/trace/bpf_trace.c
2851
link->link.flags = flags;
kernel/trace/bpf_trace.c
2863
link);
kernel/trace/bpf_trace.c
2866
err = get_modules_for_addrs(&link->mods, addrs, cnt);
kernel/trace/bpf_trace.c
2871
link->mods_cnt = err;
kernel/trace/bpf_trace.c
2873
err = register_fprobe_ips(&link->fp, addrs, cnt);
kernel/trace/bpf_trace.c
2875
kprobe_multi_put_modules(link->mods, link->mods_cnt);
kernel/trace/bpf_trace.c
2883
kfree(link);
kernel/trace/bpf_trace.c
2907
struct bpf_uprobe_multi_link *link;
kernel/trace/bpf_trace.c
2918
struct bpf_link link;
kernel/trace/bpf_trace.c
2941
static void bpf_uprobe_multi_link_release(struct bpf_link *link)
kernel/trace/bpf_trace.c
2945
umulti_link = container_of(link, struct bpf_uprobe_multi_link, link);
kernel/trace/bpf_trace.c
2952
static void bpf_uprobe_multi_link_dealloc(struct bpf_link *link)
kernel/trace/bpf_trace.c
2956
umulti_link = container_of(link, struct bpf_uprobe_multi_link, link);
kernel/trace/bpf_trace.c
2961
static int bpf_uprobe_multi_link_fill_link_info(const struct bpf_link *link,
kernel/trace/bpf_trace.c
2981
umulti_link = container_of(link, struct bpf_uprobe_multi_link, link);
kernel/trace/bpf_trace.c
2983
info->uprobe_multi.flags = umulti_link->link.flags;
kernel/trace/bpf_trace.c
3029
static void bpf_uprobe_multi_show_fdinfo(const struct bpf_link *link,
kernel/trace/bpf_trace.c
3036
umulti_link = container_of(link, struct bpf_uprobe_multi_link, link);
kernel/trace/bpf_trace.c
3083
struct bpf_uprobe_multi_link *link = uprobe->link;
kernel/trace/bpf_trace.c
3092
struct bpf_prog *prog = link->link.prog;
kernel/trace/bpf_trace.c
3097
if (link->task && !same_thread_group(current, link->task))
kernel/trace/bpf_trace.c
3108
err = bpf_prog_run(link->link.prog, regs);
kernel/trace/bpf_trace.c
3126
return uprobe->link->task->mm == mm;
kernel/trace/bpf_trace.c
3174
struct bpf_uprobe_multi_link *link = NULL;
kernel/trace/bpf_trace.c
3247
link = kzalloc_obj(*link);
kernel/trace/bpf_trace.c
3250
if (!uprobes || !link)
kernel/trace/bpf_trace.c
3271
uprobes[i].link = link;
kernel/trace/bpf_trace.c
3283
link->cnt = cnt;
kernel/trace/bpf_trace.c
3284
link->uprobes = uprobes;
kernel/trace/bpf_trace.c
3285
link->path = path;
kernel/trace/bpf_trace.c
3286
link->task = task;
kernel/trace/bpf_trace.c
3287
link->link.flags = flags;
kernel/trace/bpf_trace.c
3289
bpf_link_init(&link->link, BPF_LINK_TYPE_UPROBE_MULTI,
kernel/trace/bpf_trace.c
3293
uprobes[i].uprobe = uprobe_register(d_real_inode(link->path.dentry),
kernel/trace/bpf_trace.c
3299
link->cnt = i;
kernel/trace/bpf_trace.c
3304
err = bpf_link_prime(&link->link, &link_primer);
kernel/trace/bpf_trace.c
3311
bpf_uprobe_unregister(uprobes, link->cnt);
kernel/trace/bpf_trace.c
3315
kfree(link);
kernel/trace/trace.c
3026
list_for_each_entry(field, head, link) {
kernel/trace/trace.h
1510
struct list_head link;
kernel/trace/trace_events.c
140
list_add(&field->link, head);
kernel/trace/trace_events.c
2104
field = list_entry(v, struct ftrace_event_field, link);
kernel/trace/trace_events.c
226
list_for_each_entry_safe(field, next, head, link) {
kernel/trace/trace_events.c
227
list_del(&field->link);
kernel/trace/trace_events.c
246
tail = list_first_entry(head, struct ftrace_event_field, link);
kernel/trace/trace_events.c
3515
list_for_each_entry(field, head, link) {
kernel/trace/trace_events.c
89
list_for_each_entry(field, head, link) {
kernel/trace/trace_events_inject.c
145
list_for_each_entry(field, head, link) {
kernel/trace/trace_events_inject.c
166
list_for_each_entry(field, head, link) {
kernel/trace/trace_events_user.c
1102
list_for_each_entry_safe(field, next, head, link) {
kernel/trace/trace_events_user.c
1103
list_del(&field->link);
kernel/trace/trace_events_user.c
1159
list_add(&field->link, &user->fields);
kernel/trace/trace_events_user.c
1395
list_for_each_entry_reverse(field, head, link) {
kernel/trace/trace_events_user.c
1407
list_for_each_entry_reverse(field, head, link) {
kernel/trace/trace_events_user.c
1814
list_for_each_entry_reverse(field, head, link) {
kernel/trace/trace_events_user.c
1900
list_for_each_entry_reverse(field, head, link) {
kernel/trace/trace_fprobe.c
355
struct event_file_link *link;
kernel/trace/trace_fprobe.c
357
trace_probe_for_each_link_rcu(link, &tf->tp)
kernel/trace/trace_fprobe.c
358
__fentry_trace_func(tf, entry_ip, fregs, link->file);
kernel/trace/trace_fprobe.c
442
struct event_file_link *link;
kernel/trace/trace_fprobe.c
444
trace_probe_for_each_link_rcu(link, &tf->tp)
kernel/trace/trace_fprobe.c
445
__fexit_trace_func(tf, entry_ip, ret_ip, fregs, entry_data, link->file);
kernel/trace/trace_kprobe.c
1497
struct event_file_link *link;
kernel/trace/trace_kprobe.c
1499
trace_probe_for_each_link_rcu(link, &tk->tp)
kernel/trace/trace_kprobe.c
1500
__kprobe_trace_func(tk, regs, link->file);
kernel/trace/trace_kprobe.c
1564
struct event_file_link *link;
kernel/trace/trace_kprobe.c
1566
trace_probe_for_each_link_rcu(link, &tk->tp)
kernel/trace/trace_kprobe.c
1567
__kretprobe_trace_func(tk, ri, regs, link->file);
kernel/trace/trace_output.c
981
list_for_each_entry_reverse(field, head, link) {
kernel/trace/trace_probe.c
2149
struct event_file_link *link;
kernel/trace/trace_probe.c
2151
link = kmalloc_obj(*link);
kernel/trace/trace_probe.c
2152
if (!link)
kernel/trace/trace_probe.c
2155
link->file = file;
kernel/trace/trace_probe.c
2156
INIT_LIST_HEAD(&link->list);
kernel/trace/trace_probe.c
2157
list_add_tail_rcu(&link->list, &tp->event->files);
kernel/trace/trace_probe.c
2165
struct event_file_link *link;
kernel/trace/trace_probe.c
2167
trace_probe_for_each_link(link, tp) {
kernel/trace/trace_probe.c
2168
if (link->file == file)
kernel/trace/trace_probe.c
2169
return link;
kernel/trace/trace_probe.c
2178
struct event_file_link *link;
kernel/trace/trace_probe.c
2180
link = trace_probe_get_file_link(tp, file);
kernel/trace/trace_probe.c
2181
if (!link)
kernel/trace/trace_probe.c
2184
list_del_rcu(&link->list);
kernel/trace/trace_probe.c
2185
kvfree_rcu_mightsleep(link);
kernel/trace/trace_probe.c
325
list_for_each_entry(field, head, link) {
kernel/trace/trace_uprobe.c
1033
struct event_file_link *link;
kernel/trace/trace_uprobe.c
1042
trace_probe_for_each_link_rcu(link, &tu->tp)
kernel/trace/trace_uprobe.c
1043
__uprobe_trace_func(tu, 0, regs, ucb, link->file);
kernel/trace/trace_uprobe.c
1053
struct event_file_link *link;
kernel/trace/trace_uprobe.c
1059
trace_probe_for_each_link_rcu(link, &tu->tp)
kernel/trace/trace_uprobe.c
1060
__uprobe_trace_func(tu, func, regs, ucb, link->file);
kernel/user-return-notifier.c
18
hlist_add_head(&urn->link, this_cpu_ptr(&return_notifier_list));
kernel/user-return-notifier.c
28
hlist_del(&urn->link);
kernel/user-return-notifier.c
42
hlist_for_each_entry_safe(urn, tmp2, head, link)
lib/codetag.c
11
struct list_head link;
lib/codetag.c
246
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
271
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
292
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
308
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
328
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
349
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
401
list_add_tail(&cttype->link, &codetag_types);
lib/dynamic_debug.c
1043
struct ddebug_table, link);
lib/dynamic_debug.c
1060
if (list_is_last(&iter->table->link, &ddebug_tables)) {
lib/dynamic_debug.c
1064
iter->table = list_entry(iter->table->link.next,
lib/dynamic_debug.c
1065
struct ddebug_table, link);
lib/dynamic_debug.c
1120
list_for_each_entry(map, &iter->table->maps, link)
lib/dynamic_debug.c
1222
list_add(&cm->link, &dt->maps);
lib/dynamic_debug.c
1259
INIT_LIST_HEAD(&dt->link);
lib/dynamic_debug.c
1266
list_add_tail(&dt->link, &ddebug_tables);
lib/dynamic_debug.c
1315
list_del_init(&dt->link);
lib/dynamic_debug.c
1331
list_for_each_entry_safe(dt, nextdt, &ddebug_tables, link) {
lib/dynamic_debug.c
1377
link);
lib/dynamic_debug.c
157
list_for_each_entry(map, &dt->maps, link) {
lib/dynamic_debug.c
188
list_for_each_entry(dt, &ddebug_tables, link) {
lib/dynamic_debug.c
48
struct list_head link, maps;
mm/hugetlb.c
1132
list_add(&rg->link, &resv_map->region_cache);
mm/hugetlb.c
1148
list_for_each_entry_safe(rg, trg, head, link) {
mm/hugetlb.c
1149
list_del(&rg->link);
mm/hugetlb.c
467
nrg = list_first_entry(&resv->region_cache, struct file_region, link);
mm/hugetlb.c
468
list_del(&nrg->link);
mm/hugetlb.c
546
prg = list_prev_entry(rg, link);
mm/hugetlb.c
547
if (&prg->link != &resv->regions && prg->to == rg->from &&
mm/hugetlb.c
551
list_del(&rg->link);
mm/hugetlb.c
558
nrg = list_next_entry(rg, link);
mm/hugetlb.c
559
if (&nrg->link != &resv->regions && nrg->from == rg->to &&
mm/hugetlb.c
563
list_del(&rg->link);
mm/hugetlb.c
579
list_add(&nrg->link, rg);
mm/hugetlb.c
613
list_for_each_entry_safe(iter, trg, head, link) {
mm/hugetlb.c
628
rg = iter->link.prev;
mm/hugetlb.c
636
add += hugetlb_resv_map_add(resv, iter->link.prev,
mm/hugetlb.c
693
list_add(&trg->link, &allocated_regions);
mm/hugetlb.c
705
list_for_each_entry_safe(rg, trg, &allocated_regions, link) {
mm/hugetlb.c
706
list_del(&rg->link);
mm/hugetlb.c
864
list_for_each_entry_safe(rg, trg, head, link) {
mm/hugetlb.c
887
link);
mm/hugetlb.c
888
list_del(&nrg->link);
mm/hugetlb.c
910
INIT_LIST_HEAD(&nrg->link);
mm/hugetlb.c
915
list_add(&nrg->link, &rg->link);
mm/hugetlb.c
924
list_del(&rg->link);
mm/hugetlb.c
990
list_for_each_entry(rg, head, link) {
mm/interval_tree.c
32
struct rb_node **link;
mm/interval_tree.c
40
link = &prev->shared.rb.rb_right;
mm/interval_tree.c
52
link = &parent->shared.rb.rb_left;
mm/interval_tree.c
56
rb_link_node(&node->shared.rb, &parent->shared.rb, link);
mm/kmemleak.c
711
struct rb_node **link, *rb_parent;
mm/kmemleak.c
734
link = &object_tree(objflags)->rb_node;
mm/kmemleak.c
736
while (*link) {
mm/kmemleak.c
737
rb_parent = *link;
mm/kmemleak.c
741
link = &parent->rb_node.rb_left;
mm/kmemleak.c
743
link = &parent->rb_node.rb_right;
mm/kmemleak.c
761
rb_link_node(&object->rb_node, rb_parent, link);
mm/shmem.c
4111
char *link;
mm/shmem.c
4133
link = kmemdup(symname, len, GFP_KERNEL);
mm/shmem.c
4134
if (!link) {
mm/shmem.c
4139
inode_set_cached_link(inode, link, len - 1);
mm/shmem.c
5257
.link = shmem_link,
mm/swapfile.c
2554
struct rb_node **link = &sis->swap_extent_root.rb_node, *parent = NULL;
mm/swapfile.c
2562
while (*link) {
mm/swapfile.c
2563
parent = *link;
mm/swapfile.c
2564
link = &parent->rb_right;
mm/swapfile.c
2585
rb_link_node(&new_se->rb_node, parent, link);
mm/vmalloc.c
1187
struct rb_node **link;
mm/vmalloc.c
1190
link = &root->rb_node;
mm/vmalloc.c
1191
if (unlikely(!*link)) {
mm/vmalloc.c
1193
return link;
mm/vmalloc.c
1196
link = &from;
mm/vmalloc.c
1205
tmp_va = rb_entry(*link, struct vmap_area, rb_node);
mm/vmalloc.c
1213
link = &(*link)->rb_left;
mm/vmalloc.c
1215
link = &(*link)->rb_right;
mm/vmalloc.c
1222
} while (*link);
mm/vmalloc.c
1225
return link;
mm/vmalloc.c
1229
get_va_next_sibling(struct rb_node *parent, struct rb_node **link)
mm/vmalloc.c
1243
return (&parent->rb_right == link ? list->next : list);
mm/vmalloc.c
1248
struct rb_node *parent, struct rb_node **link,
mm/vmalloc.c
1257
if (&parent->rb_right != link)
mm/vmalloc.c
1262
rb_link_node(&va->rb_node, parent, link);
mm/vmalloc.c
1288
struct rb_node *parent, struct rb_node **link,
mm/vmalloc.c
1291
__link_va(va, root, parent, link, head, false);
mm/vmalloc.c
1296
struct rb_node *parent, struct rb_node **link,
mm/vmalloc.c
1299
__link_va(va, root, parent, link, head, true);
mm/vmalloc.c
1403
struct rb_node **link;
mm/vmalloc.c
1406
link = find_va_links(va, root, NULL, &parent);
mm/vmalloc.c
1407
if (link)
mm/vmalloc.c
1408
link_va(va, root, parent, link, head);
mm/vmalloc.c
1416
struct rb_node **link;
mm/vmalloc.c
1420
link = find_va_links(va, NULL, from, &parent);
mm/vmalloc.c
1422
link = find_va_links(va, root, NULL, &parent);
mm/vmalloc.c
1424
if (link) {
mm/vmalloc.c
1425
link_va_augment(va, root, parent, link, head);
mm/vmalloc.c
1447
struct rb_node **link;
mm/vmalloc.c
1455
link = find_va_links(va, root, NULL, &parent);
mm/vmalloc.c
1456
if (!link)
mm/vmalloc.c
1462
next = get_va_next_sibling(parent, link);
mm/vmalloc.c
1520
__link_va(va, root, parent, link, head, augment);
mm/zsmalloc.c
1249
struct link_free *link;
mm/zsmalloc.c
1268
link = (struct link_free *)vaddr + m_offset / sizeof(*link);
mm/zsmalloc.c
1269
set_freeobj(zspage, link->next >> OBJ_TAG_BITS);
mm/zsmalloc.c
1272
link->handle = handle | OBJ_ALLOCATED_TAG;
mm/zsmalloc.c
1358
struct link_free *link;
mm/zsmalloc.c
1371
link = (struct link_free *)(vaddr + f_offset);
mm/zsmalloc.c
1375
link->next = get_freeobj(zspage) << OBJ_TAG_BITS;
mm/zsmalloc.c
860
struct link_free *link;
mm/zsmalloc.c
866
link = (struct link_free *)vaddr + off / sizeof(*link);
mm/zsmalloc.c
869
link->next = freeobj++ << OBJ_TAG_BITS;
mm/zsmalloc.c
870
link += class->size / sizeof(*link);
mm/zsmalloc.c
880
link->next = freeobj++ << OBJ_TAG_BITS;
mm/zsmalloc.c
886
link->next = -1UL << OBJ_TAG_BITS;
net/bluetooth/hci_conn.c
1135
struct hci_link *link, *t;
net/bluetooth/hci_conn.c
1137
list_for_each_entry_safe(link, t, &conn->link_list, list) {
net/bluetooth/hci_conn.c
1138
struct hci_conn *child = link->conn;
net/bluetooth/hci_conn.c
1156
if (!conn->link)
net/bluetooth/hci_conn.c
1159
list_del_rcu(&conn->link->list);
net/bluetooth/hci_conn.c
1166
kfree(conn->link);
net/bluetooth/hci_conn.c
1167
conn->link = NULL;
net/bluetooth/hci_conn.c
1732
struct hci_link *link;
net/bluetooth/hci_conn.c
1736
if (conn->link)
net/bluetooth/hci_conn.c
1737
return conn->link;
net/bluetooth/hci_conn.c
1742
link = kzalloc_obj(*link);
net/bluetooth/hci_conn.c
1743
if (!link)
net/bluetooth/hci_conn.c
1746
link->conn = hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1747
conn->link = link;
net/bluetooth/hci_conn.c
1751
list_add_tail_rcu(&link->list, &parent->link_list);
net/bluetooth/hci_conn.c
1753
return link;
net/bluetooth/hci_conn.c
1762
struct hci_link *link;
net/bluetooth/hci_conn.c
1778
link = hci_conn_link(acl, sco);
net/bluetooth/hci_conn.c
1779
if (!link) {
net/bluetooth/hci_conn.c
2221
struct hci_link *link;
net/bluetooth/hci_conn.c
2261
link = hci_conn_link(parent, conn);
net/bluetooth/hci_conn.c
2263
if (!link)
net/bluetooth/hci_conn.c
2355
struct hci_link *link;
net/bluetooth/hci_conn.c
2383
link = hci_conn_link(le, cis);
net/bluetooth/hci_conn.c
2385
if (!link) {
net/bluetooth/hci_conn.c
540
struct hci_link *link;
net/bluetooth/hci_conn.c
542
link = list_first_entry_or_null(&conn->link_list, struct hci_link, list);
net/bluetooth/hci_conn.c
543
if (!link || !link->conn)
net/bluetooth/hci_conn.c
550
hci_setup_sync(link->conn, conn->handle);
net/bluetooth/hci_conn.c
552
hci_add_sco(link->conn, conn->handle);
net/bluetooth/hci_conn.c
554
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_conn.c
555
hci_conn_del(link->conn);
net/bluetooth/hci_event.c
2287
struct hci_link *link;
net/bluetooth/hci_event.c
2307
link = list_first_entry_or_null(&acl->link_list,
net/bluetooth/hci_event.c
2309
if (link && link->conn) {
net/bluetooth/hci_event.c
2310
link->conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2312
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_event.c
2313
hci_conn_del(link->conn);
net/bluetooth/hci_event.c
2582
struct hci_link *link;
net/bluetooth/hci_event.c
2590
link = list_first_entry_or_null(&acl->link_list,
net/bluetooth/hci_event.c
2592
if (link && link->conn) {
net/bluetooth/hci_event.c
2593
link->conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2595
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_event.c
2596
hci_conn_del(link->conn);
net/bluetooth/hci_sync.c
6736
struct hci_conn *link;
net/bluetooth/hci_sync.c
6743
list_for_each_entry_rcu(link, &hdev->conn_hash.list, list) {
net/bluetooth/hci_sync.c
6744
if (hci_conn_check_create_cis(link) > 0 &&
net/bluetooth/hci_sync.c
6745
link->iso_qos.ucast.cig == cig &&
net/bluetooth/hci_sync.c
6746
link->state != BT_CONNECTED) {
net/bluetooth/iso.c
2407
struct hci_link *link, *t;
net/bluetooth/iso.c
2409
list_for_each_entry_safe(link, t, &hcon->link_list,
net/bluetooth/iso.c
2411
iso_conn_del(link->conn, bt_to_errno(status));
net/bpf/bpf_dummy_struct_ops.c
136
struct bpf_tramp_link *link = NULL;
net/bpf/bpf_dummy_struct_ops.c
167
link = kzalloc_obj(*link, GFP_USER);
net/bpf/bpf_dummy_struct_ops.c
168
if (!link) {
net/bpf/bpf_dummy_struct_ops.c
174
bpf_link_init(&link->link, BPF_LINK_TYPE_STRUCT_OPS, &bpf_struct_ops_link_lops, prog,
net/bpf/bpf_dummy_struct_ops.c
178
err = bpf_struct_ops_prepare_trampoline(tlinks, link,
net/bpf/bpf_dummy_struct_ops.c
199
if (link)
net/bpf/bpf_dummy_struct_ops.c
200
bpf_link_put(&link->link);
net/bpf/bpf_dummy_struct_ops.c
276
static int bpf_dummy_reg(void *kdata, struct bpf_link *link)
net/bpf/bpf_dummy_struct_ops.c
281
static void bpf_dummy_unreg(void *kdata, struct bpf_link *link)
net/bridge/br_multicast_eht.c
247
struct rb_node **link = &pg->eht_host_tree.rb_node, *parent = NULL;
net/bridge/br_multicast_eht.c
250
while (*link) {
net/bridge/br_multicast_eht.c
254
this = rb_entry(*link, struct net_bridge_group_eht_host,
net/bridge/br_multicast_eht.c
257
parent = *link;
net/bridge/br_multicast_eht.c
259
link = &((*link)->rb_left);
net/bridge/br_multicast_eht.c
261
link = &((*link)->rb_right);
net/bridge/br_multicast_eht.c
278
rb_link_node(&eht_host->rb_node, parent, link);
net/bridge/br_multicast_eht.c
292
struct rb_node **link = &eht_set->entry_tree.rb_node, *parent = NULL;
net/bridge/br_multicast_eht.c
295
while (*link) {
net/bridge/br_multicast_eht.c
299
this = rb_entry(*link, struct net_bridge_group_eht_set_entry,
net/bridge/br_multicast_eht.c
303
parent = *link;
net/bridge/br_multicast_eht.c
305
link = &((*link)->rb_left);
net/bridge/br_multicast_eht.c
307
link = &((*link)->rb_right);
net/bridge/br_multicast_eht.c
329
rb_link_node(&set_h->rb_node, parent, link);
net/bridge/br_multicast_eht.c
344
struct rb_node **link = &pg->eht_set_tree.rb_node, *parent = NULL;
net/bridge/br_multicast_eht.c
347
while (*link) {
net/bridge/br_multicast_eht.c
351
this = rb_entry(*link, struct net_bridge_group_eht_set,
net/bridge/br_multicast_eht.c
354
parent = *link;
net/bridge/br_multicast_eht.c
356
link = &((*link)->rb_left);
net/bridge/br_multicast_eht.c
358
link = &((*link)->rb_right);
net/bridge/br_multicast_eht.c
374
rb_link_node(&eht_set->rb_node, parent, link);
net/core/dev.c
10212
struct bpf_link link;
net/core/dev.c
10244
return dev->xdp_state[mode].link;
net/core/dev.c
10250
struct bpf_xdp_link *link = dev_xdp_link(dev, mode);
net/core/dev.c
10252
if (link)
net/core/dev.c
10253
return link->link.prog;
net/core/dev.c
10263
if (dev->xdp_state[i].prog || dev->xdp_state[i].link)
net/core/dev.c
10311
struct bpf_xdp_link *link)
net/core/dev.c
10313
dev->xdp_state[mode].link = link;
net/core/dev.c
10320
dev->xdp_state[mode].link = NULL;
net/core/dev.c
10373
struct bpf_xdp_link *link;
net/core/dev.c
10392
link = dev_xdp_link(dev, mode);
net/core/dev.c
10393
if (link)
net/core/dev.c
10394
link->dev = NULL;
net/core/dev.c
10403
struct bpf_xdp_link *link, struct bpf_prog *new_prog,
net/core/dev.c
10417
if (link && (new_prog || old_prog))
net/core/dev.c
10420
if (link && (flags & ~XDP_FLAGS_MODES)) {
net/core/dev.c
10458
if (link && cur_prog) {
net/core/dev.c
10468
if (link)
net/core/dev.c
10469
new_prog = link->link.prog;
net/core/dev.c
10519
if (link)
net/core/dev.c
10520
dev_xdp_set_link(dev, mode, link);
net/core/dev.c
10531
struct bpf_xdp_link *link)
net/core/dev.c
10533
return dev_xdp_attach(dev, extack, link, NULL, NULL, link->flags);
net/core/dev.c
10538
struct bpf_xdp_link *link)
net/core/dev.c
10545
mode = dev_xdp_mode(dev, link->flags);
net/core/dev.c
10546
if (dev_xdp_link(dev, mode) != link)
net/core/dev.c
10555
static void bpf_xdp_link_release(struct bpf_link *link)
net/core/dev.c
10557
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10574
static int bpf_xdp_link_detach(struct bpf_link *link)
net/core/dev.c
10576
bpf_xdp_link_release(link);
net/core/dev.c
10580
static void bpf_xdp_link_dealloc(struct bpf_link *link)
net/core/dev.c
10582
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10587
static void bpf_xdp_link_show_fdinfo(const struct bpf_link *link,
net/core/dev.c
10590
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10601
static int bpf_xdp_link_fill_link_info(const struct bpf_link *link,
net/core/dev.c
10604
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10616
static int bpf_xdp_link_update(struct bpf_link *link, struct bpf_prog *new_prog,
net/core/dev.c
10619
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10632
if (old_prog && link->prog != old_prog) {
net/core/dev.c
10636
old_prog = link->prog;
net/core/dev.c
10658
old_prog = xchg(&link->prog, new_prog);
net/core/dev.c
10680
struct bpf_xdp_link *link;
net/core/dev.c
10691
link = kzalloc_obj(*link, GFP_USER);
net/core/dev.c
10692
if (!link) {
net/core/dev.c
10697
bpf_link_init(&link->link, BPF_LINK_TYPE_XDP, &bpf_xdp_link_lops, prog,
net/core/dev.c
10699
link->dev = dev;
net/core/dev.c
10700
link->flags = attr->link_create.flags;
net/core/dev.c
10702
err = bpf_link_prime(&link->link, &link_primer);
net/core/dev.c
10704
kfree(link);
net/core/dev.c
10709
err = dev_xdp_attach_link(dev, &extack, link);
net/core/dev.c
10714
link->dev = NULL;
net/core/rtnetlink.c
392
struct rtnl_link *link, *old;
net/core/rtnetlink.c
413
link = kmemdup(old, sizeof(*old), GFP_KERNEL);
net/core/rtnetlink.c
414
if (!link)
net/core/rtnetlink.c
417
link = kzalloc_obj(*link);
net/core/rtnetlink.c
418
if (!link)
net/core/rtnetlink.c
422
WARN_ON(link->owner && link->owner != owner);
net/core/rtnetlink.c
423
link->owner = owner;
net/core/rtnetlink.c
425
WARN_ON(doit && link->doit && link->doit != doit);
net/core/rtnetlink.c
427
link->doit = doit;
net/core/rtnetlink.c
428
WARN_ON(dumpit && link->dumpit && link->dumpit != dumpit);
net/core/rtnetlink.c
430
link->dumpit = dumpit;
net/core/rtnetlink.c
434
link->flags |= flags;
net/core/rtnetlink.c
437
rcu_assign_pointer(tab[msgindex], link);
net/core/rtnetlink.c
4383
struct rtnl_link *link;
net/core/rtnetlink.c
4396
link = rcu_dereference_rtnl(tab[type]);
net/core/rtnetlink.c
4397
if (!link)
net/core/rtnetlink.c
4400
dumpit = link->dumpit;
net/core/rtnetlink.c
456
struct rtnl_link *link;
net/core/rtnetlink.c
469
link = rcu_replace_pointer_rtnl(tab[msgindex], NULL);
net/core/rtnetlink.c
472
kfree_rcu(link, rcu);
net/core/rtnetlink.c
487
struct rtnl_link *link;
net/core/rtnetlink.c
499
link = rcu_replace_pointer_rtnl(tab[msgindex], NULL);
net/core/rtnetlink.c
500
kfree_rcu(link, rcu);
net/core/rtnetlink.c
6885
struct rtnl_link *link;
net/core/rtnetlink.c
6916
link = rtnl_get_link(family, type);
net/core/rtnetlink.c
6917
if (!link || !link->dumpit) {
net/core/rtnetlink.c
6919
link = rtnl_get_link(family, type);
net/core/rtnetlink.c
6920
if (!link || !link->dumpit)
net/core/rtnetlink.c
6923
owner = link->owner;
net/core/rtnetlink.c
6924
dumpit = link->dumpit;
net/core/rtnetlink.c
6925
flags = link->flags;
net/core/rtnetlink.c
6954
link = rtnl_get_link(family, type);
net/core/rtnetlink.c
6955
if (!link || !link->doit) {
net/core/rtnetlink.c
6957
link = rtnl_get_link(PF_UNSPEC, type);
net/core/rtnetlink.c
6958
if (!link || !link->doit)
net/core/rtnetlink.c
6962
owner = link->owner;
net/core/rtnetlink.c
6968
flags = link->flags;
net/core/rtnetlink.c
6977
doit = link->doit;
net/core/rtnetlink.c
6987
link = rtnl_get_link(family, type);
net/core/rtnetlink.c
6988
if (link && link->doit)
net/core/rtnetlink.c
6989
err = link->doit(skb, nlh, extack);
net/core/skmsg.c
781
INIT_LIST_HEAD(&psock->link);
net/core/skmsg.c
806
struct sk_psock_link *link;
net/core/skmsg.c
809
link = list_first_entry_or_null(&psock->link, struct sk_psock_link,
net/core/skmsg.c
811
if (link)
net/core/skmsg.c
812
list_del(&link->list);
net/core/skmsg.c
814
return link;
net/core/skmsg.c
845
struct sk_psock_link *link, *tmp;
net/core/skmsg.c
847
list_for_each_entry_safe(link, tmp, &psock->link, list) {
net/core/skmsg.c
848
list_del(&link->list);
net/core/skmsg.c
849
sk_psock_free_link(link);
net/core/sock_map.c
1006
link = sk_psock_init_link();
net/core/sock_map.c
1007
if (!link)
net/core/sock_map.c
1036
sock_map_add_link(psock, link, map, elem_new);
net/core/sock_map.c
1052
sk_psock_free_link(link);
net/core/sock_map.c
132
struct sk_psock_link *link,
net/core/sock_map.c
135
link->link_raw = link_raw;
net/core/sock_map.c
136
link->map = map;
net/core/sock_map.c
138
list_add_tail(&link->list, &psock->link);
net/core/sock_map.c
146
struct sk_psock_link *link, *tmp;
net/core/sock_map.c
149
list_for_each_entry_safe(link, tmp, &psock->link, list) {
net/core/sock_map.c
150
if (link->link_raw == link_raw) {
net/core/sock_map.c
151
struct bpf_map *map = link->map;
net/core/sock_map.c
1525
struct bpf_prog *old, struct bpf_link *link,
net/core/sock_map.c
1539
if ((!link || prog) && *plink)
net/core/sock_map.c
1548
if (link)
net/core/sock_map.c
1549
*plink = link;
net/core/sock_map.c
160
list_del(&link->list);
net/core/sock_map.c
1604
static void sock_map_unlink(struct sock *sk, struct sk_psock_link *link)
net/core/sock_map.c
1606
switch (link->map->map_type) {
net/core/sock_map.c
1608
return sock_map_delete_from_link(link->map, sk,
net/core/sock_map.c
1609
link->link_raw);
net/core/sock_map.c
161
sk_psock_free_link(link);
net/core/sock_map.c
1611
return sock_hash_delete_from_link(link->map, sk,
net/core/sock_map.c
1612
link->link_raw);
net/core/sock_map.c
1620
struct sk_psock_link *link;
net/core/sock_map.c
1622
while ((link = sk_psock_link_pop(psock))) {
net/core/sock_map.c
1623
sock_map_unlink(sk, link);
net/core/sock_map.c
1624
sk_psock_free_link(link);
net/core/sock_map.c
1710
struct bpf_link link;
net/core/sock_map.c
1714
static void sock_map_link_release(struct bpf_link *link)
net/core/sock_map.c
1716
struct sockmap_link *sockmap_link = container_of(link, struct sockmap_link, link);
net/core/sock_map.c
1722
WARN_ON_ONCE(sock_map_prog_update(sockmap_link->map, NULL, link->prog, link,
net/core/sock_map.c
1723
link->attach_type));
net/core/sock_map.c
1731
static int sock_map_link_detach(struct bpf_link *link)
net/core/sock_map.c
1733
sock_map_link_release(link);
net/core/sock_map.c
1737
static void sock_map_link_dealloc(struct bpf_link *link)
net/core/sock_map.c
1739
kfree(link);
net/core/sock_map.c
1746
static int sock_map_link_update_prog(struct bpf_link *link,
net/core/sock_map.c
1750
const struct sockmap_link *sockmap_link = container_of(link, struct sockmap_link, link);
net/core/sock_map.c
1758
if (old && link->prog != old) {
net/core/sock_map.c
1763
if (link->prog->type != prog->type ||
net/core/sock_map.c
1764
link->prog->expected_attach_type != prog->expected_attach_type) {
net/core/sock_map.c
1774
link->attach_type);
net/core/sock_map.c
1779
if (link != *plink) {
net/core/sock_map.c
1793
old_link_prog = xchg(&link->prog, prog);
net/core/sock_map.c
1812
static int sock_map_link_fill_info(const struct bpf_link *link,
net/core/sock_map.c
1815
const struct sockmap_link *sockmap_link = container_of(link, struct sockmap_link, link);
net/core/sock_map.c
1819
info->sockmap.attach_type = link->attach_type;
net/core/sock_map.c
1823
static void sock_map_link_show_fdinfo(const struct bpf_link *link,
net/core/sock_map.c
1826
const struct sockmap_link *sockmap_link = container_of(link, struct sockmap_link, link);
net/core/sock_map.c
1830
seq_printf(seq, "attach_type:\t%u\n", link->attach_type);
net/core/sock_map.c
1868
bpf_link_init(&sockmap_link->link, BPF_LINK_TYPE_SOCKMAP, &sock_map_link_ops, prog,
net/core/sock_map.c
1872
ret = bpf_link_prime(&sockmap_link->link, &link_primer);
net/core/sock_map.c
1879
ret = sock_map_prog_update(map, prog, NULL, &sockmap_link->link, attach_type);
net/core/sock_map.c
35
struct bpf_prog *old, struct bpf_link *link,
net/core/sock_map.c
474
struct sk_psock_link *link;
net/core/sock_map.c
485
link = sk_psock_init_link();
net/core/sock_map.c
486
if (!link)
net/core/sock_map.c
506
sock_map_add_link(psock, link, map, &stab->sks[idx]);
net/core/sock_map.c
517
sk_psock_free_link(link);
net/core/sock_map.c
998
struct sk_psock_link *link;
net/dsa/dsa.c
1243
bool link = of_property_read_bool(dn, "link");
net/dsa/dsa.c
1271
if (link)
net/ethtool/ioctl.c
1959
int link = __ethtool_get_link(dev);
net/ethtool/ioctl.c
1961
if (link < 0)
net/ethtool/ioctl.c
1962
return link;
net/ethtool/ioctl.c
1964
edata.data = link;
net/ethtool/linkstate.c
116
data->link = __ethtool_get_link(dev);
net/ethtool/linkstate.c
14
int link;
net/ethtool/linkstate.c
185
if (data->link >= 0 &&
net/ethtool/linkstate.c
186
nla_put_u8(skb, ETHTOOL_A_LINKSTATE_LINK, !!data->link))
net/ethtool/linkstate.c
40
else if (!phydev->link)
net/ethtool/linkstate.c
59
else if (!phydev->link)
net/ethtool/mse.c
145
if (!phydev->link) {
net/hsr/hsr_netlink.c
128
return hsr_dev_finalize(dev, link, interlink, multicast_spec,
net/hsr/hsr_netlink.c
37
struct net_device *link[2], *interlink = NULL;
net/hsr/hsr_netlink.c
57
link[0] = __dev_get_by_index(link_net,
net/hsr/hsr_netlink.c
59
if (!link[0]) {
net/hsr/hsr_netlink.c
67
link[1] = __dev_get_by_index(link_net,
net/hsr/hsr_netlink.c
69
if (!link[1]) {
net/hsr/hsr_netlink.c
74
if (link[0] == link[1]) {
net/hsr/hsr_netlink.c
83
if (interlink && interlink == link[0]) {
net/hsr/hsr_netlink.c
88
if (interlink && interlink == link[1]) {
net/ipv4/bpf_tcp_ca.c
238
static int bpf_tcp_ca_reg(void *kdata, struct bpf_link *link)
net/ipv4/bpf_tcp_ca.c
243
static void bpf_tcp_ca_unreg(void *kdata, struct bpf_link *link)
net/ipv4/bpf_tcp_ca.c
248
static int bpf_tcp_ca_update(void *kdata, void *old_kdata, struct bpf_link *link)
net/ipv4/ip_gre.c
1197
parms->link = nla_get_u32(data[IFLA_GRE_LINK]);
net/ipv4/ip_gre.c
1562
if (nla_put_u32(skb, IFLA_GRE_LINK, p->link) ||
net/ipv4/ip_gre.c
942
.flowi4_oif = t->parms.link,
net/ipv4/ip_tunnel.c
1006
kp->link = p.link;
net/ipv4/ip_tunnel.c
1028
p.link = kp->link;
net/ipv4/ip_tunnel.c
103
if (READ_ONCE(t->parms.link) == link)
net/ipv4/ip_tunnel.c
1118
return READ_ONCE(tunnel->parms.link);
net/ipv4/ip_tunnel.c
117
if (READ_ONCE(t->parms.link) == link)
net/ipv4/ip_tunnel.c
137
if (READ_ONCE(t->parms.link) == link)
net/ipv4/ip_tunnel.c
151
if (READ_ONCE(t->parms.link) == link)
net/ipv4/ip_tunnel.c
216
int link = parms->link;
net/ipv4/ip_tunnel.c
225
link == READ_ONCE(t->parms.link) &&
net/ipv4/ip_tunnel.c
299
tunnel->parms.link, tunnel->fwmark, 0, 0);
net/ipv4/ip_tunnel.c
312
if (!tdev && tunnel->parms.link)
net/ipv4/ip_tunnel.c
313
tdev = __dev_get_by_index(tunnel->net, tunnel->parms.link);
net/ipv4/ip_tunnel.c
764
tunnel->net, READ_ONCE(tunnel->parms.link),
net/ipv4/ip_tunnel.c
82
int link, const unsigned long *flags,
net/ipv4/ip_tunnel.c
881
if (t->parms.link != p->link || t->fwmark != fwmark) {
net/ipv4/ip_tunnel.c
884
WRITE_ONCE(t->parms.link, p->link);
net/ipv4/ip_tunnel_core.c
1161
parms->link = nla_get_u32(data[IFLA_IPTUN_LINK]);
net/ipv4/ip_vti.c
559
parms->link = nla_get_u32(data[IFLA_VTI_LINK]);
net/ipv4/ip_vti.c
626
if (nla_put_u32(skb, IFLA_VTI_LINK, p->link) ||
net/ipv4/ipip.c
176
ipv4_update_pmtu(skb, net, info, t->parms.link, iph->protocol);
net/ipv4/ipip.c
181
ipv4_redirect(skb, net, t->parms.link, iph->protocol);
net/ipv4/ipip.c
552
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
net/ipv4/ipmr.c
1885
iph->tos & INET_DSCP_MASK, vif->link);
net/ipv4/ipmr.c
1893
iph->tos & INET_DSCP_MASK, vif->link);
net/ipv4/ipmr_base.c
25
v->link = dev_get_iflink(dev);
net/ipv4/ipmr_base.c
27
v->link = dev->ifindex;
net/ipv6/ip6_gre.c
1101
fl6->flowi6_oif = p->link;
net/ipv6/ip6_gre.c
1133
p->link, NULL, strict);
net/ipv6/ip6_gre.c
114
static bool ip6gre_tunnel_match(struct ip6_tnl *t, int dev_type, int link,
net/ipv6/ip6_gre.c
1196
t->parms.link = p->link;
net/ipv6/ip6_gre.c
1227
p->link = u->link;
net/ipv6/ip6_gre.c
123
if (t->parms.link != link)
net/ipv6/ip6_gre.c
1245
u->link = p->link;
net/ipv6/ip6_gre.c
145
int link = dev->ifindex;
net/ipv6/ip6_gre.c
164
if (ip6gre_tunnel_match(t, dev_type, link, &cand_score, &cand))
net/ipv6/ip6_gre.c
174
if (ip6gre_tunnel_match(t, dev_type, link, &cand_score, &cand))
net/ipv6/ip6_gre.c
1768
parms->link = nla_get_u32(data[IFLA_GRE_LINK]);
net/ipv6/ip6_gre.c
186
if (ip6gre_tunnel_match(t, dev_type, link, &cand_score, &cand))
net/ipv6/ip6_gre.c
195
if (ip6gre_tunnel_match(t, dev_type, link, &cand_score, &cand))
net/ipv6/ip6_gre.c
2138
if (nla_put_u32(skb, IFLA_GRE_LINK, p->link) ||
net/ipv6/ip6_gre.c
297
int link = parms->link;
net/ipv6/ip6_gre.c
308
link == t->parms.link &&
net/ipv6/ip6_tunnel.c
1049
if (p->link)
net/ipv6/ip6_tunnel.c
1050
ldev = dev_get_by_index_rcu(net, p->link);
net/ipv6/ip6_tunnel.c
116
ip6_tnl_lookup(struct net *net, int link,
net/ipv6/ip6_tunnel.c
130
if (link == t->parms.link)
net/ipv6/ip6_tunnel.c
144
if (link == t->parms.link)
net/ipv6/ip6_tunnel.c
1481
fl6->flowi6_oif = p->link;
net/ipv6/ip6_tunnel.c
1507
p->link, NULL, strict);
net/ipv6/ip6_tunnel.c
1513
if (!tdev && p->link)
net/ipv6/ip6_tunnel.c
1514
tdev = __dev_get_by_index(t->net, p->link);
net/ipv6/ip6_tunnel.c
1550
t->parms.link = p->link;
net/ipv6/ip6_tunnel.c
157
if (link == t->parms.link)
net/ipv6/ip6_tunnel.c
1579
p->flowinfo || p->link || p->fwmark || p->collect_md))
net/ipv6/ip6_tunnel.c
1596
p->link = u->link;
net/ipv6/ip6_tunnel.c
1610
u->link = p->link;
net/ipv6/ip6_tunnel.c
1779
return READ_ONCE(t->parms.link);
net/ipv6/ip6_tunnel.c
2017
parms->link = nla_get_u32(data[IFLA_IPTUN_LINK]);
net/ipv6/ip6_tunnel.c
2190
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
net/ipv6/ip6_tunnel.c
352
p->link == t->parms.link) {
net/ipv6/ip6_tunnel.c
759
(!((ltype|rtype) & IPV6_ADDR_LINKLOCAL) || p->link)) {
net/ipv6/ip6_tunnel.c
783
if (p->link)
net/ipv6/ip6_tunnel.c
784
ldev = dev_get_by_index_rcu(net, p->link);
net/ipv6/ip6_vti.c
1078
if (nla_put_u32(skb, IFLA_VTI_LINK, parm->link) ||
net/ipv6/ip6_vti.c
679
p->link, NULL, strict);
net/ipv6/ip6_vti.c
686
if (!tdev && p->link)
net/ipv6/ip6_vti.c
687
tdev = __dev_get_by_index(t->net, p->link);
net/ipv6/ip6_vti.c
712
t->parms.link = p->link;
net/ipv6/ip6_vti.c
742
p->link = u->link;
net/ipv6/ip6_vti.c
755
u->link = p->link;
net/ipv6/ip6_vti.c
982
parms->link = nla_get_u32(data[IFLA_VTI_LINK]);
net/ipv6/ip6mr.c
2065
.flowi6_oif = vif->link,
net/ipv6/sit.c
1109
tunnel->parms.link);
net/ipv6/sit.c
1118
if (!tdev && tunnel->parms.link)
net/ipv6/sit.c
1119
tdev = __dev_get_by_index(tunnel->net, tunnel->parms.link);
net/ipv6/sit.c
112
(!dev || !t->parms.link || ifindex == t->parms.link ||
net/ipv6/sit.c
113
sifindex == t->parms.link) &&
net/ipv6/sit.c
1150
if (t->parms.link != p->link || t->fwmark != fwmark) {
net/ipv6/sit.c
1151
t->parms.link = p->link;
net/ipv6/sit.c
119
(!dev || !t->parms.link || ifindex == t->parms.link ||
net/ipv6/sit.c
120
sifindex == t->parms.link) &&
net/ipv6/sit.c
126
(!dev || !t->parms.link || ifindex == t->parms.link ||
net/ipv6/sit.c
127
sifindex == t->parms.link) &&
net/ipv6/sit.c
1692
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
net/ipv6/sit.c
246
parms->link == t->parms.link) {
net/ipv6/sit.c
575
t->parms.link, iph->protocol);
net/ipv6/sit.c
580
ipv4_redirect(skb, dev_net(skb->dev), t->parms.link,
net/ipv6/sit.c
931
flowi4_init_output(&fl4, tunnel->parms.link, tunnel->fwmark,
net/llc/af_llc.c
510
llc->link = llc_ui_next_link_no(llc->sap->laddr.lsap);
net/llc/af_llc.c
735
newllc->link = llc_ui_next_link_no(newllc->laddr.lsap);
net/llc/llc_proc.c
155
llc->link);
net/mac80211/cfg.c
1105
struct ieee80211_link_data *link)
net/mac80211/cfg.c
1112
old = sdata_dereference(link->u.ap.probe_resp, sdata);
net/mac80211/cfg.c
1128
rcu_assign_pointer(link->u.ap.probe_resp, new);
net/mac80211/cfg.c
1137
struct ieee80211_link_data *link,
net/mac80211/cfg.c
1151
old = sdata_dereference(link->u.ap.fils_discovery, sdata);
net/mac80211/cfg.c
1161
rcu_assign_pointer(link->u.ap.fils_discovery, new);
net/mac80211/cfg.c
1163
RCU_INIT_POINTER(link->u.ap.fils_discovery, NULL);
net/mac80211/cfg.c
1173
struct ieee80211_link_data *link,
net/mac80211/cfg.c
1184
old = sdata_dereference(link->u.ap.unsol_bcast_probe_resp, sdata);
net/mac80211/cfg.c
1194
rcu_assign_pointer(link->u.ap.unsol_bcast_probe_resp, new);
net/mac80211/cfg.c
1196
RCU_INIT_POINTER(link->u.ap.unsol_bcast_probe_resp, NULL);
net/mac80211/cfg.c
1205
struct ieee80211_link_data *link,
net/mac80211/cfg.c
1210
sdata_dereference(link->u.ap.s1g_short_beacon, sdata);
net/mac80211/cfg.c
1236
rcu_assign_pointer(link->u.ap.s1g_short_beacon, new);
net/mac80211/cfg.c
1321
struct ieee80211_link_data *link,
net/mac80211/cfg.c
1333
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/cfg.c
1335
old = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
1426
params->probe_resp_len, csa, cca, link);
net/mac80211/cfg.c
1451
rcu_assign_pointer(link->u.ap.beacon, new);
net/mac80211/cfg.c
1463
struct ieee80211_link_data *link;
net/mac80211/cfg.c
1474
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
1475
if (!link)
net/mac80211/cfg.c
1478
if (sdata_dereference(link->u.ap.beacon, sdata))
net/mac80211/cfg.c
1501
struct ieee80211_link_data *link;
net/mac80211/cfg.c
1508
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
1509
if (!link)
net/mac80211/cfg.c
1512
link_conf = link->conf;
net/mac80211/cfg.c
1514
old = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
1518
link->smps_mode = IEEE80211_SMPS_OFF;
net/mac80211/cfg.c
1520
link->needed_rx_chains = sdata->local->rx_chains;
net/mac80211/cfg.c
1627
err = ieee80211_link_use_channel(link, &chanreq,
net/mac80211/cfg.c
1630
ieee80211_link_copy_chanctx_to_vlans(link, false);
net/mac80211/cfg.c
1696
err = ieee80211_assign_beacon(sdata, link, &params->beacon, NULL, NULL,
net/mac80211/cfg.c
1702
link, link_conf, &changed);
net/mac80211/cfg.c
1708
link, link_conf, &changed);
net/mac80211/cfg.c
1713
err = ieee80211_set_s1g_short_beacon(sdata, link,
net/mac80211/cfg.c
1721
old = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
1725
RCU_INIT_POINTER(link->u.ap.beacon, NULL);
net/mac80211/cfg.c
1736
if (link->u.ap.s1g_short_beacon)
net/mac80211/cfg.c
1740
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
1751
ieee80211_link_release_channel(link);
net/mac80211/cfg.c
1761
struct ieee80211_link_data *link;
net/mac80211/cfg.c
1770
link = sdata_dereference(sdata->link[beacon->link_id], sdata);
net/mac80211/cfg.c
1771
if (!link)
net/mac80211/cfg.c
1774
link_conf = link->conf;
net/mac80211/cfg.c
1782
old = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
1786
err = ieee80211_assign_beacon(sdata, link, beacon, NULL, NULL,
net/mac80211/cfg.c
1792
link, link_conf, &changed);
net/mac80211/cfg.c
1798
link, link_conf, &changed);
net/mac80211/cfg.c
1802
if (link->u.ap.s1g_short_beacon) {
net/mac80211/cfg.c
1803
err = ieee80211_set_s1g_short_beacon(sdata, link,
net/mac80211/cfg.c
1815
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
1819
static void ieee80211_free_next_beacon(struct ieee80211_link_data *link)
net/mac80211/cfg.c
1821
if (!link->u.ap.next_beacon)
net/mac80211/cfg.c
1824
kfree(link->u.ap.next_beacon->mbssid_ies);
net/mac80211/cfg.c
1825
kfree(link->u.ap.next_beacon->rnr_ies);
net/mac80211/cfg.c
1826
kfree(link->u.ap.next_beacon);
net/mac80211/cfg.c
1827
link->u.ap.next_beacon = NULL;
net/mac80211/cfg.c
1842
struct ieee80211_link_data *link =
net/mac80211/cfg.c
1843
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
1844
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/cfg.c
1849
old_beacon = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
1852
old_probe_resp = sdata_dereference(link->u.ap.probe_resp,
net/mac80211/cfg.c
1854
old_fils_discovery = sdata_dereference(link->u.ap.fils_discovery,
net/mac80211/cfg.c
1857
sdata_dereference(link->u.ap.unsol_bcast_probe_resp,
net/mac80211/cfg.c
1860
sdata_dereference(link->u.ap.s1g_short_beacon, sdata);
net/mac80211/cfg.c
1867
ieee80211_free_next_beacon(link);
net/mac80211/cfg.c
1879
RCU_INIT_POINTER(link->u.ap.beacon, NULL);
net/mac80211/cfg.c
1880
RCU_INIT_POINTER(link->u.ap.probe_resp, NULL);
net/mac80211/cfg.c
1881
RCU_INIT_POINTER(link->u.ap.fils_discovery, NULL);
net/mac80211/cfg.c
1882
RCU_INIT_POINTER(link->u.ap.unsol_bcast_probe_resp, NULL);
net/mac80211/cfg.c
1883
RCU_INIT_POINTER(link->u.ap.s1g_short_beacon, NULL);
net/mac80211/cfg.c
1915
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/cfg.c
1918
ieee80211_remove_link_keys(link, &keys);
net/mac80211/cfg.c
1926
wiphy_hrtimer_work_cancel(wiphy, &link->dfs_cac_timer_work);
net/mac80211/cfg.c
1938
ieee80211_link_copy_chanctx_to_vlans(link, true);
net/mac80211/cfg.c
1939
ieee80211_link_release_channel(link);
net/mac80211/cfg.c
2083
struct ieee80211_link_data *link =
net/mac80211/cfg.c
2084
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
2086
rcu_dereference_protected(sta->link[link_id],
net/mac80211/cfg.c
2114
if (!link || !link_sta)
net/mac80211/cfg.c
2117
sband = ieee80211_get_link_sband(link);
net/mac80211/cfg.c
2187
enum nl80211_chan_width width = link->conf->chanreq.oper.width;
net/mac80211/cfg.c
2998
struct ieee80211_link_data *link;
net/mac80211/cfg.c
30
struct ieee80211_link_data *link;
net/mac80211/cfg.c
3002
link = ieee80211_link_or_deflink(sdata, params->link_id, true);
net/mac80211/cfg.c
3003
if (IS_ERR(link))
net/mac80211/cfg.c
3004
return PTR_ERR(link);
net/mac80211/cfg.c
3006
if (!sdata_dereference(link->u.ap.beacon, sdata))
net/mac80211/cfg.c
3009
sband = ieee80211_get_link_sband(link);
net/mac80211/cfg.c
3017
&link->conf->basic_rates))
net/mac80211/cfg.c
3020
ieee80211_check_rate_mask(link);
net/mac80211/cfg.c
3024
link->conf->use_cts_prot = params->use_cts_prot;
net/mac80211/cfg.c
3028
link->conf->use_short_preamble = params->use_short_preamble;
net/mac80211/cfg.c
3032
if (!link->conf->use_short_slot &&
net/mac80211/cfg.c
3035
link->conf->use_short_slot = true;
net/mac80211/cfg.c
3040
link->conf->use_short_slot = params->use_short_slot_time;
net/mac80211/cfg.c
3053
link->conf->ht_operation_mode = (u16)params->ht_opmode;
net/mac80211/cfg.c
3058
link->conf->p2p_noa_attr.oppps_ctwindow &=
net/mac80211/cfg.c
3060
link->conf->p2p_noa_attr.oppps_ctwindow |=
net/mac80211/cfg.c
3066
link->conf->p2p_noa_attr.oppps_ctwindow |=
net/mac80211/cfg.c
3070
link->conf->p2p_noa_attr.oppps_ctwindow &=
net/mac80211/cfg.c
3075
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
3086
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3096
if (IS_ERR(link))
net/mac80211/cfg.c
3097
return PTR_ERR(link);
net/mac80211/cfg.c
3113
link->tx_conf[params->ac] = p;
net/mac80211/cfg.c
3114
if (drv_conf_tx(local, link, params->ac, &p)) {
net/mac80211/cfg.c
3121
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/cfg.c
3147
struct ieee80211_link_data *link;
net/mac80211/cfg.c
3177
for_each_link_data(sdata, link) {
net/mac80211/cfg.c
3179
if (!sdata_dereference(link->u.ap.beacon, sdata))
net/mac80211/cfg.c
3182
chan = link->conf->chanreq.oper.chan;
net/mac80211/cfg.c
3404
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/cfg.c
3406
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3407
wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
3409
if (!link)
net/mac80211/cfg.c
3412
link->user_power_level = user_power_level;
net/mac80211/cfg.c
3414
if (txp_type != link->conf->txpower_type) {
net/mac80211/cfg.c
3416
link->conf->txpower_type = txp_type;
net/mac80211/cfg.c
3419
ieee80211_recalc_txpower(link, update_txp_type);
net/mac80211/cfg.c
3434
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/cfg.c
3436
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3437
wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
3439
if (!link)
net/mac80211/cfg.c
3442
link->user_power_level = local->user_power_level;
net/mac80211/cfg.c
3443
if (txp_type != link->conf->txpower_type)
net/mac80211/cfg.c
3445
link->conf->txpower_type = txp_type;
net/mac80211/cfg.c
3454
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/cfg.c
3456
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3457
wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
3459
if (!link)
net/mac80211/cfg.c
3462
ieee80211_recalc_txpower(link, update_txp_type);
net/mac80211/cfg.c
3504
link_data = wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
3563
struct ieee80211_link_data *link,
net/mac80211/cfg.c
3577
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id))
net/mac80211/cfg.c
3580
old_req = link->u.mgd.req_smps;
net/mac80211/cfg.c
3581
link->u.mgd.req_smps = smps_mode;
net/mac80211/cfg.c
3599
link->conf->chanreq.oper.width == NL80211_CHAN_WIDTH_20_NOHT)
net/mac80211/cfg.c
3626
link->link_id : -1);
net/mac80211/cfg.c
3628
link->u.mgd.req_smps = old_req;
net/mac80211/cfg.c
3630
ieee80211_teardown_tdls_peers(link);
net/mac80211/cfg.c
3656
for (link_id = 0; link_id < ARRAY_SIZE(sdata->link); link_id++) {
net/mac80211/cfg.c
3657
struct ieee80211_link_data *link;
net/mac80211/cfg.c
3659
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
3661
if (!link)
net/mac80211/cfg.c
3663
__ieee80211_request_smps_mgd(sdata, link,
net/mac80211/cfg.c
3664
link->u.mgd.req_smps);
net/mac80211/cfg.c
3678
struct ieee80211_link_data *link,
net/mac80211/cfg.c
3684
if (!link || !link->conf)
net/mac80211/cfg.c
3687
conf = link->conf;
net/mac80211/cfg.c
3698
link->u.mgd.last_cqm_event_signal = 0;
net/mac80211/cfg.c
3700
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id))
net/mac80211/cfg.c
3705
ieee80211_link_info_change_notify(sdata, link, BSS_CHANGED_CQM);
net/mac80211/cfg.c
3722
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3723
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
3725
ieee80211_set_cqm_rssi_link(sdata, link, rssi_thold, rssi_hyst,
net/mac80211/cfg.c
3745
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3746
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
3748
ieee80211_set_cqm_rssi_link(sdata, link, 0, 0,
net/mac80211/cfg.c
3878
link_data = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
3907
link_data = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
4039
link_data = rcu_dereference(sdata->link[link_id]);
net/mac80211/cfg.c
4195
struct ieee80211_link_data *link =
net/mac80211/cfg.c
4197
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
4203
if (!link->conf->csa_active)
net/mac80211/cfg.c
4209
ieee80211_csa_finalize(link);
net/mac80211/cfg.c
4345
static void ieee80211_color_change_abort(struct ieee80211_link_data *link)
net/mac80211/cfg.c
4347
link->conf->color_change_active = false;
net/mac80211/cfg.c
4349
ieee80211_free_next_beacon(link);
net/mac80211/cfg.c
4351
cfg80211_color_change_aborted_notify(link->sdata->dev, link->link_id);
net/mac80211/cfg.c
4383
link_data = wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
44
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
45
if (!link)
net/mac80211/cfg.c
47
return link;
net/mac80211/cfg.c
4704
struct ieee80211_link_data *link;
net/mac80211/cfg.c
4708
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/cfg.c
4709
if (!link) {
net/mac80211/cfg.c
4714
chanctx_conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/cfg.c
4716
*chandef = link->conf->chanreq.oper;
net/mac80211/cfg.c
4768
struct ieee80211_link_data *link;
net/mac80211/cfg.c
4773
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
4775
ret = ieee80211_link_change_chanreq(link, &chanreq, &changed);
net/mac80211/cfg.c
4777
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
5095
ieee80211_set_after_color_change_beacon(struct ieee80211_link_data *link,
net/mac80211/cfg.c
5098
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5104
if (!link->u.ap.next_beacon)
net/mac80211/cfg.c
5107
ret = ieee80211_assign_beacon(sdata, link,
net/mac80211/cfg.c
5108
link->u.ap.next_beacon,
net/mac80211/cfg.c
5110
ieee80211_free_next_beacon(link);
net/mac80211/cfg.c
5126
ieee80211_set_color_change_beacon(struct ieee80211_link_data *link,
net/mac80211/cfg.c
5130
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5136
link->u.ap.next_beacon =
net/mac80211/cfg.c
5138
if (!link->u.ap.next_beacon)
net/mac80211/cfg.c
5150
err = ieee80211_assign_beacon(sdata, link,
net/mac80211/cfg.c
5154
ieee80211_free_next_beacon(link);
net/mac80211/cfg.c
5166
ieee80211_color_change_bss_config_notify(struct ieee80211_link_data *link,
net/mac80211/cfg.c
5169
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5173
link->conf->he_bss_color.color = color;
net/mac80211/cfg.c
5174
link->conf->he_bss_color.enabled = enable;
net/mac80211/cfg.c
5177
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
5179
if (!link->conf->nontransmitted &&
net/mac80211/cfg.c
5180
rcu_access_pointer(link->conf->tx_bss_conf)) {
net/mac80211/cfg.c
5185
rcu_access_pointer(tmp->conf->tx_bss_conf) != link->conf)
net/mac80211/cfg.c
5196
static int ieee80211_color_change_finalize(struct ieee80211_link_data *link)
net/mac80211/cfg.c
5198
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5205
link->conf->color_change_active = false;
net/mac80211/cfg.c
5207
err = ieee80211_set_after_color_change_beacon(link, &changed);
net/mac80211/cfg.c
5209
cfg80211_color_change_aborted_notify(sdata->dev, link->link_id);
net/mac80211/cfg.c
5213
ieee80211_color_change_bss_config_notify(link,
net/mac80211/cfg.c
5214
link->conf->color_change_color,
net/mac80211/cfg.c
5216
cfg80211_color_change_notify(sdata->dev, link->link_id);
net/mac80211/cfg.c
5224
struct ieee80211_link_data *link =
net/mac80211/cfg.c
5227
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5228
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/cfg.c
5240
ieee80211_color_change_finalize(link);
net/mac80211/cfg.c
5246
struct ieee80211_link_data *link =
net/mac80211/cfg.c
5249
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5251
cfg80211_obss_color_collision_notify(sdata->dev, link->color_bitmap,
net/mac80211/cfg.c
5252
link->link_id);
net/mac80211/cfg.c
5258
struct ieee80211_link_data *link;
net/mac80211/cfg.c
5265
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/cfg.c
5266
if (WARN_ON(!link)) {
net/mac80211/cfg.c
5272
&link->color_change_finalize_work);
net/mac80211/cfg.c
5283
struct ieee80211_link_data *link;
net/mac80211/cfg.c
5290
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/cfg.c
5291
if (WARN_ON(!link)) {
net/mac80211/cfg.c
5296
if (link->conf->color_change_active || link->conf->csa_active) {
net/mac80211/cfg.c
5302
&link->color_collision_detect_work)) {
net/mac80211/cfg.c
5307
link->color_bitmap = color_bitmap;
net/mac80211/cfg.c
5312
&link->color_collision_detect_work,
net/mac80211/cfg.c
5326
struct ieee80211_link_data *link;
net/mac80211/cfg.c
5336
link = wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
5337
if (!link)
net/mac80211/cfg.c
5340
link_conf = link->conf;
net/mac80211/cfg.c
5355
link, link_conf, &changed);
net/mac80211/cfg.c
5359
err = ieee80211_set_color_change_beacon(link, params, &changed);
net/mac80211/cfg.c
5369
ieee80211_color_change_bss_config_notify(link, 0, 0, changed);
net/mac80211/cfg.c
5372
ieee80211_color_change_finalize(link);
net/mac80211/cfg.c
5456
link_sta = sdata_dereference(sta->link[params->link_id], sdata);
net/mac80211/cfg.c
624
struct ieee80211_link_data *link =
net/mac80211/cfg.c
636
if (IS_ERR(link))
net/mac80211/cfg.c
637
return PTR_ERR(link);
net/mac80211/cfg.c
668
key->conf.link_id = link->link_id;
net/mac80211/cfg.c
734
err = ieee80211_key_link(key, link, sta);
net/mac80211/cfg.c
747
struct ieee80211_link_data *link = &sdata->deflink;
net/mac80211/cfg.c
751
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
752
if (!link)
net/mac80211/cfg.c
765
link_sta = rcu_dereference_check(sta->link[link_id],
net/mac80211/cfg.c
790
key = wiphy_dereference(local->hw.wiphy, link->gtk[key_idx]);
net/mac80211/cfg.c
928
struct ieee80211_link_data *link =
net/mac80211/cfg.c
931
if (IS_ERR(link))
net/mac80211/cfg.c
932
return PTR_ERR(link);
net/mac80211/cfg.c
934
ieee80211_set_default_key(link, key_idx, uni, multi);
net/mac80211/cfg.c
944
struct ieee80211_link_data *link =
net/mac80211/cfg.c
947
if (IS_ERR(link))
net/mac80211/cfg.c
948
return PTR_ERR(link);
net/mac80211/cfg.c
950
ieee80211_set_default_mgmt_key(link, key_idx);
net/mac80211/cfg.c
960
struct ieee80211_link_data *link =
net/mac80211/cfg.c
963
if (IS_ERR(link))
net/mac80211/cfg.c
964
return PTR_ERR(link);
net/mac80211/cfg.c
966
ieee80211_set_default_beacon_key(link, key_idx);
net/mac80211/chan.c
100
iter->link = NULL;
net/mac80211/chan.c
1009
static int ieee80211_assign_link_chanctx(struct ieee80211_link_data *link,
net/mac80211/chan.c
1013
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1023
conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/chan.c
1029
drv_unassign_vif_chanctx(local, sdata, link->conf, curr_ctx);
net/mac80211/chan.c
1035
_ieee80211_recalc_chanctx_min_def(local, new_ctx, link, false);
net/mac80211/chan.c
1037
ret = drv_assign_vif_chanctx(local, sdata, link->conf, new_ctx);
net/mac80211/chan.c
1050
rcu_assign_pointer(link->conf->chanctx_conf, conf);
net/mac80211/chan.c
1060
ieee80211_recalc_txpower(link, false);
net/mac80211/chan.c
1129
switch (iter.link->smps_mode) {
net/mac80211/chan.c
1132
iter.link->smps_mode);
net/mac80211/chan.c
1135
needed_static = iter.link->needed_rx_chains;
net/mac80211/chan.c
1136
needed_dynamic = iter.link->needed_rx_chains;
net/mac80211/chan.c
1140
needed_dynamic = iter.link->needed_rx_chains;
net/mac80211/chan.c
1168
__ieee80211_link_copy_chanctx_to_vlans(struct ieee80211_link_data *link,
net/mac80211/chan.c
1171
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1172
unsigned int link_id = link->link_id;
net/mac80211/chan.c
1173
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
1208
void ieee80211_link_copy_chanctx_to_vlans(struct ieee80211_link_data *link,
net/mac80211/chan.c
1211
struct ieee80211_local *local = link->sdata->local;
net/mac80211/chan.c
1215
__ieee80211_link_copy_chanctx_to_vlans(link, clear);
net/mac80211/chan.c
1218
void ieee80211_link_unreserve_chanctx(struct ieee80211_link_data *link)
net/mac80211/chan.c
1220
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1221
struct ieee80211_chanctx *ctx = link->reserved_chanctx;
net/mac80211/chan.c
1228
link->reserved_chanctx = NULL;
net/mac80211/chan.c
1355
int ieee80211_link_reserve_chanctx(struct ieee80211_link_data *link,
net/mac80211/chan.c
1360
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1367
curr_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
1386
link->reserved_chanctx = new_ctx;
net/mac80211/chan.c
1387
link->reserved = *chanreq;
net/mac80211/chan.c
1388
link->reserved_radar_required = radar_required;
net/mac80211/chan.c
1389
link->reserved_ready = false;
net/mac80211/chan.c
1395
ieee80211_link_chanctx_reservation_complete(struct ieee80211_link_data *link)
net/mac80211/chan.c
1397
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1405
&link->csa.finalize_work);
net/mac80211/chan.c
1409
&link->u.mgd.csa.switch_work, 0);
net/mac80211/chan.c
1426
ieee80211_link_update_chanreq(struct ieee80211_link_data *link,
net/mac80211/chan.c
1429
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1430
unsigned int link_id = link->link_id;
net/mac80211/chan.c
1433
link->conf->chanreq = *chanreq;
net/mac80211/chan.c
1451
ieee80211_link_use_reserved_reassign(struct ieee80211_link_data *link)
net/mac80211/chan.c
1453
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1454
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
1465
new_ctx = link->reserved_chanctx;
net/mac80211/chan.c
1466
old_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
1468
if (WARN_ON(!link->reserved_ready))
net/mac80211/chan.c
1482
&link->reserved,
net/mac80211/chan.c
1487
if (link_conf->chanreq.oper.width != link->reserved.oper.width)
net/mac80211/chan.c
1490
ieee80211_link_update_chanreq(link, &link->reserved);
net/mac80211/chan.c
1492
_ieee80211_change_chanctx(local, new_ctx, old_ctx, chanreq, link);
net/mac80211/chan.c
1497
vif_chsw[0].link_conf = link->conf;
net/mac80211/chan.c
1499
link->reserved_chanctx = NULL;
net/mac80211/chan.c
1510
link->radar_required = link->reserved_radar_required;
net/mac80211/chan.c
1514
__ieee80211_link_copy_chanctx_to_vlans(link, false);
net/mac80211/chan.c
1526
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/chan.c
1529
ieee80211_link_chanctx_reservation_complete(link);
net/mac80211/chan.c
1534
ieee80211_link_use_reserved_assign(struct ieee80211_link_data *link)
net/mac80211/chan.c
1536
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1543
old_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
1544
new_ctx = link->reserved_chanctx;
net/mac80211/chan.c
1546
if (WARN_ON(!link->reserved_ready))
net/mac80211/chan.c
1560
&link->reserved,
net/mac80211/chan.c
1567
link->reserved_chanctx = NULL;
net/mac80211/chan.c
1569
err = ieee80211_assign_link_chanctx(link, new_ctx, false);
net/mac80211/chan.c
1578
ieee80211_link_chanctx_reservation_complete(link);
net/mac80211/chan.c
1583
ieee80211_link_has_in_place_reservation(struct ieee80211_link_data *link)
net/mac80211/chan.c
1585
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1590
new_ctx = link->reserved_chanctx;
net/mac80211/chan.c
1591
old_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
1634
if (!ieee80211_link_has_in_place_reservation(iter.link))
net/mac80211/chan.c
1637
old_ctx = ieee80211_link_get_chanctx(iter.link);
net/mac80211/chan.c
1641
vif_chsw[i].link_conf = iter.link->conf;
net/mac80211/chan.c
1736
if (iter.link->reserved_chanctx) {
net/mac80211/chan.c
1738
if (iter.link->reserved_ready)
net/mac80211/chan.c
1756
if (ieee80211_link_has_in_place_reservation(iter.link) &&
net/mac80211/chan.c
1757
!iter.link->reserved_ready)
net/mac80211/chan.c
1760
old_ctx = ieee80211_link_get_chanctx(iter.link);
net/mac80211/chan.c
1797
if (!ieee80211_link_has_in_place_reservation(iter.link))
net/mac80211/chan.c
18
struct ieee80211_link_data *link;
net/mac80211/chan.c
1801
ieee80211_link_get_chanctx(iter.link),
net/mac80211/chan.c
1841
struct ieee80211_link_data *link = iter.link;
net/mac80211/chan.c
1843
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
1846
if (!ieee80211_link_has_in_place_reservation(link))
net/mac80211/chan.c
1853
__ieee80211_link_copy_chanctx_to_vlans(link,
net/mac80211/chan.c
1858
link->radar_required = iter.radar_required;
net/mac80211/chan.c
1863
ieee80211_link_update_chanreq(link, &link->reserved);
net/mac80211/chan.c
1866
link,
net/mac80211/chan.c
1869
ieee80211_recalc_txpower(link, false);
net/mac80211/chan.c
1878
if (ieee80211_link_get_chanctx(iter.link) != ctx)
net/mac80211/chan.c
1881
iter.link->reserved_chanctx = NULL;
net/mac80211/chan.c
1883
ieee80211_link_chanctx_reservation_complete(iter.link);
net/mac80211/chan.c
1895
struct ieee80211_link_data *link = iter.link;
net/mac80211/chan.c
1897
if (WARN_ON(ieee80211_link_has_in_place_reservation(link)))
net/mac80211/chan.c
1900
if (!link->reserved_ready)
net/mac80211/chan.c
1903
if (ieee80211_link_get_chanctx(link))
net/mac80211/chan.c
1904
err = ieee80211_link_use_reserved_reassign(link);
net/mac80211/chan.c
1906
err = ieee80211_link_use_reserved_assign(link);
net/mac80211/chan.c
1909
link_info(link,
net/mac80211/chan.c
1912
ieee80211_link_unreserve_chanctx(link);
net/mac80211/chan.c
1914
&link->sdata->wdev,
net/mac80211/chan.c
1946
ieee80211_link_unreserve_chanctx(iter.link);
net/mac80211/chan.c
1947
ieee80211_link_chanctx_reservation_complete(iter.link);
net/mac80211/chan.c
1954
void __ieee80211_link_release_channel(struct ieee80211_link_data *link,
net/mac80211/chan.c
1957
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1958
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
1973
if (link->reserved_chanctx) {
net/mac80211/chan.c
1974
if (link->reserved_chanctx->replace_state == IEEE80211_CHANCTX_REPLACES_OTHER &&
net/mac80211/chan.c
1975
ieee80211_chanctx_num_reserved(local, link->reserved_chanctx) > 1)
net/mac80211/chan.c
1978
ieee80211_link_unreserve_chanctx(link);
net/mac80211/chan.c
198
ieee80211_link_get_chanctx(struct ieee80211_link_data *link)
net/mac80211/chan.c
1981
ieee80211_assign_link_chanctx(link, NULL, false);
net/mac80211/chan.c
1985
link->radar_required = false;
net/mac80211/chan.c
1992
int _ieee80211_link_use_channel(struct ieee80211_link_data *link,
net/mac80211/chan.c
1997
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
200
struct ieee80211_local *local __maybe_unused = link->sdata->local;
net/mac80211/chan.c
2007
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id)) {
net/mac80211/chan.c
2008
ieee80211_link_update_chanreq(link, chanreq);
net/mac80211/chan.c
2020
link->radar_required = ret;
net/mac80211/chan.c
2028
__ieee80211_link_release_channel(link, false);
net/mac80211/chan.c
203
conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/chan.c
2030
ctx = ieee80211_find_chanctx(local, link, chanreq, mode);
net/mac80211/chan.c
2046
ieee80211_link_update_chanreq(link, chanreq);
net/mac80211/chan.c
2048
ret = ieee80211_assign_link_chanctx(link, ctx, assign_on_failure);
net/mac80211/chan.c
2052
WARN_ON(link->reserved_chanctx != ctx);
net/mac80211/chan.c
2053
link->reserved_chanctx = NULL;
net/mac80211/chan.c
2067
link->radar_required = false;
net/mac80211/chan.c
2072
int ieee80211_link_use_reserved_context(struct ieee80211_link_data *link)
net/mac80211/chan.c
2074
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2082
new_ctx = link->reserved_chanctx;
net/mac80211/chan.c
2083
old_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
2092
if (WARN_ON(link->reserved_ready))
net/mac80211/chan.c
2095
link->reserved_ready = true;
net/mac80211/chan.c
2099
return ieee80211_link_use_reserved_reassign(link);
net/mac80211/chan.c
2101
return ieee80211_link_use_reserved_assign(link);
net/mac80211/chan.c
2155
if (iter.link == skip_link)
net/mac80211/chan.c
2167
int ieee80211_link_change_chanreq(struct ieee80211_link_data *link,
net/mac80211/chan.c
2171
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2172
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
2203
compat = ieee80211_chanctx_recheck(local, link, ctx, chanreq, &tmp);
net/mac80211/chan.c
2225
ieee80211_link_update_chanreq(link, chanreq);
net/mac80211/chan.c
2233
void ieee80211_link_release_channel(struct ieee80211_link_data *link)
net/mac80211/chan.c
2235
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2242
if (rcu_access_pointer(link->conf->chanctx_conf))
net/mac80211/chan.c
2243
__ieee80211_link_release_channel(link, false);
net/mac80211/chan.c
2246
void ieee80211_link_vlan_copy_chanctx(struct ieee80211_link_data *link)
net/mac80211/chan.c
2248
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2249
unsigned int link_id = link->link_id;
net/mac80211/chan.c
2250
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
296
if (iter.link->reserved_chanctx)
net/mac80211/chan.c
364
link_sta = wiphy_dereference(sta->local->hw.wiphy, sta->link[link_id]);
net/mac80211/chan.c
409
ieee80211_get_max_required_bw(struct ieee80211_link_data *link)
net/mac80211/chan.c
411
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
412
unsigned int link_id = link->link_id;
net/mac80211/chan.c
436
struct ieee80211_link_data *link;
net/mac80211/chan.c
442
for_each_sdata_link(local, link) {
net/mac80211/chan.c
446
if (link->reserved_chanctx != ctx)
net/mac80211/chan.c
448
} else if (link != rsvd_for &&
net/mac80211/chan.c
449
rcu_access_pointer(link->conf->chanctx_conf) != &ctx->conf)
net/mac80211/chan.c
452
switch (link->sdata->vif.type) {
net/mac80211/chan.c
454
if (!link->sdata->vif.cfg.assoc) {
net/mac80211/chan.c
461
width = link->conf->chanreq.oper.width;
net/mac80211/chan.c
472
width = ieee80211_get_max_required_bw(link);
net/mac80211/chan.c
48
for (int link_id = iter->link ? iter->link->link_id : 0;
net/mac80211/chan.c
484
width = link->conf->chanreq.oper.width;
net/mac80211/chan.c
49
link_id < ARRAY_SIZE(iter->sdata->link);
net/mac80211/chan.c
51
struct ieee80211_link_data *link;
net/mac80211/chan.c
53
link = sdata_dereference(iter->sdata->link[link_id],
net/mac80211/chan.c
55
if (!link)
net/mac80211/chan.c
573
for (link_id = 0; link_id < ARRAY_SIZE(sdata->link); link_id++) {
net/mac80211/chan.c
574
struct ieee80211_link_data *link =
net/mac80211/chan.c
575
rcu_dereference(sdata->link[link_id]);
net/mac80211/chan.c
580
if (!link)
net/mac80211/chan.c
583
link_conf = link->conf;
net/mac80211/chan.c
588
link_sta = rcu_dereference(sta->link[link_id]);
net/mac80211/chan.c
593
new_chandef = &link->reserved.oper;
net/mac80211/chan.c
62
rcu_access_pointer(link->conf->chanctx_conf) == &ctx->conf) {
net/mac80211/chan.c
63
iter->link = link;
net/mac80211/chan.c
65
iter->radar_required = link->radar_required;
net/mac80211/chan.c
66
iter->chanreq = &link->conf->chanreq;
net/mac80211/chan.c
73
link->reserved_chanctx == ctx) {
net/mac80211/chan.c
737
struct ieee80211_link_data *link,
net/mac80211/chan.c
74
iter->link = link;
net/mac80211/chan.c
749
if (WARN_ON(link->reserved_chanctx))
net/mac80211/chan.c
77
link->reserved_radar_required;
net/mac80211/chan.c
776
link->reserved_chanctx = ctx;
net/mac80211/chan.c
79
iter->chanreq = &link->reserved;
net/mac80211/chan.c
790
struct ieee80211_link_data *link;
net/mac80211/chan.c
799
for_each_sdata_link(local, link) {
net/mac80211/chan.c
800
if (link->radar_required) {
net/mac80211/chan.c
801
chan = link->conf->chanreq.oper.chan;
net/mac80211/chan.c
963
struct ieee80211_link_data *link;
net/mac80211/chan.c
973
link = sdata_dereference(sdata->link[tdls_link_id], sdata);
net/mac80211/chan.c
974
if (!link)
net/mac80211/chan.c
977
if (rcu_access_pointer(link->conf->chanctx_conf) != conf)
net/mac80211/debug.h
138
#define link_info(link, fmt, ...) \
net/mac80211/debug.h
140
if (ieee80211_vif_is_mld(&(link)->sdata->vif)) \
net/mac80211/debug.h
141
_sdata_info((link)->sdata, "[link %d] " fmt, \
net/mac80211/debug.h
142
(link)->link_id, \
net/mac80211/debug.h
145
_sdata_info((link)->sdata, fmt, ##__VA_ARGS__); \
net/mac80211/debug.h
147
#define link_err(link, fmt, ...) \
net/mac80211/debug.h
149
if (ieee80211_vif_is_mld(&(link)->sdata->vif)) \
net/mac80211/debug.h
150
_sdata_err((link)->sdata, "[link %d] " fmt, \
net/mac80211/debug.h
151
(link)->link_id, \
net/mac80211/debug.h
154
_sdata_err((link)->sdata, fmt, ##__VA_ARGS__); \
net/mac80211/debug.h
156
#define link_err_once(link, fmt, ...) \
net/mac80211/debug.h
157
DO_ONCE_LITE(link_err, link, fmt, ##__VA_ARGS__)
net/mac80211/debug.h
174
#define link_dbg(link, fmt, ...) \
net/mac80211/debug.h
175
_link_id_dbg(1, (link)->sdata, (link)->link_id, \
net/mac80211/debugfs_netdev.c
100
struct ieee80211_link_data *link;
net/mac80211/debugfs_netdev.c
1043
void ieee80211_link_debugfs_add(struct ieee80211_link_data *link)
net/mac80211/debugfs_netdev.c
1047
if (WARN_ON(!link->sdata->vif.debugfs_dir || link->debugfs_dir))
net/mac80211/debugfs_netdev.c
1051
if (WARN_ON(!(link->sdata->local->hw.wiphy->flags & WIPHY_FLAG_SUPPORTS_MLO)))
net/mac80211/debugfs_netdev.c
1055
"link-%d", link->link_id);
net/mac80211/debugfs_netdev.c
1057
link->debugfs_dir =
net/mac80211/debugfs_netdev.c
1059
link->sdata->vif.debugfs_dir);
net/mac80211/debugfs_netdev.c
1061
DEBUGFS_ADD(link->debugfs_dir, addr);
net/mac80211/debugfs_netdev.c
1062
add_link_files(link, link->debugfs_dir);
net/mac80211/debugfs_netdev.c
1065
void ieee80211_link_debugfs_remove(struct ieee80211_link_data *link)
net/mac80211/debugfs_netdev.c
1067
if (!link->sdata->vif.debugfs_dir || !link->debugfs_dir) {
net/mac80211/debugfs_netdev.c
1068
link->debugfs_dir = NULL;
net/mac80211/debugfs_netdev.c
1072
if (link->debugfs_dir == link->sdata->vif.debugfs_dir) {
net/mac80211/debugfs_netdev.c
1073
WARN_ON(link != &link->sdata->deflink);
net/mac80211/debugfs_netdev.c
1074
link->debugfs_dir = NULL;
net/mac80211/debugfs_netdev.c
1078
debugfs_remove_recursive(link->debugfs_dir);
net/mac80211/debugfs_netdev.c
1079
link->debugfs_dir = NULL;
net/mac80211/debugfs_netdev.c
1082
void ieee80211_link_debugfs_drv_add(struct ieee80211_link_data *link)
net/mac80211/debugfs_netdev.c
1084
if (link->sdata->vif.type == NL80211_IFTYPE_MONITOR ||
net/mac80211/debugfs_netdev.c
1085
WARN_ON(!link->debugfs_dir))
net/mac80211/debugfs_netdev.c
1088
drv_link_add_debugfs(link->sdata->local, link->sdata,
net/mac80211/debugfs_netdev.c
1089
link->conf, link->debugfs_dir);
net/mac80211/debugfs_netdev.c
1092
void ieee80211_link_debugfs_drv_remove(struct ieee80211_link_data *link)
net/mac80211/debugfs_netdev.c
1094
if (!link || !link->debugfs_dir)
net/mac80211/debugfs_netdev.c
1097
if (WARN_ON(link->debugfs_dir == link->sdata->vif.debugfs_dir))
net/mac80211/debugfs_netdev.c
1101
debugfs_remove_recursive(link->debugfs_dir);
net/mac80211/debugfs_netdev.c
1102
link->debugfs_dir = NULL;
net/mac80211/debugfs_netdev.c
1104
ieee80211_link_debugfs_add(link);
net/mac80211/debugfs_netdev.c
111
return d->format(d->link, buf, bufsize);
net/mac80211/debugfs_netdev.c
118
ssize_t (*format)(const struct ieee80211_link_data *link, char *, int))
net/mac80211/debugfs_netdev.c
120
struct ieee80211_link_data *link = file->private_data;
net/mac80211/debugfs_netdev.c
123
.link = link,
net/mac80211/debugfs_netdev.c
127
return wiphy_locked_debugfs_read(link->sdata->local->hw.wiphy,
net/mac80211/debugfs_netdev.c
136
struct ieee80211_link_data *link;
net/mac80211/debugfs_netdev.c
154
ssize_t (*write)(struct ieee80211_link_data *link, const char *, int))
net/mac80211/debugfs_netdev.c
156
struct ieee80211_link_data *link = file->private_data;
net/mac80211/debugfs_netdev.c
159
.link = link,
net/mac80211/debugfs_netdev.c
163
return wiphy_locked_debugfs_write(link->sdata->local->hw.wiphy,
net/mac80211/debugfs_netdev.c
380
static int ieee80211_set_smps(struct ieee80211_link_data *link,
net/mac80211/debugfs_netdev.c
383
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/debugfs_netdev.c
405
return __ieee80211_request_smps_mgd(link->sdata, link, smps_mode);
net/mac80211/debugfs_netdev.c
415
static ssize_t ieee80211_if_fmt_smps(const struct ieee80211_link_data *link,
net/mac80211/debugfs_netdev.c
418
if (link->sdata->vif.type == NL80211_IFTYPE_STATION)
net/mac80211/debugfs_netdev.c
420
smps_modes[link->u.mgd.req_smps],
net/mac80211/debugfs_netdev.c
421
smps_modes[link->smps_mode]);
net/mac80211/debugfs_netdev.c
425
static ssize_t ieee80211_if_parse_smps(struct ieee80211_link_data *link,
net/mac80211/debugfs_netdev.c
432
int err = ieee80211_set_smps(link, mode);
net/mac80211/debugfs_netdev.c
978
link, &link_##name##_ops)
net/mac80211/debugfs_netdev.c
982
static void add_link_files(struct ieee80211_link_data *link,
net/mac80211/debugfs_netdev.c
989
switch (link->sdata->vif.type) {
net/mac80211/debugfs_netdev.h
19
void ieee80211_link_debugfs_add(struct ieee80211_link_data *link);
net/mac80211/debugfs_netdev.h
20
void ieee80211_link_debugfs_remove(struct ieee80211_link_data *link);
net/mac80211/debugfs_netdev.h
22
void ieee80211_link_debugfs_drv_add(struct ieee80211_link_data *link);
net/mac80211/debugfs_netdev.h
23
void ieee80211_link_debugfs_drv_remove(struct ieee80211_link_data *link);
net/mac80211/debugfs_netdev.h
34
static inline void ieee80211_link_debugfs_add(struct ieee80211_link_data *link)
net/mac80211/debugfs_netdev.h
36
static inline void ieee80211_link_debugfs_remove(struct ieee80211_link_data *link)
net/mac80211/debugfs_netdev.h
39
static inline void ieee80211_link_debugfs_drv_add(struct ieee80211_link_data *link)
net/mac80211/debugfs_netdev.h
41
static inline void ieee80211_link_debugfs_drv_remove(struct ieee80211_link_data *link)
net/mac80211/driver-ops.c
213
struct ieee80211_link_data *link, u16 ac,
net/mac80211/driver-ops.c
216
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/driver-ops.c
225
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id))
net/mac80211/driver-ops.c
239
trace_drv_conf_tx(local, sdata, link->link_id, ac, params);
net/mac80211/driver-ops.c
242
link->link_id, ac, params);
net/mac80211/driver-ops.c
536
struct ieee80211_link_data *link;
net/mac80211/driver-ops.c
555
link = rcu_access_pointer(sdata->link[link_id]);
net/mac80211/driver-ops.c
557
ieee80211_link_debugfs_drv_remove(link);
net/mac80211/driver-ops.c
572
link = rcu_access_pointer(sdata->link[link_id]);
net/mac80211/driver-ops.c
574
ieee80211_link_debugfs_drv_add(link);
net/mac80211/driver-ops.c
609
link_sta = rcu_dereference_protected(info->link[link_id],
net/mac80211/driver-ops.c
629
link_sta = rcu_dereference_protected(info->link[link_id],
net/mac80211/driver-ops.h
1196
drv_post_channel_switch(struct ieee80211_link_data *link)
net/mac80211/driver-ops.h
1198
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/driver-ops.h
1208
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id))
net/mac80211/driver-ops.h
1214
link->conf);
net/mac80211/driver-ops.h
1220
drv_abort_channel_switch(struct ieee80211_link_data *link)
net/mac80211/driver-ops.h
1222
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/driver-ops.h
1231
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id))
net/mac80211/driver-ops.h
1238
link->conf);
net/mac80211/driver-ops.h
658
struct ieee80211_link_data *link, u16 ac,
net/mac80211/he.c
253
static void ieee80211_link_sta_rc_update_omi(struct ieee80211_link_data *link,
net/mac80211/he.c
256
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/he.c
261
band = link->conf->chanreq.oper.chan->band;
net/mac80211/he.c
280
sdata_dereference(sta->link[pub_link_sta->link_id], sta->sdata);
net/mac80211/he.c
281
struct ieee80211_link_data *link =
net/mac80211/he.c
282
sdata_dereference(sta->sdata->link[pub_link_sta->link_id],
net/mac80211/he.c
288
if (WARN_ON(!link || !link_sta || link_sta->pub != pub_link_sta))
net/mac80211/he.c
291
conf = sdata_dereference(link->conf->chanctx_conf, sta->sdata);
net/mac80211/he.c
313
ieee80211_link_sta_rc_update_omi(link, link_sta);
net/mac80211/he.c
333
sdata_dereference(sta->link[pub_link_sta->link_id], sta->sdata);
net/mac80211/he.c
334
struct ieee80211_link_data *link =
net/mac80211/he.c
335
sdata_dereference(sta->sdata->link[pub_link_sta->link_id],
net/mac80211/he.c
340
if (WARN_ON(!link || !link_sta || link_sta->pub != pub_link_sta))
net/mac80211/he.c
343
conf = sdata_dereference(link->conf->chanctx_conf, sta->sdata);
net/mac80211/he.c
355
ieee80211_link_sta_rc_update_omi(link, link_sta);
net/mac80211/ht.c
583
struct ieee80211_link_data *link;
net/mac80211/ht.c
589
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/ht.c
590
if (WARN_ON(!link))
net/mac80211/ht.c
593
trace_api_request_smps(sdata->local, sdata, link, smps_mode);
net/mac80211/ht.c
595
if (link->u.mgd.driver_smps_mode == smps_mode)
net/mac80211/ht.c
598
link->u.mgd.driver_smps_mode = smps_mode;
net/mac80211/ht.c
600
&link->u.mgd.request_smps_work);
net/mac80211/ieee80211_i.h
1198
struct ieee80211_link_data __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
net/mac80211/ieee80211_i.h
1235
for (int ___link_id = ARRAY_SIZE(___sdata->link); \
net/mac80211/ieee80211_i.h
1238
if (___link_id == ARRAY_SIZE(___sdata->link) && \
net/mac80211/ieee80211_i.h
1241
___link_id < ARRAY_SIZE(___sdata->link); \
net/mac80211/ieee80211_i.h
1244
___sdata->link[___link_id])))
net/mac80211/ieee80211_i.h
1254
for (int ___link_id = ARRAY_SIZE(___sdata->link); \
net/mac80211/ieee80211_i.h
1257
if (___link_id == ARRAY_SIZE(___sdata->link) && \
net/mac80211/ieee80211_i.h
1260
___link_id < ARRAY_SIZE((___sdata)->link); \
net/mac80211/ieee80211_i.h
1262
if ((_link = rcu_dereference((___sdata)->link[___link_id])))
net/mac80211/ieee80211_i.h
1269
__link_id < ARRAY_SIZE((__sdata)->link); __link_id++) \
net/mac80211/ieee80211_i.h
1272
((__link) = sdata_dereference((__sdata)->link[__link_id], \
net/mac80211/ieee80211_i.h
1283
__link_id < ARRAY_SIZE((__sdata)->link); __link_id++) \
net/mac80211/ieee80211_i.h
1286
((__link) = rcu_dereference((__sdata)->link[__link_id]))) \
net/mac80211/ieee80211_i.h
1723
ieee80211_get_link_sband(struct ieee80211_link_data *link)
net/mac80211/ieee80211_i.h
1725
struct ieee80211_local *local = link->sdata->local;
net/mac80211/ieee80211_i.h
1730
chanctx_conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/ieee80211_i.h
1934
struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
1982
void ieee80211_mgd_setup_link(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
1983
void ieee80211_mgd_stop_link(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
1984
void ieee80211_mgd_set_link_qos_params(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2117
bool __ieee80211_recalc_txpower(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2118
void ieee80211_recalc_txpower(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2128
void ieee80211_link_setup(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2131
struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2133
void ieee80211_link_stop(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
226
struct ieee80211_link_data *link;
net/mac80211/ieee80211_i.h
2292
struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2390
void ieee80211_set_wmm_default(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2651
struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2654
struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2738
_ieee80211_link_use_channel(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2744
ieee80211_link_use_channel(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2748
return _ieee80211_link_use_channel(link, req, mode, false);
net/mac80211/ieee80211_i.h
2752
ieee80211_link_reserve_chanctx(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2757
ieee80211_link_use_reserved_context(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2758
void ieee80211_link_unreserve_chanctx(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2761
ieee80211_link_change_chanreq(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2764
void __ieee80211_link_release_channel(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2766
void ieee80211_link_release_channel(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2767
void ieee80211_link_vlan_copy_chanctx(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2768
void ieee80211_link_copy_chanctx_to_vlans(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2816
void ieee80211_teardown_tdls_peers(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
455
} link[IEEE80211_MLD_MAX_NUM_LINKS];
net/mac80211/iface.c
1416
struct ieee80211_link_data *link;
net/mac80211/iface.c
1418
for_each_link_data(sdata, link) {
net/mac80211/iface.c
1419
ieee80211_link_vlan_copy_chanctx(link);
net/mac80211/iface.c
1617
link_sta = rcu_dereference_protected(sta->link[status->link_id],
net/mac80211/iface.c
353
struct ieee80211_link_data *link;
net/mac80211/iface.c
381
for_each_link_data(nsdata, link) {
net/mac80211/iface.c
382
if (link->conf->csa_active)
net/mac80211/iface.c
47
bool __ieee80211_recalc_txpower(struct ieee80211_link_data *link)
net/mac80211/iface.c
53
chanctx_conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/iface.c
62
if (link->user_power_level != IEEE80211_UNSET_POWER_LEVEL)
net/mac80211/iface.c
63
power = min(power, link->user_power_level);
net/mac80211/iface.c
65
if (link->ap_power_level != IEEE80211_UNSET_POWER_LEVEL)
net/mac80211/iface.c
66
power = min(power, link->ap_power_level);
net/mac80211/iface.c
68
if (power != link->conf->txpower) {
net/mac80211/iface.c
69
link->conf->txpower = power;
net/mac80211/iface.c
757
struct ieee80211_link_data *tx_link, *link;
net/mac80211/iface.c
76
void ieee80211_recalc_txpower(struct ieee80211_link_data *link,
net/mac80211/iface.c
775
tx_link = sdata_dereference(tx_sdata->link[tx_bss_conf->link_id],
net/mac80211/iface.c
786
for_each_sdata_link(tx_sdata->local, link) {
net/mac80211/iface.c
787
struct ieee80211_sub_if_data *link_sdata = link->sdata;
net/mac80211/iface.c
79
if (__ieee80211_recalc_txpower(link) ||
net/mac80211/iface.c
790
rcu_access_pointer(link->conf->tx_bss_conf) != tx_bss_conf)
net/mac80211/iface.c
793
RCU_INIT_POINTER(link->conf->tx_bss_conf, NULL);
net/mac80211/iface.c
80
(update_bss && ieee80211_sdata_running(link->sdata)))
net/mac80211/iface.c
81
ieee80211_link_info_change_notify(link->sdata, link,
net/mac80211/key.c
1106
void ieee80211_remove_link_keys(struct ieee80211_link_data *link,
net/mac80211/key.c
1109
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
1116
if (key->conf.link_id != link->link_id)
net/mac80211/key.c
1118
ieee80211_key_replace(key->sdata, link, key->sta,
net/mac80211/key.c
1375
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/key.c
347
static void __ieee80211_set_default_key(struct ieee80211_link_data *link,
net/mac80211/key.c
350
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
360
link->gtk[idx]);
net/mac80211/key.c
371
rcu_assign_pointer(link->default_multicast_key, key);
net/mac80211/key.c
376
void ieee80211_set_default_key(struct ieee80211_link_data *link, int idx,
net/mac80211/key.c
379
lockdep_assert_wiphy(link->sdata->local->hw.wiphy);
net/mac80211/key.c
381
__ieee80211_set_default_key(link, idx, uni, multi);
net/mac80211/key.c
385
__ieee80211_set_default_mgmt_key(struct ieee80211_link_data *link, int idx)
net/mac80211/key.c
387
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
395
link->gtk[idx]);
net/mac80211/key.c
397
rcu_assign_pointer(link->default_mgmt_key, key);
net/mac80211/key.c
402
void ieee80211_set_default_mgmt_key(struct ieee80211_link_data *link,
net/mac80211/key.c
405
lockdep_assert_wiphy(link->sdata->local->hw.wiphy);
net/mac80211/key.c
407
__ieee80211_set_default_mgmt_key(link, idx);
net/mac80211/key.c
411
__ieee80211_set_default_beacon_key(struct ieee80211_link_data *link, int idx)
net/mac80211/key.c
413
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
422
link->gtk[idx]);
net/mac80211/key.c
424
rcu_assign_pointer(link->default_beacon_key, key);
net/mac80211/key.c
429
void ieee80211_set_default_beacon_key(struct ieee80211_link_data *link,
net/mac80211/key.c
432
lockdep_assert_wiphy(link->sdata->local->hw.wiphy);
net/mac80211/key.c
434
__ieee80211_set_default_beacon_key(link, idx);
net/mac80211/key.c
438
struct ieee80211_link_data *link,
net/mac80211/key.c
475
if (!link) {
net/mac80211/key.c
476
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/key.c
477
if (!link)
net/mac80211/key.c
482
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/key.c
488
link = &sdata->deflink;
net/mac80211/key.c
550
link->default_multicast_key);
net/mac80211/key.c
553
link->default_mgmt_key);
net/mac80211/key.c
556
link->default_beacon_key);
net/mac80211/key.c
559
__ieee80211_set_default_key(link, -1, true, false);
net/mac80211/key.c
561
__ieee80211_set_default_key(link, -1, false, true);
net/mac80211/key.c
563
__ieee80211_set_default_mgmt_key(link, -1);
net/mac80211/key.c
565
__ieee80211_set_default_beacon_key(link, -1);
net/mac80211/key.c
570
rcu_assign_pointer(link->gtk[idx], new);
net/mac80211/key.c
573
__ieee80211_set_default_key(link, new->conf.keyidx,
net/mac80211/key.c
576
__ieee80211_set_default_key(link, new->conf.keyidx,
net/mac80211/key.c
579
__ieee80211_set_default_mgmt_key(link,
net/mac80211/key.c
582
__ieee80211_set_default_beacon_key(link,
net/mac80211/key.c
849
struct ieee80211_link_data *link,
net/mac80211/key.c
852
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
888
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/key.c
904
link->gtk[idx]);
net/mac80211/key.c
940
ret = ieee80211_key_replace(sdata, link, sta, pairwise, old_key, key);
net/mac80211/key.h
148
struct ieee80211_link_data *link,
net/mac80211/key.h
153
void ieee80211_set_default_key(struct ieee80211_link_data *link, int idx,
net/mac80211/key.h
155
void ieee80211_set_default_mgmt_key(struct ieee80211_link_data *link,
net/mac80211/key.h
157
void ieee80211_set_default_beacon_key(struct ieee80211_link_data *link,
net/mac80211/key.h
159
void ieee80211_remove_link_keys(struct ieee80211_link_data *link,
net/mac80211/link.c
104
link->sdata = sdata;
net/mac80211/link.c
105
link->link_id = link_id;
net/mac80211/link.c
106
link->conf = link_conf;
net/mac80211/link.c
109
link->ap_power_level = IEEE80211_UNSET_POWER_LEVEL;
net/mac80211/link.c
110
link->user_power_level = sdata->local->user_power_level;
net/mac80211/link.c
113
wiphy_work_init(&link->csa.finalize_work,
net/mac80211/link.c
115
wiphy_work_init(&link->color_change_finalize_work,
net/mac80211/link.c
117
wiphy_delayed_work_init(&link->color_collision_detect_work,
net/mac80211/link.c
119
wiphy_hrtimer_work_init(&link->dfs_cac_timer_work,
net/mac80211/link.c
138
ieee80211_link_debugfs_add(link);
net/mac80211/link.c
142
rcu_assign_pointer(sdata->link[link_id], link);
net/mac80211/link.c
145
void ieee80211_link_stop(struct ieee80211_link_data *link)
net/mac80211/link.c
147
if (link->sdata->vif.type == NL80211_IFTYPE_STATION)
net/mac80211/link.c
148
ieee80211_mgd_stop_link(link);
net/mac80211/link.c
150
wiphy_delayed_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/link.c
151
&link->color_collision_detect_work);
net/mac80211/link.c
152
wiphy_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/link.c
153
&link->color_change_finalize_work);
net/mac80211/link.c
154
wiphy_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/link.c
155
&link->csa.finalize_work);
net/mac80211/link.c
157
if (link->sdata->wdev.links[link->link_id].cac_started) {
net/mac80211/link.c
158
wiphy_hrtimer_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/link.c
159
&link->dfs_cac_timer_work);
net/mac80211/link.c
160
cfg80211_cac_event(link->sdata->dev,
net/mac80211/link.c
161
&link->conf->chanreq.oper,
net/mac80211/link.c
163
GFP_KERNEL, link->link_id);
net/mac80211/link.c
166
ieee80211_link_release_channel(link);
net/mac80211/link.c
177
struct ieee80211_link_data *link;
net/mac80211/link.c
18
struct ieee80211_link_data *link;
net/mac80211/link.c
184
link = &links[link_id]->data;
net/mac80211/link.c
185
if (link_id == 0 && !link)
net/mac80211/link.c
186
link = &sdata->deflink;
net/mac80211/link.c
187
if (WARN_ON(!link))
net/mac80211/link.c
189
ieee80211_remove_link_keys(link, &keys);
net/mac80211/link.c
190
ieee80211_link_debugfs_remove(link);
net/mac80211/link.c
191
ieee80211_link_stop(link);
net/mac80211/link.c
215
link1 = sdata_dereference(sdata->link[i], sdata);
net/mac80211/link.c
221
link2 = sdata_dereference(sdata->link[j], sdata);
net/mac80211/link.c
280
struct link_container *links[IEEE80211_MLD_MAX_NUM_LINKS] = {}, *link;
net/mac80211/link.c
299
link = kzalloc_obj(*link);
net/mac80211/link.c
300
if (!link) {
net/mac80211/link.c
304
links[link_id] = link;
net/mac80211/link.c
311
BUILD_BUG_ON(sizeof(old_data) != sizeof(sdata->link));
net/mac80211/link.c
312
memcpy(old_data, sdata->link, sizeof(old_data));
net/mac80211/link.c
316
if (rcu_access_pointer(sdata->link[link_id]) != &sdata->deflink) {
net/mac80211/link.c
321
to_free[link_id] = container_of(rcu_access_pointer(sdata->link[link_id]),
net/mac80211/link.c
326
RCU_INIT_POINTER(sdata->link[link_id], NULL);
net/mac80211/link.c
336
rcu_access_pointer(sdata->link[link_id]) == &sdata->deflink);
net/mac80211/link.c
338
link = links[link_id];
net/mac80211/link.c
339
ieee80211_link_init(sdata, link_id, &link->data, &link->conf);
net/mac80211/link.c
340
ieee80211_link_setup(&link->data);
net/mac80211/link.c
341
ieee80211_set_wmm_default(&link->data, true, non_sta);
net/mac80211/link.c
377
memcpy(sdata->link, old_data, sizeof(old_data));
net/mac80211/link.c
41
link = sdata_dereference(vlan->link[link_id], vlan);
net/mac80211/link.c
42
ieee80211_link_vlan_copy_chanctx(link);
net/mac80211/link.c
457
struct ieee80211_link_data *link;
net/mac80211/link.c
459
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/link.c
461
ieee80211_teardown_tdls_peers(link);
net/mac80211/link.c
463
__ieee80211_link_release_channel(link, true);
net/mac80211/link.c
471
if (link->conf->csa_active)
net/mac80211/link.c
473
&link->u.mgd.csa.switch_work,
net/mac80211/link.c
474
link->u.mgd.csa.time -
net/mac80211/link.c
479
struct ieee80211_link_data *link;
net/mac80211/link.c
481
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/link.c
497
ret = _ieee80211_link_use_channel(link,
net/mac80211/link.c
498
&link->conf->chanreq,
net/mac80211/link.c
548
struct ieee80211_link_data *link;
net/mac80211/link.c
550
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/link.c
552
ieee80211_mgd_set_link_qos_params(link);
net/mac80211/link.c
553
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/link.c
77
void ieee80211_link_setup(struct ieee80211_link_data *link)
net/mac80211/link.c
79
if (link->sdata->vif.type == NL80211_IFTYPE_STATION)
net/mac80211/link.c
80
ieee80211_mgd_setup_link(link);
net/mac80211/link.c
85
struct ieee80211_link_data *link,
net/mac80211/main.c
403
struct ieee80211_link_data *link,
net/mac80211/main.c
427
drv_link_info_changed(local, sdata, link->conf, link->link_id, changed);
net/mac80211/mlme.c
10015
link = sdata_dereference(sdata->link[assoc_link_id], sdata);
net/mac80211/mlme.c
10016
if (WARN_ON(!link)) {
net/mac80211/mlme.c
10021
override = link->u.mgd.conn.mode !=
net/mac80211/mlme.c
10022
assoc_data->link[assoc_link_id].conn.mode ||
net/mac80211/mlme.c
10023
link->u.mgd.conn.bw_limit !=
net/mac80211/mlme.c
10024
assoc_data->link[assoc_link_id].conn.bw_limit;
net/mac80211/mlme.c
10025
link->u.mgd.conn = assoc_data->link[assoc_link_id].conn;
net/mac80211/mlme.c
10027
ieee80211_setup_assoc_link(sdata, assoc_data, req, &link->u.mgd.conn,
net/mac80211/mlme.c
10074
for (i = 0; i < ARRAY_SIZE(assoc_data->link); i++) {
net/mac80211/mlme.c
10075
if (!assoc_data->link[i].bss)
net/mac80211/mlme.c
10081
assoc_data->link[i].bss, true,
net/mac80211/mlme.c
10082
&assoc_data->link[i].conn,
net/mac80211/mlme.c
10098
&assoc_data->link[assoc_link_id].conn,
net/mac80211/mlme.c
10115
link->u.mgd.bssid);
net/mac80211/mlme.c
10236
void ieee80211_mgd_stop_link(struct ieee80211_link_data *link)
net/mac80211/mlme.c
10238
wiphy_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/mlme.c
10239
&link->u.mgd.request_smps_work);
net/mac80211/mlme.c
10240
wiphy_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/mlme.c
10241
&link->u.mgd.recalc_smps);
net/mac80211/mlme.c
10242
wiphy_hrtimer_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/mlme.c
10243
&link->u.mgd.csa.switch_work);
net/mac80211/mlme.c
10453
if (!add_links_data->link[link_id].bss ||
net/mac80211/mlme.c
10465
struct cfg80211_bss *cbss = add_links_data->link[link_id].bss;
net/mac80211/mlme.c
10466
struct ieee80211_link_data *link;
net/mac80211/mlme.c
10473
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
10474
if (WARN_ON(!link))
net/mac80211/mlme.c
10477
link_info(link,
net/mac80211/mlme.c
10479
add_links_data->link[link_id].addr,
net/mac80211/mlme.c
10480
add_links_data->link[link_id].bss->bssid);
net/mac80211/mlme.c
10482
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/mlme.c
10487
if (!link->u.mgd.have_beacon) {
net/mac80211/mlme.c
10493
link->u.mgd.have_beacon = true;
net/mac80211/mlme.c
10497
&link->conf->sync_dtim_count,
net/mac80211/mlme.c
10498
&link->u.mgd.dtim_period);
net/mac80211/mlme.c
10499
link->conf->beacon_int = cbss->beacon_interval;
net/mac80211/mlme.c
10503
link->conf->dtim_period = link->u.mgd.dtim_period ?: 1;
net/mac80211/mlme.c
10505
link->u.mgd.conn = add_links_data->link[link_id].conn;
net/mac80211/mlme.c
10506
if (ieee80211_prep_channel(sdata, link, link_id, cbss,
net/mac80211/mlme.c
10507
true, &link->u.mgd.conn,
net/mac80211/mlme.c
10509
link_info(link, "mlo: reconf: prep_channel failed\n");
net/mac80211/mlme.c
10513
if (ieee80211_mgd_setup_link_sta(link, sta, link_sta,
net/mac80211/mlme.c
10514
add_links_data->link[link_id].bss))
net/mac80211/mlme.c
10517
if (!ieee80211_assoc_config_link(link, link_sta,
net/mac80211/mlme.c
10518
add_links_data->link[link_id].bss,
net/mac80211/mlme.c
10527
if (add_links_data->link[link_id].status != WLAN_STATUS_SUCCESS)
net/mac80211/mlme.c
10534
changed |= ieee80211_link_set_associated(link, cbss);
net/mac80211/mlme.c
10535
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/mlme.c
10537
ieee80211_recalc_smps(sdata, link);
net/mac80211/mlme.c
10557
done_data.links[link_id].bss = add_links_data->link[link_id].bss;
net/mac80211/mlme.c
10559
add_links_data->link[link_id].addr;
net/mac80211/mlme.c
10641
if (!add_links_data || !add_links_data->link[link_id].bss)
net/mac80211/mlme.c
10644
elems_len = add_links_data->link[link_id].elems_len;
net/mac80211/mlme.c
10645
cbss = add_links_data->link[link_id].bss;
net/mac80211/mlme.c
10729
(!add_links_data || !add_links_data->link[link_id].bss))
net/mac80211/mlme.c
10746
addr = add_links_data->link[link_id].addr;
net/mac80211/mlme.c
10769
add_links_data->link[link_id].elems,
net/mac80211/mlme.c
10770
add_links_data->link[link_id].elems_len,
net/mac80211/mlme.c
10775
if (add_links_data->link[link_id].elems)
net/mac80211/mlme.c
10777
add_links_data->link[link_id].elems +
net/mac80211/mlme.c
10779
add_links_data->link[link_id].elems_len -
net/mac80211/mlme.c
10875
eth_random_addr(data->link[link_id].addr);
net/mac80211/mlme.c
10876
data->link[link_id].conn =
net/mac80211/mlme.c
10883
&data->link[link_id].conn);
net/mac80211/mlme.c
10885
data->link[link_id].bss = link_cbss;
net/mac80211/mlme.c
10886
data->link[link_id].elems =
net/mac80211/mlme.c
10888
data->link[link_id].elems_len =
net/mac80211/mlme.c
10894
if (data->link[link_id].conn.mode <
net/mac80211/mlme.c
10918
if (!data->link[link_id].bss)
net/mac80211/mlme.c
10923
data->link[link_id].bss,
net/mac80211/mlme.c
10925
&data->link[link_id].conn,
net/mac80211/mlme.c
11125
struct ieee80211_link_data *link;
net/mac80211/mlme.c
11140
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
11141
if (!link)
net/mac80211/mlme.c
11161
if (ieee80211_sta_wmm_params(sdata->local, link,
net/mac80211/mlme.c
11165
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/mlme.c
1302
static int ieee80211_config_bw(struct ieee80211_link_data *link,
net/mac80211/mlme.c
1306
struct ieee80211_channel *channel = link->conf->chanreq.oper.chan;
net/mac80211/mlme.c
1307
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
1335
if (link->u.mgd.conn.mode == IEEE80211_CONN_MODE_LEGACY ||
net/mac80211/mlme.c
1336
link->u.mgd.conn.mode == IEEE80211_CONN_MODE_S1G)
net/mac80211/mlme.c
1343
elems, true, &link->u.mgd.conn,
net/mac80211/mlme.c
1346
if (ap_mode != link->u.mgd.conn.mode) {
net/mac80211/mlme.c
1347
link_info(link,
net/mac80211/mlme.c
1349
link->u.mgd.bssid,
net/mac80211/mlme.c
1350
ieee80211_conn_mode_str(link->u.mgd.conn.mode),
net/mac80211/mlme.c
1356
ieee80211_set_chanreq_ap(sdata, &chanreq, &link->u.mgd.conn,
net/mac80211/mlme.c
1365
if (link->conf->ht_operation_mode != ht_opmode) {
net/mac80211/mlme.c
1367
link->conf->ht_operation_mode = ht_opmode;
net/mac80211/mlme.c
1378
while (link->u.mgd.conn.bw_limit <
net/mac80211/mlme.c
1385
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
1388
if (memcmp(&link->conf->tpe, &elems->tpe, sizeof(elems->tpe))) {
net/mac80211/mlme.c
1389
link->conf->tpe = elems->tpe;
net/mac80211/mlme.c
1394
if (ieee80211_chanreq_identical(&chanreq, &link->conf->chanreq))
net/mac80211/mlme.c
1397
link_info(link,
net/mac80211/mlme.c
1399
link->u.mgd.bssid, frame, chanreq.oper.chan->center_freq,
net/mac80211/mlme.c
1407
link->u.mgd.bssid, frame);
net/mac80211/mlme.c
1412
link->conf->chanreq = chanreq;
net/mac80211/mlme.c
1433
ret = ieee80211_link_change_chanreq(link, &chanreq, changed);
net/mac80211/mlme.c
1437
link->u.mgd.bssid, frame);
net/mac80211/mlme.c
1792
struct ieee80211_link_data *link,
net/mac80211/mlme.c
1797
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
1818
if (link)
net/mac80211/mlme.c
1819
smps_mode = link->smps_mode;
net/mac80211/mlme.c
1825
if (link) {
net/mac80211/mlme.c
1832
chanctx_conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/mlme.c
1897
assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
1899
assoc_data->link[link_id].ap_ht_param,
net/mac80211/mlme.c
1901
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
1911
assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
1915
&assoc_data->link[link_id].ap_vht_cap,
net/mac80211/mlme.c
1916
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
1918
if (link)
net/mac80211/mlme.c
1919
link->conf->mu_mimo_owner = mu_mimo_owner;
net/mac80211/mlme.c
1928
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
1930
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
1957
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
1959
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
1969
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
1971
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
1973
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
2111
if (!assoc_data->link[link_id].bss ||
net/mac80211/mlme.c
2115
extra_elems = assoc_data->link[link_id].elems;
net/mac80211/mlme.c
2116
extra_elems_len = assoc_data->link[link_id].elems_len;
net/mac80211/mlme.c
2126
skb_put_data(skb, assoc_data->link[link_id].addr,
net/mac80211/mlme.c
2221
struct ieee80211_link_data *link;
net/mac80211/mlme.c
2255
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
2256
size_t elems_len = assoc_data->link[link_id].elems_len;
net/mac80211/mlme.c
2290
link = sdata_dereference(sdata->link[assoc_data->assoc_link_id], sdata);
net/mac80211/mlme.c
2291
if (WARN_ON(!link))
net/mac80211/mlme.c
2294
if (WARN_ON(!assoc_data->link[assoc_data->assoc_link_id].bss))
net/mac80211/mlme.c
2308
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
2353
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
2363
assoc_data->assoc_link_id, link,
net/mac80211/mlme.c
2513
struct ieee80211_link_data *link =
net/mac80211/mlme.c
2516
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
2529
if (!link->conf->csa_active)
net/mac80211/mlme.c
2537
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id)) {
net/mac80211/mlme.c
2541
link->conf->chanreq = link->csa.chanreq;
net/mac80211/mlme.c
2542
cfg80211_ch_switch_notify(sdata->dev, &link->csa.chanreq.oper,
net/mac80211/mlme.c
2543
link->link_id);
net/mac80211/mlme.c
2544
link->conf->csa_active = false;
net/mac80211/mlme.c
2551
ap_sta->link[link->link_id]);
net/mac80211/mlme.c
2557
&link->csa.chanreq.oper);
net/mac80211/mlme.c
2568
if (link->reserved_chanctx) {
net/mac80211/mlme.c
2574
if (link->reserved_ready)
net/mac80211/mlme.c
2577
ret = ieee80211_link_use_reserved_context(link);
net/mac80211/mlme.c
2579
link_info(link,
net/mac80211/mlme.c
2588
if (!ieee80211_chanreq_identical(&link->conf->chanreq,
net/mac80211/mlme.c
2589
&link->csa.chanreq)) {
net/mac80211/mlme.c
2590
link_info(link,
net/mac80211/mlme.c
2597
link->u.mgd.csa.waiting_bcn = true;
net/mac80211/mlme.c
2607
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
2610
if (link->u.mgd.csa.ap_chandef.chan->band == NL80211_BAND_6GHZ &&
net/mac80211/mlme.c
2611
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
2612
ieee80211_rearrange_tpe(&link->u.mgd.csa.tpe,
net/mac80211/mlme.c
2613
&link->u.mgd.csa.ap_chandef,
net/mac80211/mlme.c
2614
&link->conf->chanreq.oper);
net/mac80211/mlme.c
2615
if (memcmp(&link->conf->tpe, &link->u.mgd.csa.tpe,
net/mac80211/mlme.c
2616
sizeof(link->u.mgd.csa.tpe))) {
net/mac80211/mlme.c
2617
link->conf->tpe = link->u.mgd.csa.tpe;
net/mac80211/mlme.c
2618
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/mlme.c
2628
for_each_link_data(sdata, link) {
net/mac80211/mlme.c
2629
if (!link->conf->csa_active)
net/mac80211/mlme.c
2642
static void ieee80211_chswitch_post_beacon(struct ieee80211_link_data *link)
net/mac80211/mlme.c
2644
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
2650
WARN_ON(!link->conf->csa_active);
net/mac80211/mlme.c
2654
link->conf->csa_active = false;
net/mac80211/mlme.c
2655
link->u.mgd.csa.blocked_tx = false;
net/mac80211/mlme.c
2656
link->u.mgd.csa.waiting_bcn = false;
net/mac80211/mlme.c
2658
ret = drv_post_channel_switch(link);
net/mac80211/mlme.c
2660
link_info(link,
net/mac80211/mlme.c
2667
cfg80211_ch_switch_notify(sdata->dev, &link->conf->chanreq.oper,
net/mac80211/mlme.c
2668
link->link_id);
net/mac80211/mlme.c
2687
struct ieee80211_link_data *link =
net/mac80211/mlme.c
2688
rcu_dereference(sdata->link[link_id]);
net/mac80211/mlme.c
2690
if (WARN_ON(!link)) {
net/mac80211/mlme.c
2696
&link->u.mgd.csa.switch_work, 0);
net/mac80211/mlme.c
2704
ieee80211_sta_abort_chanswitch(struct ieee80211_link_data *link)
net/mac80211/mlme.c
2706
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
2714
if (rcu_access_pointer(link->conf->chanctx_conf))
net/mac80211/mlme.c
2715
ieee80211_link_unreserve_chanctx(link);
net/mac80211/mlme.c
2719
link->conf->csa_active = false;
net/mac80211/mlme.c
2720
link->u.mgd.csa.blocked_tx = false;
net/mac80211/mlme.c
2722
drv_abort_channel_switch(link);
net/mac80211/mlme.c
2726
struct ieee80211_link_data *link;
net/mac80211/mlme.c
2737
struct ieee80211_link_data *link = data->link;
net/mac80211/mlme.c
2738
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
2758
if (link_id != data->link->link_id)
net/mac80211/mlme.c
2765
link_info(link,
net/mac80211/mlme.c
2779
ieee80211_sta_other_link_csa_disappeared(struct ieee80211_link_data *link,
net/mac80211/mlme.c
2782
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
2785
.link = link,
net/mac80211/mlme.c
2811
link_info(link,
net/mac80211/mlme.c
2825
if (data.chan != link->csa.chanreq.oper.chan)
net/mac80211/mlme.c
2826
ieee80211_sta_abort_chanswitch(link);
net/mac80211/mlme.c
2837
ieee80211_sta_process_chanswitch(struct ieee80211_link_data *link,
net/mac80211/mlme.c
2843
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
2850
.link_id = link->link_id,
net/mac80211/mlme.c
2861
struct cfg80211_bss *cbss = link->conf->bss;
net/mac80211/mlme.c
2874
&link->u.mgd.conn,
net/mac80211/mlme.c
2875
link->u.mgd.bssid,
net/mac80211/mlme.c
2885
link->u.mgd.csa.tpe = csa_elems->csa_tpe;
net/mac80211/mlme.c
2903
if (link->conf->csa_active) {
net/mac80211/mlme.c
2910
if (link->u.mgd.csa.waiting_bcn) {
net/mac80211/mlme.c
2911
ieee80211_chswitch_post_beacon(link);
net/mac80211/mlme.c
2919
ieee80211_sta_abort_chanswitch(link);
net/mac80211/mlme.c
2929
link->link_id))
net/mac80211/mlme.c
2933
if (link->u.mgd.csa.waiting_bcn) {
net/mac80211/mlme.c
2934
ieee80211_chswitch_post_beacon(link);
net/mac80211/mlme.c
2949
ieee80211_sta_other_link_csa_disappeared(link,
net/mac80211/mlme.c
2964
if (unlikely(link->u.mgd.csa.blocked_tx)) {
net/mac80211/mlme.c
2965
link->u.mgd.csa.blocked_tx = false;
net/mac80211/mlme.c
2979
link->u.mgd.csa.blocked_tx = true;
net/mac80211/mlme.c
2985
if (link->conf->chanreq.oper.chan->band !=
net/mac80211/mlme.c
2987
link_info(link,
net/mac80211/mlme.c
2989
link->u.mgd.bssid,
net/mac80211/mlme.c
2999
link_info(link,
net/mac80211/mlme.c
3001
link->u.mgd.bssid,
net/mac80211/mlme.c
3012
&link->conf->chanreq.oper) &&
net/mac80211/mlme.c
3014
if (link->u.mgd.csa.ignored_same_chan)
net/mac80211/mlme.c
3016
link_info(link,
net/mac80211/mlme.c
3018
link->u.mgd.bssid);
net/mac80211/mlme.c
3019
link->u.mgd.csa.ignored_same_chan = true;
net/mac80211/mlme.c
3030
ieee80211_teardown_tdls_peers(link);
net/mac80211/mlme.c
3032
conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/mlme.c
3034
if (ieee80211_vif_link_active(&sdata->vif, link->link_id) && !conf) {
net/mac80211/mlme.c
3035
link_info(link,
net/mac80211/mlme.c
3044
link_info(link,
net/mac80211/mlme.c
3050
link_info(link,
net/mac80211/mlme.c
3055
link->u.mgd.csa.ap_chandef = csa_ie.chanreq.ap;
net/mac80211/mlme.c
3057
link->csa.chanreq.oper = csa_ie.chanreq.oper;
net/mac80211/mlme.c
3058
ieee80211_set_chanreq_ap(sdata, &link->csa.chanreq, &link->u.mgd.conn,
net/mac80211/mlme.c
3062
res = ieee80211_link_reserve_chanctx(link, &link->csa.chanreq,
net/mac80211/mlme.c
3065
link_info(link,
net/mac80211/mlme.c
3072
link->conf->csa_active = true;
net/mac80211/mlme.c
3073
link->u.mgd.csa.ignored_same_chan = false;
net/mac80211/mlme.c
3074
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
3075
link->u.mgd.csa.blocked_tx = csa_ie.mode;
net/mac80211/mlme.c
3081
link->link_id, csa_ie.count,
net/mac80211/mlme.c
3086
csa_time_tu = (max_t(int, csa_ie.count, 1) - 1) * link->conf->beacon_int;
net/mac80211/mlme.c
3087
link->u.mgd.csa.time = now + us_to_ktime(ieee80211_tu_to_usec(csa_time_tu));
net/mac80211/mlme.c
3089
if (ieee80211_vif_link_active(&sdata->vif, link->link_id) &&
net/mac80211/mlme.c
3103
&link->u.mgd.csa.switch_work,
net/mac80211/mlme.c
3104
link->u.mgd.csa.time - now);
net/mac80211/mlme.c
3114
link->conf->csa_active = true;
net/mac80211/mlme.c
3115
link->u.mgd.csa.blocked_tx = csa_ie.mode;
net/mac80211/mlme.c
3156
link_id < ARRAY_SIZE(sdata->link)) {
net/mac80211/mlme.c
3157
struct ieee80211_link_data *link =
net/mac80211/mlme.c
3158
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
3160
if (link && link->conf->bss_param_ch_cnt != bss_param_ch_cnt) {
net/mac80211/mlme.c
3161
link->conf->bss_param_ch_cnt = bss_param_ch_cnt;
net/mac80211/mlme.c
3162
link->conf->bss_param_ch_cnt_link_id =
net/mac80211/mlme.c
3288
static u64 ieee80211_handle_pwr_constr(struct ieee80211_link_data *link,
net/mac80211/mlme.c
3295
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3331
if (link->ap_power_level == new_ap_level)
net/mac80211/mlme.c
3337
link->u.mgd.bssid);
net/mac80211/mlme.c
3341
if (link->ap_power_level == new_ap_level)
net/mac80211/mlme.c
3346
pwr_level_cisco, link->u.mgd.bssid);
net/mac80211/mlme.c
3349
link->ap_power_level = new_ap_level;
net/mac80211/mlme.c
3350
if (__ieee80211_recalc_txpower(link))
net/mac80211/mlme.c
3591
struct ieee80211_link_data *link =
net/mac80211/mlme.c
3594
struct cfg80211_chan_def chandef = link->conf->chanreq.oper;
net/mac80211/mlme.c
3595
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3599
if (sdata->wdev.links[link->link_id].cac_started) {
net/mac80211/mlme.c
3600
ieee80211_link_release_channel(link);
net/mac80211/mlme.c
3603
GFP_KERNEL, link->link_id);
net/mac80211/mlme.c
3705
void ieee80211_mgd_set_link_qos_params(struct ieee80211_link_data *link)
net/mac80211/mlme.c
3707
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3710
struct ieee80211_tx_queue_params *params = link->tx_conf;
net/mac80211/mlme.c
3721
drv_conf_tx(local, link, ac, &params[ac]))
net/mac80211/mlme.c
3722
link_err(link,
net/mac80211/mlme.c
3731
struct ieee80211_link_data *link,
net/mac80211/mlme.c
3735
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3764
if (count == link->u.mgd.wmm_last_param_set &&
net/mac80211/mlme.c
3765
mu_edca_count == link->u.mgd.mu_edca_last_param_set)
net/mac80211/mlme.c
3767
link->u.mgd.wmm_last_param_set = count;
net/mac80211/mlme.c
3768
link->u.mgd.mu_edca_last_param_set = mu_edca_count;
net/mac80211/mlme.c
3828
link_info(link,
net/mac80211/mlme.c
3841
link_info(link,
net/mac80211/mlme.c
3852
link_info(link,
net/mac80211/mlme.c
3860
link->tx_conf[ac] = params[ac];
net/mac80211/mlme.c
3867
struct ieee80211_link_data *link,
net/mac80211/mlme.c
3871
if (!_ieee80211_sta_wmm_params(local, link, wmm_param, wmm_param_len,
net/mac80211/mlme.c
3875
ieee80211_mgd_set_link_qos_params(link);
net/mac80211/mlme.c
3878
link->conf->qos = true;
net/mac80211/mlme.c
3897
static u64 ieee80211_handle_bss_capability(struct ieee80211_link_data *link,
net/mac80211/mlme.c
3900
struct ieee80211_bss_conf *bss_conf = link->conf;
net/mac80211/mlme.c
3907
sband = ieee80211_get_link_sband(link);
net/mac80211/mlme.c
3942
static u64 ieee80211_link_set_associated(struct ieee80211_link_data *link,
net/mac80211/mlme.c
3945
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3946
struct ieee80211_bss_conf *bss_conf = link->conf;
net/mac80211/mlme.c
3955
changed |= ieee80211_handle_bss_capability(link,
net/mac80211/mlme.c
3960
ieee80211_check_rate_mask(link);
net/mac80211/mlme.c
3962
link->conf->bss = cbss;
net/mac80211/mlme.c
3963
memcpy(link->u.mgd.bssid, cbss->bssid, ETH_ALEN);
net/mac80211/mlme.c
3980
link->u.mgd.p2p_noa_index =
net/mac80211/mlme.c
3988
if (link->u.mgd.have_beacon) {
net/mac80211/mlme.c
4017
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
4018
struct ieee80211_link_data *link;
net/mac80211/mlme.c
4021
assoc_data->link[link_id].status != WLAN_STATUS_SUCCESS)
net/mac80211/mlme.c
4028
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
4029
if (WARN_ON(!link))
net/mac80211/mlme.c
4032
changed[link_id] |= ieee80211_link_set_associated(link, cbss);
net/mac80211/mlme.c
4050
struct ieee80211_link_data *link;
net/mac80211/mlme.c
4051
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
4056
assoc_data->link[link_id].status != WLAN_STATUS_SUCCESS)
net/mac80211/mlme.c
4059
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
4060
if (WARN_ON(!link))
net/mac80211/mlme.c
4063
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/mlme.c
4066
ieee80211_recalc_smps(sdata, link);
net/mac80211/mlme.c
4108
add_links_data->link[link_id].bss;
net/mac80211/mlme.c
4154
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/mlme.c
4156
struct ieee80211_link_data *link;
net/mac80211/mlme.c
4161
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
4162
if (WARN_ON_ONCE(!link))
net/mac80211/mlme.c
4165
if (link->u.mgd.csa.blocked_tx)
net/mac80211/mlme.c
4314
for (link_id = 0; link_id < ARRAY_SIZE(sdata->link); link_id++) {
net/mac80211/mlme.c
4315
struct ieee80211_link_data *link;
net/mac80211/mlme.c
4317
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
4318
if (!link)
net/mac80211/mlme.c
4320
ieee80211_link_release_channel(link);
net/mac80211/mlme.c
4598
else if (ifmgd->assoc_data && ifmgd->assoc_data->link[0].bss)
net/mac80211/mlme.c
4599
cbss = ifmgd->assoc_data->link[0].bss;
net/mac80211/mlme.c
4662
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/mlme.c
4664
struct ieee80211_link_data *link;
net/mac80211/mlme.c
4666
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
4667
if (!link || !link->conf->bss)
net/mac80211/mlme.c
4669
cfg80211_unlink_bss(local->hw.wiphy, link->conf->bss);
net/mac80211/mlme.c
4670
link->conf->bss = NULL;
net/mac80211/mlme.c
4842
ARRAY_SIZE(assoc_data->link));
net/mac80211/mlme.c
4845
data.bss[i] = assoc_data->link[i].bss;
net/mac80211/mlme.c
5193
struct ieee80211_link_data *link,
net/mac80211/mlme.c
5199
if (link->conf->twt_requester != twt) {
net/mac80211/mlme.c
5200
link->conf->twt_requester = twt;
net/mac80211/mlme.c
5247
struct ieee80211_link_data *link;
net/mac80211/mlme.c
5253
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
5254
if (!link || !link->conf || !link->conf->bss) {
net/mac80211/mlme.c
5259
if (link->u.mgd.disable_wmm_tracking) {
net/mac80211/mlme.c
5261
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
5265
ies = rcu_dereference(link->conf->bss->beacon_ies);
net/mac80211/mlme.c
5268
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
5278
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
5282
ret = _ieee80211_sta_wmm_params(local, link,
net/mac80211/mlme.c
5291
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
5295
ieee80211_mgd_set_link_qos_params(link);
net/mac80211/mlme.c
5296
ieee80211_link_info_change_notify(sdata, link, BSS_CHANGED_QOS);
net/mac80211/mlme.c
5300
static bool ieee80211_assoc_config_link(struct ieee80211_link_data *link,
net/mac80211/mlme.c
5308
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
5311
struct ieee80211_bss_conf *bss_conf = link->conf;
net/mac80211/mlme.c
5313
unsigned int link_id = link->link_id;
net/mac80211/mlme.c
5315
.mode = link->u.mgd.conn.mode,
net/mac80211/mlme.c
5344
assoc_data->link[link_id].status = WLAN_STATUS_SUCCESS;
net/mac80211/mlme.c
5371
assoc_data->link[link_id].status = get_unaligned_le16(ptr + 2);
net/mac80211/mlme.c
5377
if (assoc_data->link[link_id].status != WLAN_STATUS_SUCCESS) {
net/mac80211/mlme.c
5378
link_info(link, "association response status code=%u\n",
net/mac80211/mlme.c
5379
assoc_data->link[link_id].status);
net/mac80211/mlme.c
5391
link->u.mgd.tdls_chan_switch_prohibited =
net/mac80211/mlme.c
5404
(link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
5406
(is_5ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
5444
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
5450
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
5458
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
5465
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
5480
if (!is_6ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
5488
if (is_5ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
5497
if (ieee80211_config_bw(link, elems,
net/mac80211/mlme.c
5506
if (WARN_ON(!link->conf->chanreq.oper.chan)) {
net/mac80211/mlme.c
5510
sband = local->hw.wiphy->bands[link->conf->chanreq.oper.chan->band];
net/mac80211/mlme.c
5513
if (elems->ht_cap_elem && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
5519
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
5545
link_info(link, "VHT capabilities mismatch\n");
net/mac80211/mlme.c
5556
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
5573
*changed |= ieee80211_recalc_twt_req(sdata, sband, link,
net/mac80211/mlme.c
5577
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_EHT) {
net/mac80211/mlme.c
5610
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_UHR) {
net/mac80211/mlme.c
5622
link->u.mgd.conn.mode == IEEE80211_CONN_MODE_S1G &&
net/mac80211/mlme.c
5696
link->u.mgd.wmm_last_param_set = -1;
net/mac80211/mlme.c
5697
link->u.mgd.mu_edca_last_param_set = -1;
net/mac80211/mlme.c
5699
if (link->u.mgd.disable_wmm_tracking) {
net/mac80211/mlme.c
5700
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
5701
} else if (!ieee80211_sta_wmm_params(local, link, elems->wmm_param,
net/mac80211/mlme.c
5705
ieee80211_set_wmm_default(link, false, true);
net/mac80211/mlme.c
5713
link->u.mgd.disable_wmm_tracking = true;
net/mac80211/mlme.c
5739
static int ieee80211_mgd_setup_link_sta(struct ieee80211_link_data *link,
net/mac80211/mlme.c
5744
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
5780
link_info(link, "No legacy rates in association response\n");
net/mac80211/mlme.c
5783
link_info(link, "No basic rates, using min rate instead\n");
net/mac80211/mlme.c
5790
link_info(link, "No rates found, keeping mandatory only\n");
net/mac80211/mlme.c
5792
link->conf->basic_rates = basic_rates;
net/mac80211/mlme.c
5795
link->operating_11g_mode = sband->band == NL80211_BAND_2GHZ &&
net/mac80211/mlme.c
5801
static u8 ieee80211_max_rx_chains(struct ieee80211_link_data *link,
net/mac80211/mlme.c
5816
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
5829
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
5848
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_HE)
net/mac80211/mlme.c
6151
struct ieee80211_link_data *link,
net/mac80211/mlme.c
6183
if (link && is_6ghz && conn->mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
6187
link->conf->pwr_reduction = *elems->pwr_constr_elem;
net/mac80211/mlme.c
6191
link->conf->power_type =
net/mac80211/mlme.c
6195
link_info(link,
net/mac80211/mlme.c
6199
link->conf->tpe = elems->tpe;
net/mac80211/mlme.c
6200
ieee80211_rearrange_tpe(&link->conf->tpe, &ap_chandef,
net/mac80211/mlme.c
6208
if (!link)
net/mac80211/mlme.c
6212
link->needed_rx_chains = min(ieee80211_max_rx_chains(link, cbss),
net/mac80211/mlme.c
6221
ret = ieee80211_link_use_channel(link, &chanreq,
net/mac80211/mlme.c
6233
ret = ieee80211_link_use_channel(link, &chanreq,
net/mac80211/mlme.c
6395
if (!assoc_data->link[link_id].bss)
net/mac80211/mlme.c
6438
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
6439
struct ieee80211_link_data *link;
net/mac80211/mlme.c
6445
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
6446
if (WARN_ON(!link))
net/mac80211/mlme.c
6450
link_info(link,
net/mac80211/mlme.c
6452
link->conf->addr,
net/mac80211/mlme.c
6453
assoc_data->link[link_id].bss->bssid,
net/mac80211/mlme.c
6457
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/mlme.c
6462
if (!link->u.mgd.have_beacon) {
net/mac80211/mlme.c
6468
link->u.mgd.have_beacon = true;
net/mac80211/mlme.c
6472
&link->conf->sync_dtim_count,
net/mac80211/mlme.c
6473
&link->u.mgd.dtim_period);
net/mac80211/mlme.c
6474
link->conf->beacon_int = cbss->beacon_interval;
net/mac80211/mlme.c
6478
link->conf->dtim_period = link->u.mgd.dtim_period ?: 1;
net/mac80211/mlme.c
6481
link->u.mgd.conn = assoc_data->link[link_id].conn;
net/mac80211/mlme.c
6483
err = ieee80211_prep_channel(sdata, link, link_id, cbss,
net/mac80211/mlme.c
6484
true, &link->u.mgd.conn,
net/mac80211/mlme.c
6487
link_info(link, "prep_channel failed\n");
net/mac80211/mlme.c
6492
err = ieee80211_mgd_setup_link_sta(link, sta, link_sta,
net/mac80211/mlme.c
6493
assoc_data->link[link_id].bss);
net/mac80211/mlme.c
6497
if (!ieee80211_assoc_config_link(link, link_sta,
net/mac80211/mlme.c
6498
assoc_data->link[link_id].bss,
net/mac80211/mlme.c
6503
if (assoc_data->link[link_id].status != WLAN_STATUS_SUCCESS) {
net/mac80211/mlme.c
6608
assoc_data->link[assoc_data->assoc_link_id].conn.mode;
net/mac80211/mlme.c
6753
struct ieee80211_link_data *link;
net/mac80211/mlme.c
6755
if (!assoc_data->link[link_id].bss)
net/mac80211/mlme.c
6758
resp.links[link_id].bss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
6760
assoc_data->link[link_id].addr);
net/mac80211/mlme.c
6761
resp.links[link_id].status = assoc_data->link[link_id].status;
net/mac80211/mlme.c
6763
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
6764
if (!link)
net/mac80211/mlme.c
6770
if (link->tx_conf[ac].uapsd)
net/mac80211/mlme.c
6798
static void ieee80211_rx_bss_info(struct ieee80211_link_data *link,
net/mac80211/mlme.c
6802
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
6816
link->conf->beacon_rate = bss->beacon_rate;
net/mac80211/mlme.c
6822
static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_link_data *link,
net/mac80211/mlme.c
6825
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
6857
ieee80211_rx_bss_info(link, mgmt, len, rx_status);
net/mac80211/mlme.c
6860
ether_addr_equal(mgmt->bssid, link->u.mgd.bssid))
net/mac80211/mlme.c
6888
static void ieee80211_handle_beacon_sig(struct ieee80211_link_data *link,
net/mac80211/mlme.c
6894
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
6898
if (!link->u.mgd.tracking_signal_avg) {
net/mac80211/mlme.c
6899
link->u.mgd.tracking_signal_avg = true;
net/mac80211/mlme.c
6900
ewma_beacon_signal_init(&link->u.mgd.ave_beacon_signal);
net/mac80211/mlme.c
6901
link->u.mgd.last_cqm_event_signal = 0;
net/mac80211/mlme.c
6902
link->u.mgd.count_beacon_signal = 1;
net/mac80211/mlme.c
6903
link->u.mgd.last_ave_beacon_signal = 0;
net/mac80211/mlme.c
6905
link->u.mgd.count_beacon_signal++;
net/mac80211/mlme.c
6908
ewma_beacon_signal_add(&link->u.mgd.ave_beacon_signal,
net/mac80211/mlme.c
6912
link->u.mgd.count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) {
net/mac80211/mlme.c
6913
int sig = -ewma_beacon_signal_read(&link->u.mgd.ave_beacon_signal);
net/mac80211/mlme.c
6914
int last_sig = link->u.mgd.last_ave_beacon_signal;
net/mac80211/mlme.c
6925
link->u.mgd.last_ave_beacon_signal = sig;
net/mac80211/mlme.c
6931
link->u.mgd.last_ave_beacon_signal = sig;
net/mac80211/mlme.c
6938
link->u.mgd.count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT &&
net/mac80211/mlme.c
6940
int sig = -ewma_beacon_signal_read(&link->u.mgd.ave_beacon_signal);
net/mac80211/mlme.c
6941
int last_event = link->u.mgd.last_cqm_event_signal;
net/mac80211/mlme.c
6947
link->u.mgd.last_cqm_event_signal = sig;
net/mac80211/mlme.c
6954
link->u.mgd.last_cqm_event_signal = sig;
net/mac80211/mlme.c
6963
link->u.mgd.count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) {
net/mac80211/mlme.c
6964
int sig = -ewma_beacon_signal_read(&link->u.mgd.ave_beacon_signal);
net/mac80211/mlme.c
6965
int last_event = link->u.mgd.last_cqm_event_signal;
net/mac80211/mlme.c
6971
link->u.mgd.last_cqm_event_signal = sig;
net/mac80211/mlme.c
6978
link->u.mgd.last_cqm_event_signal = sig;
net/mac80211/mlme.c
7344
struct ieee80211_link_data *link;
net/mac80211/mlme.c
7358
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
7359
if (!link)
net/mac80211/mlme.c
7375
struct ieee80211_link_data *link;
net/mac80211/mlme.c
7381
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
7382
if (!link)
net/mac80211/mlme.c
7421
ieee80211_sta_process_chanswitch(link, 0, 0, elems, prof_elems,
net/mac80211/mlme.c
7482
static void ieee80211_rx_mgmt_beacon(struct ieee80211_link_data *link,
net/mac80211/mlme.c
7486
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
7488
struct ieee80211_bss_conf *bss_conf = link->conf;
net/mac80211/mlme.c
7507
.mode = link->u.mgd.conn.mode,
net/mac80211/mlme.c
7547
ieee80211_rx_our_beacon(bssid, ifmgd->assoc_data->link[0].bss)) {
net/mac80211/mlme.c
7548
parse_params.bss = ifmgd->assoc_data->link[0].bss;
net/mac80211/mlme.c
7553
ieee80211_rx_bss_info(link, mgmt, len, rx_status);
net/mac80211/mlme.c
7556
link->u.mgd.dtim_period = elems->dtim_period;
net/mac80211/mlme.c
7557
link->u.mgd.have_beacon = true;
net/mac80211/mlme.c
7591
bssid = link->u.mgd.bssid;
net/mac80211/mlme.c
7594
ieee80211_handle_beacon_sig(link, ifmgd, bss_conf,
net/mac80211/mlme.c
7668
if (link->u.mgd.p2p_noa_index != noa.index) {
net/mac80211/mlme.c
7670
link->u.mgd.p2p_noa_index = noa.index;
net/mac80211/mlme.c
7677
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
7679
} else if (link->u.mgd.p2p_noa_index != -1) {
net/mac80211/mlme.c
7681
link->u.mgd.p2p_noa_index = -1;
net/mac80211/mlme.c
7684
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
7705
if ((ncrc == link->u.mgd.beacon_crc && link->u.mgd.beacon_crc_valid) ||
net/mac80211/mlme.c
7710
link->u.mgd.beacon_crc = ncrc;
net/mac80211/mlme.c
7711
link->u.mgd.beacon_crc_valid = true;
net/mac80211/mlme.c
7713
ieee80211_rx_bss_info(link, mgmt, len, rx_status);
net/mac80211/mlme.c
7715
ieee80211_sta_process_chanswitch(link, rx_status->mactime,
net/mac80211/mlme.c
7726
!link->u.mgd.disable_wmm_tracking &&
net/mac80211/mlme.c
7727
ieee80211_sta_wmm_params(local, link, elems->wmm_param,
net/mac80211/mlme.c
7736
if (!link->u.mgd.have_beacon) {
net/mac80211/mlme.c
7741
link->u.mgd.have_beacon = true;
net/mac80211/mlme.c
7756
changed |= ieee80211_handle_bss_capability(link,
net/mac80211/mlme.c
7764
link_sta = rcu_dereference_protected(sta->link[link->link_id],
net/mac80211/mlme.c
7775
changed |= ieee80211_recalc_twt_req(sdata, sband, link, link_sta, elems);
net/mac80211/mlme.c
7777
if (ieee80211_config_bw(link, elems, true, &changed,
net/mac80211/mlme.c
7794
changed |= ieee80211_handle_pwr_constr(link, chan, mgmt,
net/mac80211/mlme.c
7804
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/mlme.c
8245
struct ieee80211_link_data *link = &sdata->deflink;
net/mac80211/mlme.c
8258
ieee80211_rx_mgmt_beacon(link, hdr, skb->len, rx_status);
net/mac80211/mlme.c
8266
struct ieee80211_link_data *link = &sdata->deflink;
net/mac80211/mlme.c
8280
link = sdata_dereference(sdata->link[rx_status->link_id],
net/mac80211/mlme.c
8282
if (!link)
net/mac80211/mlme.c
8288
ieee80211_rx_mgmt_beacon(link, (void *)mgmt,
net/mac80211/mlme.c
8292
ieee80211_rx_mgmt_probe_resp(link, skb);
net/mac80211/mlme.c
8332
ieee80211_sta_process_chanswitch(link,
net/mac80211/mlme.c
8372
ieee80211_sta_process_chanswitch(link,
net/mac80211/mlme.c
8510
assoc_data->link[assoc_data->assoc_link_id].bss);
net/mac80211/mlme.c
8708
struct ieee80211_link_data *link;
net/mac80211/mlme.c
8712
for_each_link_data_rcu(sdata, link) {
net/mac80211/mlme.c
8713
if (!(link->conf->csa_active &&
net/mac80211/mlme.c
8714
!link->u.mgd.csa.waiting_bcn))
net/mac80211/mlme.c
8750
for (link_id = 0; link_id < ARRAY_SIZE(sta->link);
net/mac80211/mlme.c
8755
link_sta = rcu_dereference(sta->link[link_id]);
net/mac80211/mlme.c
8920
struct ieee80211_link_data *link =
net/mac80211/mlme.c
8924
__ieee80211_request_smps_mgd(link->sdata, link,
net/mac80211/mlme.c
8925
link->u.mgd.driver_smps_mode);
net/mac80211/mlme.c
8989
struct ieee80211_link_data *link =
net/mac80211/mlme.c
8993
ieee80211_recalc_smps(link->sdata, link);
net/mac80211/mlme.c
8996
void ieee80211_mgd_setup_link(struct ieee80211_link_data *link)
net/mac80211/mlme.c
8998
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
9000
unsigned int link_id = link->link_id;
net/mac80211/mlme.c
9002
link->u.mgd.p2p_noa_index = -1;
net/mac80211/mlme.c
9003
link->conf->bssid = link->u.mgd.bssid;
net/mac80211/mlme.c
9004
link->smps_mode = IEEE80211_SMPS_OFF;
net/mac80211/mlme.c
9006
wiphy_work_init(&link->u.mgd.request_smps_work,
net/mac80211/mlme.c
9008
wiphy_work_init(&link->u.mgd.recalc_smps,
net/mac80211/mlme.c
9011
link->u.mgd.req_smps = IEEE80211_SMPS_AUTOMATIC;
net/mac80211/mlme.c
9013
link->u.mgd.req_smps = IEEE80211_SMPS_OFF;
net/mac80211/mlme.c
9015
wiphy_hrtimer_work_init(&link->u.mgd.csa.switch_work,
net/mac80211/mlme.c
9018
ieee80211_clear_tpe(&link->conf->tpe);
net/mac80211/mlme.c
9021
ether_addr_copy(link->conf->addr,
net/mac80211/mlme.c
9022
sdata->u.mgd.assoc_data->link[link_id].addr);
net/mac80211/mlme.c
9024
ether_addr_copy(link->conf->addr,
net/mac80211/mlme.c
9025
sdata->u.mgd.reconf.add_links_data->link[link_id].addr);
net/mac80211/mlme.c
9026
else if (!is_valid_ether_addr(link->conf->addr))
net/mac80211/mlme.c
9027
eth_random_addr(link->conf->addr);
net/mac80211/mlme.c
9055
struct ieee80211_link_data *link;
net/mac80211/mlme.c
9089
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
9090
if (WARN_ON(!link)) {
net/mac80211/mlme.c
9144
link_sta = rcu_dereference(new_sta->link[link_id]);
net/mac80211/mlme.c
9152
err = ieee80211_mgd_setup_link_sta(link, new_sta,
net/mac80211/mlme.c
9160
memcpy(link->u.mgd.bssid, cbss->bssid, ETH_ALEN);
net/mac80211/mlme.c
9163
link->conf->beacon_int = cbss->beacon_interval;
net/mac80211/mlme.c
9166
link->conf->sync_tsf = ies->tsf;
net/mac80211/mlme.c
9167
link->conf->sync_device_ts =
net/mac80211/mlme.c
9171
&link->conf->sync_dtim_count,
net/mac80211/mlme.c
9177
link->conf->sync_tsf = ies->tsf;
net/mac80211/mlme.c
9178
link->conf->sync_device_ts =
net/mac80211/mlme.c
9180
link->conf->sync_dtim_count = 0;
net/mac80211/mlme.c
9182
link->conf->sync_tsf = 0;
net/mac80211/mlme.c
9183
link->conf->sync_device_ts = 0;
net/mac80211/mlme.c
9184
link->conf->sync_dtim_count = 0;
net/mac80211/mlme.c
9196
link->u.mgd.conn = *conn;
net/mac80211/mlme.c
9197
err = ieee80211_prep_channel(sdata, link, link->link_id, cbss,
net/mac80211/mlme.c
9198
mlo, &link->u.mgd.conn,
net/mac80211/mlme.c
9206
*conn = link->u.mgd.conn;
net/mac80211/mlme.c
9214
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/mlme.c
9231
WARN_ON_ONCE(!ether_addr_equal(link->u.mgd.bssid, cbss->bssid));
net/mac80211/mlme.c
9240
ieee80211_link_release_channel(link);
net/mac80211/mlme.c
9339
struct ieee80211_link_data *link;
net/mac80211/mlme.c
9504
link = sdata_dereference(sdata->link[req->link_id], sdata);
net/mac80211/mlme.c
9506
link = &sdata->deflink;
net/mac80211/mlme.c
9508
if (WARN_ON(!link)) {
net/mac80211/mlme.c
9514
auth_data->ap_addr, link->conf->addr);
net/mac80211/mlme.c
9548
struct ieee80211_link_data *link;
net/mac80211/mlme.c
9552
cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
9562
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
9563
if (WARN_ON(!link))
net/mac80211/mlme.c
9576
assoc_data->link[link_id].elems = assoc_data->ie_pos;
net/mac80211/mlme.c
9577
assoc_data->link[link_id].elems_len = req->links[link_id].elems_len;
net/mac80211/mlme.c
9581
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
9582
link->u.mgd.dtim_period = 0;
net/mac80211/mlme.c
9583
link->u.mgd.have_beacon = false;
net/mac80211/mlme.c
9599
&link->u.mgd.dtim_period);
net/mac80211/mlme.c
9604
link->conf->sync_tsf = bss_ies->tsf;
net/mac80211/mlme.c
9605
link->conf->sync_device_ts = bss->device_ts_beacon;
net/mac80211/mlme.c
9606
link->conf->sync_dtim_count = dtim_count;
net/mac80211/mlme.c
9618
link->conf->profile_periodicity = elem->data[2];
net/mac80211/mlme.c
9620
link->conf->profile_periodicity = 0;
net/mac80211/mlme.c
9626
link->conf->ema_ap = true;
net/mac80211/mlme.c
9628
link->conf->ema_ap = false;
net/mac80211/mlme.c
9647
if (link->u.mgd.req_smps == IEEE80211_SMPS_AUTOMATIC) {
net/mac80211/mlme.c
9649
link->smps_mode = IEEE80211_SMPS_DYNAMIC;
net/mac80211/mlme.c
9651
link->smps_mode = IEEE80211_SMPS_OFF;
net/mac80211/mlme.c
9653
link->smps_mode = link->u.mgd.req_smps;
net/mac80211/mlme.c
9662
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
9672
if (assoc_data->link[link_id].conn.mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
9683
assoc_data->link[link_id].ap_ht_param =
net/mac80211/mlme.c
9687
if (assoc_data->link[link_id].conn.mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
9708
memcpy(&assoc_data->link[link_id].ap_vht_cap, elem->data,
net/mac80211/mlme.c
9760
struct ieee80211_link_data *link;
net/mac80211/mlme.c
9888
link = sdata_dereference(sdata->link[i], sdata);
net/mac80211/mlme.c
9889
if (link)
net/mac80211/mlme.c
9890
ether_addr_copy(assoc_data->link[i].addr,
net/mac80211/mlme.c
9891
link->conf->addr);
net/mac80211/mlme.c
9893
eth_random_addr(assoc_data->link[i].addr);
net/mac80211/mlme.c
9896
if (match_auth && i == assoc_link_id && link)
net/mac80211/mlme.c
9897
assoc_data->link[i].conn = link->u.mgd.conn;
net/mac80211/mlme.c
9899
assoc_data->link[i].conn =
net/mac80211/mlme.c
9903
&assoc_data->link[i].conn);
net/mac80211/mlme.c
9904
assoc_data->link[i].bss = link_cbss;
net/mac80211/mlme.c
9909
if (assoc_data->link[i].conn.mode < IEEE80211_CONN_MODE_EHT) {
net/mac80211/mlme.c
9929
memcpy(assoc_data->link[0].addr, sdata->vif.addr, ETH_ALEN);
net/mac80211/mlme.c
9945
assoc_data->link[0].bss = cbss;
net/mac80211/mlme.c
9948
assoc_data->link[0].conn = sdata->deflink.u.mgd.conn;
net/mac80211/mlme.c
9950
assoc_data->link[0].conn =
net/mac80211/mlme.c
9954
&assoc_data->link[0].conn);
net/mac80211/rate.c
296
void ieee80211_check_rate_mask(struct ieee80211_link_data *link)
net/mac80211/rate.c
298
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/rate.c
301
u32 user_mask, basic_rates = link->conf->basic_rates;
net/mac80211/rate.c
304
if (WARN_ON(!link->conf->chanreq.oper.chan))
net/mac80211/rate.c
307
band = link->conf->chanreq.oper.chan->band;
net/mac80211/rate.c
79
for (link_id = 0; link_id < ARRAY_SIZE(sta->link); link_id++) {
net/mac80211/rate.c
82
link_sta = sdata_dereference(sta->link[link_id], sta->sdata);
net/mac80211/rate.h
88
void ieee80211_check_rate_mask(struct ieee80211_link_data *link);
net/mac80211/rx.c
1995
key = rcu_dereference(rx->link->gtk[idx]);
net/mac80211/rx.c
1999
key = rcu_dereference(rx->link->gtk[idx2]);
net/mac80211/rx.c
2114
rx->key = rcu_dereference(rx->link->gtk[mmie_keyidx]);
net/mac80211/rx.c
2129
key = rcu_dereference(rx->link->default_mgmt_key);
net/mac80211/rx.c
2140
key = rcu_dereference(rx->link->gtk[i]);
net/mac80211/rx.c
2175
rx->key = rcu_dereference(rx->link->gtk[keyidx]);
net/mac80211/rx.c
244
link_sta_info = rcu_dereference(sta->link[link_id]);
net/mac80211/rx.c
3466
bss_conf = rx->link->conf;
net/mac80211/rx.c
4224
if (WARN_ON_ONCE(!rx->link)) {
net/mac80211/rx.c
4299
rx->link = rcu_dereference(rx->sdata->link[link_id]);
net/mac80211/rx.c
4302
return rx->link;
net/mac80211/rx.c
4307
rx->link_sta = rcu_dereference(rx->sta->link[link_id]);
net/mac80211/rx.c
4309
return rx->link && rx->link_sta;
net/mac80211/rx.c
4330
rx->link =
net/mac80211/rx.c
4331
rcu_dereference(rx->sdata->link[sta->deflink.link_id]);
net/mac80211/rx.c
4333
rx->link = &rx->sdata->deflink;
net/mac80211/rx.c
4834
link_sta = rcu_dereference(sta->link[rx->link_id]);
net/mac80211/rx.c
5086
struct ieee80211_link_data *link = rx->link;
net/mac80211/rx.c
5135
if (ether_addr_equal(link->conf->addr, hdr->addr1))
net/mac80211/rx.c
5144
else if (ether_addr_equal(link->conf->addr, hdr->addr3))
net/mac80211/rx.c
5232
struct ieee80211_link_data *link;
net/mac80211/rx.c
5235
for_each_link_data_rcu(rx->sdata, link) {
net/mac80211/rx.c
5236
conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/rx.c
5241
link_id = link->link_id;
net/mac80211/scan.c
266
link_sdata = rcu_dereference(sdata->link[link_id]);
net/mac80211/sta_info.c
1313
for (i = 0; i < ARRAY_SIZE(sta->link); i++) {
net/mac80211/sta_info.c
1319
link_sta = rcu_dereference_protected(sta->link[i],
net/mac80211/sta_info.c
2402
for (link_id = 0; link_id < ARRAY_SIZE((sta)->link); link_id++) {
net/mac80211/sta_info.c
2409
link_sta = rcu_dereference(sta->sta.link[link_id]);
net/mac80211/sta_info.c
2495
sta->link[link_id]);
net/mac80211/sta_info.c
2622
sta->link[link_id]);
net/mac80211/sta_info.c
2747
struct ieee80211_link_data *link,
net/mac80211/sta_info.c
2752
int i, ac, cpu, link_id = link->link_id;
net/mac80211/sta_info.c
2759
sta->link[link_id]);
net/mac80211/sta_info.c
2766
link_sinfo->rx_beacon = link->u.mgd.count_beacon_signal;
net/mac80211/sta_info.c
2780
link->u.mgd.beacon_loss_count;
net/mac80211/sta_info.c
293
struct ieee80211_link_data *link;
net/mac80211/sta_info.c
2955
link_sinfo->bss_param.dtim_period = link->conf->dtim_period;
net/mac80211/sta_info.c
2956
link_sinfo->bss_param.beacon_interval = link->conf->beacon_int;
net/mac80211/sta_info.c
302
link = rcu_dereference(sta->sdata->link[_link_id]);
net/mac80211/sta_info.c
303
if (!link)
net/mac80211/sta_info.c
306
if (memcmp(link->conf->addr, localaddr, ETH_ALEN))
net/mac80211/sta_info.c
3230
struct ieee80211_link_data *link;
net/mac80211/sta_info.c
3241
sta->link[link_id]);
net/mac80211/sta_info.c
3242
link = wiphy_dereference(sdata->local->hw.wiphy,
net/mac80211/sta_info.c
3243
sdata->link[link_id]);
net/mac80211/sta_info.c
3245
if (!link_sta || !sinfo->links[link_id] || !link) {
net/mac80211/sta_info.c
3250
link, tidstats);
net/mac80211/sta_info.c
3285
sta->link[link_id]);
net/mac80211/sta_info.c
3309
sta->link[link_id]))
net/mac80211/sta_info.c
3346
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/sta_info.c
361
sta->link[link_id]);
net/mac80211/sta_info.c
362
struct ieee80211_link_data *link;
net/mac80211/sta_info.c
406
link = wiphy_dereference(sta->sdata->local->hw.wiphy,
net/mac80211/sta_info.c
407
sta->sdata->link[link_id]);
net/mac80211/sta_info.c
408
if (link)
net/mac80211/sta_info.c
410
link->u.mgd.beacon_loss_count;
net/mac80211/sta_info.c
422
link_sta = rcu_access_pointer(sta->link[link_id]);
net/mac80211/sta_info.c
440
RCU_INIT_POINTER(sta->link[link_id], NULL);
net/mac80211/sta_info.c
441
RCU_INIT_POINTER(sta->sta.link[link_id], NULL);
net/mac80211/sta_info.c
465
for (i = 0; i < ARRAY_SIZE(sta->link); i++) {
net/mac80211/sta_info.c
468
link_sta = rcu_access_pointer(sta->link[i]);
net/mac80211/sta_info.c
602
rcu_assign_pointer(sta->link[link_id], link_info);
net/mac80211/sta_info.c
603
rcu_assign_pointer(sta->sta.link[link_id], link_sta);
net/mac80211/sta_info.c
958
for (i = 0; i < ARRAY_SIZE(sta->link); i++) {
net/mac80211/sta_info.c
961
link_sta = rcu_dereference_protected(sta->link[i],
net/mac80211/sta_info.h
773
struct link_sta_info __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
net/mac80211/status.c
686
struct ieee80211_link_data *link;
net/mac80211/status.c
697
if (WARN(link_id >= ARRAY_SIZE(sdata->link),
net/mac80211/status.c
701
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/status.c
702
if (!link)
net/mac80211/status.c
712
link->smps_mode = smps_mode;
net/mac80211/status.c
713
wiphy_work_queue(sdata->local->hw.wiphy, &link->u.mgd.recalc_smps);
net/mac80211/tdls.c
156
static void ieee80211_tdls_add_oper_classes(struct ieee80211_link_data *link,
net/mac80211/tdls.c
162
if (!ieee80211_chandef_to_operating_class(&link->conf->chanreq.oper,
net/mac80211/tdls.c
184
static u16 ieee80211_get_tdls_sta_capab(struct ieee80211_link_data *link,
net/mac80211/tdls.c
193
sband = ieee80211_get_link_sband(link);
net/mac80211/tdls.c
203
static void ieee80211_tdls_add_link_ie(struct ieee80211_link_data *link,
net/mac80211/tdls.c
2038
void ieee80211_teardown_tdls_peers(struct ieee80211_link_data *link)
net/mac80211/tdls.c
2040
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/tdls.c
2050
if (sta->deflink.link_id != link->link_id)
net/mac80211/tdls.c
207
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/tdls.c
224
memcpy(lnkid->bssid, link->u.mgd.bssid, ETH_ALEN);
net/mac80211/tdls.c
365
ieee80211_tdls_add_setup_start_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
370
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/tdls.c
381
sband = ieee80211_get_link_sband(link);
net/mac80211/tdls.c
406
ieee80211_tdls_add_ext_capab(link, skb);
net/mac80211/tdls.c
42
static void ieee80211_tdls_add_ext_capab(struct ieee80211_link_data *link,
net/mac80211/tdls.c
441
sta->tdls_chandef = link->conf->chanreq.oper;
net/mac80211/tdls.c
444
ieee80211_tdls_add_oper_classes(link, skb);
net/mac80211/tdls.c
45
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/tdls.c
477
ieee80211_tdls_add_link_ie(link, skb, peer, initiator);
net/mac80211/tdls.c
54
struct ieee80211_supported_band *sband = ieee80211_get_link_sband(link);
net/mac80211/tdls.c
558
ieee80211_put_he_6ghz_cap(skb, sdata, link->smps_mode);
net/mac80211/tdls.c
592
ieee80211_tdls_add_setup_cfm_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
597
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/tdls.c
604
sband = ieee80211_get_link_sband(link);
net/mac80211/tdls.c
614
sta->tdls_chandef = link->conf->chanreq.oper;
net/mac80211/tdls.c
660
&link->conf->chanreq.oper, prot,
net/mac80211/tdls.c
664
ieee80211_tdls_add_link_ie(link, skb, peer, initiator);
net/mac80211/tdls.c
689
ieee80211_tdls_add_chan_switch_req_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
718
ieee80211_tdls_add_link_ie(link, skb, peer, initiator);
net/mac80211/tdls.c
728
ieee80211_tdls_add_chan_switch_resp_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
735
ieee80211_tdls_add_link_ie(link, skb, peer, initiator);
net/mac80211/tdls.c
741
static void ieee80211_tdls_add_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
753
ieee80211_tdls_add_setup_start_ies(link,
net/mac80211/tdls.c
762
ieee80211_tdls_add_setup_cfm_ies(link, skb, peer,
net/mac80211/tdls.c
771
ieee80211_tdls_add_link_ie(link, skb,
net/mac80211/tdls.c
775
ieee80211_tdls_add_chan_switch_req_ies(link, skb, peer,
net/mac80211/tdls.c
781
ieee80211_tdls_add_chan_switch_resp_ies(link, skb, peer,
net/mac80211/tdls.c
792
struct ieee80211_link_data *link,
net/mac80211/tdls.c
817
cpu_to_le16(ieee80211_get_tdls_sta_capab(link,
net/mac80211/tdls.c
828
cpu_to_le16(ieee80211_get_tdls_sta_capab(link,
net/mac80211/tdls.c
875
const u8 *peer, struct ieee80211_link_data *link,
net/mac80211/tdls.c
885
memcpy(mgmt->bssid, link->u.mgd.bssid, ETH_ALEN);
net/mac80211/tdls.c
898
cpu_to_le16(ieee80211_get_tdls_sta_capab(link,
net/mac80211/tdls.c
920
struct ieee80211_link_data *link;
net/mac80211/tdls.c
924
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tdls.c
925
if (WARN_ON(!link))
net/mac80211/tdls.c
966
sdata->dev, link, peer,
net/mac80211/tdls.c
972
peer, link, action_code,
net/mac80211/tdls.c
984
ieee80211_tdls_add_ies(link, skb, peer, action_code, status_code,
net/mac80211/trace.h
3142
struct ieee80211_link_data *link,
net/mac80211/trace.h
3145
TP_ARGS(local, sdata, link, smps_mode),
net/mac80211/trace.h
3157
__entry->link_id = link->link_id,
net/mac80211/tx.c
2676
struct ieee80211_link_data *link;
net/mac80211/tx.c
2679
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
2680
if (WARN_ON(!link)) {
net/mac80211/tx.c
2684
memcpy(hdr.addr2, link->conf->addr, ETH_ALEN);
net/mac80211/tx.c
2785
struct ieee80211_link_data *link;
net/mac80211/tx.c
2790
link = rcu_dereference(sdata->link[tdls_link_id]);
net/mac80211/tx.c
2791
if (WARN_ON_ONCE(!link)) {
net/mac80211/tx.c
2795
memcpy(hdr.addr3, link->u.mgd.bssid, ETH_ALEN);
net/mac80211/tx.c
3110
struct ieee80211_link_data *link;
net/mac80211/tx.c
3116
link = rcu_dereference(sdata->link[tdls_link_id]);
net/mac80211/tx.c
3117
if (!WARN_ON_ONCE(!link))
net/mac80211/tx.c
3118
memcpy(hdr->addr3, link->u.mgd.bssid, ETH_ALEN);
net/mac80211/tx.c
3164
struct ieee80211_link_data *link;
net/mac80211/tx.c
3167
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
3168
if (WARN_ON(!link)) {
net/mac80211/tx.c
3172
memcpy(hdr->addr2, link->conf->addr, ETH_ALEN);
net/mac80211/tx.c
4486
unsigned int link;
net/mac80211/tx.c
4498
for_each_set_bit(link, &links, IEEE80211_MLD_MAX_NUM_LINKS) {
net/mac80211/tx.c
4499
ieee80211_mlo_multicast_tx_one(sdata, skb, ctrl_flags, link);
net/mac80211/tx.c
5001
struct ieee80211_link_data *link,
net/mac80211/tx.c
5007
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/tx.c
5008
bool s1g = ieee80211_get_link_sband(link)->band == NL80211_BAND_S1GHZ;
net/mac80211/tx.c
5061
struct ieee80211_link_data *link,
net/mac80211/tx.c
5075
__ieee80211_beacon_add_tim(sdata, link, ps, skb, is_template);
net/mac80211/tx.c
5078
__ieee80211_beacon_add_tim(sdata, link, ps, skb, is_template);
net/mac80211/tx.c
5087
struct ieee80211_link_data *link)
net/mac80211/tx.c
5112
resp = rcu_dereference(link->u.ap.probe_resp);
net/mac80211/tx.c
5116
if (link->conf->csa_active)
net/mac80211/tx.c
5134
static u8 __ieee80211_beacon_update_cntdwn(struct ieee80211_link_data *link,
net/mac80211/tx.c
5147
link_err_once(link,
net/mac80211/tx.c
5160
struct ieee80211_link_data *link;
net/mac80211/tx.c
5169
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
5170
if (!link)
net/mac80211/tx.c
5174
beacon = rcu_dereference(link->u.ap.beacon);
net/mac80211/tx.c
5183
count = __ieee80211_beacon_update_cntdwn(link, beacon);
net/mac80211/tx.c
5220
struct ieee80211_link_data *link;
net/mac80211/tx.c
5234
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
5235
if (!link)
net/mac80211/tx.c
5239
beacon = rcu_dereference(link->u.ap.beacon);
net/mac80211/tx.c
5286
struct ieee80211_link_data *link)
net/mac80211/tx.c
5293
tx.key = rcu_dereference(link->default_beacon_key);
net/mac80211/tx.c
5323
struct ieee80211_link_data *link,
net/mac80211/tx.c
5359
txrc.bss_conf = link->conf;
net/mac80211/tx.c
5370
info->control.flags |= u32_encode_bits(link->link_id,
net/mac80211/tx.c
5409
struct ieee80211_link_data *link,
net/mac80211/tx.c
5425
ieee80211_beacon_update_cntdwn(vif, link->link_id);
net/mac80211/tx.c
5427
ieee80211_set_beacon_cntdwn(sdata, beacon, link);
net/mac80211/tx.c
5446
ieee80211_beacon_add_tim(sdata, link, &ap->ps, skb, is_template);
net/mac80211/tx.c
5465
if (ieee80211_beacon_protect(skb, local, sdata, link) < 0) {
net/mac80211/tx.c
5470
ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
net/mac80211/tx.c
5476
struct ieee80211_link_data *link)
net/mac80211/tx.c
5481
ps->sb_count = link->conf->s1g_long_beacon_period - 1;
net/mac80211/tx.c
5491
struct ieee80211_link_data *link,
net/mac80211/tx.c
5510
ieee80211_beacon_add_tim(sdata, link, &ap->ps, skb, is_template);
net/mac80211/tx.c
5515
ieee80211_beacon_get_finish(hw, vif, link, NULL, NULL, skb,
net/mac80211/tx.c
5522
struct ieee80211_link_data *link,
net/mac80211/tx.c
5531
ieee80211_s1g_need_long_beacon(sdata, link))
net/mac80211/tx.c
5532
return __ieee80211_beacon_get_ap(hw, vif, link, offs,
net/mac80211/tx.c
5536
return ieee80211_s1g_short_beacon_get(hw, vif, link, chanctx_conf,
net/mac80211/tx.c
5543
struct ieee80211_link_data *link,
net/mac80211/tx.c
5559
ieee80211_beacon_get_ap(hw, vif, link,
net/mac80211/tx.c
5590
struct ieee80211_link_data *link;
net/mac80211/tx.c
5596
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
5597
if (!link)
net/mac80211/tx.c
5600
rcu_dereference(link->conf->chanctx_conf);
net/mac80211/tx.c
5609
beacon = rcu_dereference(link->u.ap.beacon);
net/mac80211/tx.c
5613
if (vif->cfg.s1g && link->u.ap.s1g_short_beacon) {
net/mac80211/tx.c
5615
rcu_dereference(link->u.ap.s1g_short_beacon);
net/mac80211/tx.c
5622
ieee80211_beacon_get_ap_ema_list(hw, vif, link,
net/mac80211/tx.c
5638
skb = ieee80211_beacon_get_ap(hw, vif, link, offs,
net/mac80211/tx.c
5653
__ieee80211_beacon_update_cntdwn(link, beacon);
net/mac80211/tx.c
5655
ieee80211_set_beacon_cntdwn(sdata, beacon, link);
net/mac80211/tx.c
5669
ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
net/mac80211/tx.c
5685
__ieee80211_beacon_update_cntdwn(link, beacon);
net/mac80211/tx.c
5687
ieee80211_set_beacon_cntdwn(sdata, beacon, link);
net/mac80211/tx.c
5702
ieee80211_beacon_add_tim(sdata, link, &ifmsh->ps, skb,
net/mac80211/tx.c
571
struct ieee80211_link_data *link;
net/mac80211/tx.c
5711
ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
net/mac80211/tx.c
576
link = &tx->sdata->deflink;
net/mac80211/tx.c
578
link = rcu_dereference(tx->sdata->link[link_id]);
net/mac80211/tx.c
579
if (!link)
net/mac80211/tx.c
584
return rcu_dereference(link->default_multicast_key);
net/mac80211/tx.c
588
return rcu_dereference(link->default_mgmt_key);
net/mac80211/tx.c
590
return rcu_dereference(link->default_multicast_key);
net/mac80211/tx.c
5939
struct ieee80211_link_data *link = NULL;
net/mac80211/tx.c
5961
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
5962
if (WARN_ON_ONCE(!link)) {
net/mac80211/tx.c
5988
if (link) {
net/mac80211/tx.c
5989
memcpy(nullfunc->addr1, link->conf->bssid, ETH_ALEN);
net/mac80211/tx.c
5990
memcpy(nullfunc->addr2, link->conf->addr, ETH_ALEN);
net/mac80211/tx.c
5991
memcpy(nullfunc->addr3, link->conf->bssid, ETH_ALEN);
net/mac80211/tx.c
6243
unsigned int link;
net/mac80211/tx.c
6256
link = 0;
net/mac80211/tx.c
6258
link = link_id;
net/mac80211/tx.c
6261
link = IEEE80211_LINK_UNSPECIFIED;
net/mac80211/tx.c
6265
for (link = 0; link < ARRAY_SIZE(sdata->vif.link_conf); link++) {
net/mac80211/tx.c
6268
link_conf = rcu_dereference(sdata->vif.link_conf[link]);
net/mac80211/tx.c
6276
if (WARN_ON_ONCE(link == ARRAY_SIZE(sdata->vif.link_conf)))
net/mac80211/tx.c
6277
link = ffs(sdata->vif.active_links) - 1;
net/mac80211/tx.c
6281
u32_encode_bits(link, IEEE80211_TX_CTRL_MLO_LINK);
net/mac80211/util.c
1010
void ieee80211_set_wmm_default(struct ieee80211_link_data *link,
net/mac80211/util.c
1013
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/util.c
1031
chanctx_conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/util.c
1034
!link->operating_11g_mode;
net/mac80211/util.c
1108
link->tx_conf[ac] = qparam;
net/mac80211/util.c
1109
drv_conf_tx(local, link, ac, &qparam);
net/mac80211/util.c
1115
link->conf->qos = enable_qos;
net/mac80211/util.c
1117
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/util.c
1699
struct ieee80211_link_data *link)
net/mac80211/util.c
1706
conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/util.c
1710
drv_assign_vif_chanctx(local, sdata, link->conf, ctx);
net/mac80211/util.c
1780
for (link_id = 0; link_id < ARRAY_SIZE(sdata->link); link_id++) {
net/mac80211/util.c
1781
struct ieee80211_link_data *link;
net/mac80211/util.c
1786
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/util.c
1787
if (!link)
net/mac80211/util.c
1790
if (rcu_access_pointer(link->u.ap.beacon))
net/mac80211/util.c
1791
drv_start_ap(local, sdata, link->conf);
net/mac80211/util.c
1793
if (!link->conf->enable_beacon)
net/mac80211/util.c
1799
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/util.c
1981
struct ieee80211_link_data *link = NULL;
net/mac80211/util.c
2013
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/util.c
2014
if (!link)
net/mac80211/util.c
2017
ieee80211_assign_chanctx(local, sdata, link);
net/mac80211/util.c
2061
} else if (!WARN_ON(!link)) {
net/mac80211/util.c
2062
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/util.c
2344
struct ieee80211_link_data *link)
net/mac80211/util.c
2352
chanctx_conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/util.c
3388
sdata->link[link_id]);
net/mac80211/util.c
3586
struct ieee80211_link_data *link;
net/mac80211/util.c
3595
link = sdata_dereference(sdata->link[link_id],
net/mac80211/util.c
3597
if (!link)
net/mac80211/util.c
3600
chanctx_conf = sdata_dereference(link->conf->chanctx_conf,
net/mac80211/util.c
3606
&link->dfs_cac_timer_work);
net/mac80211/util.c
3611
chandef = link->conf->chanreq.oper;
net/mac80211/util.c
3612
ieee80211_link_release_channel(link);
net/mac80211/util.c
4069
struct ieee80211_link_data *link;
net/mac80211/util.c
4077
for_each_sdata_link(local, link) {
net/mac80211/util.c
4078
if (rcu_access_pointer(link->conf->chanctx_conf) == &ctx->conf) {
net/mac80211/util.c
4086
if (link->radar_required)
net/mac80211/util.c
4088
BIT(link->conf->chanreq.oper.width);
net/mac80211/util.c
4091
if (link->reserved_chanctx == ctx &&
net/mac80211/util.c
4092
link->reserved_radar_required)
net/mac80211/util.c
4093
radar_detect |= BIT(link->reserved.oper.width);
net/mac80211/vht.c
718
struct ieee80211_link_data *link,
net/mac80211/vht.c
721
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/vht.c
739
ieee80211_link_info_change_notify(sdata, link,
net/ncsi/internal.h
241
struct list_head link;
net/ncsi/ncsi-aen.c
152
if (!list_empty(&nc->link) ||
net/ncsi/ncsi-aen.c
166
list_add_tail_rcu(&nc->link, &ndp->channel_queue);
net/ncsi/ncsi-aen.c
80
chained = !list_empty(&nc->link);
net/ncsi/ncsi-aen.c
97
list_add_tail_rcu(&nc->link, &ndp->channel_queue);
net/ncsi/ncsi-manage.c
103
chained = !list_empty(&nc->link);
net/ncsi/ncsi-manage.c
1200
list_add_tail_rcu(&nc->link, &ndp->channel_queue);
net/ncsi/ncsi-manage.c
1265
if (!list_empty(&nc->link) ||
net/ncsi/ncsi-manage.c
1289
list_add_tail_rcu(&nc->link,
net/ncsi/ncsi-manage.c
1313
list_add_tail_rcu(&found->link, &ndp->channel_queue);
net/ncsi/ncsi-manage.c
155
list_add_tail_rcu(&nc->link, &ndp->channel_queue);
net/ncsi/ncsi-manage.c
1564
struct ncsi_channel, link);
net/ncsi/ncsi-manage.c
1570
list_del_init(&nc->link);
net/ncsi/ncsi-manage.c
1636
!list_empty(&nc->link)) {
net/ncsi/ncsi-manage.c
1654
list_add_tail_rcu(&nc->link, &ndp->channel_queue);
net/ncsi/ncsi-manage.c
1855
chained = !list_empty(&nc->link);
net/ncsi/ncsi-manage.c
1912
list_for_each_entry_safe(nc, tmp, &ndp->channel_queue, link)
net/ncsi/ncsi-manage.c
1913
list_del_init(&nc->link);
net/ncsi/ncsi-manage.c
224
INIT_LIST_HEAD(&nc->link);
net/ncsi/ncsi-manage.c
69
if (!list_empty(&nc->link) ||
net/ncsi/ncsi-manage.c
877
list_for_each_entry_rcu(channel, &ndp->channel_queue, link) {
net/ncsi/ncsi-manage.c
889
list_for_each_entry_rcu(channel, &ndp->channel_queue, link)
net/netfilter/nf_bpf_link.c
103
static void bpf_nf_disable_defrag(struct bpf_nf_link *link)
net/netfilter/nf_bpf_link.c
105
const struct nf_defrag_hook *hook = link->defrag_hook;
net/netfilter/nf_bpf_link.c
109
hook->disable(link->net);
net/netfilter/nf_bpf_link.c
113
static void bpf_nf_link_release(struct bpf_link *link)
net/netfilter/nf_bpf_link.c
115
struct bpf_nf_link *nf_link = container_of(link, struct bpf_nf_link, link);
net/netfilter/nf_bpf_link.c
128
static void bpf_nf_link_dealloc(struct bpf_link *link)
net/netfilter/nf_bpf_link.c
130
struct bpf_nf_link *nf_link = container_of(link, struct bpf_nf_link, link);
net/netfilter/nf_bpf_link.c
135
static int bpf_nf_link_detach(struct bpf_link *link)
net/netfilter/nf_bpf_link.c
137
bpf_nf_link_release(link);
net/netfilter/nf_bpf_link.c
141
static void bpf_nf_link_show_info(const struct bpf_link *link,
net/netfilter/nf_bpf_link.c
144
struct bpf_nf_link *nf_link = container_of(link, struct bpf_nf_link, link);
net/netfilter/nf_bpf_link.c
151
static int bpf_nf_link_fill_link_info(const struct bpf_link *link,
net/netfilter/nf_bpf_link.c
154
struct bpf_nf_link *nf_link = container_of(link, struct bpf_nf_link, link);
net/netfilter/nf_bpf_link.c
165
static int bpf_nf_link_update(struct bpf_link *link, struct bpf_prog *new_prog,
net/netfilter/nf_bpf_link.c
214
struct bpf_nf_link *link;
net/netfilter/nf_bpf_link.c
224
link = kzalloc_obj(*link, GFP_USER);
net/netfilter/nf_bpf_link.c
225
if (!link)
net/netfilter/nf_bpf_link.c
228
bpf_link_init(&link->link, BPF_LINK_TYPE_NETFILTER, &bpf_nf_link_lops, prog,
net/netfilter/nf_bpf_link.c
231
link->hook_ops.hook = nf_hook_run_bpf;
net/netfilter/nf_bpf_link.c
232
link->hook_ops.hook_ops_type = NF_HOOK_OP_BPF;
net/netfilter/nf_bpf_link.c
233
link->hook_ops.priv = prog;
net/netfilter/nf_bpf_link.c
235
link->hook_ops.pf = attr->link_create.netfilter.pf;
net/netfilter/nf_bpf_link.c
236
link->hook_ops.priority = attr->link_create.netfilter.priority;
net/netfilter/nf_bpf_link.c
237
link->hook_ops.hooknum = attr->link_create.netfilter.hooknum;
net/netfilter/nf_bpf_link.c
239
link->net = net;
net/netfilter/nf_bpf_link.c
24
struct bpf_link link;
net/netfilter/nf_bpf_link.c
240
link->dead = false;
net/netfilter/nf_bpf_link.c
241
link->defrag_hook = NULL;
net/netfilter/nf_bpf_link.c
243
err = bpf_link_prime(&link->link, &link_primer);
net/netfilter/nf_bpf_link.c
245
kfree(link);
net/netfilter/nf_bpf_link.c
250
err = bpf_nf_enable_defrag(link);
net/netfilter/nf_bpf_link.c
257
err = nf_register_net_hook(net, &link->hook_ops);
net/netfilter/nf_bpf_link.c
259
bpf_nf_disable_defrag(link);
net/netfilter/nf_bpf_link.c
264
get_net_track(net, &link->ns_tracker, GFP_KERNEL);
net/netfilter/nf_bpf_link.c
34
get_proto_defrag_hook(struct bpf_nf_link *link,
net/netfilter/nf_bpf_link.c
64
err = hook->enable(link->net);
net/netfilter/nf_bpf_link.c
75
static int bpf_nf_enable_defrag(struct bpf_nf_link *link)
net/netfilter/nf_bpf_link.c
79
switch (link->hook_ops.pf) {
net/netfilter/nf_bpf_link.c
82
hook = get_proto_defrag_hook(link, &nf_defrag_v4_hook, "nf_defrag_ipv4");
net/netfilter/nf_bpf_link.c
86
link->defrag_hook = hook;
net/netfilter/nf_bpf_link.c
91
hook = get_proto_defrag_hook(link, &nf_defrag_v6_hook, "nf_defrag_ipv6");
net/netfilter/nf_bpf_link.c
95
link->defrag_hook = hook;
net/netlink/af_netlink.c
2614
int link;
net/netlink/af_netlink.c
2619
rhashtable_walk_enter(&nl_table[iter->link].hash, &iter->hti);
net/netlink/af_netlink.c
2649
if (++iter->link >= MAX_LINKS)
net/netlink/af_netlink.c
2666
iter->link = 0;
net/netlink/af_netlink.c
2686
if (iter->link >= MAX_LINKS)
net/rxrpc/ar-internal.h
335
struct hlist_node link;
net/rxrpc/ar-internal.h
558
struct list_head link; /* link in master connection list */
net/rxrpc/ar-internal.h
718
struct list_head link; /* link in master call list */
net/rxrpc/call_accept.c
142
list_add_tail_rcu(&call->link, &rxnet->calls);
net/rxrpc/call_accept.c
209
list_del(&conn->link);
net/rxrpc/call_object.c
142
INIT_LIST_HEAD(&call->link);
net/rxrpc/call_object.c
389
list_add_tail_rcu(&call->link, &rxnet->calls);
net/rxrpc/call_object.c
657
if (!list_empty(&call->link)) {
net/rxrpc/call_object.c
659
list_del_init(&call->link);
net/rxrpc/call_object.c
737
struct rxrpc_call, link);
net/rxrpc/call_object.c
741
list_del_init(&call->link);
net/rxrpc/conn_object.c
403
list_for_each_entry_safe(conn, _p, &rxnet->service_conns, link) {
net/rxrpc/conn_object.c
440
list_move_tail(&conn->link, &graveyard);
net/rxrpc/conn_object.c
452
link);
net/rxrpc/conn_object.c
453
list_del_init(&conn->link);
net/rxrpc/conn_object.c
480
list_for_each_entry_safe(conn, _p, &rxnet->service_conns, link) {
net/rxrpc/conn_object.c
69
INIT_LIST_HEAD(&conn->link);
net/rxrpc/conn_service.c
134
list_add_tail(&conn->link, &rxnet->service_conns);
net/rxrpc/local_object.c
121
INIT_HLIST_NODE(&local->link);
net/rxrpc/local_object.c
262
local = hlist_entry(cursor, struct rxrpc_local, link);
net/rxrpc/local_object.c
298
hlist_replace_rcu(cursor, &local->link);
net/rxrpc/local_object.c
301
hlist_add_head_rcu(&local->link, &rxnet->local_endpoints);
net/rxrpc/local_object.c
430
hlist_del_init_rcu(&local->link);
net/rxrpc/local_object.c
479
hlist_for_each_entry(local, &rxnet->local_endpoints, link) {
net/rxrpc/proc.c
413
local = hlist_entry(v, struct rxrpc_local, link);
net/rxrpc/proc.c
68
call = list_entry(v, struct rxrpc_call, link);
net/sched/bpf_qdisc.c
392
static int bpf_qdisc_reg(void *kdata, struct bpf_link *link)
net/sched/bpf_qdisc.c
397
static void bpf_qdisc_unreg(void *kdata, struct bpf_link *link)
net/sched/cls_basic.c
114
list_for_each_entry_safe(f, n, &head->flist, link) {
net/sched/cls_basic.c
115
list_del_rcu(&f->link);
net/sched/cls_basic.c
133
list_del_rcu(&f->link);
net/sched/cls_basic.c
233
list_replace_rcu(&fold->link, &fnew->link);
net/sched/cls_basic.c
238
list_add_rcu(&fnew->link, &head->flist);
net/sched/cls_basic.c
255
list_for_each_entry(f, &head->flist, link) {
net/sched/cls_basic.c
35
struct list_head link;
net/sched/cls_basic.c
48
list_for_each_entry_rcu(f, &head->flist, link) {
net/sched/cls_basic.c
67
list_for_each_entry(f, &head->flist, link) {
net/sched/cls_bpf.c
293
list_del_rcu(&prog->link);
net/sched/cls_bpf.c
317
list_for_each_entry_safe(prog, tmp, &head->plist, link)
net/sched/cls_bpf.c
329
list_for_each_entry(prog, &head->plist, link) {
net/sched/cls_bpf.c
40
struct list_head link;
net/sched/cls_bpf.c
514
list_replace_rcu(&oldprog->link, &prog->link);
net/sched/cls_bpf.c
519
list_add_rcu(&prog->link, &head->plist);
net/sched/cls_bpf.c
644
list_for_each_entry(prog, &head->plist, link) {
net/sched/cls_bpf.c
659
list_for_each_entry(prog, &head->plist, link) {
net/sched/cls_bpf.c
90
list_for_each_entry_rcu(prog, &head->plist, link) {
net/sched/em_canid.c
215
.link = LIST_HEAD_INIT(em_canid_ops.link)
net/sched/em_cmp.c
80
.link = LIST_HEAD_INIT(em_cmp_ops.link)
net/sched/em_ipset.c
114
.link = LIST_HEAD_INIT(em_ipset_ops.link)
net/sched/em_ipt.c
277
.link = LIST_HEAD_INIT(em_ipt_ops.link)
net/sched/em_meta.c
996
.link = LIST_HEAD_INIT(em_meta_ops.link)
net/sched/em_nbyte.c
60
.link = LIST_HEAD_INIT(em_nbyte_ops.link)
net/sched/em_text.c
144
.link = LIST_HEAD_INIT(em_text_ops.link)
net/sched/em_u32.c
42
.link = LIST_HEAD_INIT(em_u32_ops.link)
net/sched/ematch.c
131
list_for_each_entry(e, &ematch_ops, link)
net/sched/ematch.c
135
list_add_tail(&ops->link, &ematch_ops);
net/sched/ematch.c
157
list_del(&ops->link);
net/sched/ematch.c
97
list_for_each_entry(e, &ematch_ops, link) {
net/sctp/sm_statefuns.c
1249
struct sctp_transport *link;
net/sctp/sm_statefuns.c
1268
link = sctp_assoc_lookup_paddr(asoc, &from_addr);
net/sctp/sm_statefuns.c
1271
if (unlikely(!link)) {
net/sctp/sm_statefuns.c
1287
if (hbinfo->hb_nonce != link->hb_nonce)
net/sctp/sm_statefuns.c
1291
if (hbinfo->probe_size != link->pl.probe_size ||
net/sctp/sm_statefuns.c
1292
!sctp_transport_pl_enabled(link))
net/sctp/sm_statefuns.c
1295
if (sctp_transport_pl_recv(link))
net/sctp/sm_statefuns.c
1298
return sctp_sf_send_probe(net, ep, asoc, type, link, commands);
net/sctp/sm_statefuns.c
1301
max_interval = link->hbinterval + link->rto;
net/sctp/sm_statefuns.c
1307
"for transport:%p\n", __func__, link);
net/sctp/sm_statefuns.c
1318
sctp_add_cmd_sf(commands, SCTP_CMD_TRANSPORT_ON, SCTP_TRANSPORT(link));
net/smc/af_smc.c
1270
struct smc_link *link;
net/smc/af_smc.c
1296
link = smc->conn.lnk;
net/smc/af_smc.c
1299
link = NULL;
net/smc/af_smc.c
1309
link = l;
net/smc/af_smc.c
1313
if (!link) {
net/smc/af_smc.c
1317
smc_switch_link_and_count(&smc->conn, link);
net/smc/af_smc.c
1327
smc_link_save_peer_info(link, aclc, ini);
net/smc/af_smc.c
1329
if (smc_rmb_rtoken_handling(&smc->conn, link, aclc)) {
net/smc/af_smc.c
1337
if (smc_ib_ready_link(link)) {
net/smc/af_smc.c
1344
if (smcr_lgr_reg_sndbufs(link, smc->conn.sndbuf_desc)) {
net/smc/af_smc.c
1349
if (smcr_lgr_reg_rmbs(link, smc->conn.rmb_desc)) {
net/smc/af_smc.c
1358
smc_fill_gid_list(link->lgr, &ini->smcrv2.gidlist,
net/smc/af_smc.c
1359
link->smcibdev, link->gid);
net/smc/af_smc.c
1371
smc_llc_flow_initiate(link->lgr, SMC_LLC_FLOW_ADD_LINK);
net/smc/af_smc.c
1373
smc_llc_flow_stop(link->lgr, &link->lgr->llc_flow_lcl);
net/smc/af_smc.c
1875
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
1881
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
1886
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
1890
rc = smc_llc_send_confirm_link(link, SMC_LLC_REQ);
net/smc/af_smc.c
1895
qentry = smc_llc_wait(link->lgr, link, SMC_LLC_WAIT_TIME,
net/smc/af_smc.c
1906
smc_llc_flow_qentry_del(&link->lgr->llc_flow_lcl);
net/smc/af_smc.c
1913
smc_llc_link_active(link);
net/smc/af_smc.c
1914
smcr_lgr_set_type(link->lgr, SMC_LGR_SINGLE);
net/smc/af_smc.c
1916
if (link->lgr->max_links > 1) {
net/smc/af_smc.c
1917
down_write(&link->lgr->llc_conf_mutex);
net/smc/af_smc.c
1919
smc_llc_srv_add_link(link, NULL);
net/smc/af_smc.c
1920
up_write(&link->lgr->llc_conf_mutex);
net/smc/af_smc.c
2429
struct smc_link *link = new_smc->conn.lnk;
net/smc/af_smc.c
2433
smc_link_save_peer_info(link, cclc, ini);
net/smc/af_smc.c
2435
if (smc_rmb_rtoken_handling(&new_smc->conn, link, cclc))
net/smc/af_smc.c
2439
if (smc_ib_ready_link(link))
net/smc/af_smc.c
2442
smc_llc_flow_initiate(link->lgr, SMC_LLC_FLOW_ADD_LINK);
net/smc/af_smc.c
2444
smc_llc_flow_stop(link->lgr, &link->lgr->llc_flow_lcl);
net/smc/af_smc.c
544
static int smcr_lgr_reg_sndbufs(struct smc_link *link,
net/smc/af_smc.c
547
struct smc_link_group *lgr = link->lgr;
net/smc/af_smc.c
567
static int smcr_lgr_reg_rmbs(struct smc_link *link,
net/smc/af_smc.c
570
struct smc_link_group *lgr = link->lgr;
net/smc/af_smc.c
582
if (!rmb_desc->is_reg_mr[link->link_idx]) {
net/smc/af_smc.c
604
rc = smc_llc_do_confirm_rkey(link, rmb_desc);
net/smc/af_smc.c
618
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
627
qentry = smc_llc_wait(link->lgr, NULL, 2 * SMC_LLC_WAIT_TIME,
net/smc/af_smc.c
638
smc_llc_flow_qentry_del(&link->lgr->llc_flow_lcl);
net/smc/af_smc.c
642
rc = smc_ib_modify_qp_rts(link);
net/smc/af_smc.c
646
smc_wr_remember_qp_attr(link);
net/smc/af_smc.c
650
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
655
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
662
rc = smc_llc_send_confirm_link(link, SMC_LLC_RESP);
net/smc/af_smc.c
666
smc_llc_link_active(link);
net/smc/af_smc.c
667
smcr_lgr_set_type(link->lgr, SMC_LGR_SINGLE);
net/smc/af_smc.c
669
if (link->lgr->max_links > 1) {
net/smc/af_smc.c
671
qentry = smc_llc_wait(link->lgr, NULL, SMC_LLC_WAIT_TIME,
net/smc/af_smc.c
682
smc_llc_flow_qentry_clr(&link->lgr->llc_flow_lcl);
net/smc/af_smc.c
683
smc_llc_cli_add_link(link, qentry);
net/smc/af_smc.c
760
static void smc_link_save_peer_info(struct smc_link *link,
net/smc/af_smc.c
764
link->peer_qpn = ntoh24(clc->r0.qpn);
net/smc/af_smc.c
765
memcpy(link->peer_gid, ini->peer_gid, SMC_GID_SIZE);
net/smc/af_smc.c
766
memcpy(link->peer_mac, ini->peer_mac, sizeof(link->peer_mac));
net/smc/af_smc.c
767
link->peer_psn = ntoh24(clc->r0.psn);
net/smc/af_smc.c
768
link->peer_mtu = clc->r0.qp_mtu;
net/smc/smc_cdc.c
116
struct smc_link *link = conn->lnk;
net/smc/smc_cdc.c
129
rc = smc_wr_tx_send(link, (struct smc_wr_tx_pend_priv *)pend);
net/smc/smc_cdc.c
148
struct smc_link *link = conn->lnk;
net/smc/smc_cdc.c
167
rc = smc_wr_tx_send(link, (struct smc_wr_tx_pend_priv *)pend);
net/smc/smc_cdc.c
178
struct smc_link *link;
net/smc/smc_cdc.c
183
link = conn->lnk;
net/smc/smc_cdc.c
184
if (!smc_wr_tx_link_hold(link))
net/smc/smc_cdc.c
186
rc = smc_cdc_get_free_slot(conn, link, &wr_buf, NULL, &pend);
net/smc/smc_cdc.c
191
if (link != conn->lnk) {
net/smc/smc_cdc.c
194
smc_wr_tx_put_slot(link,
net/smc/smc_cdc.c
196
smc_wr_tx_link_put(link);
net/smc/smc_cdc.c
205
smc_wr_tx_link_put(link);
net/smc/smc_cdc.c
27
struct smc_link *link,
net/smc/smc_cdc.c
309
struct smc_link *link)
net/smc/smc_cdc.c
322
conn->lnk = link;
net/smc/smc_cdc.c
471
struct smc_link *link = (struct smc_link *)wc->qp->qp_context;
net/smc/smc_cdc.c
483
lgr = smc_get_lgr(link);
net/smc/smc_cdc.c
492
smc_cdc_msg_validate(smc, cdc, link);
net/smc/smc_cdc.c
74
struct smc_link *link,
net/smc/smc_cdc.c
81
rc = smc_wr_tx_get_free_slot(link, smc_cdc_tx_handler, wr_buf,
net/smc/smc_cdc.c
87
smc_wr_tx_put_slot(link,
net/smc/smc_cdc.h
290
struct smc_link *link,
net/smc/smc_clc.c
1100
struct smc_link *link = conn->lnk;
net/smc/smc_clc.c
1109
memcpy(&clc->r0.lcl.gid, link->gid, SMC_GID_SIZE);
net/smc/smc_clc.c
1110
memcpy(&clc->r0.lcl.mac, &link->smcibdev->mac[link->ibport - 1],
net/smc/smc_clc.c
1112
hton24(clc->r0.qpn, link->roce_qp->qp_num);
net/smc/smc_clc.c
1114
htonl(conn->rmb_desc->mr[link->link_idx]->rkey);
net/smc/smc_clc.c
1119
clc->r0.qp_mtu = link->path_mtu;
net/smc/smc_clc.c
1122
clc->r0.qp_mtu = min(link->path_mtu, link->peer_mtu);
net/smc/smc_clc.c
1129
(conn->rmb_desc->sgt[link->link_idx].sgl));
net/smc/smc_clc.c
1130
hton24(clc->r0.psn, link->psn_initial);
net/smc/smc_clc.c
1141
!link->lgr->uses_gateway;
net/smc/smc_core.c
103
struct rb_node **link, *parent = NULL;
net/smc/smc_core.c
106
link = &conn->lgr->conns_all.rb_node;
net/smc/smc_core.c
107
while (*link) {
net/smc/smc_core.c
108
struct smc_connection *cur = rb_entry(*link,
net/smc/smc_core.c
111
parent = *link;
net/smc/smc_core.c
113
link = &parent->rb_left;
net/smc/smc_core.c
115
link = &parent->rb_right;
net/smc/smc_core.c
118
rb_link_node(&conn->alert_node, parent, link);
net/smc/smc_core.c
1763
struct smc_link *link;
net/smc/smc_core.c
1776
link = smc_llc_usable_link(lgr);
net/smc/smc_core.c
1777
if (link)
net/smc/smc_core.c
1778
smc_llc_add_link_local(link);
net/smc/smc_core.c
1869
struct smc_link *link = container_of(work, struct smc_link,
net/smc/smc_core.c
1871
struct smc_link_group *lgr = link->lgr;
net/smc/smc_core.c
1877
smcr_link_down(link);
net/smc/smc_core.c
1881
smcr_link_put(link); /* smcr_link_hold by schedulers of link_down_work */
net/smc/smc_core.c
2217
int smcr_link_reg_buf(struct smc_link *link, struct smc_buf_desc *buf_desc)
net/smc/smc_core.c
2219
if (list_empty(&link->lgr->list))
net/smc/smc_core.c
2221
if (!buf_desc->is_reg_mr[link->link_idx]) {
net/smc/smc_core.c
2224
buf_desc->mr[link->link_idx]->iova =
net/smc/smc_core.c
2226
if (smc_wr_reg_send(link, buf_desc->mr[link->link_idx])) {
net/smc/smc_core.c
2230
buf_desc->is_reg_mr[link->link_idx] = true;
net/smc/smc_core.c
418
struct smc_link *link,
net/smc/smc_core.c
438
if (nla_put_u8(skb, SMC_NLA_LINK_ID, link->link_id))
net/smc/smc_core.c
440
if (nla_put_u32(skb, SMC_NLA_LINK_STATE, link->state))
net/smc/smc_core.c
443
atomic_read(&link->conn_cnt)))
net/smc/smc_core.c
445
if (nla_put_u8(skb, SMC_NLA_LINK_IB_PORT, link->ibport))
net/smc/smc_core.c
447
if (nla_put_u32(skb, SMC_NLA_LINK_NET_DEV, link->ndev_ifidx))
net/smc/smc_core.c
449
snprintf(smc_ibname, sizeof(smc_ibname), "%s", link->ibname);
net/smc/smc_core.c
452
memcpy(&link_uid, link->link_uid, sizeof(link_uid));
net/smc/smc_core.c
455
memcpy(&link_uid, link->peer_link_uid, sizeof(link_uid));
net/smc/smc_core.c
459
smc_gid_be16_convert(smc_gid_target, link->gid);
net/smc/smc_core.c
463
smc_gid_be16_convert(smc_gid_target, link->peer_gid);
net/smc/smc_core.c
779
static void smcr_copy_dev_info_to_link(struct smc_link *link)
net/smc/smc_core.c
781
struct smc_ib_device *smcibdev = link->smcibdev;
net/smc/smc_core.c
783
snprintf(link->ibname, sizeof(link->ibname), "%s",
net/smc/smc_core.c
785
link->ndev_ifidx = smcibdev->ndev_ifidx[link->ibport - 1];
net/smc/smc_core.h
586
int smc_rmb_rtoken_handling(struct smc_connection *conn, struct smc_link *link,
net/smc/smc_core.h
615
int smcr_link_reg_buf(struct smc_link *link, struct smc_buf_desc *rmb_desc);
net/smc/smc_core.h
625
static inline struct smc_link_group *smc_get_lgr(struct smc_link *link)
net/smc/smc_core.h
627
return link->lgr;
net/smc/smc_diag.c
149
struct smc_link *link = smc->conn.lnk;
net/smc/smc_diag.c
153
.lnk[0].ibport = link->ibport,
net/smc/smc_diag.c
154
.lnk[0].link_id = link->link_id,
net/smc/smc_diag.c
157
memcpy(linfo.lnk[0].ibname, link->smcibdev->ibdev->name,
net/smc/smc_diag.c
158
sizeof(link->smcibdev->ibdev->name));
net/smc/smc_diag.c
159
smc_gid_be16_convert(linfo.lnk[0].gid, link->gid);
net/smc/smc_diag.c
160
smc_gid_be16_convert(linfo.lnk[0].peer_gid, link->peer_gid);
net/smc/smc_hs_bpf.c
72
static int smc_bpf_hs_ctrl_reg(void *kdata, struct bpf_link *link)
net/smc/smc_hs_bpf.c
74
if (link)
net/smc/smc_hs_bpf.c
80
static void smc_bpf_hs_ctrl_unreg(void *kdata, struct bpf_link *link)
net/smc/smc_llc.c
1004
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
1012
smc_rtoken_set(lgr, link->link_idx, link_new->link_idx,
net/smc/smc_llc.c
1020
static void smc_llc_save_add_link_info(struct smc_link *link,
net/smc/smc_llc.c
1023
link->peer_qpn = ntoh24(add_llc->sender_qp_num);
net/smc/smc_llc.c
1024
memcpy(link->peer_gid, add_llc->sender_gid, SMC_GID_SIZE);
net/smc/smc_llc.c
1025
memcpy(link->peer_mac, add_llc->sender_mac, ETH_ALEN);
net/smc/smc_llc.c
1026
link->peer_psn = ntoh24(add_llc->initial_psn);
net/smc/smc_llc.c
1027
link->peer_mtu = add_llc->qp_mtu;
net/smc/smc_llc.c
1031
int smc_llc_cli_add_link(struct smc_link *link, struct smc_llc_qentry *qentry)
net/smc/smc_llc.c
1035
struct smc_link_group *lgr = smc_get_lgr(link);
net/smc/smc_llc.c
1060
smc_pnet_find_alt_roce(lgr, ini, link->smcibdev);
net/smc/smc_llc.c
1061
if (!memcmp(llc->sender_gid, link->peer_gid, SMC_GID_SIZE) &&
net/smc/smc_llc.c
1063
!memcmp(llc->sender_mac, link->peer_mac, ETH_ALEN))) {
net/smc/smc_llc.c
1070
ini->smcrv2.ib_dev_v2 = link->smcibdev;
net/smc/smc_llc.c
1071
ini->smcrv2.ib_port_v2 = link->ibport;
net/smc/smc_llc.c
1074
ini->ib_dev = link->smcibdev;
net/smc/smc_llc.c
1075
ini->ib_port = link->ibport;
net/smc/smc_llc.c
1096
rc = smc_llc_send_add_link(link,
net/smc/smc_llc.c
1102
u8 *llc_msg = smc_link_shared_v2_rxbuf(link) ?
net/smc/smc_llc.c
1104
smc_llc_save_add_link_rkeys(link, lnk_new, llc_msg);
net/smc/smc_llc.c
1106
rc = smc_llc_cli_rkey_exchange(link, lnk_new);
net/smc/smc_llc.c
1112
rc = smc_llc_cli_conf_link(link, ini, lnk_new, lgr_new_t);
net/smc/smc_llc.c
1126
static void smc_llc_send_request_add_link(struct smc_link *link)
net/smc/smc_llc.c
1134
if (!smc_wr_tx_link_hold(link))
net/smc/smc_llc.c
1136
if (link->lgr->type == SMC_LGR_SYMMETRIC ||
net/smc/smc_llc.c
1137
link->lgr->type == SMC_LGR_ASYMMETRIC_PEER)
net/smc/smc_llc.c
1140
smc_fill_gid_list(link->lgr, &gidlist, link->smcibdev, link->gid);
net/smc/smc_llc.c
1144
rc = smc_llc_add_pending_send_v2(link, &wr_buf, &pend);
net/smc/smc_llc.c
1155
smc_llc_init_msg_hdr(&llc->hd, link->lgr, len);
net/smc/smc_llc.c
1156
rc = smc_wr_tx_v2_send(link, pend, len);
net/smc/smc_llc.c
1159
link->lgr->llc_flow_lcl.type = SMC_LLC_FLOW_REQ_ADD_LINK;
net/smc/smc_llc.c
1161
smc_wr_tx_link_put(link);
net/smc/smc_llc.c
1165
static void smc_llc_cli_add_link_invite(struct smc_link *link,
net/smc/smc_llc.c
1168
struct smc_link_group *lgr = smc_get_lgr(link);
net/smc/smc_llc.c
1172
smc_llc_send_request_add_link(link);
net/smc/smc_llc.c
1188
smc_pnet_find_alt_roce(lgr, ini, link->smcibdev);
net/smc/smc_llc.c
1192
smc_llc_send_add_link(link, ini->ib_dev->mac[ini->ib_port - 1],
net/smc/smc_llc.c
1225
smc_llc_cli_add_link_invite(qentry->link, qentry);
net/smc/smc_llc.c
1227
smc_llc_cli_add_link(qentry->link, qentry);
net/smc/smc_llc.c
1322
static int smc_llc_srv_rkey_exchange(struct smc_link *link,
net/smc/smc_llc.c
1326
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
1338
smc_llc_add_link_cont(link, link_new, &num_rkeys_send,
net/smc/smc_llc.c
1340
qentry = smc_llc_wait(lgr, link, SMC_LLC_WAIT_TIME,
net/smc/smc_llc.c
1350
smc_rtoken_set(lgr, link->link_idx, link_new->link_idx,
net/smc/smc_llc.c
1363
static int smc_llc_srv_conf_link(struct smc_link *link,
net/smc/smc_llc.c
1367
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
1376
qentry = smc_llc_wait(lgr, link, SMC_LLC_WAIT_FIRST_TIME, 0);
net/smc/smc_llc.c
1380
smc_llc_send_delete_link(link, link_new->link_id, SMC_LLC_REQ,
net/smc/smc_llc.c
1400
smc_llc_init_msg_hdr(&qentry->msg.raw.hdr, qentry->link->lgr,
net/smc/smc_llc.c
1403
smc_llc_send_message(qentry->link, &qentry->msg);
net/smc/smc_llc.c
1406
int smc_llc_srv_add_link(struct smc_link *link,
net/smc/smc_llc.c
1410
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
1445
smc_pnet_find_alt_roce(lgr, ini, link->smcibdev);
net/smc/smc_llc.c
1448
ini->smcrv2.ib_dev_v2 = link->smcibdev;
net/smc/smc_llc.c
1449
ini->smcrv2.ib_port_v2 = link->ibport;
net/smc/smc_llc.c
1452
ini->ib_dev = link->smcibdev;
net/smc/smc_llc.c
1453
ini->ib_port = link->ibport;
net/smc/smc_llc.c
1470
rc = smc_llc_send_add_link(link,
net/smc/smc_llc.c
1477
qentry = smc_llc_wait(lgr, link, SMC_LLC_WAIT_TIME, SMC_LLC_ADD_LINK);
net/smc/smc_llc.c
1489
(!memcmp(add_llc->sender_gid, link->peer_gid, SMC_GID_SIZE) &&
net/smc/smc_llc.c
1491
!memcmp(add_llc->sender_mac, link->peer_mac, ETH_ALEN)))) {
net/smc/smc_llc.c
1504
u8 *llc_msg = smc_link_shared_v2_rxbuf(link) ?
net/smc/smc_llc.c
1506
smc_llc_save_add_link_rkeys(link, link_new, llc_msg);
net/smc/smc_llc.c
1508
rc = smc_llc_srv_rkey_exchange(link, link_new);
net/smc/smc_llc.c
1512
rc = smc_llc_srv_conf_link(link, link_new, lgr_new_t);
net/smc/smc_llc.c
1531
struct smc_link *link = lgr->llc_flow_lcl.qentry->link;
net/smc/smc_llc.c
1538
rc = smc_llc_srv_add_link(link, qentry);
net/smc/smc_llc.c
1548
void smc_llc_add_link_local(struct smc_link *link)
net/smc/smc_llc.c
1553
smc_llc_init_msg_hdr(&add_llc.hd, link->lgr, sizeof(add_llc));
net/smc/smc_llc.c
1555
smc_llc_enqueue(link, (union smc_llc_msg *)&add_llc);
net/smc/smc_llc.c
1582
void smc_llc_srv_delete_link_local(struct smc_link *link, u8 del_link_id)
net/smc/smc_llc.c
1587
smc_llc_init_msg_hdr(&del_llc.hd, link->lgr, sizeof(del_llc));
net/smc/smc_llc.c
1591
smc_llc_enqueue(link, (union smc_llc_msg *)&del_llc);
net/smc/smc_llc.c
1603
lnk = qentry->link;
net/smc/smc_llc.c
1682
lnk = qentry->link;
net/smc/smc_llc.c
1764
struct smc_link *link;
net/smc/smc_llc.c
1771
link = qentry->link;
net/smc/smc_llc.c
1777
rk_idx = smc_rtoken_add(link,
net/smc/smc_llc.c
1794
smc_llc_init_msg_hdr(&llc->hd, link->lgr, sizeof(*llc));
net/smc/smc_llc.c
1795
smc_llc_send_message(link, &qentry->msg);
net/smc/smc_llc.c
1804
struct smc_link *link;
net/smc/smc_llc.c
1810
link = qentry->link;
net/smc/smc_llc.c
1815
if (smc_link_shared_v2_rxbuf(link)) {
net/smc/smc_llc.c
1825
if (smc_rtoken_delete(link, llcv2->rkey[i]))
net/smc/smc_llc.c
1830
smc_llc_init_msg_hdr(&llc->hd, link->lgr, sizeof(*llc));
net/smc/smc_llc.c
1840
if (smc_rtoken_delete(link, llc->rkey[i]))
net/smc/smc_llc.c
1849
smc_llc_send_message(link, &qentry->msg);
net/smc/smc_llc.c
1878
struct smc_link *link = qentry->link;
net/smc/smc_llc.c
1879
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
1881
if (!smc_link_usable(link))
net/smc/smc_llc.c
1887
smc_llc_send_message(link, llc);
net/smc/smc_llc.c
1975
smc_llc_flow_stop(link->lgr, &lgr->llc_flow_lcl);
net/smc/smc_llc.c
2003
if (smc_link_usable(qentry->link))
net/smc/smc_llc.c
201
struct smc_link *link;
net/smc/smc_llc.c
2023
static void smc_llc_rx_response(struct smc_link *link,
net/smc/smc_llc.c
2026
enum smc_llc_flowtype flowtype = link->lgr->llc_flow_lcl.type;
net/smc/smc_llc.c
2027
struct smc_llc_flow *flow = &link->lgr->llc_flow_lcl;
net/smc/smc_llc.c
2032
if (smc_link_active(link))
net/smc/smc_llc.c
2033
complete(&link->llc_testlink_resp);
net/smc/smc_llc.c
205
static void smc_llc_enqueue(struct smc_link *link, union smc_llc_msg *llc);
net/smc/smc_llc.c
2054
smc_llc_protocol_violation(link->lgr,
net/smc/smc_llc.c
2062
smc_llc_flow_qentry_set(&link->lgr->llc_flow_lcl, qentry);
net/smc/smc_llc.c
2063
wake_up(&link->lgr->llc_msg_waiter);
net/smc/smc_llc.c
2066
static void smc_llc_enqueue(struct smc_link *link, union smc_llc_msg *llc)
net/smc/smc_llc.c
2068
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
2075
qentry->link = link;
net/smc/smc_llc.c
2082
smc_llc_rx_response(link, qentry);
net/smc/smc_llc.c
2096
struct smc_link *link = (struct smc_link *)wc->qp->qp_context;
net/smc/smc_llc.c
2109
smc_llc_enqueue(link, llc);
net/smc/smc_llc.c
2116
struct smc_link *link = container_of(to_delayed_work(work),
net/smc/smc_llc.c
2123
if (!smc_link_active(link))
net/smc/smc_llc.c
2125
expire_time = link->wr_rx_tstamp + link->llc_testlink_time;
net/smc/smc_llc.c
2130
reinit_completion(&link->llc_testlink_resp);
net/smc/smc_llc.c
2131
smc_llc_send_test_link(link, user_data);
net/smc/smc_llc.c
2133
rc = wait_for_completion_interruptible_timeout(&link->llc_testlink_resp,
net/smc/smc_llc.c
2135
if (!smc_link_active(link))
net/smc/smc_llc.c
2138
smcr_link_down_cond_sched(link);
net/smc/smc_llc.c
2141
next_interval = link->llc_testlink_time;
net/smc/smc_llc.c
2143
schedule_delayed_work(&link->llc_testlink_wrk, next_interval);
net/smc/smc_llc.c
2179
int smc_llc_link_init(struct smc_link *link)
net/smc/smc_llc.c
2181
init_completion(&link->llc_testlink_resp);
net/smc/smc_llc.c
2182
INIT_DELAYED_WORK(&link->llc_testlink_wrk, smc_llc_testlink_work);
net/smc/smc_llc.c
2186
void smc_llc_link_active(struct smc_link *link)
net/smc/smc_llc.c
2190
SMC_LGR_ID_SIZE, &link->lgr->id,
net/smc/smc_llc.c
2191
link->lgr->net->net_cookie,
net/smc/smc_llc.c
2192
SMC_LGR_ID_SIZE, &link->link_uid,
net/smc/smc_llc.c
2193
SMC_LGR_ID_SIZE, &link->peer_link_uid,
net/smc/smc_llc.c
2194
link->smcibdev->ibdev->name, link->ibport);
net/smc/smc_llc.c
2195
link->state = SMC_LNK_ACTIVE;
net/smc/smc_llc.c
2196
if (link->lgr->llc_testlink_time) {
net/smc/smc_llc.c
2197
link->llc_testlink_time = link->lgr->llc_testlink_time;
net/smc/smc_llc.c
2198
schedule_delayed_work(&link->llc_testlink_wrk,
net/smc/smc_llc.c
2199
link->llc_testlink_time);
net/smc/smc_llc.c
2204
void smc_llc_link_clear(struct smc_link *link, bool log)
net/smc/smc_llc.c
2209
SMC_LGR_ID_SIZE, &link->lgr->id,
net/smc/smc_llc.c
2210
link->lgr->net->net_cookie,
net/smc/smc_llc.c
2211
SMC_LGR_ID_SIZE, &link->link_uid,
net/smc/smc_llc.c
2212
SMC_LGR_ID_SIZE, &link->peer_link_uid,
net/smc/smc_llc.c
2213
link->smcibdev->ibdev->name, link->ibport);
net/smc/smc_llc.c
2214
complete(&link->llc_testlink_resp);
net/smc/smc_llc.c
2215
cancel_delayed_work_sync(&link->llc_testlink_wrk);
net/smc/smc_llc.c
2267
void smc_llc_link_set_uid(struct smc_link *link)
net/smc/smc_llc.c
2271
link_uid = htonl(*((u32 *)link->lgr->id) + link->link_id);
net/smc/smc_llc.c
2272
memcpy(link->link_uid, &link_uid, SMC_LGR_ID_SIZE);
net/smc/smc_llc.c
2278
memcpy(qentry->link->peer_link_uid, qentry->msg.confirm_link.link_uid,
net/smc/smc_llc.c
2287
qentry->link->link_id = qentry->msg.confirm_link.link_num;
net/smc/smc_llc.c
2288
smc_llc_link_set_uid(qentry->link);
net/smc/smc_llc.c
257
struct smc_link_group *lgr = qentry->link->lgr;
net/smc/smc_llc.c
381
struct smc_link *link,
net/smc/smc_llc.c
400
static int smc_llc_add_pending_send(struct smc_link *link,
net/smc/smc_llc.c
406
rc = smc_wr_tx_get_free_slot(link, smc_llc_tx_handler, wr_buf, NULL,
net/smc/smc_llc.c
422
static int smc_llc_add_pending_send_v2(struct smc_link *link,
net/smc/smc_llc.c
428
rc = smc_wr_tx_get_v2_slot(link, smc_llc_tx_handler, wr_buf, pend);
net/smc/smc_llc.c
447
int smc_llc_send_confirm_link(struct smc_link *link,
net/smc/smc_llc.c
455
if (!smc_wr_tx_link_hold(link))
net/smc/smc_llc.c
457
rc = smc_llc_add_pending_send(link, &wr_buf, &pend);
net/smc/smc_llc.c
463
smc_llc_init_msg_hdr(&confllc->hd, link->lgr, sizeof(*confllc));
net/smc/smc_llc.c
467
memcpy(confllc->sender_mac, link->smcibdev->mac[link->ibport - 1],
net/smc/smc_llc.c
469
memcpy(confllc->sender_gid, link->gid, SMC_GID_SIZE);
net/smc/smc_llc.c
470
hton24(confllc->sender_qp_num, link->roce_qp->qp_num);
net/smc/smc_llc.c
471
confllc->link_num = link->link_id;
net/smc/smc_llc.c
472
memcpy(confllc->link_uid, link->link_uid, SMC_LGR_ID_SIZE);
net/smc/smc_llc.c
474
if (link->lgr->smc_version == SMC_V2 &&
net/smc/smc_llc.c
475
link->lgr->peer_smc_release >= SMC_RELEASE_1) {
net/smc/smc_llc.c
476
confllc->max_conns = link->lgr->max_conns;
net/smc/smc_llc.c
477
confllc->max_links = link->lgr->max_links;
net/smc/smc_llc.c
480
rc = smc_wr_tx_send(link, pend);
net/smc/smc_llc.c
482
smc_wr_tx_link_put(link);
net/smc/smc_llc.c
493
struct smc_link *link;
net/smc/smc_llc.c
508
link = &send_link->lgr->lnk[i];
net/smc/smc_llc.c
509
if (smc_link_active(link) && link != send_link) {
net/smc/smc_llc.c
510
rkeyllc->rtoken[rtok_ix].link_id = link->link_id;
net/smc/smc_llc.c
512
htonl(rmb_desc->mr[link->link_idx]->rkey);
net/smc/smc_llc.c
516
(rmb_desc->sgt[link->link_idx].sgl));
net/smc/smc_llc.c
536
static int smc_llc_send_delete_rkey(struct smc_link *link,
net/smc/smc_llc.c
544
if (!smc_wr_tx_link_hold(link))
net/smc/smc_llc.c
546
rc = smc_llc_add_pending_send(link, &wr_buf, &pend);
net/smc/smc_llc.c
552
smc_llc_init_msg_hdr(&rkeyllc->hd, link->lgr, sizeof(*rkeyllc));
net/smc/smc_llc.c
554
rkeyllc->rkey[0] = htonl(rmb_desc->mr[link->link_idx]->rkey);
net/smc/smc_llc.c
556
rc = smc_wr_tx_send(link, pend);
net/smc/smc_llc.c
558
smc_wr_tx_link_put(link);
net/smc/smc_llc.c
604
struct smc_link *link, struct smc_link *link_new)
net/smc/smc_llc.c
606
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
616
prim_lnk_idx = link->link_idx;
net/smc/smc_llc.c
643
int smc_llc_send_add_link(struct smc_link *link, u8 mac[], u8 gid[],
net/smc/smc_llc.c
653
if (!smc_wr_tx_link_hold(link))
net/smc/smc_llc.c
655
if (link->lgr->smc_version == SMC_V2) {
net/smc/smc_llc.c
658
rc = smc_llc_add_pending_send_v2(link, &wr_buf, &pend);
net/smc/smc_llc.c
668
rc = smc_llc_add_pending_send(link, &wr_buf, &pend);
net/smc/smc_llc.c
691
len += smc_llc_fill_ext_v2(ext, link, link_new);
net/smc/smc_llc.c
692
smc_llc_init_msg_hdr(&addllc->hd, link->lgr, len);
net/smc/smc_llc.c
694
if (link->lgr->smc_version == SMC_V2)
net/smc/smc_llc.c
695
rc = smc_wr_tx_v2_send(link, pend, len);
net/smc/smc_llc.c
697
rc = smc_wr_tx_send(link, pend);
net/smc/smc_llc.c
699
smc_wr_tx_link_put(link);
net/smc/smc_llc.c
704
int smc_llc_send_delete_link(struct smc_link *link, u8 link_del_id,
net/smc/smc_llc.c
713
if (!smc_wr_tx_link_hold(link))
net/smc/smc_llc.c
715
rc = smc_llc_add_pending_send(link, &wr_buf, &pend);
net/smc/smc_llc.c
722
smc_llc_init_msg_hdr(&delllc->hd, link->lgr, sizeof(*delllc));
net/smc/smc_llc.c
733
rc = smc_wr_tx_send(link, pend);
net/smc/smc_llc.c
735
smc_wr_tx_link_put(link);
net/smc/smc_llc.c
740
static int smc_llc_send_test_link(struct smc_link *link, u8 user_data[16])
net/smc/smc_llc.c
747
if (!smc_wr_tx_link_hold(link))
net/smc/smc_llc.c
749
rc = smc_llc_add_pending_send(link, &wr_buf, &pend);
net/smc/smc_llc.c
755
smc_llc_init_msg_hdr(&testllc->hd, link->lgr, sizeof(*testllc));
net/smc/smc_llc.c
758
rc = smc_wr_tx_send(link, pend);
net/smc/smc_llc.c
760
smc_wr_tx_link_put(link);
net/smc/smc_llc.c
765
static int smc_llc_send_message(struct smc_link *link, void *llcbuf)
net/smc/smc_llc.c
771
if (!smc_wr_tx_link_hold(link))
net/smc/smc_llc.c
773
rc = smc_llc_add_pending_send(link, &wr_buf, &pend);
net/smc/smc_llc.c
777
rc = smc_wr_tx_send(link, pend);
net/smc/smc_llc.c
779
smc_wr_tx_link_put(link);
net/smc/smc_llc.c
787
static int smc_llc_send_message_wait(struct smc_link *link, void *llcbuf)
net/smc/smc_llc.c
793
if (!smc_wr_tx_link_hold(link))
net/smc/smc_llc.c
795
rc = smc_llc_add_pending_send(link, &wr_buf, &pend);
net/smc/smc_llc.c
799
rc = smc_wr_tx_send_wait(link, pend, SMC_LLC_WAIT_TIME);
net/smc/smc_llc.c
801
smc_wr_tx_link_put(link);
net/smc/smc_llc.c
832
static int smc_llc_add_link_cont(struct smc_link *link,
net/smc/smc_llc.c
837
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
844
if (!smc_wr_tx_link_hold(link))
net/smc/smc_llc.c
846
rc = smc_llc_add_pending_send(link, &wr_buf, &pend);
net/smc/smc_llc.c
852
prim_lnk_idx = link->link_idx;
net/smc/smc_llc.c
881
rc = smc_wr_tx_send(link, pend);
net/smc/smc_llc.c
883
smc_wr_tx_link_put(link);
net/smc/smc_llc.c
887
static int smc_llc_cli_rkey_exchange(struct smc_link *link,
net/smc/smc_llc.c
891
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
913
smc_rtoken_set(lgr, link->link_idx, link_new->link_idx,
net/smc/smc_llc.c
920
rc = smc_llc_add_link_cont(link, link_new, &num_rkeys_send,
net/smc/smc_llc.c
936
smc_llc_init_msg_hdr(&qentry->msg.raw.hdr, qentry->link->lgr,
net/smc/smc_llc.c
938
return smc_llc_send_message(qentry->link, &qentry->msg);
net/smc/smc_llc.c
941
static int smc_llc_cli_conf_link(struct smc_link *link,
net/smc/smc_llc.c
946
struct smc_link_group *lgr = link->lgr;
net/smc/smc_llc.c
953
rc = smc_llc_send_delete_link(link, link_new->link_id,
net/smc/smc_llc.c
961
smc_llc_send_message(link, &qentry->msg);
net/smc/smc_llc.c
970
smc_llc_send_delete_link(link, link_new->link_id, SMC_LLC_REQ,
net/smc/smc_llc.c
978
smc_llc_send_delete_link(link, link_new->link_id, SMC_LLC_REQ,
net/smc/smc_llc.c
986
smc_llc_send_delete_link(link, link_new->link_id, SMC_LLC_REQ,
net/smc/smc_llc.c
999
static void smc_llc_save_add_link_rkeys(struct smc_link *link,
net/smc/smc_llc.h
105
void smc_llc_link_set_uid(struct smc_link *link);
net/smc/smc_llc.h
114
int smc_llc_cli_add_link(struct smc_link *link, struct smc_llc_qentry *qentry);
net/smc/smc_llc.h
115
int smc_llc_srv_add_link(struct smc_link *link,
net/smc/smc_llc.h
117
void smc_llc_add_link_local(struct smc_link *link);
net/smc/smc_llc.h
84
int smc_llc_send_add_link(struct smc_link *link, u8 mac[], u8 gid[],
net/smc/smc_llc.h
87
int smc_llc_send_delete_link(struct smc_link *link, u8 link_del_id,
net/smc/smc_llc.h
90
void smc_llc_srv_delete_link_local(struct smc_link *link, u8 del_link_id);
net/smc/smc_llc.h
93
int smc_llc_link_init(struct smc_link *link);
net/smc/smc_llc.h
94
void smc_llc_link_active(struct smc_link *link);
net/smc/smc_llc.h
95
void smc_llc_link_clear(struct smc_link *link, bool log);
net/smc/smc_tx.c
321
struct smc_link *link = conn->lnk;
net/smc/smc_tx.c
324
rdma_wr->wr.wr_id = smc_wr_tx_get_next_wr_id(link);
net/smc/smc_tx.c
327
lgr->rtokens[conn->rtoken_idx][link->link_idx].dma_addr +
net/smc/smc_tx.c
332
rdma_wr->rkey = lgr->rtokens[conn->rtoken_idx][link->link_idx].rkey;
net/smc/smc_tx.c
333
rc = ib_post_send(link->roce_qp, &rdma_wr->wr, NULL);
net/smc/smc_tx.c
335
smcr_link_down_cond_sched(link);
net/smc/smc_tx.c
361
struct smc_link *link = conn->lnk;
net/smc/smc_tx.c
364
sg_dma_address(conn->sndbuf_desc->sgt[link->link_idx].sgl);
net/smc/smc_tx.c
377
if (dst_len < link->qp_attr.cap.max_inline_data) {
net/smc/smc_tx.c
391
conn->sndbuf_desc->mr[link->link_idx]->lkey;
net/smc/smc_tx.c
553
struct smc_link *link = conn->lnk;
net/smc/smc_tx.c
559
if (!link || !smc_wr_tx_link_hold(link))
net/smc/smc_tx.c
561
rc = smc_cdc_get_free_slot(conn, link, &wr_buf, &wr_rdma_buf, &pend);
net/smc/smc_tx.c
563
smc_wr_tx_link_put(link);
net/smc/smc_tx.c
580
if (link != conn->lnk) {
net/smc/smc_tx.c
582
smc_wr_tx_put_slot(link,
net/smc/smc_tx.c
590
smc_wr_tx_put_slot(link,
net/smc/smc_tx.c
604
smc_wr_tx_link_put(link);
net/smc/smc_wr.c
100
memcpy(&pnd_snd, link->wr_tx_v2_pend, sizeof(pnd_snd));
net/smc/smc_wr.c
102
memset(link->wr_tx_v2_pend, 0,
net/smc/smc_wr.c
103
sizeof(*link->wr_tx_v2_pend));
net/smc/smc_wr.c
104
memset(link->lgr->wr_tx_buf_v2, 0,
net/smc/smc_wr.c
105
sizeof(*link->lgr->wr_tx_buf_v2));
net/smc/smc_wr.c
107
link->wr_tx_pends[pnd_snd_idx].wc_status = wc->status;
net/smc/smc_wr.c
108
if (link->wr_tx_pends[pnd_snd_idx].compl_requested)
net/smc/smc_wr.c
109
complete(&link->wr_tx_compl[pnd_snd_idx]);
net/smc/smc_wr.c
110
memcpy(&pnd_snd, &link->wr_tx_pends[pnd_snd_idx],
net/smc/smc_wr.c
113
memset(&link->wr_tx_pends[pnd_snd_idx], 0,
net/smc/smc_wr.c
114
sizeof(link->wr_tx_pends[pnd_snd_idx]));
net/smc/smc_wr.c
115
memset(&link->wr_tx_bufs[pnd_snd_idx], 0,
net/smc/smc_wr.c
116
sizeof(link->wr_tx_bufs[pnd_snd_idx]));
net/smc/smc_wr.c
117
if (!test_and_clear_bit(pnd_snd_idx, link->wr_tx_mask))
net/smc/smc_wr.c
122
if (link->lgr->smc_version == SMC_V2) {
net/smc/smc_wr.c
123
memset(link->wr_tx_v2_pend, 0,
net/smc/smc_wr.c
124
sizeof(*link->wr_tx_v2_pend));
net/smc/smc_wr.c
125
memset(link->lgr->wr_tx_buf_v2, 0,
net/smc/smc_wr.c
126
sizeof(*link->lgr->wr_tx_buf_v2));
net/smc/smc_wr.c
129
smcr_link_down_cond_sched(link);
net/smc/smc_wr.c
132
pnd_snd.handler(&pnd_snd.priv, link, wc->status);
net/smc/smc_wr.c
133
wake_up(&link->wr_tx_wait);
net/smc/smc_wr.c
171
static inline int smc_wr_tx_get_free_slot_index(struct smc_link *link, u32 *idx)
net/smc/smc_wr.c
173
*idx = link->wr_tx_cnt;
net/smc/smc_wr.c
174
if (!smc_link_sendable(link))
net/smc/smc_wr.c
176
for_each_clear_bit(*idx, link->wr_tx_mask, link->wr_tx_cnt) {
net/smc/smc_wr.c
177
if (!test_and_set_bit(*idx, link->wr_tx_mask))
net/smc/smc_wr.c
180
*idx = link->wr_tx_cnt;
net/smc/smc_wr.c
195
int smc_wr_tx_get_free_slot(struct smc_link *link,
net/smc/smc_wr.c
201
struct smc_link_group *lgr = smc_get_lgr(link);
net/smc/smc_wr.c
203
u32 idx = link->wr_tx_cnt;
net/smc/smc_wr.c
211
rc = smc_wr_tx_get_free_slot_index(link, &idx);
net/smc/smc_wr.c
216
link->wr_tx_wait,
net/smc/smc_wr.c
217
!smc_link_sendable(link) ||
net/smc/smc_wr.c
219
(smc_wr_tx_get_free_slot_index(link, &idx) != -EBUSY),
net/smc/smc_wr.c
223
smcr_link_down_cond_sched(link);
net/smc/smc_wr.c
226
if (idx == link->wr_tx_cnt)
net/smc/smc_wr.c
229
wr_id = smc_wr_tx_get_next_wr_id(link);
net/smc/smc_wr.c
230
wr_pend = &link->wr_tx_pends[idx];
net/smc/smc_wr.c
233
wr_pend->link = link;
net/smc/smc_wr.c
235
wr_ib = &link->wr_tx_ibs[idx];
net/smc/smc_wr.c
237
*wr_buf = &link->wr_tx_bufs[idx];
net/smc/smc_wr.c
239
*wr_rdma_buf = &link->wr_tx_rdmas[idx];
net/smc/smc_wr.c
244
int smc_wr_tx_get_v2_slot(struct smc_link *link,
net/smc/smc_wr.c
253
if (link->wr_tx_v2_pend->idx == link->wr_tx_cnt)
net/smc/smc_wr.c
258
wr_id = smc_wr_tx_get_next_wr_id(link);
net/smc/smc_wr.c
259
wr_pend = link->wr_tx_v2_pend;
net/smc/smc_wr.c
262
wr_pend->link = link;
net/smc/smc_wr.c
263
wr_pend->idx = link->wr_tx_cnt;
net/smc/smc_wr.c
264
wr_ib = link->wr_tx_v2_ib;
net/smc/smc_wr.c
266
*wr_buf = link->lgr->wr_tx_buf_v2;
net/smc/smc_wr.c
271
int smc_wr_tx_put_slot(struct smc_link *link,
net/smc/smc_wr.c
277
if (pend->idx < link->wr_tx_cnt) {
net/smc/smc_wr.c
281
memset(&link->wr_tx_pends[idx], 0,
net/smc/smc_wr.c
282
sizeof(link->wr_tx_pends[idx]));
net/smc/smc_wr.c
283
memset(&link->wr_tx_bufs[idx], 0,
net/smc/smc_wr.c
284
sizeof(link->wr_tx_bufs[idx]));
net/smc/smc_wr.c
285
test_and_clear_bit(idx, link->wr_tx_mask);
net/smc/smc_wr.c
286
wake_up(&link->wr_tx_wait);
net/smc/smc_wr.c
288
} else if (link->lgr->smc_version == SMC_V2 &&
net/smc/smc_wr.c
289
pend->idx == link->wr_tx_cnt) {
net/smc/smc_wr.c
291
memset(&link->wr_tx_v2_pend, 0,
net/smc/smc_wr.c
292
sizeof(link->wr_tx_v2_pend));
net/smc/smc_wr.c
293
memset(&link->lgr->wr_tx_buf_v2, 0,
net/smc/smc_wr.c
294
sizeof(link->lgr->wr_tx_buf_v2));
net/smc/smc_wr.c
304
int smc_wr_tx_send(struct smc_link *link, struct smc_wr_tx_pend_priv *priv)
net/smc/smc_wr.c
309
ib_req_notify_cq(link->smcibdev->roce_cq_send,
net/smc/smc_wr.c
312
rc = ib_post_send(link->roce_qp, &link->wr_tx_ibs[pend->idx], NULL);
net/smc/smc_wr.c
314
smc_wr_tx_put_slot(link, priv);
net/smc/smc_wr.c
315
smcr_link_down_cond_sched(link);
net/smc/smc_wr.c
320
int smc_wr_tx_v2_send(struct smc_link *link, struct smc_wr_tx_pend_priv *priv,
net/smc/smc_wr.c
325
link->wr_tx_v2_ib->sg_list[0].length = len;
net/smc/smc_wr.c
326
ib_req_notify_cq(link->smcibdev->roce_cq_send,
net/smc/smc_wr.c
328
rc = ib_post_send(link->roce_qp, link->wr_tx_v2_ib, NULL);
net/smc/smc_wr.c
330
smc_wr_tx_put_slot(link, priv);
net/smc/smc_wr.c
331
smcr_link_down_cond_sched(link);
net/smc/smc_wr.c
340
int smc_wr_tx_send_wait(struct smc_link *link, struct smc_wr_tx_pend_priv *priv,
net/smc/smc_wr.c
350
init_completion(&link->wr_tx_compl[pnd_idx]);
net/smc/smc_wr.c
352
rc = smc_wr_tx_send(link, priv);
net/smc/smc_wr.c
357
&link->wr_tx_compl[pnd_idx], timeout);
net/smc/smc_wr.c
366
int smc_wr_reg_send(struct smc_link *link, struct ib_mr *mr)
net/smc/smc_wr.c
370
ib_req_notify_cq(link->smcibdev->roce_cq_send,
net/smc/smc_wr.c
372
link->wr_reg_state = POSTED;
net/smc/smc_wr.c
373
link->wr_reg.wr.wr_id = (u64)(uintptr_t)mr;
net/smc/smc_wr.c
374
link->wr_reg.mr = mr;
net/smc/smc_wr.c
375
link->wr_reg.key = mr->rkey;
net/smc/smc_wr.c
376
rc = ib_post_send(link->roce_qp, &link->wr_reg.wr, NULL);
net/smc/smc_wr.c
380
percpu_ref_get(&link->wr_reg_refs);
net/smc/smc_wr.c
381
rc = wait_event_interruptible_timeout(link->wr_reg_wait,
net/smc/smc_wr.c
382
(link->wr_reg_state != POSTED),
net/smc/smc_wr.c
384
percpu_ref_put(&link->wr_reg_refs);
net/smc/smc_wr.c
387
smcr_link_down_cond_sched(link);
net/smc/smc_wr.c
392
switch (link->wr_reg_state) {
net/smc/smc_wr.c
432
struct smc_link *link = (struct smc_link *)wc->qp->qp_context;
net/smc/smc_wr.c
44
struct smc_link *link;
net/smc/smc_wr.c
441
index = do_div(temp_wr_id, link->wr_rx_cnt);
net/smc/smc_wr.c
442
wr_rx = (struct smc_wr_rx_hdr *)(link->wr_rx_bufs + index * link->wr_rx_buflen);
net/smc/smc_wr.c
451
struct smc_link *link;
net/smc/smc_wr.c
455
link = wc[i].qp->qp_context;
net/smc/smc_wr.c
456
link->wr_rx_id_compl = wc[i].wr_id;
net/smc/smc_wr.c
458
link->wr_rx_tstamp = jiffies;
net/smc/smc_wr.c
460
smc_wr_rx_post(link); /* refill WR RX */
net/smc/smc_wr.c
467
smcr_link_down_cond_sched(link);
net/smc/smc_wr.c
468
if (link->wr_rx_id_compl == link->wr_rx_id)
net/smc/smc_wr.c
469
wake_up(&link->wr_rx_empty_wait);
net/smc/smc_wr.c
472
smc_wr_rx_post(link); /* refill WR RX */
net/smc/smc_wr.c
511
int smc_wr_rx_post_init(struct smc_link *link)
net/smc/smc_wr.c
516
for (i = 0; i < link->wr_rx_cnt; i++)
net/smc/smc_wr.c
517
rc = smc_wr_rx_post(link);
net/smc/smc_wr.c
55
static inline bool smc_wr_is_tx_pend(struct smc_link *link)
net/smc/smc_wr.c
57
return !bitmap_empty(link->wr_tx_mask, link->wr_tx_cnt);
net/smc/smc_wr.c
61
void smc_wr_tx_wait_no_pending_sends(struct smc_link *link)
net/smc/smc_wr.c
63
wait_event(link->wr_tx_wait, !smc_wr_is_tx_pend(link));
net/smc/smc_wr.c
66
static inline int smc_wr_tx_find_pending_index(struct smc_link *link, u64 wr_id)
net/smc/smc_wr.c
70
for (i = 0; i < link->wr_tx_cnt; i++) {
net/smc/smc_wr.c
71
if (link->wr_tx_pends[i].wr_id == wr_id)
net/smc/smc_wr.c
74
return link->wr_tx_cnt;
net/smc/smc_wr.c
741
int smc_wr_alloc_link_mem(struct smc_link *link)
net/smc/smc_wr.c
744
link->wr_tx_bufs = kcalloc(link->max_send_wr,
net/smc/smc_wr.c
746
if (!link->wr_tx_bufs)
net/smc/smc_wr.c
748
link->wr_rx_bufs = kcalloc(link->max_recv_wr, link->wr_rx_buflen,
net/smc/smc_wr.c
750
if (!link->wr_rx_bufs)
net/smc/smc_wr.c
752
link->wr_tx_ibs = kzalloc_objs(link->wr_tx_ibs[0], link->max_send_wr);
net/smc/smc_wr.c
753
if (!link->wr_tx_ibs)
net/smc/smc_wr.c
755
link->wr_rx_ibs = kzalloc_objs(link->wr_rx_ibs[0], link->max_recv_wr);
net/smc/smc_wr.c
756
if (!link->wr_rx_ibs)
net/smc/smc_wr.c
758
link->wr_tx_rdmas = kzalloc_objs(link->wr_tx_rdmas[0],
net/smc/smc_wr.c
759
link->max_send_wr);
net/smc/smc_wr.c
760
if (!link->wr_tx_rdmas)
net/smc/smc_wr.c
762
link->wr_tx_rdma_sges = kzalloc_objs(link->wr_tx_rdma_sges[0],
net/smc/smc_wr.c
763
link->max_send_wr);
net/smc/smc_wr.c
764
if (!link->wr_tx_rdma_sges)
net/smc/smc_wr.c
766
link->wr_tx_sges = kzalloc_objs(link->wr_tx_sges[0], link->max_send_wr);
net/smc/smc_wr.c
767
if (!link->wr_tx_sges)
net/smc/smc_wr.c
769
link->wr_rx_sges = kcalloc(link->max_recv_wr,
net/smc/smc_wr.c
770
sizeof(link->wr_rx_sges[0]) * link->wr_rx_sge_cnt,
net/smc/smc_wr.c
772
if (!link->wr_rx_sges)
net/smc/smc_wr.c
774
link->wr_tx_mask = bitmap_zalloc(link->max_send_wr, GFP_KERNEL);
net/smc/smc_wr.c
775
if (!link->wr_tx_mask)
net/smc/smc_wr.c
777
link->wr_tx_pends = kzalloc_objs(link->wr_tx_pends[0],
net/smc/smc_wr.c
778
link->max_send_wr);
net/smc/smc_wr.c
779
if (!link->wr_tx_pends)
net/smc/smc_wr.c
781
link->wr_tx_compl = kzalloc_objs(link->wr_tx_compl[0],
net/smc/smc_wr.c
782
link->max_send_wr);
net/smc/smc_wr.c
783
if (!link->wr_tx_compl)
net/smc/smc_wr.c
786
if (link->lgr->smc_version == SMC_V2) {
net/smc/smc_wr.c
787
link->wr_tx_v2_ib = kzalloc_obj(*link->wr_tx_v2_ib);
net/smc/smc_wr.c
788
if (!link->wr_tx_v2_ib)
net/smc/smc_wr.c
790
link->wr_tx_v2_sge = kzalloc_obj(*link->wr_tx_v2_sge);
net/smc/smc_wr.c
791
if (!link->wr_tx_v2_sge)
net/smc/smc_wr.c
793
link->wr_tx_v2_pend = kzalloc_obj(*link->wr_tx_v2_pend);
net/smc/smc_wr.c
794
if (!link->wr_tx_v2_pend)
net/smc/smc_wr.c
80
struct smc_link *link;
net/smc/smc_wr.c
800
kfree(link->wr_tx_v2_sge);
net/smc/smc_wr.c
802
kfree(link->wr_tx_v2_ib);
net/smc/smc_wr.c
804
kfree(link->wr_tx_compl);
net/smc/smc_wr.c
806
kfree(link->wr_tx_pends);
net/smc/smc_wr.c
808
kfree(link->wr_tx_mask);
net/smc/smc_wr.c
810
kfree(link->wr_rx_sges);
net/smc/smc_wr.c
812
kfree(link->wr_tx_sges);
net/smc/smc_wr.c
814
kfree(link->wr_tx_rdma_sges);
net/smc/smc_wr.c
816
kfree(link->wr_tx_rdmas);
net/smc/smc_wr.c
818
kfree(link->wr_rx_ibs);
net/smc/smc_wr.c
820
kfree(link->wr_tx_ibs);
net/smc/smc_wr.c
822
kfree(link->wr_rx_bufs);
net/smc/smc_wr.c
824
kfree(link->wr_tx_bufs);
net/smc/smc_wr.c
83
link = wc->qp->qp_context;
net/smc/smc_wr.c
87
link->wr_reg_state = FAILED;
net/smc/smc_wr.c
89
link->wr_reg_state = CONFIRMED;
net/smc/smc_wr.c
90
smc_wr_wakeup_reg_wait(link);
net/smc/smc_wr.c
94
pnd_snd_idx = smc_wr_tx_find_pending_index(link, wc->wr_id);
net/smc/smc_wr.c
95
if (pnd_snd_idx == link->wr_tx_cnt) {
net/smc/smc_wr.c
96
if (link->lgr->smc_version != SMC_V2 ||
net/smc/smc_wr.c
97
link->wr_tx_v2_pend->wr_id != wc->wr_id)
net/smc/smc_wr.c
99
link->wr_tx_v2_pend->wc_status = wc->status;
net/smc/smc_wr.h
113
int smc_wr_tx_get_free_slot(struct smc_link *link, smc_wr_tx_handler handler,
net/smc/smc_wr.h
117
int smc_wr_tx_get_v2_slot(struct smc_link *link,
net/smc/smc_wr.h
121
int smc_wr_tx_put_slot(struct smc_link *link,
net/smc/smc_wr.h
123
int smc_wr_tx_send(struct smc_link *link,
net/smc/smc_wr.h
125
int smc_wr_tx_v2_send(struct smc_link *link,
net/smc/smc_wr.h
127
int smc_wr_tx_send_wait(struct smc_link *link, struct smc_wr_tx_pend_priv *priv,
net/smc/smc_wr.h
130
void smc_wr_tx_wait_no_pending_sends(struct smc_link *link);
net/smc/smc_wr.h
133
int smc_wr_rx_post_init(struct smc_link *link);
net/smc/smc_wr.h
135
int smc_wr_reg_send(struct smc_link *link, struct ib_mr *mr);
net/smc/smc_wr.h
50
static inline long smc_wr_tx_get_next_wr_id(struct smc_link *link)
net/smc/smc_wr.h
52
return atomic_long_inc_return(&link->wr_tx_id);
net/smc/smc_wr.h
60
static inline bool smc_wr_tx_link_hold(struct smc_link *link)
net/smc/smc_wr.h
62
if (!smc_link_sendable(link))
net/smc/smc_wr.h
64
percpu_ref_get(&link->wr_tx_refs);
net/smc/smc_wr.h
68
static inline void smc_wr_tx_link_put(struct smc_link *link)
net/smc/smc_wr.h
70
percpu_ref_put(&link->wr_tx_refs);
net/smc/smc_wr.h
89
static inline int smc_wr_rx_post(struct smc_link *link)
net/smc/smc_wr.h
95
wr_id = ++link->wr_rx_id; /* tasklet context, thus not atomic */
net/smc/smc_wr.h
97
index = do_div(temp_wr_id, link->wr_rx_cnt);
net/smc/smc_wr.h
98
link->wr_rx_ibs[index].wr_id = wr_id;
net/smc/smc_wr.h
99
rc = ib_post_recv(link->roce_qp, &link->wr_rx_ibs[index], NULL);
net/sunrpc/debugfs.c
127
char link[9]; /* enough for 8 hex digits + NULL */
net/sunrpc/debugfs.c
137
strcpy(link, "xprt");
net/sunrpc/debugfs.c
139
len = snprintf(link, sizeof(link), "xprt%d", *nump);
net/sunrpc/debugfs.c
140
if (len >= sizeof(link))
net/sunrpc/debugfs.c
143
debugfs_create_symlink(link, clnt->cl_debugfs, name);
net/tipc/bcast.c
110
int all_dests = tipc_link_bc_peers(bb->link);
net/tipc/bcast.c
111
int max_win = tipc_link_max_win(bb->link);
net/tipc/bcast.c
112
int min_win = tipc_link_min_win(bb->link);
net/tipc/bcast.c
126
if (mtu < tipc_link_mtu(bb->link)) {
net/tipc/bcast.c
127
tipc_link_set_mtu(bb->link, mtu);
net/tipc/bcast.c
128
tipc_link_set_queue_limits(bb->link,
net/tipc/bcast.c
65
struct tipc_link *link;
net/tipc/bcast.c
711
bb->link = l;
net/tipc/link.c
2670
struct tipc_link *link, int nlflags)
net/tipc/link.c
2687
if (nla_put_string(msg->skb, TIPC_NLA_LINK_NAME, link->name))
net/tipc/link.c
2691
if (nla_put_u32(msg->skb, TIPC_NLA_LINK_MTU, link->mtu))
net/tipc/link.c
2693
if (nla_put_u32(msg->skb, TIPC_NLA_LINK_RX, link->stats.recv_pkts))
net/tipc/link.c
2695
if (nla_put_u32(msg->skb, TIPC_NLA_LINK_TX, link->stats.sent_pkts))
net/tipc/link.c
2698
if (tipc_link_is_up(link))
net/tipc/link.c
2701
if (link->active)
net/tipc/link.c
2708
if (nla_put_u32(msg->skb, TIPC_NLA_PROP_PRIO, link->priority))
net/tipc/link.c
2710
if (nla_put_u32(msg->skb, TIPC_NLA_PROP_TOL, link->tolerance))
net/tipc/link.c
2713
link->window))
net/tipc/link.c
2715
if (nla_put_u32(msg->skb, TIPC_NLA_PROP_PRIO, link->priority))
net/tipc/link.c
2719
err = __tipc_nl_add_stats(msg->skb, &link->stats);
net/tipc/link.c
484
struct tipc_link **link)
net/tipc/link.c
493
*link = l;
net/tipc/link.c
558
struct tipc_link **link)
net/tipc/link.c
564
bc_sndlink, NULL, inputq, namedq, link))
net/tipc/link.c
567
l = *link;
net/tipc/link.h
107
int tipc_link_xmit(struct tipc_link *link, struct sk_buff_head *list,
net/tipc/link.h
129
struct tipc_link *link, int nlflags);
net/tipc/link.h
82
struct tipc_link **link);
net/tipc/link.h
88
struct tipc_link **link);
net/tipc/netlink_compat.c
542
struct nlattr *link[TIPC_NLA_LINK_MAX + 1];
net/tipc/netlink_compat.c
551
err = nla_parse_nested_deprecated(link, TIPC_NLA_LINK_MAX,
net/tipc/netlink_compat.c
556
if (!link[TIPC_NLA_LINK_PROP])
net/tipc/netlink_compat.c
560
link[TIPC_NLA_LINK_PROP], NULL,
net/tipc/netlink_compat.c
565
if (!link[TIPC_NLA_LINK_STATS])
net/tipc/netlink_compat.c
569
link[TIPC_NLA_LINK_STATS], NULL,
net/tipc/netlink_compat.c
584
if (strcmp(name, nla_data(link[TIPC_NLA_LINK_NAME])) != 0)
net/tipc/netlink_compat.c
588
(char *)nla_data(link[TIPC_NLA_LINK_NAME]));
net/tipc/netlink_compat.c
590
if (link[TIPC_NLA_LINK_BROADCAST]) {
net/tipc/netlink_compat.c
595
if (link[TIPC_NLA_LINK_ACTIVE])
net/tipc/netlink_compat.c
597
else if (link[TIPC_NLA_LINK_UP])
net/tipc/netlink_compat.c
603
nla_get_u32(link[TIPC_NLA_LINK_MTU]),
net/tipc/netlink_compat.c
612
nla_get_u32(link[TIPC_NLA_LINK_RX]) -
net/tipc/netlink_compat.c
621
nla_get_u32(link[TIPC_NLA_LINK_TX]) -
net/tipc/netlink_compat.c
681
struct nlattr *link[TIPC_NLA_LINK_MAX + 1];
net/tipc/netlink_compat.c
688
err = nla_parse_nested_deprecated(link, TIPC_NLA_LINK_MAX,
net/tipc/netlink_compat.c
693
link_info.dest = htonl(nla_get_flag(link[TIPC_NLA_LINK_DEST]));
net/tipc/netlink_compat.c
694
link_info.up = htonl(nla_get_flag(link[TIPC_NLA_LINK_UP]));
net/tipc/netlink_compat.c
695
nla_strscpy(link_info.str, link[TIPC_NLA_LINK_NAME],
net/tipc/netlink_compat.c
776
struct nlattr *link;
net/tipc/netlink_compat.c
781
link = nla_nest_start_noflag(skb, TIPC_NLA_LINK);
net/tipc/netlink_compat.c
782
if (!link)
net/tipc/netlink_compat.c
794
nla_nest_end(skb, link);
net/tipc/netlink_compat.c
839
struct nlattr *link;
net/tipc/netlink_compat.c
844
link = nla_nest_start_noflag(skb, TIPC_NLA_LINK);
net/tipc/netlink_compat.c
845
if (!link)
net/tipc/netlink_compat.c
859
nla_nest_end(skb, link);
net/tipc/node.c
1015
_l = n->links[i].link;
net/tipc/node.c
1049
tnl = n->links[*bearer_id].link;
net/tipc/node.c
1066
struct tipc_link *l = le->link;
net/tipc/node.c
1085
le->link = NULL;
net/tipc/node.c
1200
l = le->link;
net/tipc/node.c
1284
tipc_bc_sndlink(n->net), n->bc_entry.link,
net/tipc/node.c
1296
le->link = l;
net/tipc/node.c
1530
tipc_bcast_remove_peer(n->net, n->bc_entry.link);
net/tipc/node.c
1535
l = n->links[i].link;
net/tipc/node.c
1571
struct tipc_link *link;
net/tipc/node.c
1582
link = node->links[bearer_id].link;
net/tipc/node.c
1583
if (link) {
net/tipc/node.c
1584
strscpy(linkname, tipc_link_name(link), len);
net/tipc/node.c
1739
rc = tipc_link_xmit(le->link, list, &xmitq);
net/tipc/node.c
1839
rc = tipc_bcast_sync_rcv(n->net, n->bc_entry.link, hdr, xmitq);
net/tipc/node.c
1855
ucl = n->links[bearer_id].link;
net/tipc/node.c
1894
rc = tipc_bcast_rcv(net, be->link, skb);
net/tipc/node.c
1899
tipc_link_build_state_msg(le->link, &xmitq);
net/tipc/node.c
1948
l = n->links[bearer_id].link;
net/tipc/node.c
1959
if ((pb_id != bearer_id) && n->links[pb_id].link) {
net/tipc/node.c
1960
pl = n->links[pb_id].link;
net/tipc/node.c
202
return n->links[bearer_id].link;
net/tipc/node.c
2149
} else if (unlikely(tipc_link_acked(n->bc_entry.link) != bc_ack)) {
net/tipc/node.c
2150
tipc_bcast_ack_rcv(net, n->bc_entry.link, hdr);
net/tipc/node.c
2157
if (le->link) {
net/tipc/node.c
2158
rc = tipc_link_rcv(le->link, skb, &xmitq);
net/tipc/node.c
2171
if (le->link) {
net/tipc/node.c
2172
rc = tipc_link_rcv(le->link, skb, &xmitq);
net/tipc/node.c
2221
if (e->link) {
net/tipc/node.c
2223
tipc_link_set_tolerance(e->link, b->tolerance,
net/tipc/node.c
2226
tipc_link_set_mtu(e->link, b->mtu);
net/tipc/node.c
2229
e->mtu = tipc_link_mss(e->link);
net/tipc/node.c
2400
l = n->links[i].link;
net/tipc/node.c
2422
struct tipc_link *link;
net/tipc/node.c
2453
link = node->links[bearer_id].link;
net/tipc/node.c
2454
if (!link) {
net/tipc/node.c
2472
tipc_link_set_tolerance(link, tol, &xmitq);
net/tipc/node.c
2478
tipc_link_set_prio(link, prio, &xmitq);
net/tipc/node.c
2484
tipc_link_set_queue_limits(link,
net/tipc/node.c
2485
tipc_link_min_win(link),
net/tipc/node.c
2533
struct tipc_link *link;
net/tipc/node.c
2542
link = node->links[bearer_id].link;
net/tipc/node.c
2543
if (!link) {
net/tipc/node.c
2549
err = __tipc_nl_add_link(net, &msg, link, 0);
net/tipc/node.c
2567
struct tipc_link *link;
net/tipc/node.c
2598
link = node->bc_entry.link;
net/tipc/node.c
2599
if (link && !strcmp(link_name, tipc_link_name(link))) {
net/tipc/node.c
2600
err = tipc_bclink_reset_stats(net, link);
net/tipc/node.c
2617
link = node->links[bearer_id].link;
net/tipc/node.c
2618
if (!link) {
net/tipc/node.c
2623
tipc_link_reset_stats(link);
net/tipc/node.c
2640
if (!node->links[i].link)
net/tipc/node.c
2644
node->links[i].link, NLM_F_MULTI);
net/tipc/node.c
2651
err = tipc_nl_add_bc_link(net, msg, node->bc_entry.link);
net/tipc/node.c
2665
struct nlattr *link[TIPC_NLA_LINK_MAX + 1];
net/tipc/node.c
2681
err = nla_parse_nested_deprecated(link,
net/tipc/node.c
2688
if (unlikely(!link[TIPC_NLA_LINK_BROADCAST]))
net/tipc/node.c
3118
i += tipc_link_dump(n->links[0].link, TIPC_DUMP_NONE, buf + i);
net/tipc/node.c
3127
i += tipc_link_dump(n->links[1].link, TIPC_DUMP_NONE, buf + i);
net/tipc/node.c
313
kfree(n->bc_entry.link);
net/tipc/node.c
3132
i += tipc_link_dump(n->bc_entry.link, TIPC_DUMP_NONE, buf + i);
net/tipc/node.c
492
&n->bc_entry.namedq, snd_l, &n->bc_entry.link)) {
net/tipc/node.c
521
l = n->links[bearer_id].link;
net/tipc/node.c
582
&n->bc_entry.namedq, snd_l, &n->bc_entry.link)) {
net/tipc/node.c
65
struct tipc_link *link;
net/tipc/node.c
73
struct tipc_link *link;
net/tipc/node.c
753
if (le->link) {
net/tipc/node.c
754
kfree(le->link);
net/tipc/node.c
755
le->link = NULL;
net/tipc/node.c
832
if (le->link) {
net/tipc/node.c
835
tipc_node_calculate_timer(n, le->link);
net/tipc/node.c
836
rc = tipc_link_timeout(le->link, &xmitq);
net/tipc/node.c
862
struct tipc_link *nl = n->links[bearer_id].link;
net/tipc/node.c
998
l = n->links[*bearer_id].link;
net/wireless/ap.c
59
unsigned int link;
net/wireless/ap.c
65
for_each_valid_link(dev->ieee80211_ptr, link) {
net/wireless/ap.c
66
int ret1 = ___cfg80211_stop_ap(rdev, dev, link, notify);
net/wireless/chan.c
867
unsigned int link;
net/wireless/chan.c
874
for_each_valid_link(wdev, link) {
net/wireless/chan.c
875
if (wdev->links[link].ap.beacon_interval)
net/wireless/chan.c
909
unsigned int link;
net/wireless/chan.c
914
for_each_valid_link(wdev, link) {
net/wireless/chan.c
915
if (cfg80211_is_sub_chan(&wdev->links[link].ap.chandef,
net/wireless/core.h
333
unsigned int link,
net/wireless/core.h
371
struct net_device *dev, int link,
net/wireless/nl80211.c
12310
struct nlattr *link;
net/wireless/nl80211.c
12317
nla_for_each_nested(link, info->attrs[NL80211_ATTR_MLO_LINKS], rem) {
net/wireless/nl80211.c
12320
nla_parse_nested(attrs, NL80211_ATTR_MAX, link, NULL, NULL);
net/wireless/nl80211.c
12323
NL_SET_BAD_ATTR(info->extack, link);
net/wireless/nl80211.c
12330
NL_SET_BAD_ATTR(info->extack, link);
net/wireless/nl80211.c
12339
NL_SET_ERR_MSG_ATTR(info->extack, link,
net/wireless/nl80211.c
12568
struct nlattr *link;
net/wireless/nl80211.c
12583
nla_for_each_nested(link,
net/wireless/nl80211.c
12587
nla_find_nested(link, NL80211_ATTR_MLO_LINK_ID);
net/wireless/nl80211.c
12603
NL_SET_BAD_ATTR(info->extack, link);
net/wireless/nl80211.c
19708
unsigned int link;
net/wireless/nl80211.c
19714
for_each_valid_link(cr, link) {
net/wireless/nl80211.c
19719
link_info_size += cr->links[link].addr ?
net/wireless/nl80211.c
19721
link_info_size += (cr->links[link].bssid ||
net/wireless/nl80211.c
19722
cr->links[link].bss) ?
net/wireless/nl80211.c
19778
for_each_valid_link(cr, link) {
net/wireless/nl80211.c
19780
const u8 *bssid = cr->links[link].bss ?
net/wireless/nl80211.c
19781
cr->links[link].bss->bssid :
net/wireless/nl80211.c
19782
cr->links[link].bssid;
net/wireless/nl80211.c
19788
if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link) ||
net/wireless/nl80211.c
19791
(cr->links[link].addr &&
net/wireless/nl80211.c
19793
cr->links[link].addr)) ||
net/wireless/nl80211.c
19795
cr->links[link].status))
net/wireless/nl80211.c
19821
unsigned int link;
net/wireless/nl80211.c
19829
for_each_valid_link(info, link) {
net/wireless/nl80211.c
19834
link_info_size += info->links[link].addr ?
net/wireless/nl80211.c
19836
link_info_size += (info->links[link].bssid ||
net/wireless/nl80211.c
19837
info->links[link].bss) ?
net/wireless/nl80211.c
19884
for_each_valid_link(info, link) {
net/wireless/nl80211.c
19886
const u8 *bssid = info->links[link].bss ?
net/wireless/nl80211.c
19887
info->links[link].bss->bssid :
net/wireless/nl80211.c
19888
info->links[link].bssid;
net/wireless/nl80211.c
19894
if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link) ||
net/wireless/nl80211.c
19897
(info->links[link].addr &&
net/wireless/nl80211.c
19899
info->links[link].addr)))
net/wireless/nl80211.c
20033
struct nlattr *link;
net/wireless/nl80211.c
20036
link = nla_nest_start(msg, link_id + 1);
net/wireless/nl80211.c
20037
if (!link)
net/wireless/nl80211.c
20043
nla_nest_end(msg, link);
net/wireless/nl80211.c
4344
struct nlattr *link = nla_nest_start(msg, link_id + 1);
net/wireless/nl80211.c
4348
if (!link)
net/wireless/nl80211.c
4370
nla_nest_end(msg, link);
net/wireless/nl80211.c
7507
struct nlattr *links, *link;
net/wireless/nl80211.c
7737
link = nla_nest_start(msg, link_id + 1);
net/wireless/nl80211.c
7738
if (!link)
net/wireless/nl80211.c
7752
nla_nest_end(msg, link);
net/wireless/rdev-ops.h
776
const bool noencrypt, int link,
net/wireless/rdev-ops.h
781
dest, proto, noencrypt, link);
net/wireless/rdev-ops.h
783
dest, proto, noencrypt, link, cookie);
net/wireless/reg.c
2354
int link;
net/wireless/reg.c
2362
for (link = 0; link < ARRAY_SIZE(wdev->links); link++) {
net/wireless/reg.c
2365
if (!wdev->valid_links && link > 0)
net/wireless/reg.c
2367
if (wdev->valid_links && !(wdev->valid_links & BIT(link)))
net/wireless/reg.c
2372
if (!wdev->links[link].ap.beacon_interval)
net/wireless/reg.c
2374
chandef = wdev->links[link].ap.chandef;
net/wireless/reg.c
2389
if (!wdev->links[link].client.current_bss)
net/wireless/reg.c
2392
chan = wdev->links[link].client.current_bss->pub.channel;
net/wireless/reg.c
2397
rdev_get_channel(rdev, wdev, link, &chandef))
net/wireless/sme.c
1045
for_each_valid_link(params, link) {
net/wireless/sme.c
1046
if (params->links[link].bss)
net/wireless/sme.c
1048
bss_from_pub(params->links[link].bss));
net/wireless/sme.c
1049
ev->cr.links[link].bss = params->links[link].bss;
net/wireless/sme.c
1050
ev->cr.links[link].status = params->links[link].status;
net/wireless/sme.c
1052
if (params->links[link].addr) {
net/wireless/sme.c
1053
ev->cr.links[link].addr = next;
net/wireless/sme.c
1054
memcpy((void *)ev->cr.links[link].addr,
net/wireless/sme.c
1055
params->links[link].addr,
net/wireless/sme.c
1059
if (params->links[link].bssid) {
net/wireless/sme.c
1060
ev->cr.links[link].bssid = next;
net/wireless/sme.c
1061
memcpy((void *)ev->cr.links[link].bssid,
net/wireless/sme.c
1062
params->links[link].bssid,
net/wireless/sme.c
1084
unsigned int link;
net/wireless/sme.c
1100
for_each_valid_link(info, link) {
net/wireless/sme.c
1101
if (WARN_ON(!info->links[link].addr))
net/wireless/sme.c
1108
for_each_valid_link(info, link) {
net/wireless/sme.c
1109
if (WARN_ON(!info->links[link].bss))
net/wireless/sme.c
1115
for_each_valid_link(info, link) {
net/wireless/sme.c
1116
cfg80211_hold_bss(bss_from_pub(info->links[link].bss));
net/wireless/sme.c
1117
wdev->links[link].client.current_bss =
net/wireless/sme.c
1118
bss_from_pub(info->links[link].bss);
net/wireless/sme.c
1126
for_each_valid_link(info, link)
net/wireless/sme.c
1127
memcpy(wdev->links[link].addr, info->links[link].addr,
net/wireless/sme.c
1161
for_each_valid_link(info, link)
net/wireless/sme.c
1162
cfg80211_put_bss(wdev->wiphy, info->links[link].bss);
net/wireless/sme.c
1174
unsigned int link;
net/wireless/sme.c
1178
for_each_valid_link(info, link) {
net/wireless/sme.c
1179
link_info_size += info->links[link].addr ? ETH_ALEN : 0;
net/wireless/sme.c
1180
link_info_size += info->links[link].bssid ? ETH_ALEN : 0;
net/wireless/sme.c
1182
if (info->links[link].bss)
net/wireless/sme.c
1185
info->links[link].bss =
net/wireless/sme.c
1187
info->links[link].channel,
net/wireless/sme.c
1188
info->links[link].bssid,
net/wireless/sme.c
1194
if (!info->links[link].bss) {
net/wireless/sme.c
1255
for_each_valid_link(info, link) {
net/wireless/sme.c
1256
ev->rm.links[link].bss = info->links[link].bss;
net/wireless/sme.c
1258
if (info->links[link].addr) {
net/wireless/sme.c
1259
ev->rm.links[link].addr = next;
net/wireless/sme.c
1260
memcpy((void *)ev->rm.links[link].addr,
net/wireless/sme.c
1261
info->links[link].addr,
net/wireless/sme.c
1266
if (info->links[link].bssid) {
net/wireless/sme.c
1267
ev->rm.links[link].bssid = next;
net/wireless/sme.c
1268
memcpy((void *)ev->rm.links[link].bssid,
net/wireless/sme.c
1269
info->links[link].bssid,
net/wireless/sme.c
1282
for_each_valid_link(info, link)
net/wireless/sme.c
1283
cfg80211_put_bss(wdev->wiphy, info->links[link].bss);
net/wireless/sme.c
469
unsigned int link;
net/wireless/sme.c
471
for_each_valid_link(wdev, link) {
net/wireless/sme.c
472
if (!wdev->links[link].client.current_bss)
net/wireless/sme.c
474
cfg80211_unhold_bss(wdev->links[link].client.current_bss);
net/wireless/sme.c
476
&wdev->links[link].client.current_bss->pub);
net/wireless/sme.c
477
wdev->links[link].client.current_bss = NULL;
net/wireless/sme.c
483
unsigned int link;
net/wireless/sme.c
485
for_each_valid_link(wdev, link) {
net/wireless/sme.c
486
if (!wdev->links[link].client.current_bss ||
net/wireless/sme.c
487
!(link_mask & BIT(link)))
net/wireless/sme.c
489
cfg80211_unhold_bss(wdev->links[link].client.current_bss);
net/wireless/sme.c
491
&wdev->links[link].client.current_bss->pub);
net/wireless/sme.c
492
wdev->links[link].client.current_bss = NULL;
net/wireless/sme.c
719
unsigned int link;
net/wireless/sme.c
721
for_each_valid_link(cr, link) {
net/wireless/sme.c
722
if (!cr->links[link].bss)
net/wireless/sme.c
724
cfg80211_unhold_bss(bss_from_pub(cr->links[link].bss));
net/wireless/sme.c
725
cfg80211_put_bss(wdev->wiphy, cr->links[link].bss);
net/wireless/sme.c
747
unsigned int link;
net/wireless/sme.c
761
for_each_valid_link(cr, link) {
net/wireless/sme.c
762
if (WARN_ON(!cr->links[link].addr))
net/wireless/sme.c
804
for_each_valid_link(cr, link) {
net/wireless/sme.c
805
if (WARN_ON_ONCE(!cr->links[link].bss))
net/wireless/sme.c
810
for_each_valid_link(cr, link) {
net/wireless/sme.c
812
if (cr->links[link].status != WLAN_STATUS_SUCCESS)
net/wireless/sme.c
815
if (cr->links[link].bss)
net/wireless/sme.c
818
cr->links[link].bss =
net/wireless/sme.c
820
cr->links[link].bssid,
net/wireless/sme.c
825
if (!cr->links[link].bss) {
net/wireless/sme.c
829
cfg80211_hold_bss(bss_from_pub(cr->links[link].bss));
net/wireless/sme.c
851
for_each_valid_link(cr, link) {
net/wireless/sme.c
852
if (cr->links[link].status == WLAN_STATUS_SUCCESS)
net/wireless/sme.c
854
cr->valid_links &= ~BIT(link);
net/wireless/sme.c
856
if (!cr->links[link].bss)
net/wireless/sme.c
858
cfg80211_unhold_bss(bss_from_pub(cr->links[link].bss));
net/wireless/sme.c
859
cfg80211_put_bss(wdev->wiphy, cr->links[link].bss);
net/wireless/sme.c
862
for_each_valid_link(cr, link)
net/wireless/sme.c
863
wdev->links[link].client.current_bss =
net/wireless/sme.c
864
bss_from_pub(cr->links[link].bss);
net/wireless/sme.c
868
for_each_valid_link(cr, link)
net/wireless/sme.c
869
memcpy(wdev->links[link].addr, cr->links[link].addr,
net/wireless/sme.c
876
for_each_valid_link(cr, link) {
net/wireless/sme.c
878
ieee80211_bss_get_elem(cr->links[link].bss,
net/wireless/sme.c
896
cr->links[link].bss->channel->band,
net/wireless/sme.c
902
for_each_valid_link(cr, link) {
net/wireless/sme.c
905
ssid = ieee80211_bss_get_elem(cr->links[link].bss,
net/wireless/sme.c
921
for_each_valid_link(cr, link)
net/wireless/sme.c
922
cfg80211_put_bss(wdev->wiphy, cr->links[link].bss);
net/wireless/sme.c
978
unsigned int link;
net/wireless/sme.c
980
for_each_valid_link(params, link) {
net/wireless/sme.c
981
cfg80211_update_link_bss(wdev, &params->links[link].bss);
net/wireless/sme.c
982
link_info_size += params->links[link].bssid ? ETH_ALEN : 0;
net/wireless/sme.c
983
link_info_size += params->links[link].addr ? ETH_ALEN : 0;
net/wireless/sme.c
993
for_each_valid_link(params, link)
net/wireless/sme.c
995
params->links[link].bss);
net/xfrm/xfrm_interface_bpf.c
27
int link;
net/xfrm/xfrm_interface_bpf.c
50
to->link = info->link;
net/xfrm/xfrm_interface_bpf.c
85
info->link = from->link;
net/xfrm/xfrm_interface_core.c
105
info->link = nla_get_u32(tb[LWT_XFRM_LINK]);
net/xfrm/xfrm_interface_core.c
117
(info->link && nla_put_u32(skb, LWT_XFRM_LINK, info->link)))
net/xfrm/xfrm_interface_core.c
365
int link;
net/xfrm/xfrm_interface_core.c
376
link = skb->dev->ifindex;
net/xfrm/xfrm_interface_core.c
415
md_dst->u.xfrm_info.link = link;
net/xfrm/xfrm_interface_core.c
442
fl->flowi_oif = md_info->link;
net/xfrm/xfrm_interface_core.c
570
fl.flowi_oif = xi->p.link;
net/xfrm/xfrm_interface_core.c
702
if (xi->p.link != p->link)
net/xfrm/xfrm_interface_core.c
728
return READ_ONCE(xi->p.link);
net/xfrm/xfrm_interface_core.c
764
struct net_device *phydev = __dev_get_by_index(xi->net, xi->p.link);
net/xfrm/xfrm_interface_core.c
807
parms->link = nla_get_u32(data[IFLA_XFRM_LINK]);
net/xfrm/xfrm_interface_core.c
831
if (p.link || p.if_id) {
net/xfrm/xfrm_interface_core.c
911
if (nla_put_u32(skb, IFLA_XFRM_LINK, parm->link) ||
net/xfrm/xfrm_user.c
3454
const struct xfrm_link *link;
net/xfrm/xfrm_user.c
3463
link = &xfrm_dispatch[type];
net/xfrm/xfrm_user.c
3475
nlh64 = xtr->rcv_msg_compat(nlh, link->nla_max,
net/xfrm/xfrm_user.c
3476
link->nla_pol, extack);
net/xfrm/xfrm_user.c
3488
.start = link->start,
net/xfrm/xfrm_user.c
3489
.dump = link->dump,
net/xfrm/xfrm_user.c
3490
.done = link->done,
net/xfrm/xfrm_user.c
3493
if (link->dump == NULL) {
net/xfrm/xfrm_user.c
3503
link->nla_max ? : XFRMA_MAX,
net/xfrm/xfrm_user.c
3504
link->nla_pol ? : xfrma_policy, extack);
net/xfrm/xfrm_user.c
3508
if (!link->nla_pol || link->nla_pol == xfrma_policy) {
net/xfrm/xfrm_user.c
3514
if (link->doit == NULL) {
net/xfrm/xfrm_user.c
3519
err = link->doit(skb, nlh, attrs, extack);
samples/bpf/cpustat_user.c
191
struct bpf_link *link = NULL;
samples/bpf/cpustat_user.c
223
link = bpf_program__attach(prog);
samples/bpf/cpustat_user.c
224
if (libbpf_get_error(link)) {
samples/bpf/cpustat_user.c
226
link = NULL;
samples/bpf/cpustat_user.c
248
bpf_link__destroy(link);
samples/bpf/hbm.c
165
struct bpf_link *link = NULL;
samples/bpf/hbm.c
201
link = bpf_program__attach_cgroup(bpf_prog, cg1);
samples/bpf/hbm.c
202
if (libbpf_get_error(link)) {
samples/bpf/hbm.c
208
rc = bpf_link__pin(link, cg_pin_path);
samples/bpf/hbm.c
412
bpf_link__destroy(link);
samples/bpf/task_fd_query_user.c
131
struct bpf_link *link;
samples/bpf/task_fd_query_user.c
156
link = bpf_program__attach_perf_event(progs[0], fd);
samples/bpf/task_fd_query_user.c
157
if (libbpf_get_error(link)) {
samples/bpf/task_fd_query_user.c
159
link = NULL;
samples/bpf/task_fd_query_user.c
169
bpf_link__destroy(link);
samples/bpf/task_fd_query_user.c
235
struct bpf_link *link;
samples/bpf/task_fd_query_user.c
271
link = bpf_program__attach_perf_event(progs[0], kfd);
samples/bpf/task_fd_query_user.c
272
if (libbpf_get_error(link)) {
samples/bpf/task_fd_query_user.c
274
link = NULL;
samples/bpf/task_fd_query_user.c
306
bpf_link__destroy(link);
samples/bpf/test_map_in_map_user.c
118
struct bpf_link *link = NULL;
samples/bpf/test_map_in_map_user.c
155
link = bpf_program__attach(prog);
samples/bpf/test_map_in_map_user.c
156
if (libbpf_get_error(link)) {
samples/bpf/test_map_in_map_user.c
158
link = NULL;
samples/bpf/test_map_in_map_user.c
165
bpf_link__destroy(link);
samples/bpf/trace_event_user.c
183
struct bpf_link *link = NULL;
samples/bpf/trace_event_user.c
197
link = bpf_program__attach_perf_event(prog, pmu_fd);
samples/bpf/trace_event_user.c
198
if (libbpf_get_error(link)) {
samples/bpf/trace_event_user.c
200
link = NULL;
samples/bpf/trace_event_user.c
211
bpf_link__destroy(link);
samples/bpf/trace_output_user.c
102
bpf_link__destroy(link);
samples/bpf/trace_output_user.c
46
struct bpf_link *link = NULL;
samples/bpf/trace_output_user.c
79
link = bpf_program__attach(prog);
samples/bpf/trace_output_user.c
80
if (libbpf_get_error(link)) {
samples/bpf/trace_output_user.c
82
link = NULL;
samples/bpf/tracex1_user.c
34
link = bpf_program__attach(prog);
samples/bpf/tracex1_user.c
35
if (libbpf_get_error(link)) {
samples/bpf/tracex1_user.c
37
link = NULL;
samples/bpf/tracex1_user.c
47
bpf_link__destroy(link);
samples/bpf/tracex1_user.c
9
struct bpf_link *link = NULL;
samples/bpf/tracex5_user.c
37
struct bpf_link *link = NULL;
samples/bpf/tracex5_user.c
64
link = bpf_program__attach(prog);
samples/bpf/tracex5_user.c
65
if (libbpf_get_error(link)) {
samples/bpf/tracex5_user.c
67
link = NULL;
samples/bpf/tracex5_user.c
95
bpf_link__destroy(link);
samples/hid/hid_mouse.c
123
link = bpf_map__attach_struct_ops(skel->maps.mouse_invert);
samples/hid/hid_mouse.c
124
if (!link) {
samples/hid/hid_mouse.c
78
struct bpf_link *link;
samples/hid/hid_surface_dial.c
119
struct bpf_link *link;
samples/hid/hid_surface_dial.c
186
link = bpf_map__attach_struct_ops(skel->maps.surface_dial);
samples/hid/hid_surface_dial.c
187
if (!link) {
scripts/elf-parse.h
147
SHDR_WORD(link)
scripts/insert-sys-cert.c
137
unsigned int link;
scripts/insert-sys-cert.c
142
link = symtab->sh_link;
scripts/insert-sys-cert.c
145
strtab = (void *)hdr + x[link].sh_offset;
scripts/kconfig/expr.h
244
struct list_head link; /* link to symbol::menus */
scripts/kconfig/menu.c
742
list_for_each_entry(menu, &sym->menus, link) {
scripts/kconfig/menu.c
749
list_for_each_entry(menu, &sym->menus, link) {
scripts/kconfig/menu.c
84
list_add_tail(&menu->link, &sym->menus);
scripts/kconfig/symbol.c
1142
choice = list_first_entry(&next_sym->menus, struct menu, link);
scripts/kconfig/symbol.c
1269
choice_menu = list_first_entry(&choice->menus, struct menu, link);
scripts/kconfig/symbol.c
196
list_for_each_entry(menu, &sym->menus, link)
scripts/kconfig/symbol.c
84
list_for_each_entry(m, &sym->menus, link)
security/apparmor/apparmorfs.c
283
umode_t mode, void *data, char *link,
security/apparmor/apparmorfs.c
306
inode->i_link = link;
security/apparmor/apparmorfs.c
334
struct aa_common_ref *data, void *link,
security/apparmor/apparmorfs.c
366
error = __aafs_setup_d_inode(dir, dentry, mode, data, link, fops, iops);
security/apparmor/file.c
315
static inline bool xindex_is_subset(u32 link, u32 target)
security/apparmor/file.c
317
if (((link & ~AA_X_UNSAFE) != (target & ~AA_X_UNSAFE)) ||
security/apparmor/file.c
318
((link & AA_X_UNSAFE) && !(target & AA_X_UNSAFE)))
security/apparmor/file.c
326
const struct path *link, char *buffer,
security/apparmor/file.c
338
error = path_name(OP_LINK, subj_cred, &profile->label, link,
security/apparmor/file.c
434
struct path link = { .mnt = new_dir->mnt, .dentry = new_dentry };
security/apparmor/file.c
454
profile_path_link(subj_cred, profile, &link, buffer,
security/inode.c
261
char *link = NULL;
security/inode.c
264
link = kstrdup(target, GFP_KERNEL);
security/inode.c
265
if (!link)
security/inode.c
269
link, NULL, iops);
security/inode.c
271
kfree(link);
security/keys/key.c
1235
list_for_each_entry(p, &key_types_list, link) {
security/keys/key.c
1241
list_add(&ktype->link, &key_types_list);
security/keys/key.c
1263
list_del_init(&ktype->link);
security/keys/key.c
1281
list_add_tail(&key_type_keyring.link, &key_types_list);
security/keys/key.c
1282
list_add_tail(&key_type_dead.link, &key_types_list);
security/keys/key.c
1283
list_add_tail(&key_type_user.link, &key_types_list);
security/keys/key.c
1284
list_add_tail(&key_type_logon.link, &key_types_list);
security/keys/key.c
724
list_for_each_entry(ktype, &key_types_list, link) {
sound/firewire/amdtp-stream.c
1794
INIT_LIST_HEAD(&descs->link);
sound/firewire/amdtp-stream.c
1795
list_add_tail(&descs->link, &s->packet_descs_list);
sound/firewire/amdtp-stream.c
1798
s->packet_descs_cursor = list_first_entry(&s->packet_descs_list, struct pkt_desc, link);
sound/firewire/amdtp-stream.c
348
list_prev_entry_circular(desc, &s->packet_descs_list, link)
sound/firewire/amdtp-stream.h
110
struct list_head link;
sound/firewire/amdtp-stream.h
295
list_next_entry_circular(desc, &s->packet_descs_list, link)
sound/hda/core/ext/controller.c
278
void snd_hdac_ext_bus_link_set_stream_id(struct hdac_ext_link *link,
sound/hda/core/ext/controller.c
281
snd_hdac_updatew(link->ml_addr, AZX_REG_ML_LOSIDV, (1 << stream), 1 << stream);
sound/hda/core/ext/controller.c
290
void snd_hdac_ext_bus_link_clear_stream_id(struct hdac_ext_link *link,
sound/hda/core/ext/controller.c
293
snd_hdac_updatew(link->ml_addr, AZX_REG_ML_LOSIDV, (1 << stream), 0);
sound/hda/core/intel-sdw-acpi.c
31
struct fwnode_handle *link;
sound/hda/core/intel-sdw-acpi.c
39
link = fwnode_get_named_child_node(fw_node, name);
sound/hda/core/intel-sdw-acpi.c
40
if (!link)
sound/hda/core/intel-sdw-acpi.c
43
fwnode_property_read_u32(link,
sound/hda/core/intel-sdw-acpi.c
47
fwnode_handle_put(link);
sound/pcmcia/pdaudiocf/pdaudiocf.c
101
err = snd_card_new(&link->dev, index[i], id[i], THIS_MODULE,
sound/pcmcia/pdaudiocf/pdaudiocf.c
104
dev_err(&link->dev, "pdacf: cannot create a card instance\n");
sound/pcmcia/pdaudiocf/pdaudiocf.c
124
pdacf->p_dev = link;
sound/pcmcia/pdaudiocf/pdaudiocf.c
125
link->priv = pdacf;
sound/pcmcia/pdaudiocf/pdaudiocf.c
127
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
sound/pcmcia/pdaudiocf/pdaudiocf.c
128
link->resource[0]->end = 16;
sound/pcmcia/pdaudiocf/pdaudiocf.c
130
link->config_flags = CONF_ENABLE_IRQ | CONF_ENABLE_PULSE_IRQ;
sound/pcmcia/pdaudiocf/pdaudiocf.c
131
link->config_index = 1;
sound/pcmcia/pdaudiocf/pdaudiocf.c
132
link->config_regs = PRESENT_OPTION;
sound/pcmcia/pdaudiocf/pdaudiocf.c
134
err = pdacf_config(link);
sound/pcmcia/pdaudiocf/pdaudiocf.c
189
static void snd_pdacf_detach(struct pcmcia_device *link)
sound/pcmcia/pdaudiocf/pdaudiocf.c
191
struct snd_pdacf *chip = link->priv;
sound/pcmcia/pdaudiocf/pdaudiocf.c
204
static int pdacf_config(struct pcmcia_device *link)
sound/pcmcia/pdaudiocf/pdaudiocf.c
206
struct snd_pdacf *pdacf = link->priv;
sound/pcmcia/pdaudiocf/pdaudiocf.c
209
link->config_index = 0x5;
sound/pcmcia/pdaudiocf/pdaudiocf.c
210
link->config_flags |= CONF_ENABLE_IRQ | CONF_ENABLE_PULSE_IRQ;
sound/pcmcia/pdaudiocf/pdaudiocf.c
212
ret = pcmcia_request_io(link);
sound/pcmcia/pdaudiocf/pdaudiocf.c
216
ret = request_threaded_irq(link->irq, pdacf_interrupt,
sound/pcmcia/pdaudiocf/pdaudiocf.c
218
IRQF_SHARED, link->devname, link->priv);
sound/pcmcia/pdaudiocf/pdaudiocf.c
222
ret = pcmcia_enable_device(link);
sound/pcmcia/pdaudiocf/pdaudiocf.c
226
if (snd_pdacf_assign_resources(pdacf, link->resource[0]->start,
sound/pcmcia/pdaudiocf/pdaudiocf.c
227
link->irq) < 0)
sound/pcmcia/pdaudiocf/pdaudiocf.c
230
pdacf->card->sync_irq = link->irq;
sound/pcmcia/pdaudiocf/pdaudiocf.c
234
free_irq(link->irq, link->priv);
sound/pcmcia/pdaudiocf/pdaudiocf.c
236
pcmcia_disable_device(link);
sound/pcmcia/pdaudiocf/pdaudiocf.c
242
static int pdacf_suspend(struct pcmcia_device *link)
sound/pcmcia/pdaudiocf/pdaudiocf.c
244
struct snd_pdacf *chip = link->priv;
sound/pcmcia/pdaudiocf/pdaudiocf.c
252
static int pdacf_resume(struct pcmcia_device *link)
sound/pcmcia/pdaudiocf/pdaudiocf.c
254
struct snd_pdacf *chip = link->priv;
sound/pcmcia/pdaudiocf/pdaudiocf.c
256
if (pcmcia_dev_present(link)) {
sound/pcmcia/pdaudiocf/pdaudiocf.c
45
static int pdacf_config(struct pcmcia_device *link);
sound/pcmcia/pdaudiocf/pdaudiocf.c
48
static void pdacf_release(struct pcmcia_device *link)
sound/pcmcia/pdaudiocf/pdaudiocf.c
50
free_irq(link->irq, link->priv);
sound/pcmcia/pdaudiocf/pdaudiocf.c
51
pcmcia_disable_device(link);
sound/pcmcia/pdaudiocf/pdaudiocf.c
59
struct pcmcia_device *link = pdacf->p_dev;
sound/pcmcia/pdaudiocf/pdaudiocf.c
61
pdacf_release(link);
sound/pcmcia/pdaudiocf/pdaudiocf.c
79
static int snd_pdacf_probe(struct pcmcia_device *link)
sound/pcmcia/pdaudiocf/pdaudiocf.c
94
dev_err(&link->dev, "pdacf: too many cards found\n");
sound/pcmcia/vx/vxpocket.c
107
struct pcmcia_device *link,
sound/pcmcia/vx/vxpocket.c
122
vxp->p_dev = link;
sound/pcmcia/vx/vxpocket.c
123
link->priv = chip;
sound/pcmcia/vx/vxpocket.c
125
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
sound/pcmcia/vx/vxpocket.c
126
link->resource[0]->end = 16;
sound/pcmcia/vx/vxpocket.c
128
link->config_flags |= CONF_ENABLE_IRQ;
sound/pcmcia/vx/vxpocket.c
129
link->config_index = 1;
sound/pcmcia/vx/vxpocket.c
130
link->config_regs = PRESENT_OPTION;
sound/pcmcia/vx/vxpocket.c
177
static int vxpocket_config(struct pcmcia_device *link)
sound/pcmcia/vx/vxpocket.c
179
struct vx_core *chip = link->priv;
sound/pcmcia/vx/vxpocket.c
183
if (!strcmp(link->prod_id[1], "VX-POCKET")) {
sound/pcmcia/vx/vxpocket.c
193
ret = pcmcia_request_io(link);
sound/pcmcia/vx/vxpocket.c
197
ret = request_threaded_irq(link->irq, snd_vx_irq_handler,
sound/pcmcia/vx/vxpocket.c
199
IRQF_SHARED, link->devname, link->priv);
sound/pcmcia/vx/vxpocket.c
203
ret = pcmcia_enable_device(link);
sound/pcmcia/vx/vxpocket.c
207
if (snd_vxpocket_assign_resources(chip, link->resource[0]->start,
sound/pcmcia/vx/vxpocket.c
208
link->irq) < 0)
sound/pcmcia/vx/vxpocket.c
214
free_irq(link->irq, link->priv);
sound/pcmcia/vx/vxpocket.c
216
pcmcia_disable_device(link);
sound/pcmcia/vx/vxpocket.c
222
static int vxp_suspend(struct pcmcia_device *link)
sound/pcmcia/vx/vxpocket.c
224
struct vx_core *chip = link->priv;
sound/pcmcia/vx/vxpocket.c
232
static int vxp_resume(struct pcmcia_device *link)
sound/pcmcia/vx/vxpocket.c
234
struct vx_core *chip = link->priv;
sound/pcmcia/vx/vxpocket.c
236
if (pcmcia_dev_present(link)) {
sound/pcmcia/vx/vxpocket.c
296
static void vxpocket_detach(struct pcmcia_device *link)
sound/pcmcia/vx/vxpocket.c
301
if (! link)
sound/pcmcia/vx/vxpocket.c
304
vxp = link->priv;
sound/pcmcia/vx/vxpocket.c
310
vxpocket_release(link);
sound/pcmcia/vx/vxpocket.c
47
static void vxpocket_release(struct pcmcia_device *link)
sound/pcmcia/vx/vxpocket.c
49
free_irq(link->irq, link->priv);
sound/pcmcia/vx/vxpocket.c
50
pcmcia_disable_device(link);
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
389
static int acp3x_es83xx_configure_link(struct snd_soc_card *card, struct snd_soc_dai_link *link)
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
391
link->codecs = codec;
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
392
link->num_codecs = ARRAY_SIZE(codec);
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
393
link->init = acp3x_es83xx_init;
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
394
link->ops = &acp3x_es83xx_ops;
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
395
link->dai_fmt = SND_SOC_DAIFMT_I2S
sound/soc/amd/ps/pci-ps.c
312
const struct snd_soc_acpi_link_adr *link;
sound/soc/amd/ps/pci-ps.c
325
link = mach->links;
sound/soc/amd/ps/pci-ps.c
326
for (i = 0; i < acp_data->info.count && link->num_adr; link++, i++) {
sound/soc/amd/ps/pci-ps.c
327
if (!snd_soc_acpi_sdw_link_slaves_found(dev, link,
sound/soc/amd/ps/pci-ps.c
331
if (i == acp_data->info.count || !link->num_adr)
sound/soc/codecs/cs35l56.c
1647
struct fwnode_handle *link;
sound/soc/codecs/cs35l56.c
1653
fwnode_for_each_child_node(dev_fwnode(cs35l56->base.dev), link) {
sound/soc/codecs/cs35l56.c
1654
ext_node = fwnode_get_named_child_node(link,
sound/soc/codecs/cs35l56.c
1657
fwnode_handle_put(link);
sound/soc/fsl/fsl_dma.c
162
struct fsl_dma_link_descriptor *link =
sound/soc/fsl/fsl_dma.c
163
&dma_private->link[dma_private->current_link];
sound/soc/fsl/fsl_dma.c
170
link->source_addr = cpu_to_be32(dma_private->dma_buf_next);
sound/soc/fsl/fsl_dma.c
172
link->source_attr = cpu_to_be32(CCSR_DMA_ATR_SNOOP |
sound/soc/fsl/fsl_dma.c
176
link->dest_addr = cpu_to_be32(dma_private->dma_buf_next);
sound/soc/fsl/fsl_dma.c
178
link->dest_attr = cpu_to_be32(CCSR_DMA_ATR_SNOOP |
sound/soc/fsl/fsl_dma.c
433
dma_private->link[i].next = cpu_to_be64(temp_link);
sound/soc/fsl/fsl_dma.c
438
dma_private->link[i - 1].next = cpu_to_be64(dma_private->ld_buf_phys);
sound/soc/fsl/fsl_dma.c
615
struct fsl_dma_link_descriptor *link = &dma_private->link[i];
sound/soc/fsl/fsl_dma.c
617
link->count = cpu_to_be32(period_size);
sound/soc/fsl/fsl_dma.c
637
link->source_addr = cpu_to_be32(temp_addr);
sound/soc/fsl/fsl_dma.c
638
link->source_attr = cpu_to_be32(CCSR_DMA_ATR_SNOOP |
sound/soc/fsl/fsl_dma.c
641
link->dest_addr = cpu_to_be32(ssi_sxx_phys);
sound/soc/fsl/fsl_dma.c
642
link->dest_attr = cpu_to_be32(CCSR_DMA_ATR_NOSNOOP |
sound/soc/fsl/fsl_dma.c
645
link->source_addr = cpu_to_be32(ssi_sxx_phys);
sound/soc/fsl/fsl_dma.c
646
link->source_attr = cpu_to_be32(CCSR_DMA_ATR_NOSNOOP |
sound/soc/fsl/fsl_dma.c
649
link->dest_addr = cpu_to_be32(temp_addr);
sound/soc/fsl/fsl_dma.c
650
link->dest_attr = cpu_to_be32(CCSR_DMA_ATR_SNOOP |
sound/soc/fsl/fsl_dma.c
94
struct fsl_dma_link_descriptor link[NUM_DMA_LINKS];
sound/soc/fsl/imx-card.c
544
struct snd_soc_dai_link *link;
sound/soc/fsl/imx-card.c
569
card->dai_link = devm_kcalloc(dev, num_links, sizeof(*link), GFP_KERNEL);
sound/soc/fsl/imx-card.c
578
link = card->dai_link;
sound/soc/fsl/imx-card.c
587
link->cpus = &dlc[0];
sound/soc/fsl/imx-card.c
588
link->platforms = &dlc[1];
sound/soc/fsl/imx-card.c
590
link->num_cpus = 1;
sound/soc/fsl/imx-card.c
591
link->num_platforms = 1;
sound/soc/fsl/imx-card.c
593
ret = of_property_read_string(np, "link-name", &link->name);
sound/soc/fsl/imx-card.c
601
dev_err(dev, "%s: Can't find cpu DT node\n", link->name);
sound/soc/fsl/imx-card.c
606
ret = snd_soc_of_get_dlc(cpu, &args, link->cpus, 0);
sound/soc/fsl/imx-card.c
609
"%s: error getting cpu dai info\n", link->name);
sound/soc/fsl/imx-card.c
637
link->platforms->of_node = link->cpus->of_node;
sound/soc/fsl/imx-card.c
638
link->id = args.args[0];
sound/soc/fsl/imx-card.c
642
ret = snd_soc_of_get_dai_link_codecs(dev, codec, link);
sound/soc/fsl/imx-card.c
645
link->name);
sound/soc/fsl/imx-card.c
649
plat_data->num_codecs = link->num_codecs;
sound/soc/fsl/imx-card.c
652
if (!strcmp(link->codecs->dai_name, "ak4458-aif"))
sound/soc/fsl/imx-card.c
654
else if (!strcmp(link->codecs->dai_name, "ak4497-aif"))
sound/soc/fsl/imx-card.c
656
else if (!strcmp(link->codecs->dai_name, "ak5558-aif"))
sound/soc/fsl/imx-card.c
658
else if (!strcmp(link->codecs->dai_name, "ak5552-aif"))
sound/soc/fsl/imx-card.c
660
else if (!strcmp(link->codecs->dai_name, "cs42888"))
sound/soc/fsl/imx-card.c
662
else if (!strcmp(link->codecs->dai_name, "wm8524-hifi"))
sound/soc/fsl/imx-card.c
666
link->codecs = &snd_soc_dummy_dlc;
sound/soc/fsl/imx-card.c
667
link->num_codecs = 1;
sound/soc/fsl/imx-card.c
670
if (!strncmp(link->name, "HiFi-ASRC-FE", 12)) {
sound/soc/fsl/imx-card.c
672
link->dynamic = 1;
sound/soc/fsl/imx-card.c
673
link->dpcm_merged_chan = 1;
sound/soc/fsl/imx-card.c
698
} else if (!strncmp(link->name, "HiFi-ASRC-BE", 12)) {
sound/soc/fsl/imx-card.c
704
link->no_pcm = 1;
sound/soc/fsl/imx-card.c
705
link->platforms = NULL;
sound/soc/fsl/imx-card.c
707
link->be_hw_params_fixup = be_hw_params_fixup;
sound/soc/fsl/imx-card.c
708
link->ops = &imx_aif_ops_be;
sound/soc/fsl/imx-card.c
710
link->ops = &imx_aif_ops;
sound/soc/fsl/imx-card.c
716
link->playback_only = playback_only;
sound/soc/fsl/imx-card.c
717
link->capture_only = capture_only;
sound/soc/fsl/imx-card.c
721
NULL, &link->dai_fmt);
sound/soc/fsl/imx-card.c
723
link->dai_fmt = SND_SOC_DAIFMT_NB_NF |
sound/soc/fsl/imx-card.c
738
link->ignore_pmdown_time = 1;
sound/soc/fsl/imx-card.c
739
link->stream_name = link->name;
sound/soc/fsl/imx-card.c
740
link++;
sound/soc/fsl/imx-card.c
763
struct snd_soc_dai_link *link_be = NULL, *link;
sound/soc/fsl/imx-card.c
907
for_each_card_prelinks(&data->card, i, link) {
sound/soc/fsl/imx-card.c
908
if (link->no_pcm == 1)
sound/soc/fsl/imx-card.c
909
link_be = link;
sound/soc/fsl/imx-card.c
911
for_each_card_prelinks(&data->card, i, link) {
sound/soc/fsl/imx-card.c
912
if (link->dynamic == 1 && link_be) {
sound/soc/fsl/imx-card.c
913
link->playback_only = link_be->playback_only;
sound/soc/fsl/imx-card.c
914
link->capture_only = link_be->capture_only;
sound/soc/generic/audio-graph-card.c
107
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/audio-graph-card.c
108
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/audio-graph-card.c
142
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/audio-graph-card.c
143
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/audio-graph-card.c
202
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/audio-graph-card.c
203
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/audio-graph-card.c
276
li->link++;
sound/soc/generic/audio-graph-card.c
287
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/audio-graph-card.c
314
li->link++;
sound/soc/generic/audio-graph-card.c
443
if (li->link >= SNDRV_MAX_LINKS)
sound/soc/generic/audio-graph-card.c
451
li->num[li->link].cpus = 1;
sound/soc/generic/audio-graph-card.c
452
li->num[li->link].platforms = 1;
sound/soc/generic/audio-graph-card.c
454
li->num[li->link].codecs = 1;
sound/soc/generic/audio-graph-card.c
456
li->link += 1; /* 1xCPU-Codec */
sound/soc/generic/audio-graph-card.c
472
if (li->link >= SNDRV_MAX_LINKS)
sound/soc/generic/audio-graph-card.c
481
li->num[li->link].cpus = 1;
sound/soc/generic/audio-graph-card.c
482
li->num[li->link].platforms = 1;
sound/soc/generic/audio-graph-card.c
484
li->link++; /* 1xCPU-dummy */
sound/soc/generic/audio-graph-card.c
486
li->num[li->link].codecs = 1;
sound/soc/generic/audio-graph-card.c
488
li->link++; /* 1xdummy-Codec */
sound/soc/generic/audio-graph-card.c
568
if (!li->link)
sound/soc/generic/audio-graph-card2.c
1096
li->link++;
sound/soc/generic/audio-graph-card2.c
1151
li->num[li->link].cpus =
sound/soc/generic/audio-graph-card2.c
1152
li->num[li->link].platforms = graph_counter(cpu_port);
sound/soc/generic/audio-graph-card2.c
1154
li->num[li->link].codecs = graph_counter(codec_port);
sound/soc/generic/audio-graph-card2.c
1187
li->num[li->link].cpus = graph_counter(rport); /* FE */
sound/soc/generic/audio-graph-card2.c
1188
li->num[li->link].platforms = graph_counter(rport);
sound/soc/generic/audio-graph-card2.c
1190
li->num[li->link].codecs = graph_counter(rport); /* BE */
sound/soc/generic/audio-graph-card2.c
1221
li->num[li->link].cpus =
sound/soc/generic/audio-graph-card2.c
1222
li->num[li->link].platforms = graph_counter(codec0);
sound/soc/generic/audio-graph-card2.c
1224
li->num[li->link].codecs = graph_counter(codec1);
sound/soc/generic/audio-graph-card2.c
1239
if (li->link >= SNDRV_MAX_LINKS) {
sound/soc/generic/audio-graph-card2.c
1267
li->link++;
sound/soc/generic/audio-graph-card2.c
1323
if (!li->link)
sound/soc/generic/audio-graph-card2.c
405
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/audio-graph-card2.c
406
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/audio-graph-card2.c
598
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/audio-graph-card2.c
741
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/audio-graph-card2.c
742
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/audio-graph-card2.c
880
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/audio-graph-card2.c
881
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/audio-graph-card2.c
969
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/simple-card-utils.c
903
dai_props = devm_kcalloc(dev, li->link, sizeof(*dai_props), GFP_KERNEL);
sound/soc/generic/simple-card-utils.c
904
dai_link = devm_kcalloc(dev, li->link, sizeof(*dai_link), GFP_KERNEL);
sound/soc/generic/simple-card-utils.c
912
for (i = 0; i < li->link; i++) {
sound/soc/generic/simple-card-utils.c
934
li->link, dai_num, cnf_num);
sound/soc/generic/simple-card-utils.c
943
card->num_links = li->link;
sound/soc/generic/simple-card-utils.c
947
for (i = 0; i < li->link; i++) {
sound/soc/generic/simple-card.c
150
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/simple-card.c
151
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/simple-card.c
185
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/simple-card.c
186
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/simple-card.c
238
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/simple-card.c
239
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/simple-card.c
303
li->link++;
sound/soc/generic/simple-card.c
315
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/simple-card.c
358
li->link++;
sound/soc/generic/simple-card.c
567
if (li->link >= SNDRV_MAX_LINKS)
sound/soc/generic/simple-card.c
584
li->num[li->link].cpus = 1;
sound/soc/generic/simple-card.c
585
li->num[li->link].platforms = 1;
sound/soc/generic/simple-card.c
587
li->num[li->link].codecs = 1;
sound/soc/generic/simple-card.c
589
li->link += 1;
sound/soc/generic/simple-card.c
602
if (li->link >= SNDRV_MAX_LINKS)
sound/soc/generic/simple-card.c
611
li->num[li->link].cpus = 1;
sound/soc/generic/simple-card.c
612
li->num[li->link].platforms = 1;
sound/soc/generic/simple-card.c
614
li->link++; /* CPU-dummy */
sound/soc/generic/simple-card.c
616
li->num[li->link].codecs = 1;
sound/soc/generic/simple-card.c
618
li->link++; /* dummy-Codec */
sound/soc/generic/simple-card.c
682
li->link = 1;
sound/soc/generic/simple-card.c
738
if (!li->link)
sound/soc/intel/avs/loader.c
687
struct hdac_ext_link *link;
sound/soc/intel/avs/loader.c
700
link = snd_hdac_ext_bus_get_hlink_by_id(&adev->base.core,
sound/soc/intel/avs/loader.c
702
if (link)
sound/soc/intel/avs/loader.c
703
adev->hw_cfg.i2s_caps.ctrl_count = link->slcount;
sound/soc/intel/avs/pcm.c
328
struct hdac_ext_link *link)
sound/soc/intel/avs/pcm.c
347
data->link = link;
sound/soc/intel/avs/pcm.c
354
struct hdac_ext_link *link;
sound/soc/intel/avs/pcm.c
361
link = snd_hdac_ext_bus_get_hlink_by_addr(&codec->bus->core, codec->core.addr);
sound/soc/intel/avs/pcm.c
362
if (!link)
sound/soc/intel/avs/pcm.c
365
ret = __avs_dai_hda_be_startup(substream, dai, link);
sound/soc/intel/avs/pcm.c
377
struct hdac_ext_link *link;
sound/soc/intel/avs/pcm.c
379
link = snd_hdac_ext_bus_get_hlink_by_id(&adev->base.core, AZX_REG_ML_LEPTR_ID_INTEL_SSP);
sound/soc/intel/avs/pcm.c
380
if (!link)
sound/soc/intel/avs/pcm.c
382
return __avs_dai_hda_be_startup(substream, dai, link);
sound/soc/intel/avs/pcm.c
388
struct hdac_ext_link *link;
sound/soc/intel/avs/pcm.c
390
link = snd_hdac_ext_bus_get_hlink_by_id(&adev->base.core, AZX_REG_ML_LEPTR_ID_INTEL_DMIC);
sound/soc/intel/avs/pcm.c
391
if (!link)
sound/soc/intel/avs/pcm.c
393
return __avs_dai_hda_be_startup(substream, dai, link);
sound/soc/intel/avs/pcm.c
40
struct hdac_ext_link *link;
sound/soc/intel/avs/pcm.c
442
snd_hdac_ext_bus_link_clear_stream_id(data->link,
sound/soc/intel/avs/pcm.c
476
snd_hdac_ext_bus_link_set_stream_id(data->link,
sound/soc/intel/avs/topology.c
1923
static int avs_link_load(struct snd_soc_component *comp, int index, struct snd_soc_dai_link *link,
sound/soc/intel/avs/topology.c
1926
if (link->ignore_suspend && !AVS_S0IX_SUPPORTED) {
sound/soc/intel/avs/topology.c
1928
link->ignore_suspend = false;
sound/soc/intel/avs/topology.c
1931
if (!link->no_pcm) {
sound/soc/intel/avs/topology.c
1933
link->nonatomic = true;
sound/soc/intel/avs/topology.c
1936
link->trigger[0] = SND_SOC_DPCM_TRIGGER_PRE;
sound/soc/intel/avs/topology.c
1937
link->trigger[1] = SND_SOC_DPCM_TRIGGER_PRE;
sound/soc/intel/avs/topology.c
1940
link->dpcm_merged_format = 1;
sound/soc/intel/boards/skl_hda_dsp_generic.c
89
struct snd_soc_dai_link *link)
sound/soc/intel/boards/skl_hda_dsp_generic.c
94
if (strstr(link->stream_name, "HDMI") && !ctx->hdmi.idisp_codec)
sound/soc/intel/boards/skl_hda_dsp_generic.c
95
link->ignore = true;
sound/soc/intel/boards/sof_board_helpers.c
180
static int set_ssp_codec_link(struct device *dev, struct snd_soc_dai_link *link,
sound/soc/intel/boards/sof_board_helpers.c
190
link->name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-Codec", ssp_codec);
sound/soc/intel/boards/sof_board_helpers.c
191
if (!link->name)
sound/soc/intel/boards/sof_board_helpers.c
211
link->cpus = cpus;
sound/soc/intel/boards/sof_board_helpers.c
212
link->num_cpus = 1;
sound/soc/intel/boards/sof_board_helpers.c
217
link->platforms = platform_component;
sound/soc/intel/boards/sof_board_helpers.c
218
link->num_platforms = ARRAY_SIZE(platform_component);
sound/soc/intel/boards/sof_board_helpers.c
220
link->id = be_id;
sound/soc/intel/boards/sof_board_helpers.c
221
link->no_pcm = 1;
sound/soc/intel/boards/sof_board_helpers.c
226
static int set_dmic_link(struct device *dev, struct snd_soc_dai_link *link,
sound/soc/intel/boards/sof_board_helpers.c
241
link->name = "dmic01";
sound/soc/intel/boards/sof_board_helpers.c
247
link->name = "dmic16k";
sound/soc/intel/boards/sof_board_helpers.c
255
link->cpus = cpus;
sound/soc/intel/boards/sof_board_helpers.c
256
link->num_cpus = 1;
sound/soc/intel/boards/sof_board_helpers.c
259
link->codecs = dmic_component;
sound/soc/intel/boards/sof_board_helpers.c
260
link->num_codecs = ARRAY_SIZE(dmic_component);
sound/soc/intel/boards/sof_board_helpers.c
263
link->platforms = platform_component;
sound/soc/intel/boards/sof_board_helpers.c
264
link->num_platforms = ARRAY_SIZE(platform_component);
sound/soc/intel/boards/sof_board_helpers.c
266
link->id = be_id;
sound/soc/intel/boards/sof_board_helpers.c
268
link->init = dmic_init;
sound/soc/intel/boards/sof_board_helpers.c
269
link->ignore_suspend = 1;
sound/soc/intel/boards/sof_board_helpers.c
270
link->no_pcm = 1;
sound/soc/intel/boards/sof_board_helpers.c
271
link->capture_only = 1;
sound/soc/intel/boards/sof_board_helpers.c
276
static int set_idisp_hdmi_link(struct device *dev, struct snd_soc_dai_link *link,
sound/soc/intel/boards/sof_board_helpers.c
285
link->name = devm_kasprintf(dev, GFP_KERNEL, "iDisp%d", hdmi_id);
sound/soc/intel/boards/sof_board_helpers.c
286
if (!link->name)
sound/soc/intel/boards/sof_board_helpers.c
299
link->cpus = cpus;
sound/soc/intel/boards/sof_board_helpers.c
300
link->num_cpus = 1;
sound/soc/intel/boards/sof_board_helpers.c
316
link->codecs = codecs;
sound/soc/intel/boards/sof_board_helpers.c
318
link->codecs = &snd_soc_dummy_dlc;
sound/soc/intel/boards/sof_board_helpers.c
320
link->num_codecs = 1;
sound/soc/intel/boards/sof_board_helpers.c
323
link->platforms = platform_component;
sound/soc/intel/boards/sof_board_helpers.c
324
link->num_platforms = ARRAY_SIZE(platform_component);
sound/soc/intel/boards/sof_board_helpers.c
326
link->id = be_id;
sound/soc/intel/boards/sof_board_helpers.c
327
link->init = (hdmi_id == 1) ? hdmi_init : NULL;
sound/soc/intel/boards/sof_board_helpers.c
328
link->no_pcm = 1;
sound/soc/intel/boards/sof_board_helpers.c
329
link->playback_only = 1;
sound/soc/intel/boards/sof_board_helpers.c
334
static int set_ssp_amp_link(struct device *dev, struct snd_soc_dai_link *link,
sound/soc/intel/boards/sof_board_helpers.c
344
link->name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-Codec", ssp_amp);
sound/soc/intel/boards/sof_board_helpers.c
345
if (!link->name)
sound/soc/intel/boards/sof_board_helpers.c
358
link->cpus = cpus;
sound/soc/intel/boards/sof_board_helpers.c
359
link->num_cpus = 1;
sound/soc/intel/boards/sof_board_helpers.c
365
link->platforms = platform_component;
sound/soc/intel/boards/sof_board_helpers.c
366
link->num_platforms = ARRAY_SIZE(platform_component);
sound/soc/intel/boards/sof_board_helpers.c
368
link->id = be_id;
sound/soc/intel/boards/sof_board_helpers.c
369
link->no_pcm = 1;
sound/soc/intel/boards/sof_board_helpers.c
374
static int set_bt_offload_link(struct device *dev, struct snd_soc_dai_link *link,
sound/soc/intel/boards/sof_board_helpers.c
382
link->name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-BT", ssp_bt);
sound/soc/intel/boards/sof_board_helpers.c
383
if (!link->name)
sound/soc/intel/boards/sof_board_helpers.c
396
link->cpus = cpus;
sound/soc/intel/boards/sof_board_helpers.c
397
link->num_cpus = 1;
sound/soc/intel/boards/sof_board_helpers.c
400
link->codecs = &snd_soc_dummy_dlc;
sound/soc/intel/boards/sof_board_helpers.c
401
link->num_codecs = 1;
sound/soc/intel/boards/sof_board_helpers.c
404
link->platforms = platform_component;
sound/soc/intel/boards/sof_board_helpers.c
405
link->num_platforms = ARRAY_SIZE(platform_component);
sound/soc/intel/boards/sof_board_helpers.c
407
link->id = be_id;
sound/soc/intel/boards/sof_board_helpers.c
408
link->no_pcm = 1;
sound/soc/intel/boards/sof_board_helpers.c
413
static int set_hdmi_in_link(struct device *dev, struct snd_soc_dai_link *link,
sound/soc/intel/boards/sof_board_helpers.c
421
link->name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-HDMI", ssp_hdmi);
sound/soc/intel/boards/sof_board_helpers.c
422
if (!link->name)
sound/soc/intel/boards/sof_board_helpers.c
435
link->cpus = cpus;
sound/soc/intel/boards/sof_board_helpers.c
436
link->num_cpus = 1;
sound/soc/intel/boards/sof_board_helpers.c
439
link->codecs = &snd_soc_dummy_dlc;
sound/soc/intel/boards/sof_board_helpers.c
440
link->num_codecs = 1;
sound/soc/intel/boards/sof_board_helpers.c
443
link->platforms = platform_component;
sound/soc/intel/boards/sof_board_helpers.c
444
link->num_platforms = ARRAY_SIZE(platform_component);
sound/soc/intel/boards/sof_board_helpers.c
446
link->id = be_id;
sound/soc/intel/boards/sof_board_helpers.c
447
link->no_pcm = 1;
sound/soc/intel/boards/sof_board_helpers.c
448
link->capture_only = 1;
sound/soc/intel/boards/sof_board_helpers.c
453
static int set_hda_codec_link(struct device *dev, struct snd_soc_dai_link *link,
sound/soc/intel/boards/sof_board_helpers.c
460
link->name = "Analog Playback and Capture";
sound/soc/intel/boards/sof_board_helpers.c
463
link->cpus = hda_analog_cpus;
sound/soc/intel/boards/sof_board_helpers.c
464
link->num_cpus = ARRAY_SIZE(hda_analog_cpus);
sound/soc/intel/boards/sof_board_helpers.c
467
link->codecs = hda_analog_codecs;
sound/soc/intel/boards/sof_board_helpers.c
468
link->num_codecs = ARRAY_SIZE(hda_analog_codecs);
sound/soc/intel/boards/sof_board_helpers.c
473
link->name = "Digital Playback and Capture";
sound/soc/intel/boards/sof_board_helpers.c
476
link->cpus = hda_digital_cpus;
sound/soc/intel/boards/sof_board_helpers.c
477
link->num_cpus = ARRAY_SIZE(hda_digital_cpus);
sound/soc/intel/boards/sof_board_helpers.c
480
link->codecs = hda_digital_codecs;
sound/soc/intel/boards/sof_board_helpers.c
481
link->num_codecs = ARRAY_SIZE(hda_digital_codecs);
sound/soc/intel/boards/sof_board_helpers.c
489
link->platforms = platform_component;
sound/soc/intel/boards/sof_board_helpers.c
490
link->num_platforms = ARRAY_SIZE(platform_component);
sound/soc/intel/boards/sof_board_helpers.c
492
link->id = be_id;
sound/soc/intel/boards/sof_board_helpers.c
494
link->init = hda_init;
sound/soc/intel/boards/sof_board_helpers.c
495
link->no_pcm = 1;
sound/soc/intel/boards/sof_board_helpers.c
545
unsigned long link_order, link;
sound/soc/intel/boards/sof_board_helpers.c
569
link = link_order & SOF_LINK_ORDER_MASK;
sound/soc/intel/boards/sof_board_helpers.c
580
switch (link) {
sound/soc/intel/boards/sof_board_helpers.c
720
dev_err(dev, "invalid link type %ld\n", link);
sound/soc/intel/boards/sof_cirrus_common.c
190
void cs35l41_set_dai_link(struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_cirrus_common.c
192
link->num_codecs = cs35l41_compute_codec_conf();
sound/soc/intel/boards/sof_cirrus_common.c
193
link->codecs = cs35l41_components;
sound/soc/intel/boards/sof_cirrus_common.c
194
link->init = cs35l41_init;
sound/soc/intel/boards/sof_cirrus_common.c
195
link->ops = &cs35l41_ops;
sound/soc/intel/boards/sof_cirrus_common.h
23
void cs35l41_set_dai_link(struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_maxim_common.c
279
void max_98373_dai_link(struct device *dev, struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_maxim_common.c
281
link->codecs = max_98373_components;
sound/soc/intel/boards/sof_maxim_common.c
282
link->num_codecs = ARRAY_SIZE(max_98373_components);
sound/soc/intel/boards/sof_maxim_common.c
283
link->init = max_98373_spk_codec_init;
sound/soc/intel/boards/sof_maxim_common.c
284
link->ops = &max_98373_ops;
sound/soc/intel/boards/sof_maxim_common.c
490
void max_98390_dai_link(struct device *dev, struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_maxim_common.c
494
link->codecs = max_98390_components;
sound/soc/intel/boards/sof_maxim_common.c
499
link->num_codecs = num_codecs;
sound/soc/intel/boards/sof_maxim_common.c
507
link->init = max_98390_init;
sound/soc/intel/boards/sof_maxim_common.c
508
link->ops = &max_98390_ops;
sound/soc/intel/boards/sof_maxim_common.c
595
void max_98357a_dai_link(struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_maxim_common.c
597
link->codecs = max_98357a_components;
sound/soc/intel/boards/sof_maxim_common.c
598
link->num_codecs = ARRAY_SIZE(max_98357a_components);
sound/soc/intel/boards/sof_maxim_common.c
599
link->init = max_98357a_init;
sound/soc/intel/boards/sof_maxim_common.c
603
void max_98360a_dai_link(struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_maxim_common.c
605
link->codecs = max_98360a_components;
sound/soc/intel/boards/sof_maxim_common.c
606
link->num_codecs = ARRAY_SIZE(max_98360a_components);
sound/soc/intel/boards/sof_maxim_common.c
607
link->init = max_98357a_init;
sound/soc/intel/boards/sof_maxim_common.h
23
void max_98373_dai_link(struct device *dev, struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_maxim_common.h
35
void max_98390_dai_link(struct device *dev, struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_maxim_common.h
45
void max_98357a_dai_link(struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_maxim_common.h
46
void max_98360a_dai_link(struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_nuvoton_common.c
65
void nau8318_set_dai_link(struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_nuvoton_common.c
67
link->codecs = nau8318_components;
sound/soc/intel/boards/sof_nuvoton_common.c
68
link->num_codecs = ARRAY_SIZE(nau8318_components);
sound/soc/intel/boards/sof_nuvoton_common.c
69
link->init = nau8318_init;
sound/soc/intel/boards/sof_nuvoton_common.h
20
void nau8318_set_dai_link(struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_realtek_common.c
258
void sof_rt1011_dai_link(struct device *dev, struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_realtek_common.c
262
link->codecs = rt1011_dai_link_components;
sound/soc/intel/boards/sof_realtek_common.c
267
link->num_codecs = num_codecs;
sound/soc/intel/boards/sof_realtek_common.c
274
link->init = rt1011_init;
sound/soc/intel/boards/sof_realtek_common.c
275
link->ops = &rt1011_ops;
sound/soc/intel/boards/sof_realtek_common.c
369
void sof_rt1015p_dai_link(struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_realtek_common.c
371
link->codecs = rt1015p_dai_link_components;
sound/soc/intel/boards/sof_realtek_common.c
372
link->num_codecs = ARRAY_SIZE(rt1015p_dai_link_components);
sound/soc/intel/boards/sof_realtek_common.c
373
link->init = rt1015p_init;
sound/soc/intel/boards/sof_realtek_common.c
374
link->ops = &rt1015p_ops;
sound/soc/intel/boards/sof_realtek_common.c
528
void sof_rt1015_dai_link(struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_realtek_common.c
530
link->codecs = rt1015_components;
sound/soc/intel/boards/sof_realtek_common.c
531
link->num_codecs = ARRAY_SIZE(rt1015_components);
sound/soc/intel/boards/sof_realtek_common.c
532
link->init = speaker_codec_init_lr;
sound/soc/intel/boards/sof_realtek_common.c
533
link->ops = &rt1015_ops;
sound/soc/intel/boards/sof_realtek_common.c
625
void sof_rt1308_dai_link(struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_realtek_common.c
627
link->codecs = rt1308_components;
sound/soc/intel/boards/sof_realtek_common.c
628
link->num_codecs = ARRAY_SIZE(rt1308_components);
sound/soc/intel/boards/sof_realtek_common.c
629
link->init = rt1308_init;
sound/soc/intel/boards/sof_realtek_common.c
630
link->ops = &rt1308_ops;
sound/soc/intel/boards/sof_realtek_common.c
680
void sof_rt1019p_dai_link(struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_realtek_common.c
682
link->codecs = rt1019p_components;
sound/soc/intel/boards/sof_realtek_common.c
683
link->num_codecs = ARRAY_SIZE(rt1019p_components);
sound/soc/intel/boards/sof_realtek_common.c
684
link->init = rt1019p_init;
sound/soc/intel/boards/sof_realtek_common.h
26
void sof_rt1011_dai_link(struct device *dev, struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_realtek_common.h
35
void sof_rt1015p_dai_link(struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_realtek_common.h
45
void sof_rt1015_dai_link(struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_realtek_common.h
53
void sof_rt1308_dai_link(struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_realtek_common.h
61
void sof_rt1019p_dai_link(struct snd_soc_dai_link *link);
sound/soc/intel/boards/sof_sdw.c
1422
struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_sdw.c
1428
if (strstr(link->stream_name, "HDMI") && !intel_ctx->hdmi.idisp_codec)
sound/soc/intel/boards/sof_sdw.c
1429
link->ignore = true;
sound/soc/intel/boards/sof_ti_common.c
68
void sof_tas2563_dai_link(struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_ti_common.c
70
link->codecs = tas2563_dai_link_components;
sound/soc/intel/boards/sof_ti_common.c
71
link->num_codecs = ARRAY_SIZE(tas2563_dai_link_components);
sound/soc/intel/boards/sof_ti_common.c
72
link->init = tas2563_init;
sound/soc/intel/boards/sof_ti_common.h
22
void sof_tas2563_dai_link(struct snd_soc_dai_link *link);
sound/soc/mediatek/mt8186/mt8186-mt6366-common.c
43
struct snd_soc_dai_link *link,
sound/soc/mediatek/mt8186/mt8186-mt6366-common.c
49
if (node && strcmp(link->name, link_name) == 0) {
sound/soc/mediatek/mt8186/mt8186-mt6366-common.c
50
ret = snd_soc_of_get_dai_link_codecs(card->dev, node, link);
sound/soc/mediatek/mt8186/mt8186-mt6366-common.h
14
struct snd_soc_dai_link *link,
sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
1023
struct snd_soc_dai_link *link,
sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
1029
if (node && strcmp(link->name, link_name) == 0) {
sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
1030
ret = snd_soc_of_get_dai_link_codecs(card->dev, node, link);
sound/soc/meson/axg-card.c
157
struct snd_soc_dai_link *link,
sound/soc/meson/axg-card.c
180
link->capture_only = 1;
sound/soc/meson/axg-card.c
190
link->playback_only = 1;
sound/soc/meson/axg-card.c
220
struct snd_soc_dai_link *link,
sound/soc/meson/axg-card.c
226
codec_mask = devm_kcalloc(card->dev, link->num_codecs,
sound/soc/meson/axg-card.c
250
struct snd_soc_dai_link *link = &card->dai_link[*index];
sound/soc/meson/axg-card.c
261
link->ops = &axg_card_tdm_be_ops;
sound/soc/meson/axg-card.c
262
link->init = axg_card_tdm_dai_init;
sound/soc/meson/axg-card.c
263
link->dai_fmt = meson_card_parse_daifmt(node, link->cpus->of_node);
sound/soc/meson/axg-card.c
267
ret = axg_card_parse_cpu_tdm_slots(card, link, node, be);
sound/soc/meson/axg-card.c
273
ret = axg_card_parse_codecs_masks(card, link, node, be);
sound/soc/meson/axg-card.c
278
if (!link->capture_only) {
sound/soc/meson/gx-card.c
49
struct snd_soc_dai_link *link = &card->dai_link[*index];
sound/soc/meson/gx-card.c
59
link->ops = &gx_card_i2s_be_ops;
sound/soc/meson/gx-card.c
60
link->dai_fmt = meson_card_parse_daifmt(node, link->cpus->of_node);
sound/soc/meson/meson-card-utils.c
102
link->name = name;
sound/soc/meson/meson-card-utils.c
103
link->stream_name = name;
sound/soc/meson/meson-card-utils.c
136
struct snd_soc_dai_link *link,
sound/soc/meson/meson-card-utils.c
153
link->codecs = codec;
sound/soc/meson/meson-card-utils.c
154
link->num_codecs = num_codecs;
sound/soc/meson/meson-card-utils.c
164
ret = meson_card_set_link_name(card, link, node, "be");
sound/soc/meson/meson-card-utils.c
173
struct snd_soc_dai_link *link,
sound/soc/meson/meson-card-utils.c
177
link->codecs = &snd_soc_dummy_dlc;
sound/soc/meson/meson-card-utils.c
178
link->num_codecs = 1;
sound/soc/meson/meson-card-utils.c
180
link->dynamic = 1;
sound/soc/meson/meson-card-utils.c
181
link->dpcm_merged_format = 1;
sound/soc/meson/meson-card-utils.c
182
link->dpcm_merged_chan = 1;
sound/soc/meson/meson-card-utils.c
183
link->dpcm_merged_rate = 1;
sound/soc/meson/meson-card-utils.c
186
link->playback_only = 1;
sound/soc/meson/meson-card-utils.c
188
link->capture_only = 1;
sound/soc/meson/meson-card-utils.c
190
return meson_card_set_link_name(card, link, node, "fe");
sound/soc/meson/meson-card-utils.c
238
struct snd_soc_dai_link *link;
sound/soc/meson/meson-card-utils.c
244
for_each_card_prelinks(card, i, link) {
sound/soc/meson/meson-card-utils.c
245
if (link->cpus)
sound/soc/meson/meson-card-utils.c
246
of_node_put(link->cpus->of_node);
sound/soc/meson/meson-card-utils.c
247
for_each_link_codecs(link, j, codec)
sound/soc/meson/meson-card-utils.c
93
struct snd_soc_dai_link *link,
sound/soc/meson/meson-card.h
44
struct snd_soc_dai_link *link,
sound/soc/meson/meson-card.h
47
struct snd_soc_dai_link *link,
sound/soc/qcom/apq8016_sbc.c
158
struct snd_soc_dai_link *link;
sound/soc/qcom/apq8016_sbc.c
161
for_each_card_prelinks(card, i, link)
sound/soc/qcom/apq8016_sbc.c
162
link->init = apq8016_sbc_dai_init;
sound/soc/qcom/apq8016_sbc.c
257
struct snd_soc_dai_link *link;
sound/soc/qcom/apq8016_sbc.c
263
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/apq8016_sbc.c
264
if (link->no_pcm) {
sound/soc/qcom/apq8016_sbc.c
265
link->init = msm8916_qdsp6_dai_init;
sound/soc/qcom/apq8016_sbc.c
266
link->ops = &msm8916_qdsp6_be_ops;
sound/soc/qcom/apq8016_sbc.c
267
link->be_hw_params_fixup = msm8916_qdsp6_be_hw_params_fixup;
sound/soc/qcom/apq8096.c
100
link->init = apq8096_init;
sound/soc/qcom/apq8096.c
101
link->ops = &apq8096_ops;
sound/soc/qcom/apq8096.c
94
struct snd_soc_dai_link *link;
sound/soc/qcom/apq8096.c
97
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/apq8096.c
98
if (link->no_pcm == 1) {
sound/soc/qcom/apq8096.c
99
link->be_hw_params_fixup = apq8096_be_hw_params_fixup;
sound/soc/qcom/common.c
109
dev_err(dev, "%s: Can't find cpu DT node\n", link->name);
sound/soc/qcom/common.c
114
ret = snd_soc_of_get_dlc(cpu, &args, link->cpus, 0);
sound/soc/qcom/common.c
117
"%s: error getting cpu dai name\n", link->name);
sound/soc/qcom/common.c
121
link->id = args.args[0];
sound/soc/qcom/common.c
124
link->platforms->of_node = of_parse_phandle(platform,
sound/soc/qcom/common.c
127
if (!link->platforms->of_node) {
sound/soc/qcom/common.c
128
dev_err(card->dev, "%s: platform dai not found\n", link->name);
sound/soc/qcom/common.c
133
link->platforms->of_node = link->cpus->of_node;
sound/soc/qcom/common.c
137
ret = snd_soc_of_get_dai_link_codecs(dev, codec, link);
sound/soc/qcom/common.c
140
"%s: codec dai not found\n", link->name);
sound/soc/qcom/common.c
146
link->no_pcm = 1;
sound/soc/qcom/common.c
147
link->ignore_pmdown_time = 1;
sound/soc/qcom/common.c
151
link->codecs = &snd_soc_dummy_dlc;
sound/soc/qcom/common.c
152
link->num_codecs = 1;
sound/soc/qcom/common.c
153
link->dynamic = 1;
sound/soc/qcom/common.c
158
link->ignore_suspend = 1;
sound/soc/qcom/common.c
159
link->nonatomic = 1;
sound/soc/qcom/common.c
162
link->stream_name = link->name;
sound/soc/qcom/common.c
163
link++;
sound/soc/qcom/common.c
33
struct snd_soc_dai_link *link;
sound/soc/qcom/common.c
78
card->dai_link = devm_kcalloc(dev, num_links, sizeof(*link), GFP_KERNEL);
sound/soc/qcom/common.c
83
link = card->dai_link;
sound/soc/qcom/common.c
92
link->cpus = &dlc[0];
sound/soc/qcom/common.c
93
link->platforms = &dlc[1];
sound/soc/qcom/common.c
95
link->num_cpus = 1;
sound/soc/qcom/common.c
96
link->num_platforms = 1;
sound/soc/qcom/common.c
98
ret = of_property_read_string(np, "link-name", &link->name);
sound/soc/qcom/qdsp6/topology.c
1089
struct snd_soc_dai_link *link,
sound/soc/qcom/qdsp6/topology.c
1092
link->nonatomic = true;
sound/soc/qcom/qdsp6/topology.c
1093
link->dynamic = true;
sound/soc/qcom/qdsp6/topology.c
1094
link->platforms->name = NULL;
sound/soc/qcom/qdsp6/topology.c
1095
link->platforms->of_node = of_get_compatible_child(component->dev->of_node,
sound/soc/qcom/sc7180.c
497
struct snd_soc_dai_link *link;
sound/soc/qcom/sc7180.c
544
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/sc7180.c
546
link->ops = &sc7180_adau7002_ops;
sound/soc/qcom/sc7180.c
547
link->init = sc7180_adau7002_init;
sound/soc/qcom/sc7180.c
549
if (link->no_pcm == 1) {
sound/soc/qcom/sc7180.c
550
link->ops = &sc7180_qdsp_ops;
sound/soc/qcom/sc7180.c
551
link->be_hw_params_fixup = sc7180_qdsp_be_hw_params_fixup;
sound/soc/qcom/sc7180.c
552
link->init = sc7180_qdsp_init;
sound/soc/qcom/sc7180.c
555
link->ops = &sc7180_ops;
sound/soc/qcom/sc7180.c
556
link->init = sc7180_init;
sound/soc/qcom/sc7280.c
350
struct snd_soc_dai_link *link;
sound/soc/qcom/sc7280.c
373
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/sc7280.c
374
link->init = sc7280_init;
sound/soc/qcom/sc7280.c
375
link->ops = &sc7280_ops;
sound/soc/qcom/sc7280.c
376
if (link->no_pcm == 1)
sound/soc/qcom/sc7280.c
377
link->be_hw_params_fixup = sc7280_snd_be_hw_params_fixup;
sound/soc/qcom/sc8280xp.c
126
struct snd_soc_dai_link *link;
sound/soc/qcom/sc8280xp.c
129
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/sc8280xp.c
130
if (link->no_pcm == 1) {
sound/soc/qcom/sc8280xp.c
131
link->init = sc8280xp_snd_init;
sound/soc/qcom/sc8280xp.c
132
link->be_hw_params_fixup = sc8280xp_be_hw_params_fixup;
sound/soc/qcom/sc8280xp.c
133
link->ops = &sc8280xp_be_ops;
sound/soc/qcom/sdm845.c
237
struct snd_soc_dai_link *link = rtd->dai_link;
sound/soc/qcom/sdm845.c
293
if (pdata->slim_port_setup || !link->no_pcm)
sound/soc/qcom/sdm845.c
527
struct snd_soc_dai_link *link;
sound/soc/qcom/sdm845.c
530
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/sdm845.c
531
if (link->no_pcm == 1) {
sound/soc/qcom/sdm845.c
532
link->ops = &sdm845_be_ops;
sound/soc/qcom/sdm845.c
533
link->be_hw_params_fixup = sdm845_be_hw_params_fixup;
sound/soc/qcom/sdm845.c
535
link->init = sdm845_dai_init;
sound/soc/qcom/sm8250.c
149
struct snd_soc_dai_link *link;
sound/soc/qcom/sm8250.c
152
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/sm8250.c
153
if (link->no_pcm == 1) {
sound/soc/qcom/sm8250.c
154
link->init = sm8250_snd_init;
sound/soc/qcom/sm8250.c
155
link->exit = sm8250_snd_exit;
sound/soc/qcom/sm8250.c
156
link->be_hw_params_fixup = sm8250_be_hw_params_fixup;
sound/soc/qcom/sm8250.c
157
link->ops = &sm8250_be_ops;
sound/soc/qcom/x1e80100.c
150
struct snd_soc_dai_link *link;
sound/soc/qcom/x1e80100.c
153
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/x1e80100.c
154
if (link->no_pcm == 1) {
sound/soc/qcom/x1e80100.c
155
link->init = x1e80100_snd_init;
sound/soc/qcom/x1e80100.c
156
link->be_hw_params_fixup = x1e80100_be_hw_params_fixup;
sound/soc/qcom/x1e80100.c
157
link->ops = &x1e80100_be_ops;
sound/soc/samsung/odroid.c
203
struct snd_soc_dai_link *link, *codec_link;
sound/soc/samsung/odroid.c
243
link = card->dai_link;
sound/soc/samsung/odroid.c
259
for (i = 0; i < num_pcms; i++, link += 2) {
sound/soc/samsung/odroid.c
260
ret = snd_soc_of_get_dai_name(cpu, &link->cpus->dai_name, i);
sound/soc/samsung/snow.c
129
struct snd_soc_dai_link *link;
sound/soc/samsung/snow.c
137
link = &priv->dai_link;
sound/soc/samsung/snow.c
139
link->dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
sound/soc/samsung/snow.c
142
link->name = "Primary";
sound/soc/samsung/snow.c
143
link->stream_name = link->name;
sound/soc/samsung/snow.c
145
link->cpus = links_cpus;
sound/soc/samsung/snow.c
146
link->num_cpus = ARRAY_SIZE(links_cpus);
sound/soc/samsung/snow.c
147
link->codecs = links_codecs;
sound/soc/samsung/snow.c
148
link->num_codecs = ARRAY_SIZE(links_codecs);
sound/soc/samsung/snow.c
149
link->platforms = links_platforms;
sound/soc/samsung/snow.c
150
link->num_platforms = ARRAY_SIZE(links_platforms);
sound/soc/samsung/snow.c
152
card->dai_link = link;
sound/soc/samsung/snow.c
160
link->ops = &snow_card_ops;
sound/soc/samsung/snow.c
162
link->cpus->of_node = of_parse_phandle(cpu, "sound-dai", 0);
sound/soc/samsung/snow.c
165
if (!link->cpus->of_node) {
sound/soc/samsung/snow.c
171
ret = snd_soc_of_get_dai_link_codecs(dev, codec, link);
sound/soc/samsung/snow.c
175
of_node_put(link->cpus->of_node);
sound/soc/samsung/snow.c
180
priv->clk_i2s_bus = of_clk_get_by_name(link->cpus->of_node,
sound/soc/samsung/snow.c
183
snd_soc_of_put_dai_link_codecs(link);
sound/soc/samsung/snow.c
184
of_node_put(link->cpus->of_node);
sound/soc/samsung/snow.c
188
link->codecs->dai_name = "HiFi";
sound/soc/samsung/snow.c
190
link->cpus->of_node = of_parse_phandle(dev->of_node,
sound/soc/samsung/snow.c
192
if (!link->cpus->of_node) {
sound/soc/samsung/snow.c
197
link->codecs->of_node = of_parse_phandle(dev->of_node,
sound/soc/samsung/snow.c
199
if (!link->codecs->of_node) {
sound/soc/samsung/snow.c
200
of_node_put(link->cpus->of_node);
sound/soc/samsung/snow.c
206
link->platforms->of_node = link->cpus->of_node;
sound/soc/samsung/snow.c
224
struct snd_soc_dai_link *link = &priv->dai_link;
sound/soc/samsung/snow.c
226
of_node_put(link->cpus->of_node);
sound/soc/samsung/snow.c
227
of_node_put(link->codecs->of_node);
sound/soc/samsung/snow.c
228
snd_soc_of_put_dai_link_codecs(link);
sound/soc/soc-acpi.c
133
const struct snd_soc_acpi_link_adr *link,
sound/soc/soc-acpi.c
139
for (i = 0; i < link->num_adr; i++) {
sound/soc/soc-acpi.c
140
u64 adr = link->adr_d[i].adr;
sound/soc/soc-acpi.c
170
for (k = 0; k < link->num_adr; k++) {
sound/soc/soc-acpi.c
171
u64 adr2 = link->adr_d[k].adr;
sound/soc/soc-core.c
1001
for_each_link_cpus(link, i, dlc) {
sound/soc/soc-core.c
1029
dev_err(card->dev, "ASoC: Both Component name/of_node are set for %s\n", link->name);
sound/soc/soc-core.c
1033
dev_err(card->dev, "ASoC: Neither Component name/of_node are set for %s\n", link->name);
sound/soc/soc-core.c
1037
dev_dbg(card->dev, "ASoC: Component %s not found for link %s\n", dlc->name, link->name);
sound/soc/soc-core.c
1041
dev_err(card->dev, "ASoC: DAI name is not set for %s\n", link->name);
sound/soc/soc-core.c
1045
dev_err(card->dev, "ASoC: Neither DAI/Component name/of_node are set for %s\n", link->name);
sound/soc/soc-core.c
950
struct snd_soc_dai_link *link)
sound/soc/soc-core.c
956
for_each_link_codecs(link, i, dlc) {
sound/soc/soc-core.c
980
for_each_link_platforms(link, i, dlc) {
sound/soc/soc-pcm.c
508
struct snd_soc_dai_link *link = rtd->dai_link;
sound/soc/soc-pcm.c
512
symmetry = link->symmetric_rate ||
sound/soc/soc-pcm.c
513
link->symmetric_channels ||
sound/soc/soc-pcm.c
514
link->symmetric_sample_bits;
sound/soc/soc-topology.c
1438
static void set_link_flags(struct snd_soc_dai_link *link,
sound/soc/soc-topology.c
1442
link->symmetric_rate =
sound/soc/soc-topology.c
1446
link->symmetric_channels =
sound/soc/soc-topology.c
1451
link->symmetric_sample_bits =
sound/soc/soc-topology.c
1456
link->ignore_suspend =
sound/soc/soc-topology.c
1465
struct snd_soc_dai_link *link;
sound/soc/soc-topology.c
1470
link = devm_kzalloc(tplg->dev, sizeof(*link) + (3 * sizeof(*dlc)), GFP_KERNEL);
sound/soc/soc-topology.c
1471
if (link == NULL)
sound/soc/soc-topology.c
1474
dlc = (struct snd_soc_dai_link_component *)(link + 1);
sound/soc/soc-topology.c
1476
link->cpus = &dlc[0];
sound/soc/soc-topology.c
1477
link->num_cpus = 1;
sound/soc/soc-topology.c
1479
link->dobj.index = tplg->index;
sound/soc/soc-topology.c
1480
link->dobj.type = SND_SOC_DOBJ_DAI_LINK;
sound/soc/soc-topology.c
1482
link->dobj.unload = tplg->ops->link_unload;
sound/soc/soc-topology.c
1485
link->name = devm_kstrdup(tplg->dev, pcm->pcm_name, GFP_KERNEL);
sound/soc/soc-topology.c
1486
link->stream_name = devm_kstrdup(tplg->dev, pcm->pcm_name, GFP_KERNEL);
sound/soc/soc-topology.c
1487
if (!link->name || !link->stream_name) {
sound/soc/soc-topology.c
1492
link->id = le32_to_cpu(pcm->pcm_id);
sound/soc/soc-topology.c
1495
link->cpus->dai_name = devm_kstrdup(tplg->dev, pcm->dai_name, GFP_KERNEL);
sound/soc/soc-topology.c
1496
if (!link->cpus->dai_name) {
sound/soc/soc-topology.c
1507
link->codecs = &dlc[1]; /* Don't use &snd_soc_dummy_dlc here */
sound/soc/soc-topology.c
1508
link->codecs->name = "snd-soc-dummy";
sound/soc/soc-topology.c
1509
link->codecs->dai_name = "snd-soc-dummy-dai";
sound/soc/soc-topology.c
1510
link->num_codecs = 1;
sound/soc/soc-topology.c
1512
link->platforms = &dlc[2]; /* Don't use &snd_soc_dummy_dlc here */
sound/soc/soc-topology.c
1513
link->platforms->name = "snd-soc-dummy";
sound/soc/soc-topology.c
1514
link->num_platforms = 1;
sound/soc/soc-topology.c
1517
link->dynamic = 1;
sound/soc/soc-topology.c
1518
link->ignore_pmdown_time = 1;
sound/soc/soc-topology.c
1519
link->playback_only = le32_to_cpu(pcm->playback) && !le32_to_cpu(pcm->capture);
sound/soc/soc-topology.c
1520
link->capture_only = !le32_to_cpu(pcm->playback) && le32_to_cpu(pcm->capture);
sound/soc/soc-topology.c
1522
set_link_flags(link,
sound/soc/soc-topology.c
1527
ret = soc_tplg_dai_link_load(tplg, link, NULL);
sound/soc/soc-topology.c
1533
ret = snd_soc_add_pcm_runtimes(tplg->comp->card, link, 1);
sound/soc/soc-topology.c
1540
list_add(&link->dobj.list, &tplg->comp->dobj_list);
sound/soc/soc-topology.c
1621
static void set_link_hw_format(struct snd_soc_dai_link *link,
sound/soc/soc-topology.c
1634
link->dai_fmt = le32_to_cpu(hw_config->fmt) &
sound/soc/soc-topology.c
1640
link->dai_fmt |= SND_SOC_DAIFMT_GATED;
sound/soc/soc-topology.c
1644
link->dai_fmt |= SND_SOC_DAIFMT_CONT;
sound/soc/soc-topology.c
1656
link->dai_fmt |= SND_SOC_DAIFMT_NB_NF;
sound/soc/soc-topology.c
1658
link->dai_fmt |= SND_SOC_DAIFMT_NB_IF;
sound/soc/soc-topology.c
1660
link->dai_fmt |= SND_SOC_DAIFMT_IB_NF;
sound/soc/soc-topology.c
1662
link->dai_fmt |= SND_SOC_DAIFMT_IB_IF;
sound/soc/soc-topology.c
1670
link->dai_fmt |= SND_SOC_DAIFMT_CBP_CFP;
sound/soc/soc-topology.c
1672
link->dai_fmt |= SND_SOC_DAIFMT_CBC_CFP;
sound/soc/soc-topology.c
1674
link->dai_fmt |= SND_SOC_DAIFMT_CBP_CFC;
sound/soc/soc-topology.c
1676
link->dai_fmt |= SND_SOC_DAIFMT_CBC_CFC;
sound/soc/soc-topology.c
1702
struct snd_soc_dai_link *link = rtd->dai_link;
sound/soc/soc-topology.c
1704
if (link->id != id)
sound/soc/soc-topology.c
1707
if (name && (!link->name || !strstr(link->name, name)))
sound/soc/soc-topology.c
1710
if (stream_name && (!link->stream_name ||
sound/soc/soc-topology.c
1711
!strstr(link->stream_name, stream_name)))
sound/soc/soc-topology.c
1714
return link;
sound/soc/soc-topology.c
1724
struct snd_soc_dai_link *link;
sound/soc/soc-topology.c
1745
link = snd_soc_find_dai_link(tplg->comp->card, le32_to_cpu(cfg->id),
sound/soc/soc-topology.c
1747
if (!link) {
sound/soc/soc-topology.c
1755
set_link_hw_format(link, cfg);
sound/soc/soc-topology.c
1759
set_link_flags(link,
sound/soc/soc-topology.c
1764
ret = soc_tplg_dai_link_load(tplg, link, cfg);
sound/soc/soc-topology.c
1771
link->dobj.index = tplg->index;
sound/soc/soc-topology.c
1772
link->dobj.type = SND_SOC_DOBJ_BACKEND_LINK;
sound/soc/soc-topology.c
1774
link->dobj.unload = tplg->ops->link_unload;
sound/soc/soc-topology.c
1775
list_add(&link->dobj.list, &tplg->comp->dobj_list);
sound/soc/soc-topology.c
1785
struct snd_soc_tplg_link_config *link;
sound/soc/soc-topology.c
1793
link = (struct snd_soc_tplg_link_config *)tplg->pos;
sound/soc/soc-topology.c
1794
size = le32_to_cpu(link->size);
sound/soc/soc-topology.c
1808
link = (struct snd_soc_tplg_link_config *)tplg->pos;
sound/soc/soc-topology.c
1809
size = le32_to_cpu(link->size);
sound/soc/soc-topology.c
1810
if (size != sizeof(*link))
sound/soc/soc-topology.c
1813
ret = soc_tplg_link_config(tplg, link);
sound/soc/soc-topology.c
1820
tplg->pos += size + le32_to_cpu(link->priv.size);
sound/soc/soc-topology.c
293
struct snd_soc_dai_link *link, struct snd_soc_tplg_link_config *cfg)
sound/soc/soc-topology.c
296
return tplg->ops->link_load(tplg->comp, tplg->index, link, cfg);
sound/soc/soc-topology.c
422
struct snd_soc_dai_link *link =
sound/soc/soc-topology.c
434
if (!link->ignore)
sound/soc/soc-topology.c
436
snd_soc_get_pcm_runtime(comp->card, link));
sound/soc/sof/amd/acp-common.c
132
const struct snd_soc_acpi_link_adr *link;
sound/soc/sof/amd/acp-common.c
145
link = mach->links;
sound/soc/sof/amd/acp-common.c
146
for (i = 0; i < acp_data->info.count && link->num_adr; link++, i++) {
sound/soc/sof/amd/acp-common.c
147
if (!snd_soc_acpi_sdw_link_slaves_found(sdev->dev, link,
sound/soc/sof/amd/acp-common.c
151
if (i == acp_data->info.count || !link->num_adr)
sound/soc/sof/intel/hda.c
1157
struct snd_soc_acpi_link_adr *link,
sound/soc/sof/intel/hda.c
1162
int index = link->num_adr;
sound/soc/sof/intel/hda.c
1167
link->mask = BIT(sdw_device->bus->link_id);
sound/soc/sof/intel/hda.c
1172
adr_dev = devm_krealloc(dev, (struct snd_soc_acpi_adr_device *)link->adr_d,
sound/soc/sof/intel/hda.c
1293
link->num_adr++;
sound/soc/sof/intel/hda.c
1301
const struct snd_soc_acpi_link_adr *link;
sound/soc/sof/intel/hda.c
1352
link = mach->links;
sound/soc/sof/intel/hda.c
1353
for (i = 0; i < hdev->info.count && link->num_adr;
sound/soc/sof/intel/hda.c
1354
i++, link++) {
sound/soc/sof/intel/hda.c
1359
if (!snd_soc_acpi_sdw_link_slaves_found(sdev->dev, link,
sound/soc/sof/intel/hda.c
1364
if (i == hdev->info.count || !link->num_adr)
sound/soc/sof/ipc3-topology.c
1621
if (strcmp(slink->link->name, dai->name))
sound/soc/sof/ipc3-topology.c
2583
static int sof_ipc3_link_setup(struct snd_sof_dev *sdev, struct snd_soc_dai_link *link)
sound/soc/sof/ipc3-topology.c
2585
if (link->no_pcm)
sound/soc/sof/ipc3-topology.c
2595
link->trigger[SNDRV_PCM_STREAM_PLAYBACK] = SND_SOC_DPCM_TRIGGER_PRE;
sound/soc/sof/ipc3-topology.c
2596
link->trigger[SNDRV_PCM_STREAM_CAPTURE] = SND_SOC_DPCM_TRIGGER_POST;
sound/soc/sof/ipc4-pcm.c
633
if (!strcmp(slink->link->name, link_name)) {
sound/soc/sof/ipc4-pcm.c
671
__func__, slink->link->name, slink->num_hw_configs);
sound/soc/sof/ipc4-pcm.c
677
slink->link->name, current_config, slink->num_hw_configs,
sound/soc/sof/ipc4-pcm.c
680
if (!strcmp(slink->link->name, dai->name))
sound/soc/sof/ipc4-topology.c
1713
if (!strcmp(slink->link->name, dai->name)) {
sound/soc/sof/ipc4-topology.c
3783
if (!strcmp(slink->link->name, dai->name)) {
sound/soc/sof/ipc4-topology.c
3846
static int sof_ipc4_link_setup(struct snd_sof_dev *sdev, struct snd_soc_dai_link *link)
sound/soc/sof/ipc4-topology.c
3848
if (link->no_pcm)
sound/soc/sof/ipc4-topology.c
3858
link->trigger[SNDRV_PCM_STREAM_PLAYBACK] = SND_SOC_DPCM_TRIGGER_POST;
sound/soc/sof/ipc4-topology.c
3859
link->trigger[SNDRV_PCM_STREAM_CAPTURE] = SND_SOC_DPCM_TRIGGER_PRE;
sound/soc/sof/sof-audio.h
241
int (*link_setup)(struct snd_sof_dev *sdev, struct snd_soc_dai_link *link);
sound/soc/sof/sof-audio.h
413
struct snd_soc_dai_link *link;
sound/soc/sof/topology.c
1873
static int sof_link_load(struct snd_soc_component *scomp, int index, struct snd_soc_dai_link *link,
sound/soc/sof/topology.c
1885
if (!link->platforms) {
sound/soc/sof/topology.c
1889
link->platforms->name = dev_name(scomp->dev);
sound/soc/sof/topology.c
1892
ret = tplg_ops->link_setup(sdev, link);
sound/soc/sof/topology.c
1898
if (!link->no_pcm) {
sound/soc/sof/topology.c
1899
link->nonatomic = true;
sound/soc/sof/topology.c
1923
slink->link = link;
sound/soc/sof/topology.c
1926
slink->num_hw_configs, slink->default_hw_cfg_id, link->name);
sound/soc/sof/topology.c
2016
token_list[SOF_DAI_LINK_TOKENS].name, link->name);
sound/soc/sof/topology.c
2030
token_list[token_id].name, link->name);
sound/soc/sof/topology.c
2040
dev_err(sdev->dev, "Invalid active PDM count for %s\n", link->name);
sound/soc/sof/topology.c
2050
token_list[SOF_DMIC_PDM_TOKENS].name, link->name);
sound/soc/sof/topology.c
2055
link->dobj.private = slink;
sound/soc/sof/topology.c
2075
slink->link->platforms->name = NULL;
sound/soc/sof/topology.c
2461
struct snd_soc_dai_link *link,
sound/soc/sof/topology.c
2464
link->platforms->name = dev_name(scomp->dev);
sound/soc/sof/topology.c
2467
if (!link->no_pcm)
sound/soc/sof/topology.c
2468
link->nonatomic = true;
sound/soc/sprd/sprd-pcm-compress.c
142
struct sprd_dma_linklist link = { };
sound/soc/sprd/sprd-pcm-compress.c
224
link.virt_addr = (unsigned long)dma->virt;
sound/soc/sprd/sprd-pcm-compress.c
225
link.phy_addr = dma->phys;
sound/soc/sprd/sprd-pcm-compress.c
240
flags, &link);
sound/soc/sprd/sprd-pcm-dma.c
231
struct sprd_dma_linklist link = { };
sound/soc/sprd/sprd-pcm-dma.c
263
link.virt_addr = (unsigned long)data->virt;
sound/soc/sprd/sprd-pcm-dma.c
264
link.phy_addr = data->phys;
sound/soc/sprd/sprd-pcm-dma.c
281
flags, &link);
sound/soc/sunxi/sun4i-codec.c
1634
struct snd_soc_dai_link *link = devm_kzalloc(dev, sizeof(*link),
sound/soc/sunxi/sun4i-codec.c
1638
if (!link || !dlc)
sound/soc/sunxi/sun4i-codec.c
1641
link->cpus = &dlc[0];
sound/soc/sunxi/sun4i-codec.c
1642
link->codecs = &dlc[1];
sound/soc/sunxi/sun4i-codec.c
1643
link->platforms = &dlc[2];
sound/soc/sunxi/sun4i-codec.c
1645
link->num_cpus = 1;
sound/soc/sunxi/sun4i-codec.c
1646
link->num_codecs = 1;
sound/soc/sunxi/sun4i-codec.c
1647
link->num_platforms = 1;
sound/soc/sunxi/sun4i-codec.c
1649
link->name = "cdc";
sound/soc/sunxi/sun4i-codec.c
1650
link->stream_name = "CDC PCM";
sound/soc/sunxi/sun4i-codec.c
1651
link->codecs->dai_name = "Codec";
sound/soc/sunxi/sun4i-codec.c
1652
link->cpus->dai_name = dev_name(dev);
sound/soc/sunxi/sun4i-codec.c
1653
link->codecs->name = dev_name(dev);
sound/soc/sunxi/sun4i-codec.c
1654
link->platforms->name = dev_name(dev);
sound/soc/sunxi/sun4i-codec.c
1655
link->dai_fmt = SND_SOC_DAIFMT_I2S;
sound/soc/sunxi/sun4i-codec.c
1656
link->init = sun4i_codec_machine_init;
sound/soc/sunxi/sun4i-codec.c
1660
return link;
sound/soc/tegra/tegra_wm8903.c
107
struct snd_soc_dai_link *link = &card->dai_link[0];
sound/soc/tegra/tegra_wm8903.c
108
struct snd_soc_pcm_runtime *rtd = snd_soc_get_pcm_runtime(card, link);
tools/bpf/bpftool/gen.c
918
map_sz = offsetof(struct bpf_map_skeleton, link);
tools/bpf/bpftool/iter.c
21
struct bpf_link *link;
tools/bpf/bpftool/iter.c
71
link = bpf_program__attach_iter(prog, &iter_opts);
tools/bpf/bpftool/iter.c
72
if (!link) {
tools/bpf/bpftool/iter.c
83
err = bpf_link__pin(link, path);
tools/bpf/bpftool/iter.c
91
bpf_link__destroy(link);
tools/bpf/bpftool/prog.c
1522
struct bpf_link *link;
tools/bpf/bpftool/prog.c
1525
link = bpf_program__attach(prog);
tools/bpf/bpftool/prog.c
1526
if (!link) {
tools/bpf/bpftool/prog.c
1532
err = bpf_link__pin(link, path);
tools/bpf/bpftool/prog.c
1533
bpf_link__destroy(link);
tools/bpf/bpftool/skeleton/pid_iter.bpf.c
108
struct bpf_link *link = (struct bpf_link *) file->private_data;
tools/bpf/bpftool/skeleton/pid_iter.bpf.c
110
if (BPF_CORE_READ(link, type) == bpf_core_enum_value(enum bpf_link_type___local,
tools/bpf/bpftool/skeleton/pid_iter.bpf.c
113
e.bpf_cookie = get_bpf_cookie(link);
tools/bpf/bpftool/skeleton/pid_iter.bpf.c
19
struct bpf_link link;
tools/bpf/bpftool/skeleton/pid_iter.bpf.c
56
static __u64 get_bpf_cookie(struct bpf_link *link)
tools/bpf/bpftool/skeleton/pid_iter.bpf.c
61
perf_link = container_of(link, struct bpf_perf_link___local, link);
tools/bpf/bpftool/struct_ops.c
484
static int pin_link(struct bpf_link *link, const char *pindir,
tools/bpf/bpftool/struct_ops.c
494
return bpf_link__pin(link, pinfile);
tools/bpf/bpftool/struct_ops.c
507
struct bpf_link *link;
tools/bpf/bpftool/struct_ops.c
542
link = bpf_map__attach_struct_ops(map);
tools/bpf/bpftool/struct_ops.c
543
if (!link) {
tools/bpf/bpftool/struct_ops.c
567
if (bpf_link_get_info_by_fd(bpf_link__fd(link),
tools/bpf/bpftool/struct_ops.c
575
if (linkdir && pin_link(link, linkdir, info.name)) {
tools/bpf/bpftool/struct_ops.c
587
bpf_link__disconnect(link);
tools/bpf/bpftool/struct_ops.c
588
bpf_link__destroy(link);
tools/firewire/list.h
20
list_insert(struct list *link, struct list *new_link)
tools/firewire/list.h
22
new_link->prev = link->prev;
tools/firewire/list.h
23
new_link->next = link;
tools/firewire/list.h
41
list_remove(struct list *link)
tools/firewire/list.h
43
link->prev->next = link->next;
tools/firewire/list.h
44
link->next->prev = link->prev;
tools/firewire/list.h
47
#define list_entry(link, type, member) \
tools/firewire/list.h
48
((type *)((char *)(link)-(unsigned long)(&((type *)0)->member)))
tools/firewire/nosy-dump.c
164
list_for_each_entry(t, &pending_transaction_list, link) {
tools/firewire/nosy-dump.c
180
list_append(&pending_transaction_list, &t->link);
tools/firewire/nosy-dump.c
191
sa = list_head(&t->request_list, struct subaction, link);
tools/firewire/nosy-dump.c
192
list_remove(&sa->link);
tools/firewire/nosy-dump.c
196
sa = list_head(&t->response_list, struct subaction, link);
tools/firewire/nosy-dump.c
197
list_remove(&sa->link);
tools/firewire/nosy-dump.c
239
list_for_each_entry(sa, &t->request_list, link)
tools/firewire/nosy-dump.c
241
list_for_each_entry(sa, &t->response_list, link)
tools/firewire/nosy-dump.c
256
struct link_transaction, link);
tools/firewire/nosy-dump.c
257
list_remove(&t->link);
tools/firewire/nosy-dump.c
495
struct subaction, link);
tools/firewire/nosy-dump.c
513
list_append(&t->request_list, &sa->link);
tools/firewire/nosy-dump.c
520
list_remove(&t->link);
tools/firewire/nosy-dump.c
527
list_remove(&t->link);
tools/firewire/nosy-dump.c
563
prev = list_tail(&t->response_list, struct subaction, link);
tools/firewire/nosy-dump.c
578
prev = list_tail(&t->request_list, struct subaction, link);
tools/firewire/nosy-dump.c
592
list_append(&t->response_list, &sa->link);
tools/firewire/nosy-dump.c
599
list_remove(&t->link);
tools/firewire/nosy-dump.h
161
struct list link;
tools/firewire/nosy-dump.h
169
struct list link;
tools/include/linux/interval_tree_generic.h
41
struct rb_node **link = &root->rb_root.rb_node, *rb_parent = NULL; \
tools/include/linux/interval_tree_generic.h
46
while (*link) { \
tools/include/linux/interval_tree_generic.h
47
rb_parent = *link; \
tools/include/linux/interval_tree_generic.h
52
link = &parent->ITRB.rb_left; \
tools/include/linux/interval_tree_generic.h
54
link = &parent->ITRB.rb_right; \
tools/include/linux/interval_tree_generic.h
60
rb_link_node(&node->ITRB, rb_parent, link); \
tools/include/linux/rbtree.h
181
struct rb_node **link = &tree->rb_root.rb_node;
tools/include/linux/rbtree.h
185
while (*link) {
tools/include/linux/rbtree.h
186
parent = *link;
tools/include/linux/rbtree.h
188
link = &parent->rb_left;
tools/include/linux/rbtree.h
190
link = &parent->rb_right;
tools/include/linux/rbtree.h
195
rb_link_node(node, parent, link);
tools/include/linux/rbtree.h
209
struct rb_node **link = &tree->rb_node;
tools/include/linux/rbtree.h
212
while (*link) {
tools/include/linux/rbtree.h
213
parent = *link;
tools/include/linux/rbtree.h
215
link = &parent->rb_left;
tools/include/linux/rbtree.h
217
link = &parent->rb_right;
tools/include/linux/rbtree.h
220
rb_link_node(node, parent, link);
tools/include/linux/rbtree.h
237
struct rb_node **link = &tree->rb_node;
tools/include/linux/rbtree.h
241
while (*link) {
tools/include/linux/rbtree.h
242
parent = *link;
tools/include/linux/rbtree.h
246
link = &parent->rb_left;
tools/include/linux/rbtree.h
248
link = &parent->rb_right;
tools/include/linux/rbtree.h
253
rb_link_node(node, parent, link);
tools/lib/bpf/bpf_tracing.h
522
#define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ (ip) = (ctx)->link; })
tools/lib/bpf/libbpf.c
11073
int bpf_link__update_program(struct bpf_link *link, struct bpf_program *prog)
tools/lib/bpf/libbpf.c
11084
ret = bpf_link_update(bpf_link__fd(link), prog_fd, NULL);
tools/lib/bpf/libbpf.c
11098
void bpf_link__disconnect(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11100
link->disconnected = true;
tools/lib/bpf/libbpf.c
11103
int bpf_link__destroy(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11107
if (IS_ERR_OR_NULL(link))
tools/lib/bpf/libbpf.c
11110
if (!link->disconnected && link->detach)
tools/lib/bpf/libbpf.c
11111
err = link->detach(link);
tools/lib/bpf/libbpf.c
11112
if (link->pin_path)
tools/lib/bpf/libbpf.c
11113
free(link->pin_path);
tools/lib/bpf/libbpf.c
11114
if (link->dealloc)
tools/lib/bpf/libbpf.c
11115
link->dealloc(link);
tools/lib/bpf/libbpf.c
11117
free(link);
tools/lib/bpf/libbpf.c
11122
int bpf_link__fd(const struct bpf_link *link)
tools/lib/bpf/libbpf.c
11124
return link->fd;
tools/lib/bpf/libbpf.c
11127
const char *bpf_link__pin_path(const struct bpf_link *link)
tools/lib/bpf/libbpf.c
11129
return link->pin_path;
tools/lib/bpf/libbpf.c
11132
static int bpf_link__detach_fd(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11134
return libbpf_err_errno(close(link->fd));
tools/lib/bpf/libbpf.c
11139
struct bpf_link *link;
tools/lib/bpf/libbpf.c
11149
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
11150
if (!link) {
tools/lib/bpf/libbpf.c
11154
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
11155
link->fd = fd;
tools/lib/bpf/libbpf.c
11157
link->pin_path = strdup(path);
tools/lib/bpf/libbpf.c
11158
if (!link->pin_path) {
tools/lib/bpf/libbpf.c
11159
bpf_link__destroy(link);
tools/lib/bpf/libbpf.c
11163
return link;
tools/lib/bpf/libbpf.c
11166
int bpf_link__detach(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11168
return bpf_link_detach(link->fd) ? -errno : 0;
tools/lib/bpf/libbpf.c
11171
int bpf_link__pin(struct bpf_link *link, const char *path)
tools/lib/bpf/libbpf.c
11175
if (link->pin_path)
tools/lib/bpf/libbpf.c
11184
link->pin_path = strdup(path);
tools/lib/bpf/libbpf.c
11185
if (!link->pin_path)
tools/lib/bpf/libbpf.c
11188
if (bpf_obj_pin(link->fd, link->pin_path)) {
tools/lib/bpf/libbpf.c
11190
zfree(&link->pin_path);
tools/lib/bpf/libbpf.c
11194
pr_debug("link fd=%d: pinned at %s\n", link->fd, link->pin_path);
tools/lib/bpf/libbpf.c
11198
int bpf_link__unpin(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11202
if (!link->pin_path)
tools/lib/bpf/libbpf.c
11205
err = unlink(link->pin_path);
tools/lib/bpf/libbpf.c
11209
pr_debug("link fd=%d: unpinned from %s\n", link->fd, link->pin_path);
tools/lib/bpf/libbpf.c
11210
zfree(&link->pin_path);
tools/lib/bpf/libbpf.c
11215
struct bpf_link link;
tools/lib/bpf/libbpf.c
11226
static int bpf_link_perf_detach(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11228
struct bpf_link_perf *perf_link = container_of(link, struct bpf_link_perf, link);
tools/lib/bpf/libbpf.c
11234
if (perf_link->perf_event_fd != link->fd)
tools/lib/bpf/libbpf.c
11236
close(link->fd);
tools/lib/bpf/libbpf.c
11252
static void bpf_link_perf_dealloc(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11254
struct bpf_link_perf *perf_link = container_of(link, struct bpf_link_perf, link);
tools/lib/bpf/libbpf.c
11263
struct bpf_link_perf *link;
tools/lib/bpf/libbpf.c
11282
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
11283
if (!link)
tools/lib/bpf/libbpf.c
11285
link->link.detach = &bpf_link_perf_detach;
tools/lib/bpf/libbpf.c
11286
link->link.dealloc = &bpf_link_perf_dealloc;
tools/lib/bpf/libbpf.c
11287
link->perf_event_fd = pfd;
tools/lib/bpf/libbpf.c
11301
link->link.fd = link_fd;
tools/lib/bpf/libbpf.c
11318
link->link.fd = pfd;
tools/lib/bpf/libbpf.c
11330
return &link->link;
tools/lib/bpf/libbpf.c
11334
free(link);
tools/lib/bpf/libbpf.c
11662
struct bpf_link *link;
tools/lib/bpf/libbpf.c
11721
link = bpf_program__attach_perf_event_opts(prog, pfd, &pe_opts);
tools/lib/bpf/libbpf.c
11722
err = libbpf_get_error(link);
tools/lib/bpf/libbpf.c
11732
struct bpf_link_perf *perf_link = container_of(link, struct bpf_link_perf, link);
tools/lib/bpf/libbpf.c
11739
return link;
tools/lib/bpf/libbpf.c
12009
struct bpf_link *link = NULL;
tools/lib/bpf/libbpf.c
12077
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
12078
if (!link) {
tools/lib/bpf/libbpf.c
12082
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
12091
link->fd = link_fd;
tools/lib/bpf/libbpf.c
12093
return link;
tools/lib/bpf/libbpf.c
12096
free(link);
tools/lib/bpf/libbpf.c
12101
static int attach_kprobe(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12109
*link = NULL;
tools/lib/bpf/libbpf.c
12133
*link = bpf_program__attach_kprobe_opts(prog, func, &opts);
tools/lib/bpf/libbpf.c
12135
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
12138
static int attach_ksyscall(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12143
*link = NULL;
tools/lib/bpf/libbpf.c
12155
*link = bpf_program__attach_ksyscall(prog, syscall_name, &opts);
tools/lib/bpf/libbpf.c
12156
return *link ? 0 : -errno;
tools/lib/bpf/libbpf.c
12159
static int attach_kprobe_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12166
*link = NULL;
tools/lib/bpf/libbpf.c
12185
*link = bpf_program__attach_kprobe_multi_opts(prog, pattern, &opts);
tools/lib/bpf/libbpf.c
12187
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
12191
struct bpf_link **link)
tools/lib/bpf/libbpf.c
12198
*link = NULL;
tools/lib/bpf/libbpf.c
12211
*link = bpf_program__attach_kprobe_multi_opts(prog, pattern, &opts);
tools/lib/bpf/libbpf.c
12213
return *link ? 0 : -errno;
tools/lib/bpf/libbpf.c
12216
static int attach_uprobe_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12222
*link = NULL;
tools/lib/bpf/libbpf.c
12235
*link = bpf_program__attach_uprobe_multi(prog, -1, binary_path, func_name, &opts);
tools/lib/bpf/libbpf.c
12236
ret = libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
12469
struct bpf_link *link = NULL;
tools/lib/bpf/libbpf.c
12561
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
12562
if (!link) {
tools/lib/bpf/libbpf.c
12566
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
12575
link->fd = link_fd;
tools/lib/bpf/libbpf.c
12577
return link;
tools/lib/bpf/libbpf.c
12581
free(link);
tools/lib/bpf/libbpf.c
12595
struct bpf_link *link;
tools/lib/bpf/libbpf.c
12695
link = bpf_program__attach_perf_event_opts(prog, pfd, &pe_opts);
tools/lib/bpf/libbpf.c
12696
err = libbpf_get_error(link);
tools/lib/bpf/libbpf.c
12706
struct bpf_link_perf *perf_link = container_of(link, struct bpf_link_perf, link);
tools/lib/bpf/libbpf.c
12712
return link;
tools/lib/bpf/libbpf.c
12732
static int attach_uprobe(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12739
*link = NULL;
tools/lib/bpf/libbpf.c
12772
*link = bpf_program__attach_uprobe_opts(prog, -1, binary_path, offset, &opts);
tools/lib/bpf/libbpf.c
12773
ret = libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
12804
struct bpf_link *link;
tools/lib/bpf/libbpf.c
12842
link = usdt_manager_attach_usdt(obj->usdt_man, prog, pid, binary_path,
tools/lib/bpf/libbpf.c
12844
err = libbpf_get_error(link);
tools/lib/bpf/libbpf.c
12847
return link;
tools/lib/bpf/libbpf.c
12850
static int attach_usdt(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12859
*link = NULL;
tools/lib/bpf/libbpf.c
12869
*link = bpf_program__attach_usdt(prog, -1 /* any process */, path,
tools/lib/bpf/libbpf.c
12871
err = libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
12935
struct bpf_link *link;
tools/lib/bpf/libbpf.c
12950
link = bpf_program__attach_perf_event_opts(prog, pfd, &pe_opts);
tools/lib/bpf/libbpf.c
12951
err = libbpf_get_error(link);
tools/lib/bpf/libbpf.c
12959
return link;
tools/lib/bpf/libbpf.c
12969
static int attach_tp(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12973
*link = NULL;
tools/lib/bpf/libbpf.c
12996
*link = bpf_program__attach_tracepoint(prog, tp_cat, tp_name);
tools/lib/bpf/libbpf.c
12998
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13007
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13019
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13020
if (!link)
tools/lib/bpf/libbpf.c
13022
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13029
free(link);
tools/lib/bpf/libbpf.c
13034
link->fd = pfd;
tools/lib/bpf/libbpf.c
13035
return link;
tools/lib/bpf/libbpf.c
13044
static int attach_raw_tp(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13055
*link = NULL;
tools/lib/bpf/libbpf.c
13081
*link = bpf_program__attach_raw_tracepoint(prog, tp_name);
tools/lib/bpf/libbpf.c
13082
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13090
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13102
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13103
if (!link)
tools/lib/bpf/libbpf.c
13105
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13112
free(link);
tools/lib/bpf/libbpf.c
13117
link->fd = pfd;
tools/lib/bpf/libbpf.c
13118
return link;
tools/lib/bpf/libbpf.c
13137
static int attach_trace(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13139
*link = bpf_program__attach_trace(prog);
tools/lib/bpf/libbpf.c
13140
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13143
static int attach_lsm(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13145
*link = bpf_program__attach_lsm(prog);
tools/lib/bpf/libbpf.c
13146
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13155
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13164
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13165
if (!link)
tools/lib/bpf/libbpf.c
13167
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13173
free(link);
tools/lib/bpf/libbpf.c
13179
link->fd = link_fd;
tools/lib/bpf/libbpf.c
13180
return link;
tools/lib/bpf/libbpf.c
13346
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13362
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13363
if (!link)
tools/lib/bpf/libbpf.c
13365
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13371
free(link);
tools/lib/bpf/libbpf.c
13376
link->fd = link_fd;
tools/lib/bpf/libbpf.c
13377
return link;
tools/lib/bpf/libbpf.c
13380
static int attach_iter(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13382
*link = bpf_program__attach_iter(prog, NULL);
tools/lib/bpf/libbpf.c
13383
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13390
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13402
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13403
if (!link)
tools/lib/bpf/libbpf.c
13406
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13416
free(link);
tools/lib/bpf/libbpf.c
13421
link->fd = link_fd;
tools/lib/bpf/libbpf.c
13423
return link;
tools/lib/bpf/libbpf.c
13428
struct bpf_link *link = NULL;
tools/lib/bpf/libbpf.c
13440
err = prog->sec_def->prog_attach_fn(prog, prog->sec_def->cookie, &link);
tools/lib/bpf/libbpf.c
13449
if (!link)
tools/lib/bpf/libbpf.c
13452
return link;
tools/lib/bpf/libbpf.c
13456
struct bpf_link link;
tools/lib/bpf/libbpf.c
13460
static int bpf_link__detach_struct_ops(struct bpf_link *link)
tools/lib/bpf/libbpf.c
13465
st_link = container_of(link, struct bpf_link_struct_ops, link);
tools/lib/bpf/libbpf.c
13469
return bpf_map_delete_elem(link->fd, &zero);
tools/lib/bpf/libbpf.c
13471
return close(link->fd);
tools/lib/bpf/libbpf.c
13476
struct bpf_link_struct_ops *link;
tools/lib/bpf/libbpf.c
13490
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13491
if (!link)
tools/lib/bpf/libbpf.c
13502
free(link);
tools/lib/bpf/libbpf.c
13506
link->link.detach = bpf_link__detach_struct_ops;
tools/lib/bpf/libbpf.c
13510
link->link.fd = map->fd;
tools/lib/bpf/libbpf.c
13511
link->map_fd = -1;
tools/lib/bpf/libbpf.c
13512
return &link->link;
tools/lib/bpf/libbpf.c
13517
free(link);
tools/lib/bpf/libbpf.c
13521
link->link.fd = fd;
tools/lib/bpf/libbpf.c
13522
link->map_fd = map->fd;
tools/lib/bpf/libbpf.c
13524
return &link->link;
tools/lib/bpf/libbpf.c
13530
int bpf_link__update_map(struct bpf_link *link, const struct bpf_map *map)
tools/lib/bpf/libbpf.c
13544
st_ops_link = container_of(link, struct bpf_link_struct_ops, link);
tools/lib/bpf/libbpf.c
13558
err = bpf_link_update(link->fd, map->fd, NULL);
tools/lib/bpf/libbpf.c
14481
struct bpf_link **link = prog_skel->link;
tools/lib/bpf/libbpf.c
14491
if (*link)
tools/lib/bpf/libbpf.c
14494
err = prog->sec_def->prog_attach_fn(prog, prog->sec_def->cookie, link);
tools/lib/bpf/libbpf.c
14517
struct bpf_link **link;
tools/lib/bpf/libbpf.c
14527
if (s->map_skel_sz < offsetofend(struct bpf_map_skeleton, link)) {
tools/lib/bpf/libbpf.c
14533
link = map_skel->link;
tools/lib/bpf/libbpf.c
14534
if (!link) {
tools/lib/bpf/libbpf.c
14540
if (*link)
tools/lib/bpf/libbpf.c
14543
*link = bpf_map__attach_struct_ops(map);
tools/lib/bpf/libbpf.c
14544
if (!*link) {
tools/lib/bpf/libbpf.c
14561
struct bpf_link **link = prog_skel->link;
tools/lib/bpf/libbpf.c
14563
bpf_link__destroy(*link);
tools/lib/bpf/libbpf.c
14564
*link = NULL;
tools/lib/bpf/libbpf.c
14572
struct bpf_link **link = map_skel->link;
tools/lib/bpf/libbpf.c
14574
if (link) {
tools/lib/bpf/libbpf.c
14575
bpf_link__destroy(*link);
tools/lib/bpf/libbpf.c
14576
*link = NULL;
tools/lib/bpf/libbpf.c
9814
static int attach_kprobe(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9815
static int attach_uprobe(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9816
static int attach_ksyscall(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9817
static int attach_usdt(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9818
static int attach_tp(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9819
static int attach_raw_tp(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9820
static int attach_trace(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9821
static int attach_kprobe_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9822
static int attach_kprobe_session(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9823
static int attach_uprobe_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9824
static int attach_lsm(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
9825
static int attach_iter(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.h
467
LIBBPF_API int bpf_link__fd(const struct bpf_link *link);
tools/lib/bpf/libbpf.h
468
LIBBPF_API const char *bpf_link__pin_path(const struct bpf_link *link);
tools/lib/bpf/libbpf.h
480
LIBBPF_API int bpf_link__pin(struct bpf_link *link, const char *path);
tools/lib/bpf/libbpf.h
492
LIBBPF_API int bpf_link__unpin(struct bpf_link *link);
tools/lib/bpf/libbpf.h
493
LIBBPF_API int bpf_link__update_program(struct bpf_link *link,
tools/lib/bpf/libbpf.h
495
LIBBPF_API void bpf_link__disconnect(struct bpf_link *link);
tools/lib/bpf/libbpf.h
496
LIBBPF_API int bpf_link__detach(struct bpf_link *link);
tools/lib/bpf/libbpf.h
497
LIBBPF_API int bpf_link__destroy(struct bpf_link *link);
tools/lib/bpf/libbpf.h
923
LIBBPF_API int bpf_link__update_map(struct bpf_link *link, const struct bpf_map *map);
tools/lib/bpf/libbpf_internal.h
192
int (*detach)(struct bpf_link *link);
tools/lib/bpf/libbpf_internal.h
193
void (*dealloc)(struct bpf_link *link);
tools/lib/bpf/usdt.c
1014
link = calloc(1, sizeof(*link));
tools/lib/bpf/usdt.c
1015
if (!link) {
tools/lib/bpf/usdt.c
1020
link->usdt_man = man;
tools/lib/bpf/usdt.c
1021
link->link.detach = &bpf_link_usdt_detach;
tools/lib/bpf/usdt.c
1022
link->link.dealloc = &bpf_link_usdt_dealloc;
tools/lib/bpf/usdt.c
1034
link->uprobes = calloc(target_cnt, sizeof(*link->uprobes));
tools/lib/bpf/usdt.c
1035
if (!link->uprobes) {
tools/lib/bpf/usdt.c
1055
err = allocate_spec_id(man, specs_hash, link, target, &spec_id, &is_new);
tools/lib/bpf/usdt.c
1095
link->uprobes[i].link = uprobe_link;
tools/lib/bpf/usdt.c
1096
link->uprobes[i].abs_ip = target->abs_ip;
tools/lib/bpf/usdt.c
1097
link->uprobe_cnt++;
tools/lib/bpf/usdt.c
1109
link->multi_link = bpf_program__attach_uprobe_multi(prog, pid, path,
tools/lib/bpf/usdt.c
1111
if (!link->multi_link) {
tools/lib/bpf/usdt.c
1126
return &link->link;
tools/lib/bpf/usdt.c
1133
if (link)
tools/lib/bpf/usdt.c
1134
bpf_link__destroy(&link->link);
tools/lib/bpf/usdt.c
816
struct bpf_link link;
tools/lib/bpf/usdt.c
826
struct bpf_link *link;
tools/lib/bpf/usdt.c
832
static int bpf_link_usdt_detach(struct bpf_link *link)
tools/lib/bpf/usdt.c
834
struct bpf_link_usdt *usdt_link = container_of(link, struct bpf_link_usdt, link);
tools/lib/bpf/usdt.c
843
bpf_link__destroy(usdt_link->uprobes[i].link);
tools/lib/bpf/usdt.c
892
static void bpf_link_usdt_dealloc(struct bpf_link *link)
tools/lib/bpf/usdt.c
894
struct bpf_link_usdt *usdt_link = container_of(link, struct bpf_link_usdt, link);
tools/lib/bpf/usdt.c
912
struct bpf_link_usdt *link, struct usdt_target *target,
tools/lib/bpf/usdt.c
929
new_ids = libbpf_reallocarray(link->spec_ids, link->spec_cnt + 1, sizeof(*link->spec_ids));
tools/lib/bpf/usdt.c
932
link->spec_ids = new_ids;
tools/lib/bpf/usdt.c
960
link->spec_ids[link->spec_cnt] = *spec_id;
tools/lib/bpf/usdt.c
961
link->spec_cnt++;
tools/lib/bpf/usdt.c
975
struct bpf_link_usdt *link = NULL;
tools/net/ynl/samples/rt-link.c
166
ynl_dump_foreach(rsp, link)
tools/net/ynl/samples/rt-link.c
167
rt_link_print(link);
tools/objtool/builtin-check.c
100
OPT_BOOLEAN(0, "link", &opts.link, "object is a linked object"),
tools/objtool/builtin-check.c
153
if (opts.noinstr && !opts.link) {
tools/objtool/builtin-check.c
158
if (opts.ibt && !opts.link) {
tools/objtool/builtin-check.c
163
if (opts.unret && !opts.link) {
tools/objtool/builtin-check.c
339
if (!opts.link && has_multiple_files(file->elf)) {
tools/objtool/check.c
2598
if (!opts.link)
tools/objtool/include/objtool/builtin.h
38
bool link;
tools/perf/arch/powerpc/include/dwarf-regs-table.h
22
REG_DWARFNUM_NAME(link, 108),
tools/perf/tests/tests-scripts.c
174
char filename[PATH_MAX], link[128];
tools/perf/tests/tests-scripts.c
180
snprintf(link, sizeof(link), "/proc/%d/fd/%d", getpid(), dir_fd);
tools/perf/tests/tests-scripts.c
181
len = readlink(link, filename, sizeof(filename));
tools/perf/tests/tests-scripts.c
183
pr_err("Failed to readlink %s", link);
tools/perf/util/annotate.c
3004
struct basic_block_link *link;
tools/perf/util/annotate.c
3006
list_for_each_entry(link, head, node) {
tools/perf/util/annotate.c
3007
s64 begin_offset = link->bb->begin->al.offset;
tools/perf/util/annotate.c
3008
s64 end_offset = link->bb->end->al.offset;
tools/perf/util/annotate.c
3034
struct basic_block_link *link;
tools/perf/util/annotate.c
3050
link = malloc(sizeof(*link));
tools/perf/util/annotate.c
3051
if (link == NULL) {
tools/perf/util/annotate.c
3056
link->bb = bb;
tools/perf/util/annotate.c
3057
link->parent = parent;
tools/perf/util/annotate.c
3058
list_add_tail(&link->node, &bb_data->queue);
tools/perf/util/annotate.c
3064
struct basic_block_link *link,
tools/perf/util/annotate.c
3071
dl = link->bb->begin;
tools/perf/util/annotate.c
3109
add_basic_block(bb_data, link, next_dl);
tools/perf/util/annotate.c
3119
add_basic_block(bb_data, link, next_dl);
tools/perf/util/annotate.c
3124
link->bb->end = dl;
tools/perf/util/annotate.c
3132
static void link_found_basic_blocks(struct basic_block_link *link,
tools/perf/util/annotate.c
3135
while (link) {
tools/perf/util/annotate.c
3136
struct basic_block_link *parent = link->parent;
tools/perf/util/annotate.c
3138
list_move(&link->bb->list, head);
tools/perf/util/annotate.c
3139
list_del(&link->node);
tools/perf/util/annotate.c
3140
free(link);
tools/perf/util/annotate.c
3142
link = parent;
tools/perf/util/annotate.c
3148
struct basic_block_link *link, *tmp;
tools/perf/util/annotate.c
3150
list_for_each_entry_safe(link, tmp, &bb_data->queue, node) {
tools/perf/util/annotate.c
3151
list_del(&link->node);
tools/perf/util/annotate.c
3152
zfree(&link->bb);
tools/perf/util/annotate.c
3153
free(link);
tools/perf/util/annotate.c
3156
list_for_each_entry_safe(link, tmp, &bb_data->visited, node) {
tools/perf/util/annotate.c
3157
list_del(&link->node);
tools/perf/util/annotate.c
3158
zfree(&link->bb);
tools/perf/util/annotate.c
3159
free(link);
tools/perf/util/annotate.c
3182
struct basic_block_link *link;
tools/perf/util/annotate.c
3195
link = list_first_entry(&bb_data.queue, struct basic_block_link, node);
tools/perf/util/annotate.c
3197
if (process_basic_block(&bb_data, link, sym, dst)) {
tools/perf/util/annotate.c
3198
link_found_basic_blocks(link, head);
tools/perf/util/annotate.c
3202
list_move(&link->node, &bb_data.visited);
tools/perf/util/bpf-filter.c
452
struct bpf_link *link;
tools/perf/util/bpf-filter.c
532
link = bpf_program__attach_perf_event_opts(prog, FD(evsel, x, y),
tools/perf/util/bpf-filter.c
534
if (IS_ERR(link)) {
tools/perf/util/bpf-filter.c
536
ret = PTR_ERR(link);
tools/perf/util/bpf_counter.c
462
struct bpf_link *link = NULL;
tools/perf/util/bpf_counter.c
477
link = bpf_program__attach(skel->progs.on_switch);
tools/perf/util/bpf_counter.c
478
if (IS_ERR(link)) {
tools/perf/util/bpf_counter.c
480
err = PTR_ERR(link);
tools/perf/util/bpf_counter.c
484
link_fd = bpf_link__fd(link);
tools/perf/util/bpf_counter.c
507
bpf_link__destroy(link);
tools/perf/util/bpf_counter.c
515
struct bpf_link *link;
tools/perf/util/bpf_counter.c
523
link = bpf_program__attach(skel->progs.fexit_XXX);
tools/perf/util/bpf_counter.c
524
if (IS_ERR(link))
tools/perf/util/bpf_counter.c
525
err = PTR_ERR(link);
tools/perf/util/bpf_counter_cgroup.c
132
link = bpf_program__attach_perf_event(skel->progs.on_cgrp_switch,
tools/perf/util/bpf_counter_cgroup.c
134
if (IS_ERR(link)) {
tools/perf/util/bpf_counter_cgroup.c
136
err = PTR_ERR(link);
tools/perf/util/bpf_counter_cgroup.c
98
struct bpf_link *link;
tools/perf/util/build-id.c
673
} else if (link(realname, filename) && errno != EEXIST) {
tools/perf/util/build-id.c
702
} else if (link(debugfile, filename) &&
tools/perf/util/copyfile.c
126
err = link(tmp, to);
tools/sched_ext/scx_central.c
120
link = SCX_OPS_ATTACH(skel, central_ops, scx_central);
tools/sched_ext/scx_central.c
143
bpf_link__destroy(link);
tools/sched_ext/scx_central.c
49
struct bpf_link *link;
tools/sched_ext/scx_cpu0.c
100
bpf_link__destroy(link);
tools/sched_ext/scx_cpu0.c
64
struct bpf_link *link;
tools/sched_ext/scx_cpu0.c
89
link = SCX_OPS_ATTACH(skel, cpu0_ops, scx_cpu0);
tools/sched_ext/scx_flatcg.c
131
struct bpf_link *link;
tools/sched_ext/scx_flatcg.c
186
link = SCX_OPS_ATTACH(skel, flatcg_ops, scx_flatcg);
tools/sched_ext/scx_flatcg.c
236
bpf_link__destroy(link);
tools/sched_ext/scx_pair.c
156
link = SCX_OPS_ATTACH(skel, pair_ops, scx_pair);
tools/sched_ext/scx_pair.c
179
bpf_link__destroy(link);
tools/sched_ext/scx_pair.c
48
struct bpf_link *link;
tools/sched_ext/scx_qmap.c
123
link = SCX_OPS_ATTACH(skel, qmap_ops, scx_qmap);
tools/sched_ext/scx_qmap.c
151
bpf_link__destroy(link);
tools/sched_ext/scx_qmap.c
59
struct bpf_link *link;
tools/sched_ext/scx_sdt.c
46
struct bpf_link *link;
tools/sched_ext/scx_sdt.c
69
link = SCX_OPS_ATTACH(skel, sdt_ops, scx_sdt);
tools/sched_ext/scx_sdt.c
95
bpf_link__destroy(link);
tools/sched_ext/scx_simple.c
103
bpf_link__destroy(link);
tools/sched_ext/scx_simple.c
66
struct bpf_link *link;
tools/sched_ext/scx_simple.c
92
link = SCX_OPS_ATTACH(skel, simple_ops, scx_simple);
tools/testing/selftests/alsa/conf.c
142
char path[PATH_MAX], link[PATH_MAX + 1];
tools/testing/selftests/alsa/conf.c
154
len = readlink(path, link, sizeof(link) - 1);
tools/testing/selftests/alsa/conf.c
160
link[len] = '\0';
tools/testing/selftests/alsa/conf.c
161
e = strrchr(link, '/');
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
303
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
311
link = bpf_program__attach(ctx.skel->progs.bloom_lookup);
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
312
if (!link) {
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
320
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
328
link = bpf_program__attach(ctx.skel->progs.bloom_update);
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
329
if (!link) {
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
337
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
347
link = bpf_program__attach(ctx.skel->progs.bloom_hashmap_lookup);
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
348
if (!link) {
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
356
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
365
link = bpf_program__attach(ctx.skel->progs.bloom_hashmap_lookup);
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
366
if (!link) {
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
374
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
382
link = bpf_program__attach(ctx.skel->progs.bloom_hashmap_lookup);
tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
383
if (!link) {
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_full_update.c
39
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_full_update.c
52
link = bpf_program__attach(ctx.skel->progs.benchmark);
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_full_update.c
53
if (!link) {
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_lookup.c
153
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_lookup.c
193
link = bpf_program__attach(ctx.skel->progs.benchmark);
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_lookup.c
194
if (!link) {
tools/testing/selftests/bpf/benchs/bench_bpf_loop.c
72
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_bpf_loop.c
82
link = bpf_program__attach(ctx.skel->progs.benchmark);
tools/testing/selftests/bpf/benchs/bench_bpf_loop.c
83
if (!link) {
tools/testing/selftests/bpf/benchs/bench_rename.c
65
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_rename.c
67
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/benchs/bench_rename.c
68
if (!link) {
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
224
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
236
link = bpf_program__attach(ctx->skel->progs.bench_ringbuf);
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
237
if (!link) {
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
283
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
326
link = bpf_program__attach(ctx->skel->progs.bench_ringbuf);
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
327
if (!link) {
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
450
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
481
link = bpf_program__attach(ctx->skel->progs.bench_perfbuf);
tools/testing/selftests/bpf/benchs/bench_ringbufs.c
482
if (!link) {
tools/testing/selftests/bpf/benchs/bench_strncmp.c
103
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_strncmp.c
105
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/benchs/bench_strncmp.c
106
if (!link) {
tools/testing/selftests/bpf/benchs/bench_trigger.c
165
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_trigger.c
167
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/benchs/bench_trigger.c
168
if (!link) {
tools/testing/selftests/bpf/benchs/bench_trigger.c
233
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/benchs/bench_trigger.c
253
link = bpf_program__attach_kprobe_multi_opts(empty, NULL, &opts);
tools/testing/selftests/bpf/benchs/bench_trigger.c
255
if (!link) {
tools/testing/selftests/bpf/benchs/bench_trigger.c
415
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_trigger.c
444
link = bpf_program__attach_uprobe_multi(
tools/testing/selftests/bpf/benchs/bench_trigger.c
447
ctx.skel->links.bench_trigger_uprobe_multi = link;
tools/testing/selftests/bpf/benchs/bench_trigger.c
449
link = bpf_program__attach_uprobe(ctx.skel->progs.bench_trigger_uprobe,
tools/testing/selftests/bpf/benchs/bench_trigger.c
454
ctx.skel->links.bench_trigger_uprobe = link;
tools/testing/selftests/bpf/benchs/bench_trigger.c
456
if (!link) {
tools/testing/selftests/bpf/map_tests/map_percpu_stats.c
236
struct bpf_link *link;
tools/testing/selftests/bpf/map_tests/map_percpu_stats.c
249
link = bpf_program__attach_iter(skel->progs.dump_bpf_map, NULL);
tools/testing/selftests/bpf/map_tests/map_percpu_stats.c
250
CHECK(!link, "bpf_program__attach_iter", "error: %s\n", strerror(errno));
tools/testing/selftests/bpf/map_tests/map_percpu_stats.c
252
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/map_tests/map_percpu_stats.c
258
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/attach_probe.c
210
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/attach_probe.c
216
link = bpf_program__attach_kprobe_opts(skel->progs.kprobe_write_ctx,
tools/testing/selftests/bpf/prog_tests/attach_probe.c
218
if (!ASSERT_ERR_PTR(link, "bpf_program__attach_kprobe_opts"))
tools/testing/selftests/bpf/prog_tests/attach_probe.c
219
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
106
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
113
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
134
link = bpf_program__attach(skel->progs.inner_map);
tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
135
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
142
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
96
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
98
link = bpf_program__attach(skel->progs.check_bloom);
tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
99
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
444
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
459
link = bpf_program__attach_perf_event_opts(skel->progs.handle_pe, pfd, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
460
if (!ASSERT_OK_PTR(link, "link1"))
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
468
bpf_link__disconnect(link);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
470
close(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
472
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
473
link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
478
link = bpf_program__attach_perf_event_opts(skel->progs.handle_pe, pfd, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
479
if (!ASSERT_OK_PTR(link, "link2"))
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
488
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
601
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
643
link = bpf_program__attach_trace_opts(skel->progs.handle_tp_btf, &trace_opts);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
644
if (!ASSERT_OK_PTR(link, "attach_trace_opts"))
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
648
bpf_link__destroy(link); /* detach */
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
649
link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
656
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
682
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
713
link = bpf_program__attach_raw_tracepoint_opts(skel->progs.handle_raw_tp,
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
715
if (!ASSERT_OK_PTR(link, "attach_raw_tp_opts"))
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
719
bpf_link__destroy(link); /* detach */
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
720
link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
727
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
194
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
199
link = bpf_program__attach(skel->progs.simple_test_other_sec);
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
200
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
206
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
211
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
216
link = bpf_program__attach(skel->progs.use_static_global_other_sec);
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
217
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
223
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
228
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
233
link = bpf_program__attach(skel->progs.use_nonstatic_global_other_sec);
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
234
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_gotox.c
240
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1012
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
102
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1026
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1052
link = bpf_program__attach_iter(skel->progs.dump_bpf_array_map, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1053
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1056
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1098
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1124
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1161
link = bpf_program__attach_iter(skel->progs.dump_bpf_percpu_array_map, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1162
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1165
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1184
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1197
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1220
link = bpf_program__attach_iter(skel->progs.delete_bpf_sk_storage_map,
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1222
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1225
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1249
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1327
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1354
link = bpf_program__attach_iter(skel->progs.oob_write_bpf_sk_storage_map, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1355
err = libbpf_get_error(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1358
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1362
link = bpf_program__attach_iter(skel->progs.rw_bpf_sk_storage_map, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1363
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1366
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1394
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1408
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1418
link = bpf_program__attach_iter(skel->progs.dump_bpf_hash_map, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1419
if (!ASSERT_ERR_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
1420
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
182
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
191
link = bpf_program__attach_iter(prog, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
192
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
196
err = bpf_link_get_info_by_fd(bpf_link__fd(link), &info, &info_len);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
200
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
480
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
484
link = bpf_program__attach_iter(prog, NULL);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
485
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
488
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
50
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
508
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
54
link = bpf_program__attach_iter(prog, opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
55
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
58
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
629
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
641
link = skel->links.dump_task;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
642
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
671
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
678
link = bpf_program__attach_iter(skel1->progs.dump_task, NULL);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
679
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
685
err = bpf_link__pin(link, path);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
70
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
701
err = bpf_link__update_program(link, skel2->progs.dump_task);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
712
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
723
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
778
link = bpf_program__attach_iter(skel->progs.dump_bpf_map, NULL);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
779
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
782
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
83
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
832
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
849
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
872
link = bpf_program__attach_iter(skel->progs.dump_bpf_hash_map, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
873
if (!ASSERT_ERR_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
877
link = bpf_program__attach_iter(skel->progs.dump_bpf_hash_map, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
878
if (!ASSERT_ERR_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
899
link = bpf_program__attach_iter(skel->progs.sleepable_dummy_dump, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
900
if (!ASSERT_ERR_PTR(link, "attach_sleepable_prog_to_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
904
link = bpf_program__attach_iter(skel->progs.dump_bpf_hash_map, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
905
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
908
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
91
link = bpf_program__attach_iter(prog, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
92
if (!ASSERT_OK_PTR(link, "attach_map_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
929
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
942
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
95
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
97
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
987
link = bpf_program__attach_iter(skel->progs.dump_bpf_percpu_hash_map, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
988
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
991
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
10
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
103
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
106
link = bpf_program__attach(skel->progs.prog_nested_calls);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
107
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
12
link = bpf_program__attach(skel->progs.test_prog);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
120
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
125
struct bpf_link *link =
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
128
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
13
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
139
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
144
struct bpf_link *link = bpf_program__attach(skel->progs.stack_check);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
149
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
178
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
40
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
45
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
47
link = bpf_program__attach(skel->progs.test_prog);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
48
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
62
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
67
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
70
link = bpf_program__attach(skel->progs.prog_null_ctx);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
71
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
81
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
86
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
89
link = bpf_program__attach(skel->progs.prog_invalid_flags);
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
90
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_loop.c
97
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_qdisc.c
146
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_qdisc.c
152
link = bpf_map__attach_struct_ops(skel->maps.test);
tools/testing/selftests/bpf/prog_tests/bpf_qdisc.c
153
if (!ASSERT_ERR_PTR(link, "bpf_map__attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/bpf_qdisc.c
154
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
105
link = bpf_map__attach_struct_ops(cubic_skel->maps.cubic);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
106
if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) {
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
115
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
151
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
157
link = bpf_map__attach_struct_ops(dctcp_skel->maps.dctcp);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
158
if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) {
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
176
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
194
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
207
link = dctcp_skel->links.dctcp;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
208
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
263
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
288
link = bpf_map__attach_struct_ops(dctcp_skel->maps.dctcp);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
289
if (!ASSERT_OK_PTR(link, "dctcp link"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
311
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
342
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
348
link = bpf_map__attach_struct_ops(skel->maps.write_sk_pacing);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
349
ASSERT_OK_PTR(link, "attach_struct_ops");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
351
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
358
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
367
link = bpf_map__attach_struct_ops(skel->maps.incompl_cong_ops);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
368
ASSERT_ERR_PTR(link, "attach_struct_ops");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
370
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
401
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
409
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
410
if (!ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
417
err = bpf_link__update_map(link, skel->maps.ca_update_2);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
424
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
439
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
447
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
448
if (!ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
455
err = bpf_link__update_map(link, skel->maps.ca_wrong);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
461
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
476
struct bpf_link *link, *link_nl;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
487
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
488
ASSERT_OK_PTR(link, "attach_struct_ops");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
493
err = bpf_link__update_map(link, skel->maps.ca_no_link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
496
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
505
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
511
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
512
ASSERT_OK_PTR(link, "attach_struct_ops_1st");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
513
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
518
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
519
ASSERT_OK_PTR(link, "attach_struct_ops_2nd");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
520
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
529
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
536
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
537
ASSERT_OK_PTR(link, "attach_struct_ops_1st");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
538
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
540
link = bpf_map__attach_struct_ops(skel->maps.ca_update_2);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
541
if (!ASSERT_OK_PTR(link, "attach_struct_ops_2nd"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
551
err = bpf_link_update(bpf_link__fd(link),
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
558
err = bpf_link_update(bpf_link__fd(link),
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
563
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
588
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
594
link = bpf_map__attach_struct_ops(cc_cubic_skel->maps.cc_cubic);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
595
if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) {
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
602
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
99
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgroup_hierarchical_stats.c
251
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgroup_hierarchical_stats.c
263
link = bpf_program__attach_iter(obj->progs.dumper, &opts);
tools/testing/selftests/bpf/prog_tests/cgroup_hierarchical_stats.c
264
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/cgroup_hierarchical_stats.c
269
err = bpf_link__pin(link, path);
tools/testing/selftests/bpf/prog_tests/cgroup_hierarchical_stats.c
273
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
100
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
107
link = bpf_program__attach_iter(skel->progs.cgroup_id_printer, &opts);
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
108
ASSERT_ERR_PTR(link, "attach_iter");
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
109
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
117
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
125
link = bpf_program__attach_iter(skel->progs.cgroup_id_printer, &opts);
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
126
ASSERT_ERR_PTR(link, "attach_iter");
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
127
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
210
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
229
link = bpf_program__attach_iter(skel->progs.cgroup_id_printer, &opts);
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
230
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
233
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
238
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
272
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
56
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
68
link = bpf_program__attach_iter(prog, &opts);
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
69
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
72
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/cgroup_iter.c
92
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
101
static void test_shmem(struct bpf_link *link, struct memcg_query *memcg_query)
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
119
if (!ASSERT_OK(read_stats(link), "read stats"))
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
13
static int read_stats(struct bpf_link *link)
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
130
static void test_kmem(struct bpf_link *link, struct memcg_query *memcg_query)
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
143
if (!ASSERT_OK(read_stats(link), "read stats"))
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
155
static void test_pgfault(struct bpf_link *link, struct memcg_query *memcg_query)
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
170
if (!ASSERT_OK(read_stats(link), "read stats"))
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
18
fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
183
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
202
link = bpf_program__attach_iter(skel->progs.cgroup_memcg_query, &opts);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
203
if (!ASSERT_OK_PTR(link, "bpf_program__attach_iter"))
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
207
test_anon(link, &skel->data_query->memcg_query);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
209
test_shmem(link, &skel->data_query->memcg_query);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
211
test_file(link, &skel->data_query->memcg_query);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
213
test_kmem(link, &skel->data_query->memcg_query);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
215
test_pgfault(link, &skel->data_query->memcg_query);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
217
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
36
static void test_anon(struct bpf_link *link, struct memcg_query *memcg_query)
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
53
if (!ASSERT_OK(read_stats(link), "read stats"))
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
62
static void test_file(struct bpf_link *link, struct memcg_query *memcg_query)
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
88
if (!ASSERT_OK(read_stats(link), "read stats"))
tools/testing/selftests/bpf/prog_tests/cgroup_skb_sk_lookup.c
50
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgroup_skb_sk_lookup.c
62
link = bpf_program__attach_cgroup(skel->progs.ingress_lookup, cgfd);
tools/testing/selftests/bpf/prog_tests/cgroup_skb_sk_lookup.c
63
if (!ASSERT_OK_PTR(link, "cgroup_attach"))
tools/testing/selftests/bpf/prog_tests/cgroup_skb_sk_lookup.c
68
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/cgrp_kfunc.c
54
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/cgrp_kfunc.c
67
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/cgrp_kfunc.c
68
if (!ASSERT_OK_PTR(link, "attached_link"))
tools/testing/selftests/bpf/prog_tests/cgrp_kfunc.c
79
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c
179
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c
199
link = bpf_program__attach_iter(skel->progs.cgroup_iter, &opts);
tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c
200
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c
203
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c
214
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/check_mtu.c
45
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/check_mtu.c
55
link = bpf_program__attach_xdp(prog, IFINDEX_LO);
tools/testing/selftests/bpf/prog_tests/check_mtu.c
56
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/check_mtu.c
58
skel->links.xdp_use_helper_basic = link;
tools/testing/selftests/bpf/prog_tests/check_mtu.c
61
fd = bpf_link__fd(link);
tools/testing/selftests/bpf/prog_tests/check_mtu.c
71
err = bpf_link__detach(link);
tools/testing/selftests/bpf/prog_tests/core_reloc.c
1007
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/core_reloc.c
1100
link = bpf_program__attach_raw_tracepoint(prog, tp_name);
tools/testing/selftests/bpf/prog_tests/core_reloc.c
1101
if (!ASSERT_OK_PTR(link, "attach_raw_tp"))
tools/testing/selftests/bpf/prog_tests/core_reloc.c
1144
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/core_reloc.c
1145
link = NULL;
tools/testing/selftests/bpf/prog_tests/cpumask.c
38
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/cpumask.c
57
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/cpumask.c
58
if (!ASSERT_OK_PTR(link, "bpf_program__attach"))
tools/testing/selftests/bpf/prog_tests/cpumask.c
70
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/custom_sec_handlers.c
33
struct bpf_link **link)
tools/testing/selftests/bpf/prog_tests/custom_sec_handlers.c
37
*link = bpf_program__attach_raw_tracepoint(prog, "sys_enter");
tools/testing/selftests/bpf/prog_tests/custom_sec_handlers.c
38
return libbpf_get_error(*link);
tools/testing/selftests/bpf/prog_tests/custom_sec_handlers.c
40
*link = bpf_program__attach_tracepoint(prog, "syscalls", "sys_enter_nanosleep");
tools/testing/selftests/bpf/prog_tests/custom_sec_handlers.c
41
return libbpf_get_error(*link);
tools/testing/selftests/bpf/prog_tests/custom_sec_handlers.c
45
*link = NULL;
tools/testing/selftests/bpf/prog_tests/dummy_st_ops.c
16
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/dummy_st_ops.c
22
link = bpf_map__attach_struct_ops(skel->maps.dummy_1);
tools/testing/selftests/bpf/prog_tests/dummy_st_ops.c
23
ASSERT_EQ(libbpf_get_error(link), -EOPNOTSUPP, "dummy_st_ops_attach");
tools/testing/selftests/bpf/prog_tests/dynptr.c
139
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/dynptr.c
140
if (!ASSERT_OK_PTR(link, "bpf_program__attach")) {
tools/testing/selftests/bpf/prog_tests/dynptr.c
146
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/dynptr.c
63
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/dynptr.c
88
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/dynptr.c
89
if (!ASSERT_OK_PTR(link, "bpf_program__attach"))
tools/testing/selftests/bpf/prog_tests/dynptr.c
94
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/exceptions.c
112
if (!ASSERT_ERR_PTR(link = bpf_program__attach(prog), "attach err")) \
tools/testing/selftests/bpf/prog_tests/exceptions.c
115
if (!ASSERT_OK_PTR(link = bpf_program__attach(prog), "attach ok")) \
tools/testing/selftests/bpf/prog_tests/exceptions.c
118
bpf_link__destroy(link); \
tools/testing/selftests/bpf/prog_tests/exceptions.c
95
struct bpf_link *link = NULL; \
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
133
link[i] = bpf_program__attach_trace(prog[i]);
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
134
if (!ASSERT_OK_PTR(link[i], "attach_trace"))
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
139
err = bpf_link_get_info_by_fd(bpf_link__fd(link[i]),
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
167
bpf_link__destroy(link[i]);
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
170
free(link);
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
235
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
252
link = bpf_program__attach_freplace(prog, tgt_fd, tgt_name);
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
253
if (!ASSERT_OK_PTR(link, "second_link"))
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
267
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
67
struct bpf_link **link = NULL;
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
89
link = calloc(sizeof(struct bpf_link *), prog_cnt);
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
90
if (!ASSERT_OK_PTR(link, "link_ptr"))
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
164
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
167
link = bpf_program__attach_kprobe_opts(skel->progs.kprobe_run, KPROBE_FUNC, &opts);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
168
if (!ASSERT_OK_PTR(link, "attach_kprobe"))
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
171
link_fd = bpf_link__fd(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
185
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
193
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
196
link = bpf_program__attach_tracepoint_opts(skel->progs.tp_run, TP_CAT, TP_NAME, &opts);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
197
if (!ASSERT_OK_PTR(link, "attach_tp"))
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
200
link_fd = bpf_link__fd(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
203
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
211
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
226
link = bpf_program__attach_perf_event_opts(skel->progs.event_run, pfd, &opts);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
227
if (!ASSERT_OK_PTR(link, "attach_event"))
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
230
link_fd = bpf_link__fd(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
233
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
250
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
259
link = bpf_program__attach_uprobe_opts(skel->progs.uprobe_run,
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
263
if (!ASSERT_OK_PTR(link, "attach_uprobe"))
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
266
link_fd = bpf_link__fd(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
269
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
378
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
385
link = bpf_program__attach_kprobe_multi_opts(skel->progs.kmulti_run, NULL, &opts);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
386
if (!ASSERT_OK_PTR(link, "attach_kprobe_multi"))
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
389
link_fd = bpf_link__fd(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
396
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
563
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
581
link = bpf_program__attach_uprobe_multi(skel->progs.umulti_run, 0,
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
583
if (!ASSERT_OK_PTR(link, "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
586
link_fd = bpf_link__fd(link);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
592
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/find_vma.c
51
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/find_vma.c
67
link = bpf_program__attach_perf_event(skel->progs.handle_pe, pfd);
tools/testing/selftests/bpf/prog_tests/find_vma.c
68
if (!ASSERT_OK_PTR(link, "attach_perf_event"))
tools/testing/selftests/bpf/prog_tests/find_vma.c
76
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector.c
754
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/flow_dissector.c
780
link = bpf_program__attach_netns(skel->progs._dissect, net_fd);
tools/testing/selftests/bpf/prog_tests/flow_dissector.c
781
if (!ASSERT_OK_PTR(link, "attach_netns"))
tools/testing/selftests/bpf/prog_tests/flow_dissector.c
787
err = bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
128
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
150
int err, link;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
161
link = bpf_link_create(prog2, netns, BPF_FLOW_DISSECTOR, &opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
162
if (CHECK_FAIL(link >= 0 || errno != EEXIST))
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
164
if (link >= 0)
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
165
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
177
int err, link;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
179
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
180
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
193
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
200
int err, link;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
202
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
203
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
216
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
244
int link;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
246
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
247
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
253
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
262
int err, link;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
264
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
265
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
274
err = bpf_link_update(link, prog2, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
279
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
287
int err, link;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
289
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
290
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
299
err = bpf_link_update(link, prog2, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
304
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
312
int err, link;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
314
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
315
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
324
err = bpf_link_update(link, prog1, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
329
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
337
int err, link;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
339
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
340
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
350
err = bpf_link_update(link, prog2, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
361
err = bpf_link_update(link, prog2, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
372
err = bpf_link_update(link, prog2, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
383
err = bpf_link_update(link, prog2, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
389
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
397
int err, link, prog3;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
399
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
400
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
410
err = bpf_link_update(link, -1, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
425
err = bpf_link_update(link, prog3, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
432
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
440
int err, link, old_net;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
447
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
448
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
458
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
466
err = bpf_link_update(link, prog2, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
470
close(link);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
480
int err, link, old_net;
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
493
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
494
if (CHECK_FAIL(link < 0)) {
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
500
err = bpf_link_get_info_by_fd(link, &info, &info_len);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
516
err = bpf_link_update(link, prog2, &update_opts);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
524
err = bpf_link_get_info_by_fd(link, &info, &info_len);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
549
err = bpf_link_get_info_by_fd(link, &info, &info_len);
tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
564
close(link);
tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c
125
link = bpf_program__attach_raw_tracepoint(prog, "sys_enter");
tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c
126
if (!ASSERT_OK_PTR(link, "attach_raw_tp"))
tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c
146
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c
92
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
64
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
82
link = bpf_program__attach_raw_tracepoint(skel->progs.trace_kfree_skb, NULL);
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
83
if (!ASSERT_OK_PTR(link, "attach_raw_tp"))
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
85
skel->links.trace_kfree_skb = link;
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
87
link = bpf_program__attach_trace(skel->progs.fentry_eth_type_trans);
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
88
if (!ASSERT_OK_PTR(link, "attach fentry"))
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
90
skel->links.fentry_eth_type_trans = link;
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
92
link = bpf_program__attach_trace(skel->progs.fexit_eth_type_trans);
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
93
if (!ASSERT_OK_PTR(link, "attach fexit"))
tools/testing/selftests/bpf/prog_tests/kfree_skb.c
95
skel->links.fexit_eth_type_trans = link;
tools/testing/selftests/bpf/prog_tests/kfunc_dynptr_param.c
68
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/kfunc_dynptr_param.c
87
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/kfunc_dynptr_param.c
88
if (!ASSERT_OK_PTR(link, "bpf_program__attach"))
tools/testing/selftests/bpf/prog_tests/kfunc_dynptr_param.c
93
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
224
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
246
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
249
if (!ASSERT_ERR_PTR(link, "fail_1"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
261
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
264
if (!ASSERT_ERR_PTR(link, "fail_2"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
276
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
279
if (!ASSERT_ERR_PTR(link, "fail_3"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
291
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
294
if (!ASSERT_ERR_PTR(link, "fail_4"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
306
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
309
if (!ASSERT_ERR_PTR(link, "fail_5"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
321
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
324
if (!ASSERT_ERR_PTR(link, "fail_6"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
331
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
340
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
367
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
376
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
399
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
407
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
415
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
417
if (!ASSERT_ERR_PTR(link, "bpf_program__attach_kprobe_multi_opts"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
418
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
420
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
422
if (ASSERT_OK_PTR(link, "bpf_program__attach_kprobe_multi_opts"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
423
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
433
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
436
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_empty,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
440
if (!ASSERT_OK_PTR(link, "bpf_program__attach_kprobe_multi_opts"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
444
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
512
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
522
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_override,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
524
if (!ASSERT_ERR_PTR(link, "override_attached_bpf_fentry_test1")) {
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
525
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
532
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_override,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
534
if (!ASSERT_OK_PTR(link, "override_attached_should_fail_bio"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
537
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
587
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
593
link = bpf_program__attach_kprobe_opts(skel->progs.kprobe_multi_write_ctx,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
595
if (!ASSERT_ERR_PTR(link, "bpf_program__attach_kprobe_opts"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
596
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/link_pinning.c
16
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/link_pinning.c
19
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/link_pinning.c
20
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/link_pinning.c
28
err = bpf_link__pin(link, link_pin_path);
tools/testing/selftests/bpf/prog_tests/link_pinning.c
32
CHECK(strcmp(link_pin_path, bpf_link__pin_path(link)), "pin_path1",
tools/testing/selftests/bpf/prog_tests/link_pinning.c
33
"exp %s, got %s\n", link_pin_path, bpf_link__pin_path(link));
tools/testing/selftests/bpf/prog_tests/link_pinning.c
45
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/link_pinning.c
46
link = NULL;
tools/testing/selftests/bpf/prog_tests/link_pinning.c
53
link = bpf_link__open(link_pin_path);
tools/testing/selftests/bpf/prog_tests/link_pinning.c
54
if (!ASSERT_OK_PTR(link, "link_open"))
tools/testing/selftests/bpf/prog_tests/link_pinning.c
57
CHECK(strcmp(link_pin_path, bpf_link__pin_path(link)), "pin_path2",
tools/testing/selftests/bpf/prog_tests/link_pinning.c
58
"exp %s, got %s\n", link_pin_path, bpf_link__pin_path(link));
tools/testing/selftests/bpf/prog_tests/link_pinning.c
61
err = bpf_link__unpin(link);
tools/testing/selftests/bpf/prog_tests/link_pinning.c
70
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/link_pinning.c
71
link = NULL;
tools/testing/selftests/bpf/prog_tests/link_pinning.c
87
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
195
test_case->link = bpf_program__attach_xdp(skel->progs.drop_ack,
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
197
if (!ASSERT_OK_PTR(test_case->link, "bpf_program__attach_xdp"))
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
207
err = bpf_link__destroy(test_case->link);
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
211
test_case->link = NULL;
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
518
if (test_case->link) {
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
530
if (test_case->link) {
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
60
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/module_attach.c
101
link = bpf_program__attach(skel->progs.handle_fexit);
tools/testing/selftests/bpf/prog_tests/module_attach.c
102
if (!ASSERT_OK_PTR(link, "attach_fexit"))
tools/testing/selftests/bpf/prog_tests/module_attach.c
106
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/module_attach.c
108
link = bpf_program__attach(skel->progs.kprobe_multi);
tools/testing/selftests/bpf/prog_tests/module_attach.c
109
if (!ASSERT_OK_PTR(link, "attach_kprobe_multi"))
tools/testing/selftests/bpf/prog_tests/module_attach.c
113
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/module_attach.c
42
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/module_attach.c
94
link = bpf_program__attach(skel->progs.handle_fentry);
tools/testing/selftests/bpf/prog_tests/module_attach.c
95
if (!ASSERT_OK_PTR(link, "attach_fentry"))
tools/testing/selftests/bpf/prog_tests/module_attach.c
99
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/netfilter_link_attach.c
100
verify_netfilter_link_info(link, nf_hook_link_tests[i]);
tools/testing/selftests/bpf/prog_tests/netfilter_link_attach.c
105
if (!ASSERT_OK(bpf_link__destroy(link), "link destroy"))
tools/testing/selftests/bpf/prog_tests/netfilter_link_attach.c
117
ASSERT_ERR_PTR(link, "program load failure");
tools/testing/selftests/bpf/prog_tests/netfilter_link_attach.c
47
static void verify_netfilter_link_info(struct bpf_link *link, const struct nf_link_test nf_expected)
tools/testing/selftests/bpf/prog_tests/netfilter_link_attach.c
55
fd = bpf_link__fd(link);
tools/testing/selftests/bpf/prog_tests/netfilter_link_attach.c
82
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/netfilter_link_attach.c
93
link = bpf_program__attach_netfilter(prog, &opts);
tools/testing/selftests/bpf/prog_tests/netfilter_link_attach.c
97
if (!ASSERT_OK_PTR(link, "program attach successful"))
tools/testing/selftests/bpf/prog_tests/perf_branches.c
107
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/perf_branches.c
74
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/perf_branches.c
84
link = bpf_program__attach_perf_event(skel->progs.perf_branches, perf_fd);
tools/testing/selftests/bpf/prog_tests/perf_branches.c
85
if (!ASSERT_OK_PTR(link, "attach_perf_event"))
tools/testing/selftests/bpf/prog_tests/rdonly_maps.c
26
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/rdonly_maps.c
60
link = bpf_program__attach_raw_tracepoint(prog, "sys_enter");
tools/testing/selftests/bpf/prog_tests/rdonly_maps.c
61
if (!ASSERT_OK_PTR(link, "attach_prog"))
tools/testing/selftests/bpf/prog_tests/rdonly_maps.c
67
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/rdonly_maps.c
68
link = NULL;
tools/testing/selftests/bpf/prog_tests/rdonly_maps.c
87
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
412
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
421
link = bpf_program__attach_netns(prog, net_fd);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
422
if (!ASSERT_OK_PTR(link, "bpf_program__attach_netns")) {
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
423
errno = -PTR_ERR(link);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
426
link = NULL;
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
430
return link;
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
457
struct bpf_link *link[3] = {};
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
472
link[0] = attach_lookup_prog(skel->progs.lookup_pass);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
473
if (!link[0])
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
475
link[1] = attach_lookup_prog(skel->progs.lookup_pass);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
476
if (!link[1])
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
478
link[2] = attach_lookup_prog(skel->progs.lookup_drop);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
479
if (!link[2])
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
496
prog_id = link_info_prog_id(link[0], &info);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
502
prog_id = link_info_prog_id(link[1], &info);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
508
prog_id = link_info_prog_id(link[2], &info);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
515
err = bpf_link__detach(link[0]);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
520
prog_id = link_info_prog_id(link[0], &info);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
528
if (link[2])
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
529
bpf_link__destroy(link[2]);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
530
if (link[1])
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
531
bpf_link__destroy(link[1]);
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
532
if (link[0])
tools/testing/selftests/bpf/prog_tests/sk_lookup.c
533
bpf_link__destroy(link[0]);
tools/testing/selftests/bpf/prog_tests/sock_destroy.c
13
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sock_destroy.c
17
link = bpf_program__attach_iter(prog, NULL);
tools/testing/selftests/bpf/prog_tests/sock_destroy.c
18
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/sock_destroy.c
21
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/sock_destroy.c
32
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sock_fields.c
350
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sock_fields.c
375
link = bpf_program__attach_cgroup(skel->progs.egress_read_sock_fields, child_cg_fd);
tools/testing/selftests/bpf/prog_tests/sock_fields.c
376
if (!ASSERT_OK_PTR(link, "attach_cgroup(egress_read_sock_fields)"))
tools/testing/selftests/bpf/prog_tests/sock_fields.c
378
skel->links.egress_read_sock_fields = link;
tools/testing/selftests/bpf/prog_tests/sock_fields.c
380
link = bpf_program__attach_cgroup(skel->progs.ingress_read_sock_fields, child_cg_fd);
tools/testing/selftests/bpf/prog_tests/sock_fields.c
381
if (!ASSERT_OK_PTR(link, "attach_cgroup(ingress_read_sock_fields)"))
tools/testing/selftests/bpf/prog_tests/sock_fields.c
383
skel->links.ingress_read_sock_fields = link;
tools/testing/selftests/bpf/prog_tests/sock_fields.c
385
link = bpf_program__attach_cgroup(skel->progs.read_sk_dst_port, child_cg_fd);
tools/testing/selftests/bpf/prog_tests/sock_fields.c
386
if (!ASSERT_OK_PTR(link, "attach_cgroup(read_sk_dst_port"))
tools/testing/selftests/bpf/prog_tests/sock_fields.c
388
skel->links.read_sk_dst_port = link;
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
105
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
127
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
141
link = bpf_program__attach_iter(skel->progs.iter_tcp_destroy, NULL);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
142
if (!ASSERT_OK_PTR(link, "bpf_program__attach_iter"))
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
145
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
157
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
261
int counts_len, struct bpf_link *link, int iter_fd)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
294
struct bpf_link *link, int iter_fd)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
310
link, listen_socks_len + 1);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
330
struct bpf_link *link, int iter_fd)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
343
close_idx = get_nth_socket(socks, socks_len, link, 1);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
365
struct bpf_link *link, int iter_fd)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
387
link, listen_socks_len + 1);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
408
struct bpf_link *link, int iter_fd)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
422
close_idx = get_nth_socket(socks, socks_len, link, 1);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
438
struct bpf_link *link, int iter_fd)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
465
established_socks_len, link,
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
484
int counts_len, struct bpf_link *link, int iter_fd)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
516
int counts_len, struct bpf_link *link,
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
558
struct bpf_link *link, int iter_fd)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
589
struct bpf_link *link, int iter_fd)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
605
int counts_len, struct bpf_link *link, int iter_fd);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
781
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
828
link = bpf_program__attach_iter(tc->sock_type == SOCK_STREAM ?
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
832
if (!ASSERT_OK_PTR(link, "bpf_program__attach_iter"))
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
835
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
841
link, iter_fd);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
851
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
870
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
900
link = bpf_program__attach_iter(sock_type == SOCK_STREAM ?
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
904
if (!ASSERT_OK_PTR(link, "bpf_program__attach_iter"))
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
907
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
965
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
99
static int get_nth_socket(int *fds, int fds_len, struct bpf_link *link, int n)
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1012
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1013
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1030
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
183
struct bpf_link *link, *link2;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
195
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
196
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
211
err = bpf_link__update_program(link, prog_clone);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
216
err = bpf_link__update_program(link, skel->progs.prog_skb_verdict);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
223
err = bpf_link_update(bpf_link__fd(link), bpf_program__fd(prog), &opts);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
229
err = bpf_link_update(bpf_link__fd(link), bpf_program__fd(prog), &opts);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
233
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
301
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
341
link = bpf_program__attach_iter(skel->progs.copy, &opts);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
342
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
345
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
367
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
408
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
416
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
417
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
420
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
427
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
428
if (!ASSERT_ERR_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
429
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
726
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
734
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
735
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
738
err = bpf_link__update_program(link, pass->progs.prog_skb_verdict_clone);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
743
err = bpf_link__update_program(link, pass->progs.prog_skb_parser);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
750
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
999
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
894
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
896
link = bpf_program__attach_sockmap(verdict, sock_map);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
897
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
902
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/stacktrace_map_raw_tp.c
13
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/stacktrace_map_raw_tp.c
23
link = bpf_program__attach_raw_tracepoint(prog, "sched_switch");
tools/testing/selftests/bpf/prog_tests/stacktrace_map_raw_tp.c
24
if (!ASSERT_OK_PTR(link, "attach_raw_tp"))
tools/testing/selftests/bpf/prog_tests/stacktrace_map_raw_tp.c
62
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/struct_ops_autocreate.c
117
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/struct_ops_autocreate.c
137
link = bpf_map__attach_struct_ops(skel->maps.testmod_1);
tools/testing/selftests/bpf/prog_tests/struct_ops_autocreate.c
138
if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/struct_ops_autocreate.c
145
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/struct_ops_autocreate.c
39
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/struct_ops_autocreate.c
42
link = bpf_map__attach_struct_ops(skel->maps.testmod_1);
tools/testing/selftests/bpf/prog_tests/struct_ops_autocreate.c
43
if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/struct_ops_autocreate.c
48
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
11
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
27
link = bpf_map__attach_struct_ops(skel->maps.testmod_1);
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
28
if (!ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
36
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
66
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
82
link = bpf_map__attach_struct_ops(skel->maps.testmod_1);
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
83
if (!ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
90
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/subskeleton.c
122
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/subskeleton.c
123
if (!ASSERT_OK_PTR(link, "prog_attach"))
tools/testing/selftests/bpf/prog_tests/subskeleton.c
141
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/subskeleton.c
90
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/task_kfunc.c
40
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/task_kfunc.c
53
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/task_kfunc.c
54
if (!ASSERT_OK_PTR(link, "attached_link"))
tools/testing/selftests/bpf/prog_tests/task_kfunc.c
67
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_change_tail.c
15
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_change_tail.c
24
link = bpf_program__attach_tcx(skel->progs.change_tail, LO_IFINDEX,
tools/testing/selftests/bpf/prog_tests/tc_change_tail.c
26
if (!ASSERT_OK_PTR(link, "bpf_program__attach_tcx"))
tools/testing/selftests/bpf/prog_tests/tc_change_tail.c
29
skel->links.change_tail = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1000
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1011
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1012
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1013
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1024
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1025
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1026
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1037
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1038
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1039
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1050
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1051
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1052
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1060
link = bpf_program__attach_tcx(skel->progs.tc1, 0, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1061
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1062
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1073
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1074
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1075
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1083
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1084
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1087
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1098
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1099
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1100
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1111
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1112
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1113
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1124
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1125
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1126
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1137
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1138
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
1139
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1149
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1150
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1153
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1175
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1206
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1207
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1210
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1220
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1221
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1224
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
123
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1262
link = bpf_program__attach_tcx(skel->progs.tc3, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1263
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1266
skel->links.tc3 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1274
link = bpf_program__attach_tcx(skel->progs.tc4, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1275
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1278
skel->links.tc4 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1331
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1362
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1363
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1366
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1376
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1377
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1380
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1418
link = bpf_program__attach_tcx(skel->progs.tc3, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1419
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1422
skel->links.tc3 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1430
link = bpf_program__attach_tcx(skel->progs.tc4, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1431
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1434
skel->links.tc4 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1485
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1520
link = bpf_program__attach_tcx(skel->progs.tc1, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1521
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1524
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1528
link = bpf_program__attach_tcx(skel->progs.tc2, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1529
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1532
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1536
link = bpf_program__attach_tcx(skel->progs.tc3, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1537
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
154
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1540
skel->links.tc3 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1544
link = bpf_program__attach_tcx(skel->progs.tc4, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1545
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1548
skel->links.tc4 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
155
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
158
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1583
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1623
link = bpf_program__attach_tcx(skel->progs.tc6, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1624
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1627
skel->links.tc6 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
164
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
165
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
168
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1697
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1733
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1734
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1737
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1739
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1740
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1743
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1858
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1893
link = bpf_program__attach_tcx(skel->progs.tc1, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1894
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1897
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1901
link = bpf_program__attach_tcx(skel->progs.tc2, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1902
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1905
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1909
link = bpf_program__attach_tcx(skel->progs.tc3, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1910
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1913
skel->links.tc3 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
1917
link = bpf_program__attach_tcx(skel->progs.tc4, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
1918
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
1921
skel->links.tc4 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
207
link = bpf_program__attach_tcx(skel->progs.tc3, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
208
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
211
skel->links.tc3 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
220
link = bpf_program__attach_tcx(skel->progs.tc4, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
221
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
224
skel->links.tc4 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
23
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
277
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
308
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
309
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
312
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
318
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
319
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
322
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
361
link = bpf_program__attach_tcx(skel->progs.tc3, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
362
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
365
skel->links.tc3 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
374
link = bpf_program__attach_tcx(skel->progs.tc4, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
375
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
378
skel->links.tc4 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
41
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
42
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
430
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
45
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
455
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
456
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
459
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
467
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
468
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
469
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
477
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
478
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
481
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
531
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
573
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
574
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
577
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
579
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
580
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
583
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
636
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
665
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
666
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
669
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
681
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
682
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
685
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
724
link = bpf_program__attach_tcx(skel->progs.tc3, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
725
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
726
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
738
link = bpf_program__attach_tcx(skel->progs.tc3, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
739
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
740
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
751
link = bpf_program__attach_tcx(skel->progs.tc3, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
752
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
753
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
76
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
77
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_links.c
80
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
861
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_links.c
886
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
887
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
888
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
898
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
899
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
900
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
910
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
911
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
912
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
922
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
923
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
924
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
935
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
936
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
937
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
947
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
948
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
949
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
959
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
960
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
961
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
972
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
973
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
974
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
985
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
986
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_links.c
987
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_links.c
998
link = bpf_program__attach_tcx(skel->progs.tc1, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_links.c
999
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
193
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
226
link = bpf_program__attach_netkit(skel->progs.tc1, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
227
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
230
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
261
link = bpf_program__attach_netkit(skel->progs.tc2, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
262
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
265
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
308
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
341
link = bpf_program__attach_netkit(skel->progs.tc1, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
342
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
345
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
381
link = bpf_program__attach_netkit(skel->progs.tc2, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
382
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
385
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
552
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
590
link = bpf_program__attach_netkit(skel->progs.tc1, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
591
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
594
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
635
link = bpf_program__attach_netkit(skel->progs.tc2, ifindex2, &optl);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
636
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
637
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
641
link = bpf_program__attach_netkit(skel->progs.tc3, ifindex2, &optl);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
642
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
643
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
664
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
691
link = bpf_program__attach_netkit(skel->progs.tc1, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
692
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
695
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
743
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
770
link = bpf_program__attach_netkit(skel->progs.tc1, ifindex, &optl_nk);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
771
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
774
skel->links.tc1 = link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
779
link = bpf_program__attach_tcx(skel->progs.tc7, ifindex2, &optl_tcx);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
780
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
783
skel->links.tc7 = link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
816
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
841
link = bpf_program__attach_netkit(skel->progs.tc8, ifindex, &optl);
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
842
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_netkit.c
845
skel->links.tc8 = link;
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1404
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1444
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1445
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1447
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1500
link = bpf_program__attach_tcx(skel->progs.tc4, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1501
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1503
skel->links.tc4 = link;
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1576
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1606
link = bpf_program__attach_tcx(skel->progs.tc2, loopback, &optl);
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1607
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/tc_opts.c
1609
skel->links.tc2 = link;
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
297
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
319
link = bpf_program__attach_cgroup(skel->progs.estab, cg_fd);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
320
if (!ASSERT_OK_PTR(link, "attach_cgroup(estab)"))
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
324
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
329
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
334
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
363
link = bpf_program__attach_cgroup(skel->progs.estab, cg_fd);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
364
if (!ASSERT_OK_PTR(link, "attach_cgroup(estab)"))
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
368
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
373
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
378
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
395
link = bpf_program__attach_cgroup(skel->progs.estab, cg_fd);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
396
if (!ASSERT_OK_PTR(link, "attach_cgroup(estab)"))
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
400
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
405
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
410
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
434
link = bpf_program__attach_cgroup(skel->progs.estab, cg_fd);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
435
if (!ASSERT_OK_PTR(link, "attach_cgroup(estab)"))
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
439
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
444
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
462
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
471
link = bpf_program__attach_cgroup(misc_skel->progs.misc_estab, cg_fd);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
472
if (!ASSERT_OK_PTR(link, "attach_cgroup(misc_estab)"))
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
476
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
513
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_lsm.c
57
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/test_lsm.c
66
link = bpf_program__attach(skel->progs.test_int_hook);
tools/testing/selftests/bpf/prog_tests/test_lsm.c
67
if (!ASSERT_ERR_PTR(link, "attach_link"))
tools/testing/selftests/bpf/prog_tests/test_overhead.c
109
link = bpf_program__attach_kprobe(kprobe_prog, false /* retprobe */,
tools/testing/selftests/bpf/prog_tests/test_overhead.c
111
if (!ASSERT_OK_PTR(link, "attach_kprobe"))
tools/testing/selftests/bpf/prog_tests/test_overhead.c
114
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_overhead.c
117
link = bpf_program__attach_kprobe(kretprobe_prog, true /* retprobe */,
tools/testing/selftests/bpf/prog_tests/test_overhead.c
119
if (!ASSERT_OK_PTR(link, "attach_kretprobe"))
tools/testing/selftests/bpf/prog_tests/test_overhead.c
122
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_overhead.c
125
link = bpf_program__attach_raw_tracepoint(raw_tp_prog, "task_rename");
tools/testing/selftests/bpf/prog_tests/test_overhead.c
126
if (!ASSERT_OK_PTR(link, "attach_raw_tp"))
tools/testing/selftests/bpf/prog_tests/test_overhead.c
129
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_overhead.c
132
link = bpf_program__attach_trace(fentry_prog);
tools/testing/selftests/bpf/prog_tests/test_overhead.c
133
if (!ASSERT_OK_PTR(link, "attach_fentry"))
tools/testing/selftests/bpf/prog_tests/test_overhead.c
136
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_overhead.c
139
link = bpf_program__attach_trace(fexit_prog);
tools/testing/selftests/bpf/prog_tests/test_overhead.c
140
if (!ASSERT_OK_PTR(link, "attach_fexit"))
tools/testing/selftests/bpf/prog_tests/test_overhead.c
143
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_overhead.c
68
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/test_struct_ops_assoc.c
142
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/test_struct_ops_assoc.c
153
link = bpf_map__attach_struct_ops(skel->maps.st_ops_map);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_assoc.c
154
if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/test_struct_ops_assoc.c
168
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
162
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
175
link = bpf_map__attach_struct_ops(skel->maps.testmod_incompatible);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
176
if (ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
177
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
254
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
262
link = bpf_map__attach_struct_ops(skel->maps.testmod_do_detach);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
263
if (!ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
266
fd = bpf_link__fd(link);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
280
err = bpf_link__detach(link);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
297
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
43
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
45
link = bpf_map__attach_struct_ops(map);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
46
ASSERT_OK_PTR(link, "attach_test_mod_1");
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
47
if (!link)
tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
54
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_multi_pages.c
10
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/test_struct_ops_multi_pages.c
19
link = bpf_map__attach_struct_ops(skel->maps.multi_pages);
tools/testing/selftests/bpf/prog_tests/test_struct_ops_multi_pages.c
20
ASSERT_OK_PTR(link, "attach_multi_pages");
tools/testing/selftests/bpf/prog_tests/test_struct_ops_multi_pages.c
22
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_task_work.c
115
link = bpf_program__attach_perf_event(prog, pe_fd);
tools/testing/selftests/bpf/prog_tests/test_task_work.c
116
if (!ASSERT_OK_PTR(link, "attach_perf_event"))
tools/testing/selftests/bpf/prog_tests/test_task_work.c
135
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_task_work.c
58
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/timer.c
133
link = bpf_program__attach_perf_event(prog, pe_fd);
tools/testing/selftests/bpf/prog_tests/timer.c
134
if (!ASSERT_OK_PTR(link, "attach_perf_event"))
tools/testing/selftests/bpf/prog_tests/timer.c
153
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/timer.c
89
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
40
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
57
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
58
if (!ASSERT_OK_PTR(link, "attach_prog"))
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
61
inst[i].link = link;
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
7
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
70
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
71
if (!ASSERT_ERR_PTR(link, "attach_prog")) {
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
72
inst[i].link = link;
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
77
if (!ASSERT_EQ(libbpf_get_error(link), -E2BIG, "E2BIG"))
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
79
if (!ASSERT_EQ(link, NULL, "ptr_is_null"))
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
96
bpf_link__destroy(inst[i].link);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1076
struct bpf_link *link[TASKS] = {};
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1089
link[i] = bpf_program__attach_uprobe_multi(uprobe_multi_program(skel, i),
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1092
if (!ASSERT_OK_PTR(link[i], "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1106
bpf_link__destroy(link[i]);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1129
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1165
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
779
get_link(struct uprobe_multi_consumers *skel, int link)
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
781
switch (link) {
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
799
struct bpf_link **link = get_link(skel, idx);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
802
if (!prog || !link)
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
817
*link = bpf_program__attach_uprobe_multi(prog, 0, "/proc/self/exe", NULL, &opts);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
818
if (!ASSERT_OK_PTR(*link, "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
825
struct bpf_link **link = get_link(skel, idx);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
827
bpf_link__destroy(*link);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
828
*link = NULL;
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
290
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
318
link = bpf_program__attach_uprobe_multi(skel->progs.test_uretprobe_multi,
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
321
if (!ASSERT_OK_PTR(link, "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
323
skel->links.test_uretprobe_multi = link;
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
438
static void check(struct uprobe_syscall_executed *skel, struct bpf_link *link,
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
444
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
454
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
468
link = bpf_program__attach_uprobe_opts(skel->progs.test_uprobe,
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
470
if (!ASSERT_OK_PTR(link, "bpf_program__attach_uprobe_opts"))
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
473
check(skel, link, uprobe_test, uprobe_test, 2);
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
478
link = bpf_program__attach_uprobe_opts(skel->progs.test_uretprobe,
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
480
if (!ASSERT_OK_PTR(link, "bpf_program__attach_uprobe_opts"))
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
483
check(skel, link, uprobe_test, uprobe_test, 2);
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
493
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
510
link = bpf_program__attach_uprobe_multi(skel->progs.test_uprobe_multi,
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
512
if (!ASSERT_OK_PTR(link, "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
515
check(skel, link, uprobe_test, uprobe_test, 2);
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
520
link = bpf_program__attach_uprobe_multi(skel->progs.test_uretprobe_multi,
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
522
if (!ASSERT_OK_PTR(link, "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
525
check(skel, link, uprobe_test, uprobe_test, 2);
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
537
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
553
link = bpf_program__attach_uprobe_multi(skel->progs.test_uprobe_session,
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
555
if (!ASSERT_OK_PTR(link, "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
558
check(skel, link, uprobe_test, uprobe_test, 4);
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
567
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
581
link = bpf_program__attach_usdt(skel->progs.test_usdt,
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
584
if (!ASSERT_OK_PTR(link, "bpf_program__attach_usdt"))
tools/testing/selftests/bpf/prog_tests/uprobe_syscall.c
587
check(skel, link, usdt_test, addr, 2);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
101
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
111
link = bpf_program__attach_xdp(prog, ifindex);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
112
if (!ASSERT_OK_PTR(link, "attach xdp program"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
115
skeletons->links[skeletons->nlinks++] = link;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
382
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
399
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, veth);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
400
if (!ASSERT_OK_PTR(link, "attach program to veth"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
407
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
408
link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
411
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, veth);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
412
if (!ASSERT_OK_PTR(link, "attach program to slave when enslaved"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
420
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
421
link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
424
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
425
if (!ASSERT_OK_PTR(link, "attach program to master"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
433
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
434
link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
446
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
447
if (!ASSERT_ERR_PTR(link, "attach program to master when slave does not support XDP"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
451
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
462
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
486
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
487
ASSERT_OK_PTR(link, "attach program to master");
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
490
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
500
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
547
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog,
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
549
if (!ASSERT_OK_PTR(link, "attach program to veth1"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
607
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_do_redirect.c
103
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/xdp_do_redirect.c
222
link = bpf_program__attach_xdp(skel->progs.xdp_count_pkts, ifindex_dst);
tools/testing/selftests/bpf/prog_tests/xdp_do_redirect.c
223
if (!ASSERT_OK_PTR(link, "prog_attach"))
tools/testing/selftests/bpf/prog_tests/xdp_do_redirect.c
225
skel->links.xdp_count_pkts = link;
tools/testing/selftests/bpf/prog_tests/xdp_flowtable.c
138
link = bpf_program__attach_xdp(skel->progs.xdp_flowtable_do_lookup,
tools/testing/selftests/bpf/prog_tests/xdp_flowtable.c
140
if (!ASSERT_OK_PTR(link, "prog_attach"))
tools/testing/selftests/bpf/prog_tests/xdp_flowtable.c
163
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_flowtable.c
70
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_link.c
107
link = bpf_program__attach_xdp(skel2->progs.xdp_handler, IFINDEX_LO);
tools/testing/selftests/bpf/prog_tests/xdp_link.c
108
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/xdp_link.c
110
skel2->links.xdp_handler = link;
tools/testing/selftests/bpf/prog_tests/xdp_link.c
117
err = bpf_link__update_program(link, skel1->progs.xdp_handler);
tools/testing/selftests/bpf/prog_tests/xdp_link.c
122
err = bpf_link_get_info_by_fd(bpf_link__fd(link),
tools/testing/selftests/bpf/prog_tests/xdp_link.c
132
err = bpf_link__update_program(link, skel1->progs.tc_handler);
tools/testing/selftests/bpf/prog_tests/xdp_link.c
136
err = bpf_link__detach(link);
tools/testing/selftests/bpf/prog_tests/xdp_link.c
141
err = bpf_link_get_info_by_fd(bpf_link__fd(link),
tools/testing/selftests/bpf/prog_tests/xdp_link.c
16
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/xdp_link.c
54
link = bpf_program__attach_xdp(skel1->progs.xdp_handler, IFINDEX_LO);
tools/testing/selftests/bpf/prog_tests/xdp_link.c
55
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/xdp_link.c
56
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_link.c
70
link = bpf_program__attach_xdp(skel1->progs.xdp_handler, IFINDEX_LO);
tools/testing/selftests/bpf/prog_tests/xdp_link.c
71
if (!ASSERT_OK_PTR(link, "link_attach"))
tools/testing/selftests/bpf/prog_tests/xdp_link.c
73
skel1->links.xdp_handler = link;
tools/testing/selftests/bpf/prog_tests/xdp_link.c
97
link = bpf_program__attach_xdp(skel2->progs.xdp_handler, IFINDEX_LO);
tools/testing/selftests/bpf/prog_tests/xdp_link.c
98
if (!ASSERT_ERR_PTR(link, "link_attach_should_fail")) {
tools/testing/selftests/bpf/prog_tests/xdp_link.c
99
bpf_link__destroy(link);
tools/testing/selftests/bpf/progs/bpf_iter_bpf_link.c
12
struct bpf_link *link = ctx->link;
tools/testing/selftests/bpf/progs/bpf_iter_bpf_link.c
15
if (!link)
tools/testing/selftests/bpf/progs/bpf_iter_bpf_link.c
18
link_id = link->id;
tools/testing/selftests/bpf/progs/xfrm_info.c
9
int link;
tools/testing/selftests/bpf/test_kmods/bpf_test_no_cfi.c
25
static int dummy_reg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_test_no_cfi.c
30
static void dummy_unreg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1317
static int bpf_dummy_reg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1332
static void bpf_dummy_unreg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1388
static int bpf_dummy_reg2(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1411
static int st_ops3_reg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1428
static void st_ops3_unreg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1649
static int st_ops_reg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1666
static void st_ops_unreg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1781
static int multi_st_ops_reg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1809
static void multi_st_ops_unreg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_loader.c
1142
struct bpf_link *link, *links[32] = {};
tools/testing/selftests/bpf/test_loader.c
1278
link = bpf_map__attach_struct_ops(map);
tools/testing/selftests/bpf/test_loader.c
1279
if (!link) {
tools/testing/selftests/bpf/test_loader.c
1284
links[links_cnt++] = link;
tools/testing/selftests/bpf/testing_helpers.c
241
__u32 link_info_prog_id(const struct bpf_link *link, struct bpf_link_info *info)
tools/testing/selftests/bpf/testing_helpers.c
247
err = bpf_link_get_info_by_fd(bpf_link__fd(link), info, &info_len);
tools/testing/selftests/bpf/testing_helpers.h
16
__u32 link_info_prog_id(const struct bpf_link *link, struct bpf_link_info *info);
tools/testing/selftests/hid/hid_bpf.c
251
struct bpf_link *link;
tools/testing/selftests/hid/hid_bpf.c
255
link = bpf_map__attach_struct_ops(self->skel->maps.first_event);
tools/testing/selftests/hid/hid_bpf.c
256
ASSERT_NULL(link) TH_LOG("unexpected return value when re-attaching the struct_ops");
tools/testing/selftests/hid/hid_bpf.c
268
struct bpf_link *link;
tools/testing/selftests/hid/hid_bpf.c
274
link = self->hid_links[0];
tools/testing/selftests/hid/hid_bpf.c
275
ASSERT_OK_PTR(link) TH_LOG("HID-BPF link not created");
tools/testing/selftests/hid/hid_bpf.c
277
link_fd = bpf_link__fd(link);
tools/testing/selftests/landlock/fs_test.c
2201
TEST_F_FORK(layout1, link)
tools/testing/selftests/landlock/fs_test.c
2228
ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
2232
ASSERT_EQ(-1, link(file1_s2d1, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2234
ASSERT_EQ(-1, link(file2_s1d2, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2236
ASSERT_EQ(-1, link(file2_s1d3, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2239
ASSERT_EQ(0, link(file2_s1d2, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2240
ASSERT_EQ(0, link(file2_s1d3, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2252
ASSERT_EQ(0, link(file1_s1d2, file2_s1d2));
tools/testing/selftests/landlock/fs_test.c
2253
ASSERT_EQ(0, link(file1_s1d3, file2_s1d3));
tools/testing/selftests/landlock/fs_test.c
2692
ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
2695
ASSERT_EQ(-1, link(file1_s2d1, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2698
ASSERT_EQ(-1, link(file1_s2d1, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2702
ASSERT_EQ(-1, link(file1_s2d2, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
2705
ASSERT_EQ(-1, link(file1_s2d2, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2709
ASSERT_EQ(0, link(file1_s2d2, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2712
ASSERT_EQ(-1, link(file1_s1d3, file1_s2d2));
tools/testing/selftests/landlock/fs_test.c
2716
ASSERT_EQ(0, link(file1_s1d3, file1_s2d3));
tools/testing/selftests/landlock/fs_test.c
2723
ASSERT_EQ(0, link(file1_s2d3, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2726
ASSERT_EQ(-1, link(file2_s1d2, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2728
ASSERT_EQ(-1, link(file2_s1d3, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2731
ASSERT_EQ(0, link(file2_s1d2, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2732
ASSERT_EQ(0, link(file2_s1d3, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
3431
ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
3441
ASSERT_EQ(0, link(file1_s1d2, file2_s1d2));
tools/testing/selftests/landlock/fs_test.c
3446
ASSERT_EQ(0, link(file1_s1d3, file2_s1d3));
tools/testing/selftests/landlock/fs_test.c
3516
ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
3522
ASSERT_EQ(0, link(file1_s1d2, file2_s1d2));
tools/testing/selftests/landlock/fs_test.c
3527
ASSERT_EQ(0, link(file1_s1d3, file2_s1d3));
tools/testing/selftests/landlock/fs_test.c
7457
EXPECT_EQ(-1, link(file1_s1d1, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
7484
EXPECT_EQ(-1, link(file1_s1d1, file1_s1d3));
tools/testing/selftests/mount/nosymfollow-test.c
133
int link;
tools/testing/selftests/mount/nosymfollow-test.c
135
link = open(LINK, 0, O_RDWR);
tools/testing/selftests/mount/nosymfollow-test.c
137
if ((link != -1 || errno != ELOOP)) {
tools/testing/selftests/mount/nosymfollow-test.c
139
link, strerror(errno));
tools/testing/selftests/mount/nosymfollow-test.c
142
if (link < 0)
tools/testing/selftests/mount/nosymfollow-test.c
145
if (close(link) != 0)
tools/testing/selftests/nolibc/nolibc-test.c
1417
CASE_TEST(link_root1); EXPECT_SYSER(1, link("/", "/"), -1, EEXIST); break;
tools/testing/selftests/nolibc/nolibc-test.c
1418
CASE_TEST(link_blah); EXPECT_SYSER(1, link("/proc/self/blah", "/blah"), -1, ENOENT); break;
tools/testing/selftests/nolibc/nolibc-test.c
1419
CASE_TEST(link_dir); EXPECT_SYSER(euid0, link("/", "/blah"), -1, EPERM); break;
tools/testing/selftests/nolibc/nolibc-test.c
1420
CASE_TEST(link_cross); EXPECT_SYSER(proc, link("/proc/self/cmdline", "/blah"), -1, EXDEV); break;
tools/testing/selftests/sched_ext/allowed_cpus.c
53
struct bpf_link *link;
tools/testing/selftests/sched_ext/allowed_cpus.c
55
link = bpf_map__attach_struct_ops(skel->maps.allowed_cpus_ops);
tools/testing/selftests/sched_ext/allowed_cpus.c
56
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/allowed_cpus.c
65
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/create_dsq.c
30
struct bpf_link *link;
tools/testing/selftests/sched_ext/create_dsq.c
32
link = bpf_map__attach_struct_ops(skel->maps.create_dsq_ops);
tools/testing/selftests/sched_ext/create_dsq.c
33
if (!link) {
tools/testing/selftests/sched_ext/create_dsq.c
38
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/cyclic_kick_wait.c
103
struct bpf_link *link = NULL;
tools/testing/selftests/sched_ext/cyclic_kick_wait.c
134
link = bpf_map__attach_struct_ops(skel->maps.cyclic_kick_wait_ops);
tools/testing/selftests/sched_ext/cyclic_kick_wait.c
135
if (!link) {
tools/testing/selftests/sched_ext/cyclic_kick_wait.c
174
if (link)
tools/testing/selftests/sched_ext/cyclic_kick_wait.c
175
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/ddsp_bogus_dsq_fail.c
31
struct bpf_link *link;
tools/testing/selftests/sched_ext/ddsp_bogus_dsq_fail.c
33
link = bpf_map__attach_struct_ops(skel->maps.ddsp_bogus_dsq_fail_ops);
tools/testing/selftests/sched_ext/ddsp_bogus_dsq_fail.c
34
SCX_FAIL_IF(!link, "Failed to attach struct_ops");
tools/testing/selftests/sched_ext/ddsp_bogus_dsq_fail.c
39
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/ddsp_vtimelocal_fail.c
30
struct bpf_link *link;
tools/testing/selftests/sched_ext/ddsp_vtimelocal_fail.c
32
link = bpf_map__attach_struct_ops(skel->maps.ddsp_vtimelocal_fail_ops);
tools/testing/selftests/sched_ext/ddsp_vtimelocal_fail.c
33
SCX_FAIL_IF(!link, "Failed to attach struct_ops");
tools/testing/selftests/sched_ext/ddsp_vtimelocal_fail.c
38
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/dsp_local_on.c
30
struct bpf_link *link;
tools/testing/selftests/sched_ext/dsp_local_on.c
32
link = bpf_map__attach_struct_ops(skel->maps.dsp_local_on_ops);
tools/testing/selftests/sched_ext/dsp_local_on.c
33
SCX_FAIL_IF(!link, "Failed to attach struct_ops");
tools/testing/selftests/sched_ext/dsp_local_on.c
38
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/enq_last_no_enq_fails.c
31
struct bpf_link *link;
tools/testing/selftests/sched_ext/enq_last_no_enq_fails.c
33
link = bpf_map__attach_struct_ops(skel->maps.enq_last_no_enq_fails_ops);
tools/testing/selftests/sched_ext/enq_last_no_enq_fails.c
34
if (!link) {
tools/testing/selftests/sched_ext/enq_last_no_enq_fails.c
43
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/enq_select_cpu.c
55
struct bpf_link *link;
tools/testing/selftests/sched_ext/enq_select_cpu.c
57
link = bpf_map__attach_struct_ops(skel->maps.enq_select_cpu_ops);
tools/testing/selftests/sched_ext/enq_select_cpu.c
58
if (!link) {
tools/testing/selftests/sched_ext/enq_select_cpu.c
69
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/exit.c
22
struct bpf_link *link;
tools/testing/selftests/sched_ext/exit.c
37
link = bpf_map__attach_struct_ops(skel->maps.exit_ops);
tools/testing/selftests/sched_ext/exit.c
38
if (!link) {
tools/testing/selftests/sched_ext/exit.c
52
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/hotplug.c
102
struct bpf_link *link;
tools/testing/selftests/sched_ext/hotplug.c
119
link = bpf_map__attach_struct_ops(skel->maps.hotplug_nocb_ops);
tools/testing/selftests/sched_ext/hotplug.c
123
SCX_ASSERT(link);
tools/testing/selftests/sched_ext/hotplug.c
133
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/hotplug.c
46
struct bpf_link *link;
tools/testing/selftests/sched_ext/hotplug.c
72
link = bpf_map__attach_struct_ops(skel->maps.hotplug_cb_ops);
tools/testing/selftests/sched_ext/hotplug.c
74
link = bpf_map__attach_struct_ops(skel->maps.hotplug_nocb_ops);
tools/testing/selftests/sched_ext/hotplug.c
76
if (!link) {
tools/testing/selftests/sched_ext/hotplug.c
93
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/init_enable_count.c
127
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/init_enable_count.c
22
struct bpf_link *link;
tools/testing/selftests/sched_ext/init_enable_count.c
68
link = bpf_map__attach_struct_ops(skel->maps.init_enable_count_ops);
tools/testing/selftests/sched_ext/init_enable_count.c
69
SCX_FAIL_IF(!link, "Failed to attach struct_ops");
tools/testing/selftests/sched_ext/init_enable_count.c
75
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/init_enable_count.c
79
link = bpf_map__attach_struct_ops(skel->maps.init_enable_count_ops);
tools/testing/selftests/sched_ext/init_enable_count.c
80
SCX_FAIL_IF(!link, "Failed to attach struct_ops");
tools/testing/selftests/sched_ext/maximal.c
30
struct bpf_link *link;
tools/testing/selftests/sched_ext/maximal.c
32
link = bpf_map__attach_struct_ops(skel->maps.maximal_ops);
tools/testing/selftests/sched_ext/maximal.c
33
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/maximal.c
35
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/minimal.c
31
struct bpf_link *link;
tools/testing/selftests/sched_ext/minimal.c
33
link = bpf_map__attach_struct_ops(skel->maps.minimal_ops);
tools/testing/selftests/sched_ext/minimal.c
34
if (!link) {
tools/testing/selftests/sched_ext/minimal.c
39
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/numa.c
31
struct bpf_link *link;
tools/testing/selftests/sched_ext/numa.c
33
link = bpf_map__attach_struct_ops(skel->maps.numa_ops);
tools/testing/selftests/sched_ext/numa.c
34
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/numa.c
40
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/peek_dsq.c
105
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/peek_dsq.c
123
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/peek_dsq.c
133
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/peek_dsq.c
142
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/peek_dsq.c
87
struct bpf_link *link =
tools/testing/selftests/sched_ext/peek_dsq.c
90
if (!link) {
tools/testing/selftests/sched_ext/prog_run.c
31
struct bpf_link *link;
tools/testing/selftests/sched_ext/prog_run.c
42
link = bpf_map__attach_struct_ops(skel->maps.prog_run_ops);
tools/testing/selftests/sched_ext/prog_run.c
43
if (!link) {
tools/testing/selftests/sched_ext/prog_run.c
59
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/reload_loop.c
34
struct bpf_link *link;
tools/testing/selftests/sched_ext/reload_loop.c
36
link = bpf_map__attach_struct_ops(skel->maps.maximal_ops);
tools/testing/selftests/sched_ext/reload_loop.c
37
if (link)
tools/testing/selftests/sched_ext/reload_loop.c
38
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/rt_stall.c
241
struct bpf_link *link = NULL;
tools/testing/selftests/sched_ext/rt_stall.c
258
link = bpf_map__attach_struct_ops(skel->maps.rt_stall_ops);
tools/testing/selftests/sched_ext/rt_stall.c
259
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/rt_stall.c
264
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/select_cpu_dfl.c
33
struct bpf_link *link;
tools/testing/selftests/sched_ext/select_cpu_dfl.c
37
link = bpf_map__attach_struct_ops(skel->maps.select_cpu_dfl_ops);
tools/testing/selftests/sched_ext/select_cpu_dfl.c
38
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/select_cpu_dfl.c
55
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/select_cpu_dfl_nodispatch.c
33
struct bpf_link *link;
tools/testing/selftests/sched_ext/select_cpu_dfl_nodispatch.c
37
link = bpf_map__attach_struct_ops(skel->maps.select_cpu_dfl_nodispatch_ops);
tools/testing/selftests/sched_ext/select_cpu_dfl_nodispatch.c
38
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/select_cpu_dfl_nodispatch.c
55
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/select_cpu_dispatch.c
33
struct bpf_link *link;
tools/testing/selftests/sched_ext/select_cpu_dispatch.c
37
link = bpf_map__attach_struct_ops(skel->maps.select_cpu_dispatch_ops);
tools/testing/selftests/sched_ext/select_cpu_dispatch.c
38
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/select_cpu_dispatch.c
53
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/select_cpu_dispatch_bad_dsq.c
31
struct bpf_link *link;
tools/testing/selftests/sched_ext/select_cpu_dispatch_bad_dsq.c
33
link = bpf_map__attach_struct_ops(skel->maps.select_cpu_dispatch_bad_dsq_ops);
tools/testing/selftests/sched_ext/select_cpu_dispatch_bad_dsq.c
34
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/select_cpu_dispatch_bad_dsq.c
39
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/select_cpu_dispatch_dbl_dsp.c
31
struct bpf_link *link;
tools/testing/selftests/sched_ext/select_cpu_dispatch_dbl_dsp.c
33
link = bpf_map__attach_struct_ops(skel->maps.select_cpu_dispatch_dbl_dsp_ops);
tools/testing/selftests/sched_ext/select_cpu_dispatch_dbl_dsp.c
34
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/select_cpu_dispatch_dbl_dsp.c
39
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/select_cpu_vtime.c
31
struct bpf_link *link;
tools/testing/selftests/sched_ext/select_cpu_vtime.c
35
link = bpf_map__attach_struct_ops(skel->maps.select_cpu_vtime_ops);
tools/testing/selftests/sched_ext/select_cpu_vtime.c
36
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/select_cpu_vtime.c
42
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/total_bw.c
217
struct bpf_link *link;
tools/testing/selftests/sched_ext/total_bw.c
223
link = bpf_map__attach_struct_ops(test_ctx->skel->maps.minimal_ops);
tools/testing/selftests/sched_ext/total_bw.c
224
if (!link) {
tools/testing/selftests/sched_ext/total_bw.c
232
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/total_bw.c
235
bpf_link__destroy(link);
tools/testing/selftests/vfio/lib/include/libvfio/iommu.h
21
struct list_head link;
tools/testing/selftests/vfio/lib/iommu.c
147
list_add(&region->link, &iommu->dma_regions);
tools/testing/selftests/vfio/lib/iommu.c
214
list_del_init(&region->link);
tools/testing/selftests/vfio/lib/iommu.c
234
list_for_each_entry_safe(curr, next, &iommu->dma_regions, link)
tools/testing/selftests/vfio/lib/iommu.c
235
list_del_init(&curr->link);
tools/testing/selftests/vfio/lib/iommu.c
73
list_for_each_entry(region, &iommu->dma_regions, link) {
virt/kvm/async_pf.c
141
typeof(*work), link);
virt/kvm/async_pf.c
142
list_del(&work->link);
virt/kvm/async_pf.c
161
link);
virt/kvm/async_pf.c
162
list_del(&work->link);
virt/kvm/async_pf.c
233
list_add_tail(&work->link, &vcpu->async_pf.done);
virt/kvm/async_pf.c
82
list_add_tail(&apf->link, &vcpu->async_pf.done);
virt/kvm/eventfd.c
102
list_del_rcu(&resampler->link);
virt/kvm/eventfd.c
425
&kvm->irqfds.resampler_list, link) {
virt/kvm/eventfd.c
444
INIT_LIST_HEAD(&resampler->link);
virt/kvm/eventfd.c
446
list_add_rcu(&resampler->link, &kvm->irqfds.resampler_list);
virt/kvm/eventfd.c
531
link, srcu_read_lock_held(&kvm->irq_srcu))
virt/kvm/eventfd.c
548
link, srcu_read_lock_held(&kvm->irq_srcu))
virt/kvm/eventfd.c
570
hlist_add_head_rcu(&kian->link, &kvm->irq_ack_notifier_list);
virt/kvm/eventfd.c
579
hlist_del_init_rcu(&kian->link);
virt/kvm/eventfd.c
692
&kvm->irqfds.resampler_list, link,
virt/kvm/irqchip.c
110
hlist_for_each_entry_safe(e, n, &rt->map[i], link) {
virt/kvm/irqchip.c
111
hlist_del(&e->link);
virt/kvm/irqchip.c
140
hlist_for_each_entry(ei, &rt->map[gsi], link)
virt/kvm/irqchip.c
154
hlist_add_head(&e->link, &rt->map[e->gsi]);
virt/kvm/irqchip.c
31
hlist_for_each_entry(e, &irq_rt->map[gsi], link) {