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
2345
struct bpf_prog *p = node->link->prog;
arch/arm64/net/bpf_jit_comp.c
2550
fentry_nodes->nodes[0]->link->type == BPF_LINK_TYPE_STRUCT_OPS;
arch/loongarch/net/bpf_jit.c
1710
struct bpf_prog *p = n->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
227
PACK64(ptr, regs->link);
arch/powerpc/kernel/kgdb.c
315
{ "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
213
BUILD_BUG_ON(offsetof(struct pt_regs, link) !=
arch/powerpc/kernel/ptrace/ptrace.c
214
offsetof(struct user_pt_regs, link));
arch/powerpc/kernel/ptrace/ptrace.c
282
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
353
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
455
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
497
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
1408
imm = (word & 0x400)? regs->ctr: regs->link;
arch/powerpc/lib/sstep.c
3232
regs->link = next_pc;
arch/powerpc/lib/sstep.c
3267
regs->gpr[op->reg] = regs->link;
arch/powerpc/lib/sstep.c
3283
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
608
struct bpf_prog *p = n->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
1167
list_for_each_entry(bus, &pmac_i2c_busses, link) {
arch/powerpc/platforms/powermac/low_i2c.c
1468
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
335
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 = node->link->prog;
arch/s390/net/bpf_jit_comp.c
2545
struct bpf_prog *p = node->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(®->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(®->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, ®);
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
103
hlist_entry(p, typeof(*n), link);
arch/x86/kernel/kvm.c
128
hlist_del(&e->link);
arch/x86/kernel/kvm.c
141
hlist_add_head(&n->link, &b->list);
arch/x86/kernel/kvm.c
165
if (hlist_unhashed(&n.link))
arch/x86/kernel/kvm.c
178
hlist_del_init(&n->link);
arch/x86/kernel/kvm.c
194
n = hlist_entry(p, typeof(*n), link);
arch/x86/kernel/kvm.c
244
hlist_add_head(&dummy->link, &b->list);
arch/x86/kernel/kvm.c
84
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
1840
list_del(&sp->link);
arch/x86/kvm/mmu/mmu.c
2379
list_add(&sp->link, &kvm->arch.active_mmu_pages);
arch/x86/kvm/mmu/mmu.c
2754
list_add(&sp->link, invalid_list);
arch/x86/kvm/mmu/mmu.c
2756
list_move(&sp->link, invalid_list);
arch/x86/kvm/mmu/mmu.c
2763
list_del(&sp->link);
arch/x86/kvm/mmu/mmu.c
2815
list_for_each_entry_safe(sp, nsp, invalid_list, link) {
arch/x86/kvm/mmu/mmu.c
2834
list_for_each_entry_safe_reverse(sp, tmp, &kvm->arch.active_mmu_pages, link) {
arch/x86/kvm/mmu/mmu.c
6848
&kvm->arch.active_mmu_pages, link) {
arch/x86/kvm/mmu/mmu.c
7479
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
1100
list_for_each_entry(root, &kvm->arch.tdp_mmu_roots, link) {
arch/x86/kvm/mmu/tdp_mmu.c
143
&prev_root->link,
arch/x86/kvm/mmu/tdp_mmu.c
144
typeof(*prev_root), link);
arch/x86/kvm/mmu/tdp_mmu.c
147
typeof(*next_root), link);
arch/x86/kvm/mmu/tdp_mmu.c
155
&next_root->link, typeof(*next_root), link);
arch/x86/kvm/mmu/tdp_mmu.c
198
list_for_each_entry(_root, &_kvm->arch.tdp_mmu_roots, link) \
arch/x86/kvm/mmu/tdp_mmu.c
212
list_for_each_entry_rcu(_root, &_kvm->arch.tdp_mmu_roots, link) \
arch/x86/kvm/mmu/tdp_mmu.c
293
list_for_each_entry(root, &kvm->arch.tdp_mmu_roots, link) {
arch/x86/kvm/mmu/tdp_mmu.c
310
list_add_rcu(&root->link, &kvm->arch.tdp_mmu_roots);
arch/x86/kvm/mmu/tdp_mmu.c
98
list_del_rcu(&root->link);
arch/x86/net/bpf_jit_comp.c
3114
struct bpf_prog *p = node->link->prog;
arch/x86/net/bpf_jit_comp.c
3231
if (tl->nodes[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
415
const struct crypto_link *link;
crypto/crypto_user.c
423
link = &crypto_dispatch[type];
crypto/crypto_user.c
430
if (link->dump == NULL)
crypto/crypto_user.c
440
.dump = link->dump,
crypto/crypto_user.c
441
.done = link->done,
crypto/crypto_user.c
455
if (link->doit == NULL)
crypto/crypto_user.c
458
return link->doit(skb, nlh, attrs);
drivers/accel/ivpu/ivpu_drv.c
186
void ivpu_file_priv_put(struct ivpu_file_priv **link)
drivers/accel/ivpu/ivpu_drv.c
188
struct ivpu_file_priv *file_priv = *link;
drivers/accel/ivpu/ivpu_drv.c
194
*link = NULL;
drivers/accel/ivpu/ivpu_drv.h
232
void ivpu_file_priv_put(struct ivpu_file_priv **link);
drivers/accel/ivpu/ivpu_ipc.c
162
list_add_tail(&rx_msg->link, &ipc->cb_msg_list);
drivers/accel/ivpu/ivpu_ipc.c
165
list_add_tail(&rx_msg->link, &cons->rx_msg_list);
drivers/accel/ivpu/ivpu_ipc.c
174
list_del(&rx_msg->link);
drivers/accel/ivpu/ivpu_ipc.c
185
INIT_LIST_HEAD(&cons->link);
drivers/accel/ivpu/ivpu_ipc.c
196
list_add_tail(&cons->link, &ipc->cons_list);
drivers/accel/ivpu/ivpu_ipc.c
206
list_del(&cons->link);
drivers/accel/ivpu/ivpu_ipc.c
210
list_for_each_entry_safe(rx_msg, r, &cons->rx_msg_list, link)
drivers/accel/ivpu/ivpu_ipc.c
274
rx_msg = list_first_entry_or_null(&cons->rx_msg_list, struct ivpu_ipc_rx_msg, link);
drivers/accel/ivpu/ivpu_ipc.c
451
list_for_each_entry(cons, &ipc->cons_list, link) {
drivers/accel/ivpu/ivpu_ipc.c
482
list_for_each_entry_safe(rx_msg, r, &cb_msg_list, link) {
drivers/accel/ivpu/ivpu_ipc.c
571
list_for_each_entry_safe(cons, c, &ipc->cons_list, link) {
drivers/accel/ivpu/ivpu_ipc.c
575
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
110
link->irq.possible[i] = p->interrupts[i];
drivers/acpi/pci_link.c
111
link->irq.possible_count++;
drivers/acpi/pci_link.c
113
link->irq.triggering = p->triggering;
drivers/acpi/pci_link.c
114
link->irq.polarity = p->polarity;
drivers/acpi/pci_link.c
115
link->irq.resource_type = ACPI_RESOURCE_TYPE_IRQ;
drivers/acpi/pci_link.c
136
link->irq.possible[i] = p->interrupts[i];
drivers/acpi/pci_link.c
137
link->irq.possible_count++;
drivers/acpi/pci_link.c
139
link->irq.triggering = p->triggering;
drivers/acpi/pci_link.c
140
link->irq.polarity = p->polarity;
drivers/acpi/pci_link.c
141
link->irq.resource_type = ACPI_RESOURCE_TYPE_EXTENDED_IRQ;
drivers/acpi/pci_link.c
153
static int acpi_pci_link_get_possible(struct acpi_pci_link *link)
drivers/acpi/pci_link.c
155
acpi_handle handle = link->device->handle;
drivers/acpi/pci_link.c
159
acpi_pci_link_check_possible, link);
drivers/acpi/pci_link.c
166
link->irq.possible_count);
drivers/acpi/pci_link.c
226
static int acpi_pci_link_get_current(struct acpi_pci_link *link)
drivers/acpi/pci_link.c
228
acpi_handle handle = link->device->handle;
drivers/acpi/pci_link.c
233
link->irq.active = 0;
drivers/acpi/pci_link.c
238
result = acpi_bus_get_status(link->device);
drivers/acpi/pci_link.c
244
if (!link->device->status.enabled) {
drivers/acpi/pci_link.c
267
link->irq.active = irq;
drivers/acpi/pci_link.c
269
acpi_handle_debug(handle, "Link at IRQ %d\n", link->irq.active);
drivers/acpi/pci_link.c
275
static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
drivers/acpi/pci_link.c
282
acpi_handle handle = link->device->handle;
drivers/acpi/pci_link.c
296
switch (link->irq.resource_type) {
drivers/acpi/pci_link.c
300
resource->res.data.irq.triggering = link->irq.triggering;
drivers/acpi/pci_link.c
302
link->irq.polarity;
drivers/acpi/pci_link.c
303
if (link->irq.triggering == ACPI_EDGE_SENSITIVE)
drivers/acpi/pci_link.c
318
link->irq.triggering;
drivers/acpi/pci_link.c
320
link->irq.polarity;
drivers/acpi/pci_link.c
321
if (link->irq.triggering == ACPI_EDGE_SENSITIVE)
drivers/acpi/pci_link.c
332
link->irq.resource_type);
drivers/acpi/pci_link.c
341
status = acpi_set_current_resources(link->device->handle, &buffer);
drivers/acpi/pci_link.c
351
result = acpi_bus_get_status(link->device);
drivers/acpi/pci_link.c
356
if (!link->device->status.enabled)
drivers/acpi/pci_link.c
360
result = acpi_pci_link_get_current(link);
drivers/acpi/pci_link.c
369
if (link->irq.active != irq) {
drivers/acpi/pci_link.c
375
link->irq.active, irq);
drivers/acpi/pci_link.c
376
link->irq.active = irq;
drivers/acpi/pci_link.c
379
acpi_handle_debug(handle, "Set IRQ %d\n", link->irq.active);
drivers/acpi/pci_link.c
451
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
455
list_for_each_entry(link, &acpi_link_list, list) {
drivers/acpi/pci_link.c
460
if (link->irq.active && link->irq.active == irq)
drivers/acpi/pci_link.c
466
for (i = 0; i < link->irq.possible_count; i++)
drivers/acpi/pci_link.c
467
if (link->irq.possible[i] == irq)
drivers/acpi/pci_link.c
469
link->irq.possible_count;
drivers/acpi/pci_link.c
490
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
496
list_for_each_entry(link, &acpi_link_list, list) {
drivers/acpi/pci_link.c
502
if (link->irq.possible_count) {
drivers/acpi/pci_link.c
505
link->irq.possible_count;
drivers/acpi/pci_link.c
507
for (i = 0; i < link->irq.possible_count; i++) {
drivers/acpi/pci_link.c
508
if (link->irq.possible[i] < ACPI_MAX_ISA_IRQS)
drivers/acpi/pci_link.c
509
acpi_isa_irq_penalty[link->irq.
drivers/acpi/pci_link.c
514
} else if (link->irq.active &&
drivers/acpi/pci_link.c
515
(link->irq.active < ACPI_MAX_ISA_IRQS)) {
drivers/acpi/pci_link.c
516
acpi_isa_irq_penalty[link->irq.active] +=
drivers/acpi/pci_link.c
526
static int acpi_pci_link_allocate(struct acpi_pci_link *link)
drivers/acpi/pci_link.c
528
acpi_handle handle = link->device->handle;
drivers/acpi/pci_link.c
532
if (link->irq.initialized) {
drivers/acpi/pci_link.c
533
if (link->refcnt == 0)
drivers/acpi/pci_link.c
535
acpi_pci_link_set(link, link->irq.active);
drivers/acpi/pci_link.c
542
for (i = 0; i < link->irq.possible_count; ++i) {
drivers/acpi/pci_link.c
543
if (link->irq.active == link->irq.possible[i])
drivers/acpi/pci_link.c
549
if (i == link->irq.possible_count) {
drivers/acpi/pci_link.c
552
link->irq.active);
drivers/acpi/pci_link.c
553
link->irq.active = 0;
drivers/acpi/pci_link.c
559
if (link->irq.active)
drivers/acpi/pci_link.c
560
irq = link->irq.active;
drivers/acpi/pci_link.c
562
irq = link->irq.possible[link->irq.possible_count - 1];
drivers/acpi/pci_link.c
564
if (acpi_irq_balance || !link->irq.active) {
drivers/acpi/pci_link.c
569
for (i = (link->irq.possible_count - 1); i >= 0; i--) {
drivers/acpi/pci_link.c
571
acpi_irq_get_penalty(link->irq.possible[i]))
drivers/acpi/pci_link.c
572
irq = link->irq.possible[i];
drivers/acpi/pci_link.c
582
if (acpi_pci_link_set(link, irq)) {
drivers/acpi/pci_link.c
587
if (link->irq.active < ACPI_MAX_ISA_IRQS)
drivers/acpi/pci_link.c
588
acpi_isa_irq_penalty[link->irq.active] +=
drivers/acpi/pci_link.c
592
link->irq.active);
drivers/acpi/pci_link.c
595
link->irq.initialized = 1;
drivers/acpi/pci_link.c
617
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
624
link = acpi_driver_data(device);
drivers/acpi/pci_link.c
625
if (!link) {
drivers/acpi/pci_link.c
637
if (acpi_pci_link_allocate(link)) {
drivers/acpi/pci_link.c
642
if (!link->irq.active) {
drivers/acpi/pci_link.c
647
link->refcnt++;
drivers/acpi/pci_link.c
651
*triggering = link->irq.triggering;
drivers/acpi/pci_link.c
653
*polarity = link->irq.polarity;
drivers/acpi/pci_link.c
655
*name = acpi_device_bid(link->device);
drivers/acpi/pci_link.c
657
*gsi = link->irq.active;
drivers/acpi/pci_link.c
669
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
676
link = acpi_driver_data(device);
drivers/acpi/pci_link.c
677
if (!link) {
drivers/acpi/pci_link.c
683
if (!link->irq.initialized) {
drivers/acpi/pci_link.c
698
link->refcnt--;
drivers/acpi/pci_link.c
702
if (link->refcnt == 0)
drivers/acpi/pci_link.c
703
acpi_evaluate_object(link->device->handle, "_DIS", NULL, NULL);
drivers/acpi/pci_link.c
706
return link->irq.active;
drivers/acpi/pci_link.c
717
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
721
link = kzalloc_obj(struct acpi_pci_link);
drivers/acpi/pci_link.c
722
if (!link)
drivers/acpi/pci_link.c
725
link->device = device;
drivers/acpi/pci_link.c
726
device->driver_data = link;
drivers/acpi/pci_link.c
729
result = acpi_pci_link_get_possible(link);
drivers/acpi/pci_link.c
734
acpi_pci_link_get_current(link);
drivers/acpi/pci_link.c
737
acpi_device_bid(device), link->irq.active);
drivers/acpi/pci_link.c
739
for (i = 0; i < link->irq.possible_count; i++) {
drivers/acpi/pci_link.c
740
if (link->irq.active != link->irq.possible[i])
drivers/acpi/pci_link.c
742
link->irq.possible[i]);
drivers/acpi/pci_link.c
745
if (!link->device->status.enabled)
drivers/acpi/pci_link.c
748
list_add_tail(&link->list, &acpi_link_list);
drivers/acpi/pci_link.c
756
kfree(link);
drivers/acpi/pci_link.c
763
static int acpi_pci_link_resume(struct acpi_pci_link *link)
drivers/acpi/pci_link.c
765
if (link->refcnt && link->irq.active && link->irq.initialized)
drivers/acpi/pci_link.c
766
return (acpi_pci_link_set(link, link->irq.active));
drivers/acpi/pci_link.c
773
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
775
list_for_each_entry(link, &acpi_link_list, list) {
drivers/acpi/pci_link.c
776
acpi_pci_link_resume(link);
drivers/acpi/pci_link.c
782
struct acpi_pci_link *link;
drivers/acpi/pci_link.c
784
link = acpi_driver_data(device);
drivers/acpi/pci_link.c
787
list_del(&link->list);
drivers/acpi/pci_link.c
790
kfree(link);
drivers/acpi/pci_link.c
85
struct acpi_pci_link *link = context;
drivers/acpi/pci_link.c
86
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
228
ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, cmd_tbl);
drivers/ata/acard-ahci.c
242
opts = cmd_fis_len | (qc->dev->link->pmp << 12);
drivers/ata/acard-ahci.c
259
rx_fis += qc->dev->link->pmp * ACARD_AHCI_RX_FIS_SZ;
drivers/ata/ahci.c
1793
static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
1796
struct ata_port *ap = link->ap;
drivers/ata/ahci.c
1803
rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
drivers/ata/ahci.c
1814
static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
1817
struct ata_port *ap = link->ap;
drivers/ata/ahci.c
1828
ata_tf_init(link->device, &tf);
drivers/ata/ahci.c
1832
rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
drivers/ata/ahci.c
1851
rc = ata_wait_after_reset(link, jiffies + 2 * HZ,
drivers/ata/ahci.c
1874
static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
1877
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
drivers/ata/ahci.c
1878
struct ata_port *ap = link->ap;
drivers/ata/ahci.c
1897
ata_tf_init(link->device, &tf);
drivers/ata/ahci.c
1901
rc = sata_link_hardreset(link, timing, deadline, &online,
drivers/ata/ahci.c
1904
if (sata_scr_read(link, SCR_STATUS, &sstatus) != 0 ||
drivers/ata/ahci.c
1908
ata_link_info(link, "avn bounce port%d\n", port);
drivers/ata/ahci.c
2101
ap->link.flags |= ATA_LFLAG_NO_SRST | ATA_LFLAG_ASSUME_ATA;
drivers/ata/ahci.c
2534
struct ata_link *link;
drivers/ata/ahci.c
2537
ata_for_each_link(link, ap, EDGE)
drivers/ata/ahci.c
2538
ata_for_each_dev(dev, link, ALL)
drivers/ata/ahci.c
91
static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
93
static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.c
97
static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.h
304
struct ata_link *link;
drivers/ata/ahci.h
432
int ahci_do_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.h
434
int (*check_ready)(struct ata_link *link));
drivers/ata/ahci.h
436
int ahci_do_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci.h
443
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
620
ata_for_each_dev(dev, &ap->link, ENABLED)
drivers/ata/ahci_imx.c
636
static int ahci_imx_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/ahci_imx.c
639
struct ata_port *ap = link->ap;
drivers/ata/ahci_imx.c
646
ret = ahci_pmp_retry_srst_ops.reset.softreset(link, class,
drivers/ata/ahci_imx.c
649
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
1621
struct ata_link *link0 = &host->ports[0]->link;
drivers/ata/ata_piix.c
718
static int piix_pata_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/ata_piix.c
720
struct ata_port *ap = link->ap;
drivers/ata/ata_piix.c
725
return ata_sff_prereset(link, deadline);
drivers/ata/ata_piix.c
957
static void piix_sidpr_sel(struct ata_link *link, unsigned int reg)
drivers/ata/ata_piix.c
959
struct ata_port *ap = link->ap;
drivers/ata/ata_piix.c
962
iowrite32(((ap->port_no * 2 + link->pmp) << 8) | piix_sidx_map[reg],
drivers/ata/ata_piix.c
966
static int piix_sidpr_scr_read(struct ata_link *link,
drivers/ata/ata_piix.c
969
struct piix_host_priv *hpriv = link->ap->host->private_data;
drivers/ata/ata_piix.c
974
piix_sidpr_sel(link, reg);
drivers/ata/ata_piix.c
979
static int piix_sidpr_scr_write(struct ata_link *link,
drivers/ata/ata_piix.c
982
struct piix_host_priv *hpriv = link->ap->host->private_data;
drivers/ata/ata_piix.c
987
piix_sidpr_sel(link, reg);
drivers/ata/ata_piix.c
992
static int piix_sidpr_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/ata_piix.c
995
return sata_link_scr_lpm(link, policy, false);
drivers/ata/libahci.c
1018
static void ahci_sw_activity(struct ata_link *link)
drivers/ata/libahci.c
1020
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1022
struct ahci_em_priv *emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1024
if (!(link->flags & ATA_LFLAG_SW_ACTIVITY))
drivers/ata/libahci.c
1035
struct ata_link *link = emp->link;
drivers/ata/libahci.c
1036
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1043
led_message |= ap->port_no | (link->pmp << 8);
drivers/ata/libahci.c
1076
static void ahci_init_sw_activity(struct ata_link *link)
drivers/ata/libahci.c
1078
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1080
struct ahci_em_priv *emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1084
emp->link = link;
drivers/ata/libahci.c
1089
link->flags |= ATA_LFLAG_SW_ACTIVITY;
drivers/ata/libahci.c
1172
struct ata_link *link;
drivers/ata/libahci.c
1176
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libahci.c
1177
emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1215
struct ata_link *link = dev->link;
drivers/ata/libahci.c
1216
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1218
struct ahci_em_priv *emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1224
link->flags &= ~(ATA_LFLAG_SW_ACTIVITY);
drivers/ata/libahci.c
1228
port_led_state |= (ap->port_no | (link->pmp << 8));
drivers/ata/libahci.c
1231
link->flags |= ATA_LFLAG_SW_ACTIVITY;
drivers/ata/libahci.c
1235
port_led_state |= (ap->port_no | (link->pmp << 8));
drivers/ata/libahci.c
1246
struct ata_link *link = dev->link;
drivers/ata/libahci.c
1247
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1249
struct ahci_em_priv *emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
1320
struct ahci_host_priv *hpriv = dev->link->ap->host->private_data;
drivers/ata/libahci.c
1447
int ahci_do_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1449
int (*check_ready)(struct ata_link *link))
drivers/ata/libahci.c
1451
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1464
ata_link_warn(link, "failed to reset engine (errno=%d)\n", rc);
drivers/ata/libahci.c
1471
if (!ata_is_host_link(link) && pp->fbs_enabled) {
drivers/ata/libahci.c
1476
ata_tf_init(link->device, &tf);
drivers/ata/libahci.c
1500
rc = ata_wait_after_reset(link, deadline, check_ready);
drivers/ata/libahci.c
1507
ata_link_info(link, "device not ready, treating as offline\n");
drivers/ata/libahci.c
1523
ata_link_err(link, "softreset failed (%s)\n", reason);
drivers/ata/libahci.c
1528
int ahci_check_ready(struct ata_link *link)
drivers/ata/libahci.c
1530
void __iomem *port_mmio = ahci_port_base(link->ap);
drivers/ata/libahci.c
1537
static int ahci_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1540
int pmp = sata_srst_pmp(link);
drivers/ata/libahci.c
1542
return ahci_do_softreset(link, class, pmp, deadline, ahci_check_ready);
drivers/ata/libahci.c
1545
static int ahci_bad_pmp_check_ready(struct ata_link *link)
drivers/ata/libahci.c
1547
void __iomem *port_mmio = ahci_port_base(link->ap);
drivers/ata/libahci.c
1561
static int ahci_pmp_retry_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1564
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1566
int pmp = sata_srst_pmp(link);
drivers/ata/libahci.c
1570
rc = ahci_do_softreset(link, class, pmp, deadline,
drivers/ata/libahci.c
1581
ata_link_warn(link,
drivers/ata/libahci.c
1584
rc = ahci_do_softreset(link, class, 0, deadline,
drivers/ata/libahci.c
1592
int ahci_do_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1595
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
drivers/ata/libahci.c
1596
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1606
ata_tf_init(link->device, &tf);
drivers/ata/libahci.c
1612
rc = sata_link_hardreset(link, timing, deadline, online,
drivers/ata/libahci.c
1624
static int ahci_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/libahci.c
1629
return ahci_do_hardreset(link, class, deadline, &online);
drivers/ata/libahci.c
1632
static void ahci_postreset(struct ata_link *link, unsigned int *class)
drivers/ata/libahci.c
1634
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
1638
ata_std_postreset(link, class);
drivers/ata/libahci.c
1700
ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, cmd_tbl);
drivers/ata/libahci.c
1713
opts = cmd_fis_len | n_elem << 16 | (qc->dev->link->pmp << 12);
drivers/ata/libahci.c
1751
struct ata_eh_info *host_ehi = &ap->link.eh_info;
drivers/ata/libahci.c
1752
struct ata_link *link = NULL;
drivers/ata/libahci.c
1765
link = &ap->pmp_link[pmp];
drivers/ata/libahci.c
1770
ata_for_each_link(link, ap, EDGE)
drivers/ata/libahci.c
1771
if (ata_link_active(link))
drivers/ata/libahci.c
1774
if (!link)
drivers/ata/libahci.c
1775
link = &ap->link;
drivers/ata/libahci.c
1777
active_qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/libahci.c
1778
active_ehi = &link->eh_info;
drivers/ata/libahci.c
1785
ahci_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/libahci.c
1786
ahci_scr_write(&ap->link, SCR_ERROR, serror);
drivers/ata/libahci.c
1852
ata_link_abort(link);
drivers/ata/libahci.c
1860
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/libahci.c
1901
if (sata_lpm_ignore_phy_events(&ap->link)) {
drivers/ata/libahci.c
1903
ahci_scr_write(&ap->link, SCR_ERROR, SERR_PHYRDY_CHG);
drivers/ata/libahci.c
2054
pp->active_link = qc->dev->link;
drivers/ata/libahci.c
2059
if (pp->fbs_enabled && pp->fbs_last_dev != qc->dev->link->pmp) {
drivers/ata/libahci.c
2062
fbs |= qc->dev->link->pmp << PORT_FBS_DEV_OFFSET;
drivers/ata/libahci.c
2064
pp->fbs_last_dev = qc->dev->link->pmp;
drivers/ata/libahci.c
2069
ahci_sw_activity(qc->dev->link);
drivers/ata/libahci.c
2081
rx_fis += qc->dev->link->pmp * AHCI_RX_FIS_SZ;
drivers/ata/libahci.c
2174
fis += qc->dev->link->pmp * AHCI_RX_FIS_SZ;
drivers/ata/libahci.c
2223
if (!ata_dev_enabled(ap->link.device))
drivers/ata/libahci.c
2241
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
654
static int ahci_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/libahci.c
656
void __iomem *port_mmio = ahci_port_base(link->ap);
drivers/ata/libahci.c
657
int offset = ahci_scr_offset(link->ap, sc_reg);
drivers/ata/libahci.c
666
static int ahci_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/libahci.c
668
void __iomem *port_mmio = ahci_port_base(link->ap);
drivers/ata/libahci.c
669
int offset = ahci_scr_offset(link->ap, sc_reg);
drivers/ata/libahci.c
704
(ap->link.lpm_policy > ATA_LPM_MAX_POWER) &&
drivers/ata/libahci.c
705
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
805
static int ahci_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/libahci.c
808
struct ata_port *ap = link->ap;
drivers/ata/libahci.c
825
sata_link_scr_lpm(link, policy, false);
drivers/ata/libahci.c
859
(link->device->flags & ATA_DFLAG_DEVSLP)) {
drivers/ata/libahci.c
86
static void ahci_init_sw_activity(struct ata_link *link);
drivers/ata/libahci.c
868
sata_link_scr_lpm(link, policy, false);
drivers/ata/libahci.c
904
struct ata_link *link;
drivers/ata/libahci.c
918
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libahci.c
919
emp = &pp->em_priv[link->pmp];
drivers/ata/libahci.c
943
ata_for_each_link(link, ap, EDGE)
drivers/ata/libahci.c
944
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
1578
preempted_tag = link->active_tag;
drivers/ata/libata-core.c
1579
preempted_sactive = link->sactive;
drivers/ata/libata-core.c
1582
link->active_tag = ATA_TAG_POISON;
drivers/ata/libata-core.c
1583
link->sactive = 0;
drivers/ata/libata-core.c
160
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-core.c
1683
link->active_tag = preempted_tag;
drivers/ata/libata-core.c
1684
link->sactive = preempted_sactive;
drivers/ata/libata-core.c
1709
if (adev->link->ap->pflags & ATA_PFLAG_RESETTING)
drivers/ata/libata-core.c
1714
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
1795
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
2046
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
2137
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
2175
if (!ata_port_is_frozen(dev->link->ap))
drivers/ata/libata-core.c
219
return &ap->link;
drivers/ata/libata-core.c
2297
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
2411
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
2892
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
2973
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
3147
sata_scr_read(&ap->link, SCR_NOTIFICATION, &sntf) == 0)) {
drivers/ata/libata-core.c
3325
static void sata_print_link_status(struct ata_link *link)
drivers/ata/libata-core.c
3329
if (sata_scr_read(link, SCR_STATUS, &sstatus))
drivers/ata/libata-core.c
3331
if (sata_scr_read(link, SCR_CONTROL, &scontrol))
drivers/ata/libata-core.c
3334
if (ata_phys_link_online(link)) {
drivers/ata/libata-core.c
3336
ata_link_info(link, "SATA link up %s (SStatus %X SControl %X)\n",
drivers/ata/libata-core.c
3339
ata_link_info(link, "SATA link down (SStatus %X SControl %X)\n",
drivers/ata/libata-core.c
3354
struct ata_link *link = adev->link;
drivers/ata/libata-core.c
3355
struct ata_device *pair = &link->device[1 - adev->devno];
drivers/ata/libata-core.c
3506
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-core.c
3507
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-core.c
3604
int ata_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
drivers/ata/libata-core.c
3606
struct ata_port *ap = link->ap;
drivers/ata/libata-core.c
3611
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
3643
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
3657
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
3668
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
3707
int ata_wait_ready(struct ata_link *link, unsigned long deadline,
drivers/ata/libata-core.c
3708
int (*check_ready)(struct ata_link *link))
drivers/ata/libata-core.c
3715
if (link->ap->host->flags & ATA_HOST_PARALLEL_SCAN)
drivers/ata/libata-core.c
3724
WARN_ON(link == link->ap->slave_link);
drivers/ata/libata-core.c
3733
ready = tmp = check_ready(link);
drivers/ata/libata-core.c
3749
if (ata_link_online(link))
drivers/ata/libata-core.c
3751
else if ((link->ap->flags & ATA_FLAG_SATA) &&
drivers/ata/libata-core.c
3752
!ata_link_offline(link) &&
drivers/ata/libata-core.c
3764
ata_link_warn(link,
drivers/ata/libata-core.c
3770
ata_msleep(link->ap, 50);
drivers/ata/libata-core.c
3788
int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
drivers/ata/libata-core.c
3789
int (*check_ready)(struct ata_link *link))
drivers/ata/libata-core.c
3791
ata_msleep(link->ap, ATA_WAIT_AFTER_RESET);
drivers/ata/libata-core.c
3793
return ata_wait_ready(link, deadline, check_ready);
drivers/ata/libata-core.c
3814
int ata_std_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/libata-core.c
3816
struct ata_port *ap = link->ap;
drivers/ata/libata-core.c
3817
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-core.c
382
static void ata_force_link_limits(struct ata_link *link)
drivers/ata/libata-core.c
3827
rc = sata_link_resume(link, timing, deadline);
drivers/ata/libata-core.c
3830
ata_link_warn(link,
drivers/ata/libata-core.c
3836
if (ata_phys_link_offline(link))
drivers/ata/libata-core.c
385
int linkno = link->pmp;
drivers/ata/libata-core.c
3855
void ata_std_postreset(struct ata_link *link, unsigned int *classes)
drivers/ata/libata-core.c
3860
if (!sata_scr_read(link, SCR_ERROR, &serror))
drivers/ata/libata-core.c
3861
sata_scr_write(link, SCR_ERROR, serror);
drivers/ata/libata-core.c
3864
sata_print_link_status(link);
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
4080
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
449
if (fe->port != -1 && fe->port != dev->link->ap->print_id)
drivers/ata/libata-core.c
4506
if ((dev->link->ap->flags & ATA_FLAG_PIO_POLLING) &&
drivers/ata/libata-core.c
4542
struct ata_link *link;
drivers/ata/libata-core.c
4569
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-core.c
4570
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-core.c
4591
struct ata_link *link = dev->link;
drivers/ata/libata-core.c
4592
struct ata_port *ap = link->ap;
drivers/ata/libata-core.c
482
int devno = dev->link->pmp + dev->devno;
drivers/ata/libata-core.c
4827
struct ata_link *link = qc->dev->link;
drivers/ata/libata-core.c
4830
if (!ata_tag_valid(link->active_tag))
drivers/ata/libata-core.c
4833
if (!ata_tag_valid(link->active_tag) && !link->sactive)
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
4966
struct ata_link *link;
drivers/ata/libata-core.c
4972
link = qc->dev->link;
drivers/ata/libata-core.c
4979
link->sactive &= ~(1 << qc->hw_tag);
drivers/ata/libata-core.c
4980
if (!link->sactive)
drivers/ata/libata-core.c
4983
link->active_tag = ATA_TAG_POISON;
drivers/ata/libata-core.c
4989
ap->excl_link == link))
drivers/ata/libata-core.c
5052
struct ata_eh_info *ehi = &dev->link->eh_info;
drivers/ata/libata-core.c
5188
struct ata_link *link = qc->dev->link;
drivers/ata/libata-core.c
5196
WARN_ON_ONCE(ata_tag_valid(link->active_tag)))
drivers/ata/libata-core.c
5200
WARN_ON_ONCE(link->sactive & (1 << qc->hw_tag));
drivers/ata/libata-core.c
5202
if (!link->sactive)
drivers/ata/libata-core.c
5204
link->sactive |= 1 << qc->hw_tag;
drivers/ata/libata-core.c
5206
WARN_ON_ONCE(link->sactive);
drivers/ata/libata-core.c
5209
link->active_tag = qc->tag;
drivers/ata/libata-core.c
5235
link->eh_info.action |= ATA_EH_RESET;
drivers/ata/libata-core.c
5236
ata_ehi_push_desc(&link->eh_info, "waking up from sleep");
drivers/ata/libata-core.c
5237
ata_link_abort(link);
drivers/ata/libata-core.c
5274
bool ata_phys_link_online(struct ata_link *link)
drivers/ata/libata-core.c
5278
if (sata_scr_read(link, SCR_STATUS, &sstatus) == 0 &&
drivers/ata/libata-core.c
5298
bool ata_phys_link_offline(struct ata_link *link)
drivers/ata/libata-core.c
5302
if (sata_scr_read(link, SCR_STATUS, &sstatus) == 0 &&
drivers/ata/libata-core.c
5324
bool ata_link_online(struct ata_link *link)
drivers/ata/libata-core.c
5326
struct ata_link *slave = link->ap->slave_link;
drivers/ata/libata-core.c
5328
WARN_ON(link == slave); /* shouldn't be called on slave link */
drivers/ata/libata-core.c
5330
return ata_phys_link_online(link) ||
drivers/ata/libata-core.c
534
static inline void ata_force_link_limits(struct ata_link *link) { }
drivers/ata/libata-core.c
5351
bool ata_link_offline(struct ata_link *link)
drivers/ata/libata-core.c
5353
struct ata_link *slave = link->ap->slave_link;
drivers/ata/libata-core.c
5355
WARN_ON(link == slave); /* shouldn't be called on slave link */
drivers/ata/libata-core.c
5357
return ata_phys_link_offline(link) &&
drivers/ata/libata-core.c
5367
struct ata_link *link;
drivers/ata/libata-core.c
5385
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-core.c
5386
link->eh_info.action |= action;
drivers/ata/libata-core.c
5387
link->eh_info.flags |= ehi_flags;
drivers/ata/libata-core.c
5478
struct ata_link *link;
drivers/ata/libata-core.c
5481
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-core.c
5482
ata_for_each_dev(adev, link, ENABLED)
drivers/ata/libata-core.c
5577
struct ata_link *link = ata_dev_phys_link(dev);
drivers/ata/libata-core.c
5578
struct ata_port *ap = link->ap;
drivers/ata/libata-core.c
5582
link->sata_spd_limit = link->hw_sata_spd_limit;
drivers/ata/libata-core.c
5583
link->sata_spd = 0;
drivers/ata/libata-core.c
5612
void ata_link_init(struct ata_port *ap, struct ata_link *link, int pmp)
drivers/ata/libata-core.c
5617
memset((void *)link + ATA_LINK_CLEAR_BEGIN, 0,
drivers/ata/libata-core.c
5620
link->ap = ap;
drivers/ata/libata-core.c
5621
link->pmp = pmp;
drivers/ata/libata-core.c
5622
link->active_tag = ATA_TAG_POISON;
drivers/ata/libata-core.c
5623
link->hw_sata_spd_limit = UINT_MAX;
drivers/ata/libata-core.c
5624
INIT_WORK(&link->deferred_qc_work, ata_scsi_deferred_qc_work);
drivers/ata/libata-core.c
5628
struct ata_device *dev = &link->device[i];
drivers/ata/libata-core.c
5630
dev->link = link;
drivers/ata/libata-core.c
5631
dev->devno = dev - link->device;
drivers/ata/libata-core.c
5652
int sata_link_init_spd(struct ata_link *link)
drivers/ata/libata-core.c
5657
rc = sata_scr_read(link, SCR_CONTROL, &link->saved_scontrol);
drivers/ata/libata-core.c
5661
spd = (link->saved_scontrol >> 4) & 0xf;
drivers/ata/libata-core.c
5663
link->hw_sata_spd_limit &= (1 << spd) - 1;
drivers/ata/libata-core.c
5665
ata_force_link_limits(link);
drivers/ata/libata-core.c
5667
link->sata_spd_limit = link->hw_sata_spd_limit;
drivers/ata/libata-core.c
5715
ata_link_init(ap, &ap->link, 0);
drivers/ata/libata-core.c
5891
ap->link.flags |= pi->link_flags;
drivers/ata/libata-core.c
6072
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/libata-core.c
6166
sata_link_init_spd(&ap->link);
drivers/ata/libata-core.c
6178
ap->link.eh_info.desc);
drivers/ata/libata-core.c
6179
ata_ehi_clear_desc(&ap->link.eh_info);
drivers/ata/libata-core.c
6295
struct ata_link *link;
drivers/ata/libata-core.c
6308
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-core.c
6309
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-core.c
6335
ata_for_each_link(link, ap, PMP_FIRST) {
drivers/ata/libata-core.c
6336
WARN_ON(link->deferred_qc);
drivers/ata/libata-core.c
6337
cancel_work_sync(&link->deferred_qc_work);
drivers/ata/libata-eh.c
1053
static int ata_do_link_abort(struct ata_port *ap, struct ata_link *link)
drivers/ata/libata-eh.c
1063
if (qc && (!link || qc->dev->link == link)) {
drivers/ata/libata-eh.c
1088
int ata_link_abort(struct ata_link *link)
drivers/ata/libata-eh.c
1090
return ata_do_link_abort(link->ap, link);
drivers/ata/libata-eh.c
1290
struct ata_link *link = dev->link;
drivers/ata/libata-eh.c
1291
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
1292
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
1314
ata_eh_clear_action(link, dev, &link->eh_info, ATA_EH_PERDEV_MASK);
drivers/ata/libata-eh.c
1315
ata_eh_clear_action(link, dev, &link->eh_context.i, ATA_EH_PERDEV_MASK);
drivers/ata/libata-eh.c
1335
void ata_eh_about_to_do(struct ata_link *link, struct ata_device *dev,
drivers/ata/libata-eh.c
1338
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
1339
struct ata_eh_info *ehi = &link->eh_info;
drivers/ata/libata-eh.c
1340
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
1343
trace_ata_eh_about_to_do(link, dev ? dev->devno : 0, action);
drivers/ata/libata-eh.c
1347
ata_eh_clear_action(link, dev, ehi, action);
drivers/ata/libata-eh.c
1352
if (!(ehc->i.flags & ATA_EHI_QUIET) && link != ap->slave_link)
drivers/ata/libata-eh.c
1370
void ata_eh_done(struct ata_link *link, struct ata_device *dev,
drivers/ata/libata-eh.c
1373
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
1375
trace_ata_eh_done(link, dev ? dev->devno : 0, action);
drivers/ata/libata-eh.c
1377
ata_eh_clear_action(link, dev, &ehc->i, action);
drivers/ata/libata-eh.c
1562
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-eh.c
1610
static void ata_eh_analyze_serror(struct ata_link *link)
drivers/ata/libata-eh.c
1612
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
1635
if (link->lpm_policy > ATA_LPM_MAX_POWER)
drivers/ata/libata-eh.c
1637
else if (!(link->flags & ATA_LFLAG_DISABLED) || ata_is_host_link(link))
drivers/ata/libata-eh.c
1913
struct ata_link *link = ata_dev_phys_link(dev);
drivers/ata/libata-eh.c
1936
if (sata_down_spd_limit(link, 0) == 0) {
drivers/ata/libata-eh.c
1967
(link->ap->cbl != ATA_CBL_SATA || dev->class == ATA_DEV_ATAPI) &&
drivers/ata/libata-eh.c
2018
static int ata_eh_get_non_ncq_success_sense(struct ata_link *link)
drivers/ata/libata-eh.c
2020
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
2023
qc = __ata_qc_from_tag(ap, link->active_tag);
drivers/ata/libata-eh.c
2044
static void ata_eh_get_success_sense(struct ata_link *link)
drivers/ata/libata-eh.c
2046
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2047
struct ata_device *dev = link->device;
drivers/ata/libata-eh.c
2048
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
2068
if (link->sactive)
drivers/ata/libata-eh.c
2069
ret = ata_eh_get_ncq_success_sense(link);
drivers/ata/libata-eh.c
2071
ret = ata_eh_get_non_ncq_success_sense(link);
drivers/ata/libata-eh.c
2075
ata_eh_done(link, dev, ATA_EH_GET_SUCCESS_SENSE);
drivers/ata/libata-eh.c
2092
ata_dev_phys_link(qc->dev) != link)
drivers/ata/libata-eh.c
2107
ata_eh_done(link, dev, ATA_EH_GET_SUCCESS_SENSE);
drivers/ata/libata-eh.c
2123
static bool ata_eh_link_established(struct ata_link *link)
drivers/ata/libata-eh.c
2133
if (sata_scr_read(link, SCR_STATUS, &sstatus))
drivers/ata/libata-eh.c
2159
static int ata_eh_link_set_lpm(struct ata_link *link,
drivers/ata/libata-eh.c
2163
struct ata_port *ap = ata_is_host_link(link) ? link->ap : NULL;
drivers/ata/libata-eh.c
2164
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2166
enum ata_lpm_policy old_policy = link->lpm_policy;
drivers/ata/libata-eh.c
2167
bool host_has_dipm = !(link->ap->flags & ATA_FLAG_NO_DIPM);
drivers/ata/libata-eh.c
2174
(link->flags & ATA_LFLAG_NO_LPM) || (ap && !ap->ops->set_lpm))
drivers/ata/libata-eh.c
2184
ata_link_dbg(link, "Set LPM policy: %d -> %d\n", old_policy, policy);
drivers/ata/libata-eh.c
2191
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
2222
rc = ap->ops->set_lpm(link, policy, hints);
drivers/ata/libata-eh.c
2226
rc = sata_pmp_set_lpm(link, policy, hints);
drivers/ata/libata-eh.c
2234
link->flags |= ATA_LFLAG_NO_LPM;
drivers/ata/libata-eh.c
2245
link->lpm_policy = policy;
drivers/ata/libata-eh.c
2254
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
2271
link->last_lpm_change = jiffies;
drivers/ata/libata-eh.c
2272
link->flags |= ATA_LFLAG_CHANGED;
drivers/ata/libata-eh.c
2278
link->lpm_policy = old_policy;
drivers/ata/libata-eh.c
2284
ata_link_warn(link, "disabling LPM on the link\n");
drivers/ata/libata-eh.c
2285
link->flags |= ATA_LFLAG_NO_LPM;
drivers/ata/libata-eh.c
2303
static void ata_eh_link_autopsy(struct ata_link *link)
drivers/ata/libata-eh.c
2305
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
2306
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2318
rc = sata_scr_read(link, SCR_ERROR, &serror);
drivers/ata/libata-eh.c
2321
ata_eh_analyze_serror(link);
drivers/ata/libata-eh.c
2330
ata_eh_analyze_ncq_error(link);
drivers/ata/libata-eh.c
2338
ata_eh_get_success_sense(link);
drivers/ata/libata-eh.c
2350
ata_dev_phys_link(qc->dev) != link)
drivers/ata/libata-eh.c
2415
if ((all_err_mask & AC_ERR_TIMEOUT) && !ata_is_host_link(link))
drivers/ata/libata-eh.c
2416
ap->link.eh_context.i.err_mask |= AC_ERR_TIMEOUT;
drivers/ata/libata-eh.c
2420
if (!dev && ((ata_link_max_devices(link) == 1 &&
drivers/ata/libata-eh.c
2421
ata_dev_enabled(link->device))))
drivers/ata/libata-eh.c
2422
dev = link->device;
drivers/ata/libata-eh.c
2444
struct ata_link *link;
drivers/ata/libata-eh.c
2446
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-eh.c
2447
ata_eh_link_autopsy(link);
drivers/ata/libata-eh.c
2454
struct ata_eh_context *mehc = &ap->link.eh_context;
drivers/ata/libata-eh.c
2475
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
2609
static void ata_eh_link_report(struct ata_link *link)
drivers/ata/libata-eh.c
2611
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
2612
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2627
ata_dev_phys_link(qc->dev) != link ||
drivers/ata/libata-eh.c
2651
ehc->i.err_mask, link->sactive, ehc->i.serror,
drivers/ata/libata-eh.c
2656
ata_link_err(link, "exception Emask 0x%x "
drivers/ata/libata-eh.c
2658
ehc->i.err_mask, link->sactive, ehc->i.serror,
drivers/ata/libata-eh.c
2661
ata_link_err(link, "%s\n", desc);
drivers/ata/libata-eh.c
2666
ata_link_err(link,
drivers/ata/libata-eh.c
2693
ata_dev_phys_link(qc->dev) != link || !qc->err_mask)
drivers/ata/libata-eh.c
2806
struct ata_link *link;
drivers/ata/libata-eh.c
2808
ata_for_each_link(link, ap, HOST_FIRST)
drivers/ata/libata-eh.c
2809
ata_eh_link_report(link);
drivers/ata/libata-eh.c
2812
static int ata_do_reset(struct ata_link *link, ata_reset_fn_t reset,
drivers/ata/libata-eh.c
2819
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
2822
return reset(link, classes, deadline);
drivers/ata/libata-eh.c
2825
static bool ata_eh_followup_srst_needed(struct ata_link *link, int rc)
drivers/ata/libata-eh.c
2827
if ((link->flags & ATA_LFLAG_NO_SRST) || ata_link_offline(link))
drivers/ata/libata-eh.c
2831
if (sata_pmp_supported(link->ap) && ata_is_host_link(link))
drivers/ata/libata-eh.c
2836
int ata_eh_reset(struct ata_port *ap, struct ata_link *link, int classify,
drivers/ata/libata-eh.c
2841
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
2848
unsigned int lflags = link->flags;
drivers/ata/libata-eh.c
2864
if (link->flags & ATA_LFLAG_RST_ONCE)
drivers/ata/libata-eh.c
2866
if (link->flags & ATA_LFLAG_NO_HRST)
drivers/ata/libata-eh.c
2868
if (link->flags & ATA_LFLAG_NO_SRST)
drivers/ata/libata-eh.c
2885
ata_eh_about_to_do(link, NULL, ATA_EH_RESET);
drivers/ata/libata-eh.c
2887
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
2927
rc = prereset(link, deadline);
drivers/ata/libata-eh.c
2945
ata_link_dbg(link, "port disabled--ignoring\n");
drivers/ata/libata-eh.c
2948
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
2953
ata_link_err(link,
drivers/ata/libata-eh.c
2963
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
2965
if (ata_port_is_frozen(ap) && ata_is_host_link(link))
drivers/ata/libata-eh.c
2976
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
2983
ata_link_info(link, "%s resetting link\n",
drivers/ata/libata-eh.c
2990
trace_ata_link_hardreset_begin(link, classes, deadline);
drivers/ata/libata-eh.c
2993
trace_ata_link_softreset_begin(link, classes, deadline);
drivers/ata/libata-eh.c
2996
rc = ata_do_reset(link, reset, classes, deadline, true);
drivers/ata/libata-eh.c
2998
trace_ata_link_hardreset_end(link, classes, rc);
drivers/ata/libata-eh.c
3000
trace_ata_link_softreset_end(link, classes, rc);
drivers/ata/libata-eh.c
3002
failed_link = link;
drivers/ata/libata-eh.c
3034
ata_eh_followup_srst_needed(link, rc)) {
drivers/ata/libata-eh.c
3038
ata_link_err(link,
drivers/ata/libata-eh.c
3040
failed_link = link;
drivers/ata/libata-eh.c
3045
ata_eh_about_to_do(link, NULL, ATA_EH_RESET);
drivers/ata/libata-eh.c
3046
trace_ata_link_softreset_begin(link, classes, deadline);
drivers/ata/libata-eh.c
3047
rc = ata_do_reset(link, reset, classes, deadline, true);
drivers/ata/libata-eh.c
3048
trace_ata_link_softreset_end(link, classes, rc);
drivers/ata/libata-eh.c
3050
failed_link = link;
drivers/ata/libata-eh.c
3056
ata_link_info(link,
drivers/ata/libata-eh.c
3065
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3084
if (sata_scr_read(link, SCR_STATUS, &sstatus) == 0)
drivers/ata/libata-eh.c
3085
link->sata_spd = (sstatus >> 4) & 0xf;
drivers/ata/libata-eh.c
3090
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
3101
postreset(link, classes);
drivers/ata/libata-eh.c
3102
trace_ata_link_postreset(link, classes, rc);
drivers/ata/libata-eh.c
3110
spin_lock_irqsave(link->ap->lock, flags);
drivers/ata/libata-eh.c
3111
link->eh_info.serror = 0;
drivers/ata/libata-eh.c
3114
spin_unlock_irqrestore(link->ap->lock, flags);
drivers/ata/libata-eh.c
3125
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3147
ata_link_warn(link,
drivers/ata/libata-eh.c
3150
failed_link = link;
drivers/ata/libata-eh.c
3154
ata_link_warn(link,
drivers/ata/libata-eh.c
3160
ata_eh_done(link, NULL, ATA_EH_RESET);
drivers/ata/libata-eh.c
3165
link->lpm_policy = ATA_LPM_UNKNOWN; /* reset LPM state */
drivers/ata/libata-eh.c
3182
if (!ata_is_host_link(link) &&
drivers/ata/libata-eh.c
3183
sata_scr_read(link, SCR_STATUS, &sstatus))
drivers/ata/libata-eh.c
3193
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
3195
ata_link_warn(link, "%s failed\n",
drivers/ata/libata-eh.c
3219
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
3225
sata_down_spd_limit(link, 0);
drivers/ata/libata-eh.c
3238
struct ata_link *link;
drivers/ata/libata-eh.c
3270
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3271
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3272
struct ata_eh_info *ehi = &link->eh_info;
drivers/ata/libata-eh.c
3274
link->eh_context.i.dev_action[dev->devno] |=
drivers/ata/libata-eh.c
3276
ata_eh_clear_action(link, dev, ehi, ATA_EH_PARK);
drivers/ata/libata-eh.c
3284
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
3310
static int ata_eh_revalidate_and_attach(struct ata_link *link,
drivers/ata/libata-eh.c
3313
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
3314
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3324
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
3344
if (link->lpm_policy > ATA_LPM_MAX_POWER) {
drivers/ata/libata-eh.c
3345
rc = ata_eh_link_set_lpm(link, ATA_LPM_MAX_POWER,
drivers/ata/libata-eh.c
3356
ata_eh_about_to_do(link, dev, ATA_EH_REVALIDATE);
drivers/ata/libata-eh.c
3362
ata_eh_done(link, dev, ATA_EH_REVALIDATE);
drivers/ata/libata-eh.c
3412
if ((ehc->i.flags & ATA_EHI_DID_RESET) && ata_is_host_link(link)) {
drivers/ata/libata-eh.c
3421
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3469
static int ata_eh_set_mode(struct ata_link *link,
drivers/ata/libata-eh.c
3472
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
3477
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
3489
rc = ap->ops->set_mode(link, r_failed_dev);
drivers/ata/libata-eh.c
3491
rc = ata_set_mode(link, r_failed_dev);
drivers/ata/libata-eh.c
3494
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
3495
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3574
struct ata_link *link = dev->link;
drivers/ata/libata-eh.c
3575
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
358
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
3582
if (!ata_tag_valid(link->active_tag))
drivers/ata/libata-eh.c
3585
qc = __ata_qc_from_tag(ap, link->active_tag);
drivers/ata/libata-eh.c
3631
int ata_link_nr_enabled(struct ata_link *link)
drivers/ata/libata-eh.c
3636
ata_for_each_dev(dev, link, ENABLED)
drivers/ata/libata-eh.c
3641
static int ata_link_nr_vacant(struct ata_link *link)
drivers/ata/libata-eh.c
3646
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
3652
static int ata_eh_skip_recovery(struct ata_link *link)
drivers/ata/libata-eh.c
3654
struct ata_port *ap = link->ap;
drivers/ata/libata-eh.c
3655
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3659
if (link->flags & ATA_LFLAG_DISABLED)
drivers/ata/libata-eh.c
3667
if (ata_port_is_frozen(ap) || ata_link_nr_enabled(link))
drivers/ata/libata-eh.c
3676
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3701
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
3702
struct ata_link *link = ata_dev_phys_link(dev);
drivers/ata/libata-eh.c
3717
if (link->lpm_policy > ATA_LPM_MAX_POWER) {
drivers/ata/libata-eh.c
3718
if (ata_is_host_link(link))
drivers/ata/libata-eh.c
3719
link->ap->ops->set_lpm(link, ATA_LPM_MAX_POWER,
drivers/ata/libata-eh.c
3722
sata_pmp_set_lpm(link, ATA_LPM_MAX_POWER,
drivers/ata/libata-eh.c
3743
sata_down_spd_limit(link, 1);
drivers/ata/libata-eh.c
3750
struct ata_eh_context *ehc = &dev->link->eh_context;
drivers/ata/libata-eh.c
3823
struct ata_link *link;
drivers/ata/libata-eh.c
3829
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3830
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3834
ata_eh_about_to_do(link, NULL, ATA_EH_ENABLE_LINK);
drivers/ata/libata-eh.c
3836
link->flags &= ~ATA_LFLAG_DISABLED;
drivers/ata/libata-eh.c
3838
ata_eh_done(link, NULL, ATA_EH_ENABLE_LINK);
drivers/ata/libata-eh.c
3841
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3842
if (link->flags & ATA_LFLAG_NO_RETRY)
drivers/ata/libata-eh.c
3870
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3871
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3874
if (ata_eh_skip_recovery(link))
drivers/ata/libata-eh.c
3877
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
3882
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3883
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3888
rc = ata_eh_reset(ap, link, ata_link_nr_vacant(link),
drivers/ata/libata-eh.c
3891
ata_link_err(link, "reset failed, giving up\n");
drivers/ata/libata-eh.c
3906
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3907
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3908
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3938
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-eh.c
3939
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3940
if (!(link->eh_context.unloaded_mask &
drivers/ata/libata-eh.c
3945
ata_eh_done(link, dev, ATA_EH_PARK);
drivers/ata/libata-eh.c
3951
ata_for_each_link(link, ap, PMP_FIRST) {
drivers/ata/libata-eh.c
3952
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
3954
if (sata_pmp_attached(ap) && ata_is_host_link(link))
drivers/ata/libata-eh.c
3958
rc = ata_eh_revalidate_and_attach(link, &dev);
drivers/ata/libata-eh.c
3963
if (link->device->class == ATA_DEV_PMP) {
drivers/ata/libata-eh.c
3970
rc = ata_eh_set_mode(link, &dev);
drivers/ata/libata-eh.c
3980
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
3995
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
3998
ata_eh_done(link, dev, ATA_EH_SET_ACTIVE);
drivers/ata/libata-eh.c
4003
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-eh.c
4014
if (link->lpm_policy != ap->target_lpm_policy) {
drivers/ata/libata-eh.c
4015
rc = ata_eh_link_set_lpm(link, ap->target_lpm_policy,
drivers/ata/libata-eh.c
4045
*r_failed_link = link;
drivers/ata/libata-eh.c
4122
struct ata_link *link = &ap->link;
drivers/ata/libata-eh.c
4128
!sata_scr_valid(link))
drivers/ata/libata-eh.c
4129
link->flags |= ATA_LFLAG_NO_HRST;
drivers/ata/libata-eh.c
4138
ata_for_each_dev(dev, link, ALL)
drivers/ata/libata-eh.c
4161
struct ata_link *link;
drivers/ata/libata-eh.c
4184
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-eh.c
4185
ata_for_each_dev(dev, link, ENABLED)
drivers/ata/libata-eh.c
4196
ata_for_each_dev(dev, &ap->link, ENABLED) {
drivers/ata/libata-eh.c
4235
struct ata_link *link;
drivers/ata/libata-eh.c
4257
ata_for_each_link(link, ap, HOST_FIRST)
drivers/ata/libata-eh.c
4258
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
514
struct ata_link *link;
drivers/ata/libata-eh.c
523
ata_for_each_link(link, ap, PMP_FIRST) {
drivers/ata/libata-eh.c
524
ata_for_each_dev(dev, link, ENABLED)
drivers/ata/libata-eh.c
533
ata_for_each_link(link, ap, PMP_FIRST) {
drivers/ata/libata-eh.c
534
sata_scr_write(link, SCR_CONTROL, link->saved_scontrol & 0xff0);
drivers/ata/libata-eh.c
535
ata_for_each_dev(dev, link, ENABLED)
drivers/ata/libata-eh.c
656
qc == qc->dev->link->deferred_qc)
drivers/ata/libata-eh.c
660
if (i < ATA_MAX_QUEUE && qc == qc->dev->link->deferred_qc) {
drivers/ata/libata-eh.c
671
qc->dev->link->deferred_qc = NULL;
drivers/ata/libata-eh.c
672
cancel_work(&qc->dev->link->deferred_qc_work);
drivers/ata/libata-eh.c
724
struct ata_link *link;
drivers/ata/libata-eh.c
738
ata_for_each_link(link, ap, HOST_FIRST) {
drivers/ata/libata-eh.c
739
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-eh.c
742
memset(&link->eh_context, 0, sizeof(link->eh_context));
drivers/ata/libata-eh.c
743
link->eh_context.i = link->eh_info;
drivers/ata/libata-eh.c
744
memset(&link->eh_info, 0, sizeof(link->eh_info));
drivers/ata/libata-eh.c
746
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-eh.c
800
ata_for_each_link(link, ap, HOST_FIRST)
drivers/ata/libata-eh.c
801
memset(&link->eh_info, 0, sizeof(link->eh_info));
drivers/ata/libata-pmp.c
1000
rc = sata_scr_read(&ap->link, SCR_NOTIFICATION, &sntf);
drivers/ata/libata-pmp.c
1002
sata_scr_write(&ap->link, SCR_NOTIFICATION, sntf);
drivers/ata/libata-pmp.c
1008
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-pmp.c
1009
if (link->lpm_policy > ATA_LPM_MAX_POWER)
drivers/ata/libata-pmp.c
1044
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
1045
if (!(gscr_error & (1 << link->pmp)))
drivers/ata/libata-pmp.c
1048
if (sata_pmp_handle_link_fail(link, link_tries)) {
drivers/ata/libata-pmp.c
1049
ata_ehi_hotplugged(&link->eh_context.i);
drivers/ata/libata-pmp.c
1052
ata_link_warn(link,
drivers/ata/libata-pmp.c
1054
ata_link_warn(link,
drivers/ata/libata-pmp.c
1068
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
115
if (ap->excl_link == NULL || ap->excl_link == link) {
drivers/ata/libata-pmp.c
116
if (ap->nr_active_links == 0 || ata_link_active(link)) {
drivers/ata/libata-pmp.c
131
ap->excl_link = link;
drivers/ata/libata-pmp.c
152
int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *r_val)
drivers/ata/libata-pmp.c
159
err_mask = sata_pmp_read(link, reg, r_val);
drivers/ata/libata-pmp.c
161
ata_link_warn(link, "failed to read SCR %d (Emask=0x%x)\n",
drivers/ata/libata-pmp.c
183
int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val)
drivers/ata/libata-pmp.c
190
err_mask = sata_pmp_write(link, reg, val);
drivers/ata/libata-pmp.c
192
ata_link_warn(link, "failed to write SCR %d (Emask=0x%x)\n",
drivers/ata/libata-pmp.c
214
int sata_pmp_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/libata-pmp.c
217
return sata_link_scr_lpm(link, policy, true);
drivers/ata/libata-pmp.c
243
err_mask = sata_pmp_read(dev->link, reg, &gscr[reg]);
drivers/ata/libata-pmp.c
271
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-pmp.c
292
err_mask = sata_pmp_write(dev->link, SATA_PMP_GSCR_ERROR_EN,
drivers/ata/libata-pmp.c
309
err_mask = sata_pmp_read(&ap->link, PMP_GSCR_SII_POL, ®);
drivers/ata/libata-pmp.c
316
err_mask = sata_pmp_write(&ap->link, PMP_GSCR_SII_POL, reg);
drivers/ata/libata-pmp.c
372
struct ata_link *link = &pmp_link[i];
drivers/ata/libata-pmp.c
373
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-pmp.c
375
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
391
u32 *gscr = ap->link.device->gscr;
drivers/ata/libata-pmp.c
394
struct ata_link *link;
drivers/ata/libata-pmp.c
398
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
40
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
400
link->flags |= ATA_LFLAG_NO_LPM;
drivers/ata/libata-pmp.c
406
if (link->pmp < 5)
drivers/ata/libata-pmp.c
407
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
411
if (link->pmp == 5)
drivers/ata/libata-pmp.c
412
link->flags |= ATA_LFLAG_NO_SRST |
drivers/ata/libata-pmp.c
423
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-pmp.c
424
link->flags |= ATA_LFLAG_NO_LPM |
drivers/ata/libata-pmp.c
429
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
431
link->flags |= ATA_LFLAG_NO_LPM;
drivers/ata/libata-pmp.c
438
if (link->pmp <= 5)
drivers/ata/libata-pmp.c
439
link->flags |= ATA_LFLAG_NO_SRST |
drivers/ata/libata-pmp.c
445
if (link->pmp == 6)
drivers/ata/libata-pmp.c
446
link->flags |= ATA_LFLAG_NO_SRST |
drivers/ata/libata-pmp.c
470
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
474
link->flags |= ATA_LFLAG_NO_LPM |
drivers/ata/libata-pmp.c
480
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
482
if (link->pmp == 4)
drivers/ata/libata-pmp.c
483
link->flags |= ATA_LFLAG_DISABLED;
drivers/ata/libata-pmp.c
50
tf.device = link->pmp;
drivers/ata/libata-pmp.c
503
struct ata_link *link = dev->link;
drivers/ata/libata-pmp.c
504
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
515
if (!ata_is_host_link(link)) {
drivers/ata/libata-pmp.c
525
WARN_ON(link->pmp != 0);
drivers/ata/libata-pmp.c
526
link->pmp = SATA_PMP_CTRL_PORT;
drivers/ata/libata-pmp.c
561
link->pmp = 0;
drivers/ata/libata-pmp.c
577
struct ata_link *link = dev->link;
drivers/ata/libata-pmp.c
578
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
584
WARN_ON(!ata_is_host_link(link) || dev->devno ||
drivers/ata/libata-pmp.c
585
link->pmp != SATA_PMP_CTRL_PORT);
drivers/ata/libata-pmp.c
598
link->pmp = 0;
drivers/ata/libata-pmp.c
669
struct ata_link *link = dev->link;
drivers/ata/libata-pmp.c
673
ata_eh_about_to_do(link, NULL, ATA_EH_REVALIDATE);
drivers/ata/libata-pmp.c
703
ata_eh_done(link, NULL, ATA_EH_REVALIDATE);
drivers/ata/libata-pmp.c
729
err_mask = sata_pmp_read(dev->link, SATA_PMP_GSCR_PROD_ID, &prod_id);
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
struct ata_link *link = &ap->link;
drivers/ata/libata-pmp.c
767
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-pmp.c
768
struct ata_device *dev = link->device;
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
786
rc = ata_eh_reset(ap, link, 0, reset_ops);
drivers/ata/libata-pmp.c
788
ata_link_err(link, "failed to reset PMP, giving up\n");
drivers/ata/libata-pmp.c
822
sata_down_spd_limit(link, 0);
drivers/ata/libata-pmp.c
853
struct ata_link *link;
drivers/ata/libata-pmp.c
859
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-pmp.c
86
tf.device = link->pmp;
drivers/ata/libata-pmp.c
860
if (!(link->flags & ATA_LFLAG_DISABLED))
drivers/ata/libata-pmp.c
868
sata_link_hardreset(link, sata_deb_timing_normal,
drivers/ata/libata-pmp.c
873
rc = sata_scr_write(link, SCR_ERROR, SERR_PHYRDY_CHG);
drivers/ata/libata-pmp.c
875
ata_link_err(link,
drivers/ata/libata-pmp.c
889
static int sata_pmp_handle_link_fail(struct ata_link *link, int *link_tries)
drivers/ata/libata-pmp.c
891
struct ata_port *ap = link->ap;
drivers/ata/libata-pmp.c
894
if (link_tries[link->pmp] && --link_tries[link->pmp])
drivers/ata/libata-pmp.c
898
if (!(link->flags & ATA_LFLAG_DISABLED)) {
drivers/ata/libata-pmp.c
899
ata_link_warn(link,
drivers/ata/libata-pmp.c
904
link->flags |= ATA_LFLAG_DISABLED;
drivers/ata/libata-pmp.c
908
ata_dev_disable(link->device);
drivers/ata/libata-pmp.c
909
link->eh_context.i.action = 0;
drivers/ata/libata-pmp.c
934
struct ata_link *pmp_link = &ap->link;
drivers/ata/libata-pmp.c
938
struct ata_link *link;
drivers/ata/libata-pmp.c
945
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-pmp.c
946
link_tries[link->pmp] = ATA_EH_PMP_LINK_TRIES;
drivers/ata/libata-pmp.c
953
ata_for_each_dev(dev, &ap->link, ALL)
drivers/ata/libata-pmp.c
962
ata_for_each_link(link, ap, EDGE)
drivers/ata/libata-pmp.c
963
link_tries[link->pmp] = ATA_EH_PMP_LINK_TRIES;
drivers/ata/libata-pmp.c
995
rc = ata_eh_recover(ap, &ops->pmp_reset, &link);
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
1382
if (likely(ata_dev_enabled(ap->link.device)))
drivers/ata/libata-sata.c
1383
return __ata_scsi_queuecmd(cmd, ap->link.device, ap);
drivers/ata/libata-sata.c
1413
rc = sata_scr_read(&ap->link, SCR_NOTIFICATION, &sntf);
drivers/ata/libata-sata.c
1415
sata_scr_write(&ap->link, SCR_NOTIFICATION, sntf);
drivers/ata/libata-sata.c
1424
struct ata_device *dev = ap->link.device;
drivers/ata/libata-sata.c
1441
struct ata_link *link;
drivers/ata/libata-sata.c
1444
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-sata.c
1445
if (!(sntf & (1 << link->pmp)))
drivers/ata/libata-sata.c
1448
if ((link->device->class == ATA_DEV_ATAPI) &&
drivers/ata/libata-sata.c
1449
(link->device->flags & ATA_DFLAG_AN))
drivers/ata/libata-sata.c
1450
ata_scsi_media_change_notify(link->device);
drivers/ata/libata-sata.c
1537
int ata_eh_get_ncq_success_sense(struct ata_link *link)
drivers/ata/libata-sata.c
1539
struct ata_device *dev = link->device;
drivers/ata/libata-sata.c
1540
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-sata.c
1574
ata_dev_phys_link(qc->dev) != link)
drivers/ata/libata-sata.c
1635
void ata_eh_analyze_ncq_error(struct ata_link *link)
drivers/ata/libata-sata.c
1637
struct ata_port *ap = link->ap;
drivers/ata/libata-sata.c
1638
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/libata-sata.c
1639
struct ata_device *dev = link->device;
drivers/ata/libata-sata.c
1649
if (!link->sactive || !(ehc->i.err_mask & AC_ERR_DEV))
drivers/ata/libata-sata.c
1665
ata_link_err(link, "failed to read log page 10h (errno=%d)\n",
drivers/ata/libata-sata.c
1670
if (!(link->sactive & BIT(tag))) {
drivers/ata/libata-sata.c
1671
ata_link_err(link, "log page 10h reported inactive tag %d\n",
drivers/ata/libata-sata.c
1702
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
114
link = dev->link;
drivers/ata/libata-scsi.c
1150
struct device_link *link;
drivers/ata/libata-scsi.c
1159
link = device_link_add(&sdev->sdev_gendev, &ap->tdev,
drivers/ata/libata-scsi.c
1162
if (!link) {
drivers/ata/libata-scsi.c
117
link->eh_context.unloaded_mask & (1 << dev->devno) &&
drivers/ata/libata-scsi.c
1665
struct ata_link *link =
drivers/ata/libata-scsi.c
1667
struct ata_port *ap = link->ap;
drivers/ata/libata-scsi.c
1678
qc = link->deferred_qc;
drivers/ata/libata-scsi.c
1681
link->deferred_qc = NULL;
drivers/ata/libata-scsi.c
1690
struct ata_link *link;
drivers/ata/libata-scsi.c
1699
ata_for_each_link(link, ap, PMP_FIRST) {
drivers/ata/libata-scsi.c
1700
struct ata_queued_cmd *qc = link->deferred_qc;
drivers/ata/libata-scsi.c
1703
link->deferred_qc = NULL;
drivers/ata/libata-scsi.c
1704
cancel_work(&link->deferred_qc_work);
drivers/ata/libata-scsi.c
171
dev->link->eh_info.dev_action[dev->devno] |= ATA_EH_PARK;
drivers/ata/libata-scsi.c
1710
static void ata_scsi_schedule_deferred_qc(struct ata_link *link)
drivers/ata/libata-scsi.c
1712
struct ata_queued_cmd *qc = link->deferred_qc;
drivers/ata/libata-scsi.c
1713
struct ata_port *ap = link->ap;
drivers/ata/libata-scsi.c
1730
queue_work(system_highpri_wq, &link->deferred_qc_work);
drivers/ata/libata-scsi.c
1735
struct ata_link *link = qc->dev->link;
drivers/ata/libata-scsi.c
1766
ata_scsi_schedule_deferred_qc(link);
drivers/ata/libata-scsi.c
1772
struct ata_link *link = qc->dev->link;
drivers/ata/libata-scsi.c
1783
if (link->deferred_qc) {
drivers/ata/libata-scsi.c
1826
link->deferred_qc = qc;
drivers/ata/libata-scsi.c
3053
int link_max_devices = ata_link_max_devices(&ap->link);
drivers/ata/libata-scsi.c
3056
return &ap->link.device[0];
drivers/ata/libata-scsi.c
3059
return &ap->link.device[devno];
drivers/ata/libata-scsi.c
400
dev->link->eh_info.action |= ATA_EH_RESET;
drivers/ata/libata-scsi.c
4711
struct ata_link *link;
drivers/ata/libata-scsi.c
4715
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-scsi.c
4716
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-scsi.c
4723
if (ata_is_host_link(link))
drivers/ata/libata-scsi.c
4726
channel = link->pmp;
drivers/ata/libata-scsi.c
4744
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-scsi.c
4745
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-scsi.c
4751
if (!link)
drivers/ata/libata-scsi.c
4816
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-scsi.c
4863
static void ata_scsi_handle_link_detach(struct ata_link *link)
drivers/ata/libata-scsi.c
4865
struct ata_port *ap = link->ap;
drivers/ata/libata-scsi.c
4868
ata_for_each_dev(dev, link, ALL) {
drivers/ata/libata-scsi.c
4928
ata_scsi_handle_link_detach(&ap->link);
drivers/ata/libata-scsi.c
4978
struct ata_link *link;
drivers/ata/libata-scsi.c
4980
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-scsi.c
4981
struct ata_eh_info *ehi = &link->eh_info;
drivers/ata/libata-scsi.c
4989
struct ata_eh_info *ehi = &dev->link->eh_info;
drivers/ata/libata-scsi.c
5020
struct ata_link *link;
drivers/ata/libata-scsi.c
5029
ata_for_each_link(link, ap, EDGE) {
drivers/ata/libata-scsi.c
5030
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/libata-scsi.c
743
struct ata_port *ap = dev->link->ap;
drivers/ata/libata-scsi.c
95
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
2061
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
2644
struct ata_link *link = qc->dev->link;
drivers/ata/libata-sff.c
2678
ata_sff_queue_pio_task(link, 0);
drivers/ata/libata-sff.c
2705
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/libata-sff.c
2779
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
237
ata_tlink_delete(&ap->link);
drivers/ata/libata-transport.c
293
error = ata_tlink_add(&ap->link);
drivers/ata/libata-transport.c
559
struct ata_link *link = ata_dev->link;
drivers/ata/libata-transport.c
560
struct ata_port *ap = link->ap;
drivers/ata/libata-transport.c
564
dev->parent = &link->tdev;
drivers/ata/libata-transport.c
566
if (ata_is_host_link(link))
drivers/ata/libata-transport.c
569
dev_set_name(dev, "dev%d.%d.0", ap->print_id, link->pmp);
drivers/ata/libata-transport.c
603
struct ata_link *link = transport_class_to_link(dev); \
drivers/ata/libata-transport.c
606
sata_spd_string(format(link->field))); \
drivers/ata/libata-transport.c
654
void ata_tlink_delete(struct ata_link *link)
drivers/ata/libata-transport.c
656
struct device *dev = &link->tdev;
drivers/ata/libata-transport.c
659
ata_for_each_dev(ata_dev, link, ALL) {
drivers/ata/libata-transport.c
678
int ata_tlink_add(struct ata_link *link)
drivers/ata/libata-transport.c
680
struct device *dev = &link->tdev;
drivers/ata/libata-transport.c
681
struct ata_port *ap = link->ap;
drivers/ata/libata-transport.c
688
if (ata_is_host_link(link))
drivers/ata/libata-transport.c
691
dev_set_name(dev, "link%d.%d", ap->print_id, link->pmp);
drivers/ata/libata-transport.c
704
ata_for_each_dev(ata_dev, link, ALL) {
drivers/ata/libata-transport.c
711
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 void ata_link_init(struct ata_port *ap, struct ata_link *link, int pmp);
drivers/ata/libata.h
101
extern int sata_link_init_spd(struct ata_link *link);
drivers/ata/libata.h
112
int sata_down_spd_limit(struct ata_link *link, u32 spd_limit);
drivers/ata/libata.h
113
int ata_eh_get_ncq_success_sense(struct ata_link *link);
drivers/ata/libata.h
115
static inline int sata_down_spd_limit(struct ata_link *link, u32 spd_limit)
drivers/ata/libata.h
119
static inline int ata_eh_get_ncq_success_sense(struct ata_link *link)
drivers/ata/libata.h
197
extern void ata_eh_about_to_do(struct ata_link *link, struct ata_device *dev,
drivers/ata/libata.h
199
extern void ata_eh_done(struct ata_link *link, struct ata_device *dev,
drivers/ata/libata.h
204
extern int ata_eh_reset(struct ata_port *ap, struct ata_link *link,
drivers/ata/libata.h
222
extern int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *val);
drivers/ata/libata.h
223
extern int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val);
drivers/ata/libata.h
224
extern int sata_pmp_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
drivers/ata/libata.h
228
static inline int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *val)
drivers/ata/libata.h
233
static inline int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val)
drivers/ata/libata.h
238
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
96
extern bool ata_phys_link_online(struct ata_link *link);
drivers/ata/libata.h
97
extern bool ata_phys_link_offline(struct ata_link *link);
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
102
static int pata_buddha_set_mode(struct ata_link *link,
drivers/ata/pata_buddha.c
107
ata_for_each_dev(dev, link, ENABLED) {
drivers/ata/pata_buddha.c
68
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
485
struct ata_port *ap = qc->dev->link->ap;
drivers/ata/pata_ep93xx.c
550
static int ep93xx_pata_wait_after_reset(struct ata_link *link,
drivers/ata/pata_ep93xx.c
554
struct ata_port *ap = link->ap;
drivers/ata/pata_ep93xx.c
563
rc = ata_sff_wait_ready(link, deadline);
drivers/ata/pata_ep93xx.c
597
rc = ata_sff_wait_ready(link, deadline);
drivers/ata/pata_ep93xx.c
627
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
252
static int pdc2027x_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/pata_pdc2027x.c
255
if (!pdc2027x_port_enabled(link->ap))
drivers/ata/pata_pdc2027x.c
257
return ata_sff_prereset(link, deadline);
drivers/ata/pata_pdc2027x.c
398
static int pdc2027x_set_mode(struct ata_link *link, struct ata_device **r_failed)
drivers/ata/pata_pdc2027x.c
400
struct ata_port *ap = link->ap;
drivers/ata/pata_pdc2027x.c
404
rc = ata_set_mode(link, r_failed);
drivers/ata/pata_pdc2027x.c
408
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
243
static int adma_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/pdc_adma.c
245
struct ata_port *ap = link->ap;
drivers/ata/pdc_adma.c
252
return ata_sff_prereset(link, deadline);
drivers/ata/pdc_adma.c
404
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/pdc_adma.c
419
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/pdc_adma.c
447
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/pdc_adma.c
461
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_dwc_460ex.c
1018
sata_dwc_scr_read(&ap->link, SCR_ACTIVE, &sactive);
drivers/ata/sata_dwc_460ex.c
1020
sata_dwc_scr_write(&ap->link, SCR_ACTIVE, sactive);
drivers/ata/sata_dwc_460ex.c
1039
static int sata_dwc_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_dwc_460ex.c
1042
struct sata_dwc_device *hsdev = HSDEV_FROM_AP(link->ap);
drivers/ata/sata_dwc_460ex.c
1045
ret = sata_sff_hardreset(link, class, deadline);
drivers/ata/sata_dwc_460ex.c
297
tag = ap->link.active_tag;
drivers/ata/sata_dwc_460ex.c
359
static int sata_dwc_scr_read(struct ata_link *link, unsigned int scr, u32 *val)
drivers/ata/sata_dwc_460ex.c
362
dev_err(link->ap->dev, "%s: Incorrect SCR offset 0x%02x\n",
drivers/ata/sata_dwc_460ex.c
367
*val = sata_dwc_readl(link->ap->ioaddr.scr_addr + (scr * 4));
drivers/ata/sata_dwc_460ex.c
368
dev_dbg(link->ap->dev, "%s: id=%d reg=%d val=0x%08x\n", __func__,
drivers/ata/sata_dwc_460ex.c
369
link->ap->print_id, scr, *val);
drivers/ata/sata_dwc_460ex.c
374
static int sata_dwc_scr_write(struct ata_link *link, unsigned int scr, u32 val)
drivers/ata/sata_dwc_460ex.c
376
dev_dbg(link->ap->dev, "%s: id=%d reg=%d val=0x%08x\n", __func__,
drivers/ata/sata_dwc_460ex.c
377
link->ap->print_id, scr, val);
drivers/ata/sata_dwc_460ex.c
379
dev_err(link->ap->dev, "%s: Incorrect SCR offset 0x%02x\n",
drivers/ata/sata_dwc_460ex.c
383
sata_dwc_writel(link->ap->ioaddr.scr_addr + (scr * 4), val);
drivers/ata/sata_dwc_460ex.c
391
sata_dwc_scr_read(&ap->link, SCR_ERROR, &val);
drivers/ata/sata_dwc_460ex.c
392
sata_dwc_scr_write(&ap->link, SCR_ERROR, val);
drivers/ata/sata_dwc_460ex.c
410
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_dwc_460ex.c
418
sata_dwc_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_dwc_460ex.c
421
tag = ap->link.active_tag;
drivers/ata/sata_dwc_460ex.c
479
ap->link.active_tag);
drivers/ata/sata_dwc_460ex.c
511
qc->ap->link.active_tag = tag;
drivers/ata/sata_dwc_460ex.c
517
sata_dwc_scr_read(&ap->link, SCR_ACTIVE, &sactive);
drivers/ata/sata_dwc_460ex.c
522
if (ap->link.active_tag == ATA_TAG_POISON)
drivers/ata/sata_dwc_460ex.c
525
tag = ap->link.active_tag;
drivers/ata/sata_dwc_460ex.c
539
qc->ap->link.active_tag = tag;
drivers/ata/sata_dwc_460ex.c
591
sata_dwc_scr_read(&ap->link, SCR_ACTIVE, &sactive);
drivers/ata/sata_dwc_460ex.c
621
qc->ap->link.active_tag = tag;
drivers/ata/sata_dwc_460ex.c
663
sata_dwc_scr_read(&ap->link, SCR_ACTIVE, &sactive2);
drivers/ata/sata_dwc_460ex.c
707
tag = ap->link.active_tag;
drivers/ata/sata_dwc_460ex.c
724
ap->link.active_tag = ATA_TAG_POISON;
drivers/ata/sata_dwc_460ex.c
970
sata_dwc_scr_read(&ap->link, SCR_ERROR, ®);
drivers/ata/sata_fsl.c
1017
if (ata_link_online(link)) {
drivers/ata/sata_fsl.c
1061
struct ata_link *link = NULL;
drivers/ata/sata_fsl.c
1069
link = &ap->link;
drivers/ata/sata_fsl.c
1070
ehi = &link->eh_info;
drivers/ata/sata_fsl.c
1077
sata_fsl_scr_read(&ap->link, SCR_ERROR, &SError);
drivers/ata/sata_fsl.c
1079
sata_fsl_scr_write(&ap->link, SCR_ERROR, SError);
drivers/ata/sata_fsl.c
1132
link = &ap->pmp_link[dev_num];
drivers/ata/sata_fsl.c
1133
ehi = &link->eh_info;
drivers/ata/sata_fsl.c
1134
qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/sata_fsl.c
1152
qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/sata_fsl.c
1174
ata_link_abort(qc->dev->link);
drivers/ata/sata_fsl.c
1192
sata_fsl_scr_read(&ap->link, SCR_ERROR, &SError);
drivers/ata/sata_fsl.c
1212
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
2418
struct ata_link *link = &ap->pmp_link[pmp];
drivers/ata/sata_mv.c
2420
ata_eh_analyze_ncq_error(link);
drivers/ata/sata_mv.c
2445
struct ata_link *link = &ap->pmp_link[pmp];
drivers/ata/sata_mv.c
2446
struct ata_eh_info *ehi = &link->eh_info;
drivers/ata/sata_mv.c
2453
ata_link_abort(link);
drivers/ata/sata_mv.c
2575
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_mv.c
2582
struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_mv.c
2611
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_mv.c
2620
sata_scr_read(&ap->link, SCR_ERROR, &serr);
drivers/ata/sata_mv.c
2621
sata_scr_write_flush(&ap->link, SCR_ERROR, serr);
drivers/ata/sata_mv.c
2732
ata_link_abort(qc->dev->link);
drivers/ata/sata_mv.c
2788
tag = ap->link.active_tag;
drivers/ata/sata_mv.c
2935
if (!ata_link_offline(&ap->link)) {
drivers/ata/sata_mv.c
2936
ehi = &ap->link.eh_info;
drivers/ata/sata_mv.c
2943
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_mv.c
3022
static int mv5_scr_read(struct ata_link *link, unsigned int sc_reg_in, u32 *val)
drivers/ata/sata_mv.c
3024
struct mv_host_priv *hpriv = link->ap->host->private_data;
drivers/ata/sata_mv.c
3026
void __iomem *addr = mv5_phy_base(mmio, link->ap->port_no);
drivers/ata/sata_mv.c
3036
static int mv5_scr_write(struct ata_link *link, unsigned int sc_reg_in, u32 val)
drivers/ata/sata_mv.c
3038
struct mv_host_priv *hpriv = link->ap->host->private_data;
drivers/ata/sata_mv.c
3040
void __iomem *addr = mv5_phy_base(mmio, link->ap->port_no);
drivers/ata/sata_mv.c
3574
static int mv_pmp_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_mv.c
3577
mv_pmp_select(link->ap, sata_srst_pmp(link));
drivers/ata/sata_mv.c
3578
return sata_std_hardreset(link, class, deadline);
drivers/ata/sata_mv.c
3581
static int mv_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_mv.c
3584
mv_pmp_select(link->ap, sata_srst_pmp(link));
drivers/ata/sata_mv.c
3585
return ata_sff_softreset(link, class, deadline);
drivers/ata/sata_mv.c
3588
static int mv_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_mv.c
3591
struct ata_port *ap = link->ap;
drivers/ata/sata_mv.c
3607
sata_ehc_deb_timing(&link->eh_context);
drivers/ata/sata_mv.c
3609
rc = sata_link_hardreset(link, timing, deadline + extra,
drivers/ata/sata_mv.c
3614
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
1007
if (ata_tag_valid(ap->link.active_tag))
drivers/ata/sata_nv.c
1009
ap->link.active_tag;
drivers/ata/sata_nv.c
1011
check_commands = ap->link.sactive;
drivers/ata/sata_nv.c
1475
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_nv.c
1532
static int nv_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_nv.c
1537
*val = ioread32(link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/ata/sata_nv.c
1541
static int nv_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_nv.c
1546
iowrite32(val, link->ap->ioaddr.scr_addr + (sc_reg * 4));
drivers/ata/sata_nv.c
1550
static int nv_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_nv.c
1553
struct ata_eh_context *ehc = &link->eh_context;
drivers/ata/sata_nv.c
1558
if (!(link->ap->pflags & ATA_PFLAG_LOADING) &&
drivers/ata/sata_nv.c
1559
!ata_dev_enabled(link->device))
drivers/ata/sata_nv.c
1560
sata_link_hardreset(link, sata_deb_timing_hotplug, deadline,
drivers/ata/sata_nv.c
1567
ata_link_info(link,
drivers/ata/sata_nv.c
1571
rc = sata_link_resume(link, timing, deadline);
drivers/ata/sata_nv.c
1574
ata_link_warn(link, "failed to resume link (errno=%d)\n",
drivers/ata/sata_nv.c
1665
if (ata_tag_valid(ap->link.active_tag) || ap->link.sactive) {
drivers/ata/sata_nv.c
1682
if ((ata_tag_valid(ap->link.active_tag) && i == ap->link.active_tag) ||
drivers/ata/sata_nv.c
1683
ap->link.sactive & (1 << i))
drivers/ata/sata_nv.c
1787
ap->qc_active, ap->link.sactive);
drivers/ata/sata_nv.c
1829
struct ata_eh_context *ehc = &ap->link.eh_context;
drivers/ata/sata_nv.c
1831
if (ap->link.sactive) {
drivers/ata/sata_nv.c
1920
dev = &ap->link.device[sdev->id];
drivers/ata/sata_nv.c
2072
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_nv.c
2077
sata_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_nv.c
2078
sata_scr_write(&ap->link, SCR_ERROR, serror);
drivers/ata/sata_nv.c
2098
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_nv.c
2213
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_nv.c
2233
if (ap->ops->scr_read(&ap->link, SCR_ERROR, &serror))
drivers/ata/sata_nv.c
2235
ap->ops->scr_write(&ap->link, SCR_ERROR, serror);
drivers/ata/sata_nv.c
2323
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
715
if (ap->link.device[sdev->id].class == ATA_DEV_ATAPI) {
drivers/ata/sata_nv.c
849
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_nv.c
885
struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_nv.c
937
if (ata_tag_valid(ap->link.active_tag))
drivers/ata/sata_nv.c
976
struct ata_eh_info *ehi = &ap->link.eh_info;
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
839
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_promise.c
856
if (sata_scr_valid(&ap->link)) {
drivers/ata/sata_promise.c
859
pdc_sata_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_promise.c
962
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_promise.c
976
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
205
static int qs_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/sata_qstor.c
207
struct ata_port *ap = link->ap;
drivers/ata/sata_qstor.c
210
return ata_sff_prereset(link, deadline);
drivers/ata/sata_qstor.c
213
static int qs_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_qstor.c
217
*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
344
static int sil_set_mode(struct ata_link *link, struct ata_device **r_failed)
drivers/ata/sata_sil.c
346
struct ata_port *ap = link->ap;
drivers/ata/sata_sil.c
353
rc = ata_set_mode(link, r_failed);
drivers/ata/sata_sil.c
357
ata_for_each_dev(dev, link, ALL) {
drivers/ata/sata_sil.c
396
static int sil_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_sil.c
398
void __iomem *mmio = sil_scr_addr(link->ap, sc_reg);
drivers/ata/sata_sil.c
407
static int sil_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_sil.c
409
void __iomem *mmio = sil_scr_addr(link->ap, sc_reg);
drivers/ata/sata_sil.c
420
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_sil.c
421
struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_sil.c
431
sil_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_sil.c
432
sil_scr_write(&ap->link, SCR_ERROR, serror);
drivers/ata/sata_sil.c
438
ap->link.eh_info.serror |= serror;
drivers/ata/sata_sil.c
612
struct ata_port *ap = dev->link->ap;
drivers/ata/sata_sil.c
613
int print_info = ap->link.eh_context.i.flags & ATA_EHI_PRINTINFO;
drivers/ata/sata_sil24.c
1040
link = &ap->pmp_link[pmp];
drivers/ata/sata_sil24.c
1041
ehi = &link->eh_info;
drivers/ata/sata_sil24.c
1042
qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/sata_sil24.c
1053
qc = ata_qc_from_tag(ap, link->active_tag);
drivers/ata/sata_sil24.c
1092
ata_link_abort(qc->dev->link);
drivers/ata/sata_sil24.c
1126
struct ata_eh_info *ehi = &ap->link.eh_info;
drivers/ata/sata_sil24.c
1137
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
472
void __iomem *port = sil24_port_base(dev->link->ap);
drivers/ata/sata_sil24.c
498
static int sil24_scr_read(struct ata_link *link, unsigned sc_reg, u32 *val)
drivers/ata/sata_sil24.c
500
void __iomem *scr_addr = sil24_port_base(link->ap) + PORT_SCONTROL;
drivers/ata/sata_sil24.c
509
static int sil24_scr_write(struct ata_link *link, unsigned sc_reg, u32 val)
drivers/ata/sata_sil24.c
511
void __iomem *scr_addr = sil24_port_base(link->ap) + PORT_SCONTROL;
drivers/ata/sata_sil24.c
588
ap->link.eh_context.i.action |= ATA_EH_RESET;
drivers/ata/sata_sil24.c
647
static int sil24_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sil24.c
650
struct ata_port *ap = link->ap;
drivers/ata/sata_sil24.c
651
int pmp = sata_srst_pmp(link);
drivers/ata/sata_sil24.c
667
ata_tf_init(link->device, &tf); /* doesn't really matter */
drivers/ata/sata_sil24.c
684
ata_link_err(link, "softreset failed (%s)\n", reason);
drivers/ata/sata_sil24.c
688
static int sil24_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sil24.c
691
struct ata_port *ap = link->ap;
drivers/ata/sata_sil24.c
722
sata_set_spd(link);
drivers/ata/sata_sil24.c
725
if (ata_link_online(link))
drivers/ata/sata_sil24.c
736
rc = sata_link_debounce(link, sata_deb_timing_long, deadline);
drivers/ata/sata_sil24.c
743
if (ata_link_offline(link))
drivers/ata/sata_sil24.c
763
ata_link_err(link, "hardreset failed (%s)\n", reason);
drivers/ata/sata_sil24.c
788
struct ata_link *link = qc->dev->link;
drivers/ata/sata_sil24.c
789
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
875
ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, prb->fis);
drivers/ata/sata_sil24.c
913
u32 *gscr = ap->link.device->gscr;
drivers/ata/sata_sil24.c
934
static int sil24_pmp_hardreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sil24.c
939
rc = sil24_init_port(link->ap);
drivers/ata/sata_sil24.c
941
ata_link_err(link, "hardreset failed (port not ready)\n");
drivers/ata/sata_sil24.c
945
return sata_std_hardreset(link, class, deadline);
drivers/ata/sata_sil24.c
976
struct ata_link *link;
drivers/ata/sata_sil24.c
986
link = &ap->link;
drivers/ata/sata_sil24.c
987
ehi = &link->eh_info;
drivers/ata/sata_sis.c
117
static unsigned int get_scr_cfg_addr(struct ata_link *link, unsigned int sc_reg)
drivers/ata/sata_sis.c
119
struct ata_port *ap = link->ap;
drivers/ata/sata_sis.c
140
if (link->pmp)
drivers/ata/sata_sis.c
146
static u32 sis_scr_cfg_read(struct ata_link *link,
drivers/ata/sata_sis.c
149
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_sis.c
150
unsigned int cfg_addr = get_scr_cfg_addr(link, sc_reg);
drivers/ata/sata_sis.c
159
static int sis_scr_cfg_write(struct ata_link *link,
drivers/ata/sata_sis.c
162
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_sis.c
163
unsigned int cfg_addr = get_scr_cfg_addr(link, sc_reg);
drivers/ata/sata_sis.c
169
static int sis_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_sis.c
171
struct ata_port *ap = link->ap;
drivers/ata/sata_sis.c
172
void __iomem *base = ap->ioaddr.scr_addr + link->pmp * 0x10;
drivers/ata/sata_sis.c
178
return sis_scr_cfg_read(link, sc_reg, val);
drivers/ata/sata_sis.c
184
static int sis_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_sis.c
186
struct ata_port *ap = link->ap;
drivers/ata/sata_sis.c
187
void __iomem *base = ap->ioaddr.scr_addr + link->pmp * 0x10;
drivers/ata/sata_sis.c
193
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_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
780
qc = ata_qc_from_tag(ap, ap->link.active_tag);
drivers/ata/sata_sx4.c
847
static int pdc_softreset(struct ata_link *link, unsigned int *class,
drivers/ata/sata_sx4.c
850
pdc_reset_port(link->ap);
drivers/ata/sata_sx4.c
851
return ata_sff_softreset(link, class, deadline);
drivers/ata/sata_uli.c
102
static void uli_scr_cfg_write(struct ata_link *link, unsigned int scr, u32 val)
drivers/ata/sata_uli.c
104
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_uli.c
105
unsigned int cfg_addr = get_scr_cfg_addr(link->ap, scr);
drivers/ata/sata_uli.c
110
static int uli_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_uli.c
115
*val = uli_scr_cfg_read(link, sc_reg);
drivers/ata/sata_uli.c
119
static int uli_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_uli.c
124
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
92
static u32 uli_scr_cfg_read(struct ata_link *link, unsigned int sc_reg)
drivers/ata/sata_uli.c
94
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_uli.c
95
unsigned int cfg_addr = get_scr_cfg_addr(link->ap, sc_reg);
drivers/ata/sata_via.c
206
static int svia_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val)
drivers/ata/sata_via.c
210
*val = ioread32(link->ap->ioaddr.scr_addr + (4 * sc_reg));
drivers/ata/sata_via.c
214
static int svia_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
drivers/ata/sata_via.c
218
iowrite32(val, link->ap->ioaddr.scr_addr + (4 * sc_reg));
drivers/ata/sata_via.c
222
static int vt8251_scr_read(struct ata_link *link, unsigned int scr, u32 *val)
drivers/ata/sata_via.c
225
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_via.c
226
int slot = 2 * link->ap->port_no + link->pmp;
drivers/ata/sata_via.c
271
static int vt8251_scr_write(struct ata_link *link, unsigned int scr, u32 val)
drivers/ata/sata_via.c
273
struct pci_dev *pdev = to_pci_dev(link->ap->host->dev);
drivers/ata/sata_via.c
274
int slot = 2 * link->ap->port_no + link->pmp;
drivers/ata/sata_via.c
351
static int vt6420_prereset(struct ata_link *link, unsigned long deadline)
drivers/ata/sata_via.c
353
struct ata_port *ap = link->ap;
drivers/ata/sata_via.c
354
struct ata_eh_context *ehc = &ap->link.eh_context;
drivers/ata/sata_via.c
364
svia_scr_write(link, SCR_CONTROL, 0x300);
drivers/ata/sata_via.c
365
svia_scr_read(link, SCR_CONTROL, &scontrol); /* flush */
drivers/ata/sata_via.c
369
ata_msleep(link->ap, 200);
drivers/ata/sata_via.c
370
svia_scr_read(link, SCR_STATUS, &sstatus);
drivers/ata/sata_via.c
376
svia_scr_read(link, SCR_STATUS, &sstatus);
drivers/ata/sata_via.c
377
svia_scr_read(link, SCR_CONTROL, &scontrol);
drivers/ata/sata_via.c
386
svia_scr_read(link, SCR_STATUS, &sstatus);
drivers/ata/sata_via.c
396
ata_sff_wait_ready(link, deadline);
drivers/ata/sata_via.c
576
svia_scr_read(&host->ports[0]->link, SCR_ERROR, &serror);
drivers/ata/sata_via.c
578
ata_ehi_hotplugged(&host->ports[0]->link.eh_info);
drivers/ata/sata_via.c
583
svia_scr_read(&host->ports[1]->link, SCR_ERROR, &serror);
drivers/ata/sata_via.c
585
ata_ehi_hotplugged(&host->ports[1]->link.eh_info);
drivers/ata/sata_via.c
604
svia_scr_read(&ap->link, SCR_ERROR, &serror);
drivers/ata/sata_via.c
609
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
1002
struct device_link *link = container_of(kref, struct device_link, kref);
drivers/base/core.c
1004
dev_dbg(link->consumer, "Dropping the link to %s\n",
drivers/base/core.c
1005
dev_name(link->supplier));
drivers/base/core.c
1007
pm_runtime_drop_link(link);
drivers/base/core.c
1009
device_link_remove_from_lists(link);
drivers/base/core.c
1010
device_unregister(&link->link_dev);
drivers/base/core.c
1013
static void device_link_put_kref(struct device_link *link)
drivers/base/core.c
1015
if (device_link_test(link, DL_FLAG_STATELESS))
drivers/base/core.c
1016
kref_put(&link->kref, __device_link_del);
drivers/base/core.c
1017
else if (!device_is_registered(link->consumer))
drivers/base/core.c
1018
__device_link_del(&link->kref);
drivers/base/core.c
1032
void device_link_del(struct device_link *link)
drivers/base/core.c
1035
device_link_put_kref(link);
drivers/base/core.c
1050
struct device_link *link;
drivers/base/core.c
1057
list_for_each_entry(link, &supplier->links.consumers, s_node) {
drivers/base/core.c
1058
if (link->consumer == consumer) {
drivers/base/core.c
1059
device_link_put_kref(link);
drivers/base/core.c
1070
struct device_link *link;
drivers/base/core.c
1072
list_for_each_entry(link, &dev->links.suppliers, c_node) {
drivers/base/core.c
1073
if (link->status != DL_STATE_CONSUMER_PROBE)
drivers/base/core.c
1076
if (link->supplier->links.status == DL_DEV_DRIVER_BOUND) {
drivers/base/core.c
1077
WRITE_ONCE(link->status, DL_STATE_AVAILABLE);
drivers/base/core.c
1079
WARN_ON(!device_link_test(link, DL_FLAG_SYNC_STATE_ONLY));
drivers/base/core.c
1080
WRITE_ONCE(link->status, DL_STATE_DORMANT);
drivers/base/core.c
1094
struct fwnode_link *link;
drivers/base/core.c
1099
list_for_each_entry(link, &fwnode->suppliers, c_hook)
drivers/base/core.c
1100
if (!(link->flags &
drivers/base/core.c
1102
return link->supplier;
drivers/base/core.c
111
static void __fwnode_link_del(struct fwnode_link *link)
drivers/base/core.c
1125
struct device_link *link;
drivers/base/core.c
114
link->consumer, link->supplier);
drivers/base/core.c
1146
list_for_each_entry(link, &dev->links.suppliers, c_node) {
drivers/base/core.c
1147
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
115
list_del(&link->s_hook);
drivers/base/core.c
1150
if (link->status != DL_STATE_AVAILABLE &&
drivers/base/core.c
1151
!device_link_test(link, DL_FLAG_SYNC_STATE_ONLY)) {
drivers/base/core.c
1154
device_link_test(link, DL_FLAG_INFERRED) &&
drivers/base/core.c
1155
!dev_can_match(link->supplier)) {
drivers/base/core.c
116
list_del(&link->c_hook);
drivers/base/core.c
1162
"supplier %s not ready\n", dev_name(link->supplier));
drivers/base/core.c
1165
WRITE_ONCE(link->status, DL_STATE_CONSUMER_PROBE);
drivers/base/core.c
117
kfree(link);
drivers/base/core.c
1195
struct device_link *link;
drivers/base/core.c
1202
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1203
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1205
if (link->status != DL_STATE_ACTIVE)
drivers/base/core.c
126
static void __fwnode_link_cycle(struct fwnode_link *link)
drivers/base/core.c
129
link->consumer, link->supplier);
drivers/base/core.c
130
link->flags |= FWLINK_FLAG_CYCLE;
drivers/base/core.c
1301
static void device_link_drop_managed(struct device_link *link)
drivers/base/core.c
1303
link->flags &= ~DL_FLAG_MANAGED;
drivers/base/core.c
1304
WRITE_ONCE(link->status, DL_STATE_NONE);
drivers/base/core.c
1305
kref_put(&link->kref, __device_link_del);
drivers/base/core.c
1338
struct device_link *link, *ln;
drivers/base/core.c
1342
list_for_each_entry_safe(link, ln, &dev->links.suppliers, c_node) {
drivers/base/core.c
1343
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1346
if (link->status != DL_STATE_AVAILABLE) {
drivers/base/core.c
1347
device_link_drop_managed(link);
drivers/base/core.c
1350
WRITE_ONCE(link->status, DL_STATE_CONSUMER_PROBE);
drivers/base/core.c
1370
struct device_link *link, *ln;
drivers/base/core.c
1395
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1396
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1405
if (link->status == DL_STATE_CONSUMER_PROBE ||
drivers/base/core.c
1406
link->status == DL_STATE_ACTIVE)
drivers/base/core.c
1409
WARN_ON(link->status != DL_STATE_DORMANT);
drivers/base/core.c
141
struct fwnode_link *link, *tmp;
drivers/base/core.c
1410
WRITE_ONCE(link->status, DL_STATE_AVAILABLE);
drivers/base/core.c
1412
if (device_link_test(link, DL_FLAG_AUTOPROBE_CONSUMER))
drivers/base/core.c
1413
driver_deferred_probe_add(link->consumer);
drivers/base/core.c
1421
list_for_each_entry_safe(link, ln, &dev->links.suppliers, c_node) {
drivers/base/core.c
1424
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1427
supplier = link->supplier;
drivers/base/core.c
1428
if (device_link_test(link, DL_FLAG_SYNC_STATE_ONLY)) {
drivers/base/core.c
1434
device_link_drop_managed(link);
drivers/base/core.c
1436
device_link_test(link, DL_FLAG_INFERRED) &&
drivers/base/core.c
1437
link->status != DL_STATE_CONSUMER_PROBE &&
drivers/base/core.c
1438
!dev_can_match(link->supplier)) {
drivers/base/core.c
1446
device_link_drop_managed(link);
drivers/base/core.c
1448
WARN_ON(link->status != DL_STATE_CONSUMER_PROBE);
drivers/base/core.c
1449
WRITE_ONCE(link->status, DL_STATE_ACTIVE);
drivers/base/core.c
145
list_for_each_entry_safe(link, tmp, &fwnode->suppliers, c_hook)
drivers/base/core.c
146
__fwnode_link_del(link);
drivers/base/core.c
1485
struct device_link *link, *ln;
drivers/base/core.c
1487
list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) {
drivers/base/core.c
1488
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1491
if (device_link_test(link, DL_FLAG_AUTOREMOVE_CONSUMER)) {
drivers/base/core.c
1492
device_link_drop_managed(link);
drivers/base/core.c
1496
if (link->status != DL_STATE_CONSUMER_PROBE &&
drivers/base/core.c
1497
link->status != DL_STATE_ACTIVE)
drivers/base/core.c
1500
if (link->supplier->links.status == DL_DEV_DRIVER_BOUND) {
drivers/base/core.c
1501
WRITE_ONCE(link->status, DL_STATE_AVAILABLE);
drivers/base/core.c
1503
WARN_ON(link->supplier->links.status != DL_DEV_UNBINDING &&
drivers/base/core.c
1504
!device_link_test(link, DL_FLAG_SYNC_STATE_ONLY));
drivers/base/core.c
1505
WRITE_ONCE(link->status, DL_STATE_DORMANT);
drivers/base/core.c
1524
struct device_link *link;
drivers/base/core.c
1528
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1529
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1539
if (link->status == DL_STATE_CONSUMER_PROBE ||
drivers/base/core.c
1540
link->status == DL_STATE_ACTIVE)
drivers/base/core.c
1541
WRITE_ONCE(link->status, DL_STATE_DORMANT);
drivers/base/core.c
1561
struct device_link *link, *ln;
drivers/base/core.c
1565
list_for_each_entry_safe(link, ln, &dev->links.consumers, s_node) {
drivers/base/core.c
1566
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1569
WARN_ON(device_link_test(link, DL_FLAG_AUTOREMOVE_CONSUMER));
drivers/base/core.c
157
struct fwnode_link *link, *tmp;
drivers/base/core.c
1570
WARN_ON(link->status != DL_STATE_SUPPLIER_UNBIND);
drivers/base/core.c
1577
if (link->status == DL_STATE_SUPPLIER_UNBIND &&
drivers/base/core.c
1578
device_link_test(link, DL_FLAG_AUTOREMOVE_SUPPLIER))
drivers/base/core.c
1579
device_link_drop_managed(link);
drivers/base/core.c
1581
WRITE_ONCE(link->status, DL_STATE_DORMANT);
drivers/base/core.c
1606
struct device_link *link;
drivers/base/core.c
161
list_for_each_entry_safe(link, tmp, &fwnode->consumers, s_hook)
drivers/base/core.c
1611
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1612
if (!device_link_test(link, DL_FLAG_MANAGED))
drivers/base/core.c
1615
if (link->status == DL_STATE_CONSUMER_PROBE
drivers/base/core.c
1616
|| link->status == DL_STATE_ACTIVE) {
drivers/base/core.c
162
__fwnode_link_del(link);
drivers/base/core.c
1620
WRITE_ONCE(link->status, DL_STATE_SUPPLIER_UNBIND);
drivers/base/core.c
1646
struct device_link *link;
drivers/base/core.c
1651
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
1654
if (!device_link_test(link, DL_FLAG_MANAGED) ||
drivers/base/core.c
1655
device_link_test(link, DL_FLAG_SYNC_STATE_ONLY))
drivers/base/core.c
1658
status = link->status;
drivers/base/core.c
1665
WRITE_ONCE(link->status, DL_STATE_SUPPLIER_UNBIND);
drivers/base/core.c
1667
struct device *consumer = link->consumer;
drivers/base/core.c
1689
struct device_link *link, *ln;
drivers/base/core.c
1700
list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) {
drivers/base/core.c
1701
WARN_ON(link->status == DL_STATE_ACTIVE);
drivers/base/core.c
1702
__device_link_del(&link->kref);
drivers/base/core.c
1705
list_for_each_entry_safe_reverse(link, ln, &dev->links.consumers, s_node) {
drivers/base/core.c
1706
WARN_ON(link->status != DL_STATE_DORMANT &&
drivers/base/core.c
1707
link->status != DL_STATE_NONE);
drivers/base/core.c
1708
__device_link_del(&link->kref);
drivers/base/core.c
1809
static void fw_devlink_relax_link(struct device_link *link)
drivers/base/core.c
1811
if (!device_link_test(link, DL_FLAG_INFERRED))
drivers/base/core.c
1814
if (device_link_flag_is_sync_state_only(link->flags))
drivers/base/core.c
1817
pm_runtime_drop_link(link);
drivers/base/core.c
1818
link->flags = DL_FLAG_MANAGED | FW_DEVLINK_FLAGS_PERMISSIVE;
drivers/base/core.c
1819
dev_dbg(link->consumer, "Relaxing link with %s\n",
drivers/base/core.c
1820
dev_name(link->supplier));
drivers/base/core.c
1825
struct device_link *link = to_devlink(dev);
drivers/base/core.c
1827
if (!dev_can_match(link->supplier))
drivers/base/core.c
1828
fw_devlink_relax_link(link);
drivers/base/core.c
1844
struct device_link *link = to_devlink(dev);
drivers/base/core.c
1845
struct device *sup = link->supplier;
drivers/base/core.c
1847
if (!device_link_test(link, DL_FLAG_MANAGED) ||
drivers/base/core.c
1848
link->status == DL_STATE_ACTIVE || dev_state_synced(sup) ||
drivers/base/core.c
1854
dev_name(link->consumer));
drivers/base/core.c
1938
struct device_link *link;
drivers/base/core.c
1944
list_for_each_entry(link, &dev->links.consumers, s_node)
drivers/base/core.c
1945
fw_devlink_relax_link(link);
drivers/base/core.c
203
struct fwnode_link *link, *tmp;
drivers/base/core.c
205
list_for_each_entry_safe(link, tmp, &from->consumers, s_hook) {
drivers/base/core.c
2059
struct fwnode_link *link;
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
2095
list_for_each_entry(link, &sup_handle->suppliers, c_hook) {
drivers/base/core.c
2096
if (link->flags & FWLINK_FLAG_IGNORE)
drivers/base/core.c
2099
if (__fw_devlink_relax_cycles(con_handle, link->supplier)) {
drivers/base/core.c
2100
__fwnode_link_cycle(link);
drivers/base/core.c
2172
struct fwnode_link *link)
drivers/base/core.c
2178
if (link->flags & FWLINK_FLAG_IGNORE)
drivers/base/core.c
2206
if (__fw_devlink_relax_cycles(link->consumer, sup_handle)) {
drivers/base/core.c
2207
__fwnode_link_cycle(link);
drivers/base/core.c
2210
link->consumer, sup_handle);
drivers/base/core.c
2214
if (con->fwnode == link->consumer)
drivers/base/core.c
2215
flags = fw_devlink_get_flags(link->flags);
drivers/base/core.c
2241
flags, dev_name(sup_dev), link->consumer);
drivers/base/core.c
2284
struct fwnode_link *link, *tmp;
drivers/base/core.c
2286
list_for_each_entry_safe(link, tmp, &fwnode->consumers, s_hook) {
drivers/base/core.c
2291
con_dev = get_dev_from_fwnode(link->consumer);
drivers/base/core.c
2303
con_dev = fwnode_get_next_parent_dev(link->consumer);
drivers/base/core.c
2322
ret = fw_devlink_create_devlink(con_dev, fwnode, link);
drivers/base/core.c
2327
__fwnode_link_del(link);
drivers/base/core.c
2358
struct fwnode_link *link, *tmp;
drivers/base/core.c
2361
list_for_each_entry_safe(link, tmp, &fwnode->suppliers, c_hook) {
drivers/base/core.c
2363
struct fwnode_handle *sup = link->supplier;
drivers/base/core.c
2365
ret = fw_devlink_create_devlink(dev, sup, link);
drivers/base/core.c
2369
__fwnode_link_del(link);
drivers/base/core.c
344
static void device_link_remove_from_lists(struct device_link *link)
drivers/base/core.c
346
list_del_rcu(&link->s_node);
drivers/base/core.c
347
list_del_rcu(&link->c_node);
drivers/base/core.c
378
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
397
if (link->consumer == target)
drivers/base/core.c
400
ret = device_is_dependent(link->consumer, target);
drivers/base/core.c
407
static void device_link_init_status(struct device_link *link,
drivers/base/core.c
422
link->status = DL_STATE_CONSUMER_PROBE;
drivers/base/core.c
425
link->status = DL_STATE_DORMANT;
drivers/base/core.c
432
link->status = DL_STATE_CONSUMER_PROBE;
drivers/base/core.c
435
link->status = DL_STATE_ACTIVE;
drivers/base/core.c
438
link->status = DL_STATE_AVAILABLE;
drivers/base/core.c
443
link->status = DL_STATE_SUPPLIER_UNBIND;
drivers/base/core.c
446
link->status = DL_STATE_DORMANT;
drivers/base/core.c
453
struct device_link *link;
drivers/base/core.c
466
list_for_each_entry(link, &dev->links.consumers, s_node) {
drivers/base/core.c
467
if (device_link_flag_is_sync_state_only(link->flags))
drivers/base/core.c
469
device_reorder_to_tail(link->consumer, NULL);
drivers/base/core.c
533
struct device_link *link = to_devlink(dev);
drivers/base/core.c
536
if (device_link_test(link, DL_FLAG_AUTOREMOVE_SUPPLIER))
drivers/base/core.c
538
else if (device_link_test(link, DL_FLAG_AUTOREMOVE_CONSUMER))
drivers/base/core.c
550
struct device_link *link = to_devlink(dev);
drivers/base/core.c
552
return sysfs_emit(buf, "%d\n", device_link_test(link, DL_FLAG_PM_RUNTIME));
drivers/base/core.c
559
struct device_link *link = to_devlink(dev);
drivers/base/core.c
561
return sysfs_emit(buf, "%d\n", device_link_test(link, DL_FLAG_SYNC_STATE_ONLY));
drivers/base/core.c
576
struct device_link *link = container_of(work, struct device_link, rm_work);
drivers/base/core.c
581
pm_runtime_release_supplier(link);
drivers/base/core.c
589
if (link->supplier_preactivated)
drivers/base/core.c
590
pm_runtime_put_noidle(link->supplier);
drivers/base/core.c
592
pm_request_idle(link->supplier);
drivers/base/core.c
594
put_device(link->consumer);
drivers/base/core.c
595
put_device(link->supplier);
drivers/base/core.c
596
kfree(link);
drivers/base/core.c
601
struct device_link *link = to_devlink(dev);
drivers/base/core.c
603
INIT_WORK(&link->rm_work, device_link_release_fn);
drivers/base/core.c
610
queue_work(device_link_wq, &link->rm_work);
drivers/base/core.c
637
struct device_link *link = to_devlink(dev);
drivers/base/core.c
638
struct device *sup = link->supplier;
drivers/base/core.c
639
struct device *con = link->consumer;
drivers/base/core.c
641
ret = sysfs_create_link(&link->link_dev.kobj, &sup->kobj, "supplier");
drivers/base/core.c
645
ret = sysfs_create_link(&link->link_dev.kobj, &con->kobj, "consumer");
drivers/base/core.c
655
ret = sysfs_create_link(&sup->kobj, &link->link_dev.kobj, buf_con);
drivers/base/core.c
665
ret = sysfs_create_link(&con->kobj, &link->link_dev.kobj, buf_sup);
drivers/base/core.c
674
sysfs_remove_link(&link->link_dev.kobj, "consumer");
drivers/base/core.c
676
sysfs_remove_link(&link->link_dev.kobj, "supplier");
drivers/base/core.c
684
struct device_link *link = to_devlink(dev);
drivers/base/core.c
685
struct device *sup = link->supplier;
drivers/base/core.c
686
struct device *con = link->consumer;
drivers/base/core.c
688
sysfs_remove_link(&link->link_dev.kobj, "consumer");
drivers/base/core.c
689
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
74
if (link->consumer == con) {
drivers/base/core.c
75
link->flags |= flags;
drivers/base/core.c
79
link = kzalloc_obj(*link);
drivers/base/core.c
80
if (!link)
drivers/base/core.c
803
struct device_link *link;
drivers/base/core.c
83
link->supplier = sup;
drivers/base/core.c
84
INIT_LIST_HEAD(&link->s_hook);
drivers/base/core.c
840
link = NULL;
drivers/base/core.c
85
link->consumer = con;
drivers/base/core.c
851
link = NULL;
drivers/base/core.c
86
INIT_LIST_HEAD(&link->c_hook);
drivers/base/core.c
863
list_for_each_entry(link, &supplier->links.consumers, s_node) {
drivers/base/core.c
864
if (link->consumer != consumer)
drivers/base/core.c
867
if (device_link_test(link, DL_FLAG_INFERRED) &&
drivers/base/core.c
869
link->flags &= ~DL_FLAG_INFERRED;
drivers/base/core.c
87
link->flags = flags;
drivers/base/core.c
872
if (!device_link_test(link, DL_FLAG_PM_RUNTIME)) {
drivers/base/core.c
874
link->flags |= DL_FLAG_PM_RUNTIME;
drivers/base/core.c
877
refcount_inc(&link->rpm_active);
drivers/base/core.c
881
kref_get(&link->kref);
drivers/base/core.c
882
if (device_link_test(link, DL_FLAG_SYNC_STATE_ONLY) &&
drivers/base/core.c
883
!device_link_test(link, DL_FLAG_STATELESS)) {
drivers/base/core.c
884
link->flags |= DL_FLAG_STATELESS;
drivers/base/core.c
887
link->flags |= DL_FLAG_STATELESS;
drivers/base/core.c
89
list_add(&link->s_hook, &sup->consumers);
drivers/base/core.c
898
if (device_link_test(link, DL_FLAG_AUTOREMOVE_CONSUMER)) {
drivers/base/core.c
899
link->flags &= ~DL_FLAG_AUTOREMOVE_CONSUMER;
drivers/base/core.c
90
list_add(&link->c_hook, &con->suppliers);
drivers/base/core.c
900
link->flags |= DL_FLAG_AUTOREMOVE_SUPPLIER;
drivers/base/core.c
903
link->flags &= ~(DL_FLAG_AUTOREMOVE_CONSUMER |
drivers/base/core.c
906
if (!device_link_test(link, DL_FLAG_MANAGED)) {
drivers/base/core.c
907
kref_get(&link->kref);
drivers/base/core.c
908
link->flags |= DL_FLAG_MANAGED;
drivers/base/core.c
909
device_link_init_status(link, consumer, supplier);
drivers/base/core.c
911
if (device_link_test(link, DL_FLAG_SYNC_STATE_ONLY) &&
drivers/base/core.c
913
link->flags &= ~DL_FLAG_SYNC_STATE_ONLY;
drivers/base/core.c
920
link = kzalloc_obj(*link);
drivers/base/core.c
921
if (!link)
drivers/base/core.c
924
refcount_set(&link->rpm_active, 1);
drivers/base/core.c
927
link->supplier = supplier;
drivers/base/core.c
928
INIT_LIST_HEAD(&link->s_node);
drivers/base/core.c
930
link->consumer = consumer;
drivers/base/core.c
931
INIT_LIST_HEAD(&link->c_node);
drivers/base/core.c
932
link->flags = flags;
drivers/base/core.c
933
kref_init(&link->kref);
drivers/base/core.c
935
link->link_dev.class = &devlink_class;
drivers/base/core.c
936
device_set_pm_not_required(&link->link_dev);
drivers/base/core.c
937
dev_set_name(&link->link_dev, "%s:%s--%s:%s",
drivers/base/core.c
940
if (device_register(&link->link_dev)) {
drivers/base/core.c
941
put_device(&link->link_dev);
drivers/base/core.c
942
link = NULL;
drivers/base/core.c
948
refcount_inc(&link->rpm_active);
drivers/base/core.c
955
link->status = DL_STATE_NONE;
drivers/base/core.c
957
device_link_init_status(link, consumer, supplier);
drivers/base/core.c
963
if (link->status == DL_STATE_CONSUMER_PROBE &&
drivers/base/core.c
967
list_add_tail_rcu(&link->s_node, &supplier->links.consumers);
drivers/base/core.c
968
list_add_tail_rcu(&link->c_node, &consumer->links.suppliers);
drivers/base/core.c
993
if ((flags & DL_FLAG_PM_RUNTIME && flags & DL_FLAG_RPM_ACTIVE) && !link)
drivers/base/core.c
996
return link;
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
1412
struct device_link *link;
drivers/base/power/main.c
1421
dev_for_each_link_to_supplier(link, dev)
drivers/base/power/main.c
1422
if (READ_ONCE(link->status) != DL_STATE_DORMANT)
drivers/base/power/main.c
1423
dpm_async_with_cleanup(link->supplier, func);
drivers/base/power/main.c
1467
struct device_link *link;
drivers/base/power/main.c
1475
dev_for_each_link_to_supplier(link, dev)
drivers/base/power/main.c
1476
link->supplier->power.must_resume = true;
drivers/base/power/main.c
1898
struct device_link *link;
drivers/base/power/main.c
1909
dev_for_each_link_to_supplier(link, dev) {
drivers/base/power/main.c
1910
spin_lock_irq(&link->supplier->power.lock);
drivers/base/power/main.c
1911
link->supplier->power.direct_complete = false;
drivers/base/power/main.c
1912
spin_unlock_irq(&link->supplier->power.lock);
drivers/base/power/main.c
2139
struct device_link *link;
drivers/base/power/main.c
2161
dev_for_each_link_to_supplier(link, dev) {
drivers/base/power/main.c
2162
if (!device_link_test(link, DL_FLAG_PM_RUNTIME))
drivers/base/power/main.c
2165
if (!dev_pm_smart_suspend(link->supplier) &&
drivers/base/power/main.c
2166
!pm_runtime_blocked(link->supplier)) {
drivers/base/power/main.c
277
struct device_link *link;
drivers/base/power/main.c
289
dev_for_each_link_to_supplier(link, dev)
drivers/base/power/main.c
290
if (READ_ONCE(link->status) != DL_STATE_DORMANT &&
drivers/base/power/main.c
291
!device_link_flag_is_sync_state_only(link->flags))
drivers/base/power/main.c
292
dpm_wait(link->supplier, async);
drivers/base/power/main.c
333
struct device_link *link;
drivers/base/power/main.c
347
dev_for_each_link_to_consumer(link, dev)
drivers/base/power/main.c
348
if (READ_ONCE(link->status) != DL_STATE_DORMANT &&
drivers/base/power/main.c
349
!device_link_flag_is_sync_state_only(link->flags))
drivers/base/power/main.c
350
dpm_wait(link->consumer, async);
drivers/base/power/main.c
741
struct device_link *link;
drivers/base/power/main.c
749
dev_for_each_link_to_consumer(link, dev)
drivers/base/power/main.c
750
if (READ_ONCE(link->status) != DL_STATE_DORMANT)
drivers/base/power/main.c
751
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
21
struct list_head link;
drivers/base/regmap/regmap-debugfs.c
565
list_add(&node->link, ®map_debugfs_early_list);
drivers/base/regmap/regmap-debugfs.c
681
link) {
drivers/base/regmap/regmap-debugfs.c
683
list_del(&node->link);
drivers/base/regmap/regmap-debugfs.c
698
list_for_each_entry_safe(node, tmp, ®map_debugfs_early_list, link) {
drivers/base/regmap/regmap-debugfs.c
700
list_del(&node->link);
drivers/bluetooth/btintel.c
2456
__u8 link, struct bt_codec *codec,
drivers/bluetooth/btintel.c
2467
if (link != ESCO_LINK) {
drivers/bluetooth/btintel.c
2468
bt_dev_err(hdev, "Invalid link type(%u)", link);
drivers/bluetooth/btmtksdio.c
981
__u8 link, struct bt_codec *codec,
drivers/bluetooth/btmtksdio.c
992
if (link != ESCO_LINK) {
drivers/bluetooth/btmtksdio.c
993
bt_dev_err(hdev, "Invalid link type(%u)", 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, ®_list);
drivers/char/ipmi/ipmi_devintf.c
835
list_for_each_entry(entry, ®_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, ®_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
1634
list_for_each_entry_safe(msg, msg2, &intf->waiting_events, link)
drivers/char/ipmi/ipmi_msghandler.c
1635
list_move_tail(&msg->link, &msgs);
drivers/char/ipmi/ipmi_msghandler.c
1642
list_for_each_entry_safe(msg, msg2, &msgs, link) {
drivers/char/ipmi/ipmi_msghandler.c
1663
list_for_each_entry_rcu(rcvr, &intf->cmd_rcvrs, link,
drivers/char/ipmi/ipmi_msghandler.c
1679
list_for_each_entry_rcu(rcvr, &intf->cmd_rcvrs, link,
drivers/char/ipmi/ipmi_msghandler.c
1720
list_add_rcu(&rcvr->link, &intf->cmd_rcvrs);
drivers/char/ipmi/ipmi_msghandler.c
1758
list_del_rcu(&rcvr->link);
drivers/char/ipmi/ipmi_msghandler.c
185
struct list_head link;
drivers/char/ipmi/ipmi_msghandler.c
1875
list_add_tail(&smi_msg->link, &intf->hp_xmit_msgs);
drivers/char/ipmi/ipmi_msghandler.c
1877
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
3582
list_for_each_entry(user, &intf->users, link)
drivers/char/ipmi/ipmi_msghandler.c
3623
struct list_head *link;
drivers/char/ipmi/ipmi_msghandler.c
3695
link = &ipmi_interfaces;
drivers/char/ipmi/ipmi_msghandler.c
3696
list_for_each_entry(tintf, &ipmi_interfaces, link) {
drivers/char/ipmi/ipmi_msghandler.c
3698
link = &tintf->link;
drivers/char/ipmi/ipmi_msghandler.c
3705
list_add(&intf->link, &ipmi_interfaces);
drivers/char/ipmi/ipmi_msghandler.c
3707
list_add_tail(&intf->link, link);
drivers/char/ipmi/ipmi_msghandler.c
3763
list_del(&intf->link);
drivers/char/ipmi/ipmi_msghandler.c
3815
msg = list_entry(entry, struct ipmi_smi_msg, link);
drivers/char/ipmi/ipmi_msghandler.c
3842
list_del(&intf->link);
drivers/char/ipmi/ipmi_msghandler.c
3862
list_for_each_entry(w, &smi_watchers, link)
drivers/char/ipmi/ipmi_msghandler.c
3869
struct ipmi_user, link);
drivers/char/ipmi/ipmi_msghandler.c
429
struct list_head link;
drivers/char/ipmi/ipmi_msghandler.c
4474
list_for_each_entry(user, &intf->users, link) {
drivers/char/ipmi/ipmi_msghandler.c
4482
link) {
drivers/char/ipmi/ipmi_msghandler.c
4483
list_del(&recv_msg->link);
drivers/char/ipmi/ipmi_msghandler.c
4498
list_add_tail(&recv_msg->link, &msgs);
drivers/char/ipmi/ipmi_msghandler.c
4504
list_for_each_entry_safe(recv_msg, recv_msg2, &msgs, link) {
drivers/char/ipmi/ipmi_msghandler.c
4505
list_del(&recv_msg->link);
drivers/char/ipmi/ipmi_msghandler.c
4525
list_add_tail(&recv_msg->link, &intf->waiting_events);
drivers/char/ipmi/ipmi_msghandler.c
4827
struct ipmi_smi_msg, link);
drivers/char/ipmi/ipmi_msghandler.c
4828
list_del(&smi_msg->link);
drivers/char/ipmi/ipmi_msghandler.c
4843
list_add(&smi_msg->link, &intf->waiting_rcv_msgs);
drivers/char/ipmi/ipmi_msghandler.c
4885
newmsg = list_entry(entry, struct ipmi_smi_msg, link);
drivers/char/ipmi/ipmi_msghandler.c
4920
list_for_each_entry(user, &intf->users, link) {
drivers/char/ipmi/ipmi_msghandler.c
4936
list_for_each_entry_safe(msg, msg2, &intf->user_msgs, link) {
drivers/char/ipmi/ipmi_msghandler.c
4939
list_del(&msg->link);
drivers/char/ipmi/ipmi_msghandler.c
4964
list_add_tail(&msg->link, &intf->waiting_rcv_msgs);
drivers/char/ipmi/ipmi_msghandler.c
5041
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
1923
list_for_each_entry(e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2001
list_add_tail(&new_smi->link, &smi_infos);
drivers/char/ipmi/ipmi_si_intf.c
2203
list_for_each_entry(e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2214
list_for_each_entry(e2, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2229
list_for_each_entry(e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2240
list_for_each_entry(e2, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2248
list_for_each_entry(e2, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2355
list_del(&smi_info->link);
drivers/char/ipmi/ipmi_si_intf.c
2365
list_for_each_entry(e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2382
list_for_each_entry_safe(e, tmp_e, &smi_infos, link) {
drivers/char/ipmi/ipmi_si_intf.c
2413
list_for_each_entry_safe(e, tmp_e, &smi_infos, link)
drivers/char/ipmi/ipmi_si_intf.c
255
struct list_head link;
drivers/char/ipmi/ipmi_ssif.c
1307
list_for_each_entry(addr_info, &ssif_infos, link) {
drivers/char/ipmi/ipmi_ssif.c
1430
list_for_each_entry(info, &ssif_infos, link) {
drivers/char/ipmi/ipmi_ssif.c
1638
list_add_tail(&info->link, &ssif_infos);
drivers/char/ipmi/ipmi_ssif.c
1652
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
2005
list_add_tail(&addr_info->link, &ssif_infos);
drivers/char/ipmi/ipmi_ssif.c
2019
list_for_each_entry_safe(info, tmp, &ssif_infos, link) {
drivers/char/ipmi/ipmi_ssif.c
2020
list_del(&info->link);
drivers/char/ipmi/ipmi_ssif.c
2033
list_for_each_entry(info, &ssif_infos, link)
drivers/char/ipmi/ipmi_ssif.c
2041
list_for_each_entry(info, &ssif_infos, link) {
drivers/char/ipmi/ipmi_ssif.c
2124
list_del(&addr_info->link);
drivers/clk/clk.c
4924
struct list_head link;
drivers/clk/clk.c
5009
list_add(&cp->link, &of_clk_providers);
drivers/clk/clk.c
5051
list_add(&cp->link, &of_clk_providers);
drivers/clk/clk.c
5143
list_for_each_entry(cp, &of_clk_providers, link) {
drivers/clk/clk.c
5145
list_del(&cp->link);
drivers/clk/clk.c
5259
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
432
mci = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_mc.c
499
mci = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_mc.c
529
p = list_entry(item, struct mem_ctl_info, link);
drivers/edac/edac_mc.c
540
list_add_tail_rcu(&mci->link, insert_before);
drivers/edac/edac_mc.c
558
list_del_rcu(&mci->link);
drivers/edac/edac_mc.c
564
INIT_LIST_HEAD(&mci->link);
drivers/edac/edac_mc.c
577
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
1935
list_del(&client->link);
drivers/firewire/core-cdev.c
1956
list_for_each_entry_safe(event, next_event, &client->event_list, link)
drivers/firewire/core-cdev.c
210
struct list_head link;
drivers/firewire/core-cdev.c
325
INIT_LIST_HEAD(&client->link);
drivers/firewire/core-cdev.c
346
list_add_tail(&event->link, &client->event_list);
drivers/firewire/core-cdev.c
370
event = list_first_entry(&client->event_list, struct event, link);
drivers/firewire/core-cdev.c
371
list_del(&event->link);
drivers/firewire/core-cdev.c
423
list_for_each_entry(c, &device->client_list, link)
drivers/firewire/core-cdev.c
519
if (ret == 0 && list_empty(&client->link))
drivers/firewire/core-cdev.c
520
list_add_tail(&client->link, &client->device->client_list);
drivers/firewire/core-cdev.c
74
struct list_head link;
drivers/firewire/core-device.c
1436
list_empty(&card->link) ? 0 : SHUTDOWN_DELAY);
drivers/firewire/core-device.c
934
&& !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
for (node = list_first_entry(&list, typeof(*node), link);
drivers/firewire/core-topology.c
276
!list_entry_is_head(node, &list, link);
drivers/firewire/core-topology.c
277
node = list_next_entry(node, link)) {
drivers/firewire/core-topology.c
288
list_add_tail(&child->link, &list);
drivers/firewire/core-topology.c
295
list_for_each_entry_safe(node, next, &list, link)
drivers/firewire/core-topology.c
368
list_add_tail(&card->local_node->link, &list0);
drivers/firewire/core-topology.c
370
list_add_tail(&root->link, &list1);
drivers/firewire/core-topology.c
375
while (&node0->link != &list0) {
drivers/firewire/core-topology.c
409
list_add_tail(&node0->ports[i]->link, &list0);
drivers/firewire/core-topology.c
410
list_add_tail(&node1->ports[i]->link, &list1);
drivers/firewire/core-topology.c
43
INIT_LIST_HEAD(&node->link);
drivers/firewire/core-topology.c
435
node0 = fw_node(node0->link.next);
drivers/firewire/core-topology.c
436
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
1179
list_for_each_entry(lu, &tgt->lu_list, link)
drivers/firewire/sbp2.c
120
struct list_head link;
drivers/firewire/sbp2.c
1204
list_for_each_entry(lu, &tgt->lu_list, link) {
drivers/firewire/sbp2.c
1223
list_for_each_entry_safe(lu, next, &tgt->lu_list, link) {
drivers/firewire/sbp2.c
1245
list_del(&lu->link);
drivers/firewire/sbp2.c
262
struct list_head link;
drivers/firewire/sbp2.c
436
list_for_each_entry(iter, &lu->orb_list, link) {
drivers/firewire/sbp2.c
440
list_del(&iter->link);
drivers/firewire/sbp2.c
477
list_del(&orb->link);
drivers/firewire/sbp2.c
501
list_add_tail(&orb->link, &lu->orb_list);
drivers/firewire/sbp2.c
524
list_for_each_entry_safe(orb, next, &list, link) {
drivers/firewire/sbp2.c
993
list_add_tail(&lu->link, &tgt->lu_list);
drivers/firmware/arm_scmi/driver.c
2634
struct device_link *link;
drivers/firmware/arm_scmi/driver.c
2636
link = device_link_add(consumer, supplier, DL_FLAG_AUTOREMOVE_CONSUMER);
drivers/firmware/arm_scmi/driver.c
2638
WARN_ON(!link);
drivers/firmware/arm_scmi/transports/optee.c
132
struct list_head link;
drivers/firmware/arm_scmi/transports/optee.c
415
list_add(&channel->link, &scmi_optee_private->channel_list);
drivers/firmware/arm_scmi/transports/optee.c
442
list_del(&channel->link);
drivers/firmware/samsung/exynos-acpm.c
797
struct device_link *link;
drivers/firmware/samsung/exynos-acpm.c
815
link = device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER);
drivers/firmware/samsung/exynos-acpm.c
816
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
186
static int i2cr_read(struct fsi_master *master, int link, uint8_t id, uint32_t addr, void *val,
drivers/fsi/fsi-master-i2cr.c
194
if (link || id || (addr & 0xffff0000) || !(size == 1 || size == 2 || size == 4))
drivers/fsi/fsi-master-i2cr.c
225
static int i2cr_write(struct fsi_master *master, int link, uint8_t id, uint32_t addr,
drivers/fsi/fsi-master-i2cr.c
232
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
67
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
1086
static int ines_gpib_config(struct pcmcia_device *link);
drivers/gpib/ines/ines_gpib.c
1087
static void ines_gpib_release(struct pcmcia_device *link);
drivers/gpib/ines/ines_gpib.c
1138
static int ines_gpib_probe(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1149
info->p_dev = link;
drivers/gpib/ines/ines_gpib.c
1150
link->priv = info;
drivers/gpib/ines/ines_gpib.c
1153
link->resource[0]->end = 32;
drivers/gpib/ines/ines_gpib.c
1154
link->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
drivers/gpib/ines/ines_gpib.c
1155
link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
drivers/gpib/ines/ines_gpib.c
1156
link->io_lines = 5;
drivers/gpib/ines/ines_gpib.c
1159
link->config_flags = CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
drivers/gpib/ines/ines_gpib.c
1162
curr_dev = link;
drivers/gpib/ines/ines_gpib.c
1163
return ines_gpib_config(link);
drivers/gpib/ines/ines_gpib.c
1172
static void ines_gpib_remove(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1174
struct local_info *info = link->priv;
drivers/gpib/ines/ines_gpib.c
1179
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1185
static int ines_gpib_config_iteration(struct pcmcia_device *link, void *priv_data)
drivers/gpib/ines/ines_gpib.c
1187
return pcmcia_request_io(link);
drivers/gpib/ines/ines_gpib.c
1195
static int ines_gpib_config(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1200
retval = pcmcia_loop_config(link, &ines_gpib_config_iteration, NULL);
drivers/gpib/ines/ines_gpib.c
1202
dev_warn(&link->dev, "no configuration found\n");
drivers/gpib/ines/ines_gpib.c
1203
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1207
dev_dbg(&link->dev, "ines_cs: manufacturer: 0x%x card: 0x%x\n",
drivers/gpib/ines/ines_gpib.c
1208
link->manf_id, link->card_id);
drivers/gpib/ines/ines_gpib.c
1214
link->resource[2]->flags |= WIN_MEMORY_TYPE_AM | WIN_DATA_WIDTH_8 | WIN_ENABLE;
drivers/gpib/ines/ines_gpib.c
1215
link->resource[2]->end = 0x1000;
drivers/gpib/ines/ines_gpib.c
1216
retval = pcmcia_request_window(link, link->resource[2], 250);
drivers/gpib/ines/ines_gpib.c
1218
dev_warn(&link->dev, "pcmcia_request_window failed\n");
drivers/gpib/ines/ines_gpib.c
1219
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1222
retval = pcmcia_map_mem_page(link, link->resource[2], 0);
drivers/gpib/ines/ines_gpib.c
1224
dev_warn(&link->dev, "pcmcia_map_mem_page failed\n");
drivers/gpib/ines/ines_gpib.c
1225
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1228
virt = ioremap(link->resource[2]->start, resource_size(link->resource[2]));
drivers/gpib/ines/ines_gpib.c
1229
writeb((link->resource[2]->start >> 2) & 0xff, virt + 0xf0); // IOWindow base
drivers/gpib/ines/ines_gpib.c
1236
retval = pcmcia_enable_device(link);
drivers/gpib/ines/ines_gpib.c
1238
ines_gpib_release(link);
drivers/gpib/ines/ines_gpib.c
1250
static void ines_gpib_release(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1252
pcmcia_disable_device(link);
drivers/gpib/ines/ines_gpib.c
1255
static int ines_gpib_suspend(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1260
if (link->open)
drivers/gpib/ines/ines_gpib.c
1261
dev_err(&link->dev, "Device still open\n");
drivers/gpib/ines/ines_gpib.c
1267
static int ines_gpib_resume(struct pcmcia_device *link)
drivers/gpib/ines/ines_gpib.c
1277
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/buddy.c
1021
list_add_tail(&block->link, &allocated);
drivers/gpu/buddy.c
1213
link);
drivers/gpu/buddy.c
1244
list_del(&block->link);
drivers/gpu/buddy.c
1261
list_add(&block->link, blocks);
drivers/gpu/buddy.c
132
struct rb_node **link, *parent = NULL;
drivers/gpu/buddy.c
141
link = &root->rb_node;
drivers/gpu/buddy.c
143
while (*link) {
drivers/gpu/buddy.c
144
parent = *link;
drivers/gpu/buddy.c
1443
list_add_tail(&block->link, &allocated);
drivers/gpu/buddy.c
1462
block = list_last_entry(&allocated, typeof(*block), link);
drivers/gpu/buddy.c
1463
list_move(&block->link, &temp);
drivers/gpu/buddy.c
156
link = &parent->rb_left;
drivers/gpu/buddy.c
158
link = &parent->rb_right;
drivers/gpu/buddy.c
162
rb_link_node(&block->rb, parent, link);
drivers/gpu/buddy.c
606
list_for_each_entry_safe(block, on, objects, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
5761
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 gpu_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 gpu_buddy_block, link);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
156
list_for_each_entry(userq_fence, &fence_drv->fences, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
162
&userq_fence->link);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
168
list_for_each_entry_safe(userq_fence, tmp, &to_be_signaled, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
170
list_del_init(&userq_fence->link);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
194
list_for_each_entry_safe(fence, tmp, &fence_drv->fences, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
202
list_del(&fence->link);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
289
list_add_tail(&fence->link, &fence_drv->fences);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
291
INIT_LIST_HEAD(&fence->link);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.h
39
struct list_head link;
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
292
list_for_each_entry(block, &vres->blocks, link)
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
413
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
589
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
59
return list_first_entry_or_null(list, struct gpu_buddy_block, link);
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
650
list_for_each_entry(block, &vres->blocks, link)
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
71
while (head != block->link.next) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
75
block = list_entry(block->link.next, struct gpu_buddy_block, link);
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
822
list_for_each_entry(block, &mgr->blocks, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
855
list_for_each_entry(block, &mgr->blocks, link) {
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
88
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
10231
struct psr_settings *psr = &acrtc_state->stream->link->psr_settings;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10232
struct replay_settings *pr = &acrtc_state->stream->link->replay_settings;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10427
if (acrtc_state->stream->link->psr_settings.psr_feature_enabled ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10428
acrtc_state->stream->link->replay_settings.replay_feature_enabled) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10432
acrtc_state->stream->link->psr_settings.psr_version ==
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10443
if (acrtc_state->stream->link->psr_settings.psr_version >= DC_PSR_VERSION_SU_1 &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
10447
acrtc_state->stream->link->psr_settings.psr_dirty_rects_change_timestamp_ns =
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
14185
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
14194
const bool result = execute_fused_io(dev, link->ctx, commands, count, timeout_us);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
182
static enum drm_mode_subconnector get_subconnector_type(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
184
switch (link->dpcd_caps.dongle_type) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
203
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
211
subconnector = get_subconnector_type(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3571
static void emulated_link_detect(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3576
struct dc_context *dc_ctx = link->ctx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3581
link->type = dc_connection_none;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3582
prev_sink = link->local_sink;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3587
switch (link->connector_signal) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3628
link->connector_signal);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3632
sink_init_data.link = link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3642
link->local_sink = sink;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3645
link->ctx,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3646
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4059
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4064
link->panel_type = PANEL_TYPE_NONE;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4068
link->panel_type = PANEL_TYPE_OLED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4071
link->panel_type = PANEL_TYPE_MINILED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4076
if (link->panel_type == PANEL_TYPE_NONE) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4077
if (link->dpcd_sink_ext_caps.bits.miniled == 1)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4078
link->panel_type = PANEL_TYPE_MINILED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4079
if (link->dpcd_sink_ext_caps.bits.oled == 1)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4080
link->panel_type = PANEL_TYPE_OLED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4089
if (link->panel_type == PANEL_TYPE_NONE) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4094
if (vsdb->version && link->local_sink &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4095
link->local_sink->edid_caps.manufacturer_id ==
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4098
link->panel_type = PANEL_TYPE_MINILED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4101
if (link->panel_type == PANEL_TYPE_OLED)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
4110
drm_dbg_kms(aconnector->base.dev, "Panel type: %d\n", link->panel_type);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
517
list_add_tail(&e->base.link, &adev_to_drm(adev)->vblank_event_list);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5370
struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5378
if (stream->link == link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5390
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5419
link = (struct dc_link *)dm->backlight_link[bl_idx];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5433
stream = dm_find_stream_with_link(dm, link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5502
struct dc_link *link = (struct dc_link *)dm->backlight_link[bl_idx];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5510
if (!dc_link_get_backlight_level_nits(link, &avg, &peak))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5515
ret = dc_link_get_backlight_level(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5659
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5662
if (!(link->connector_signal & (SIGNAL_TYPE_EDP | SIGNAL_TYPE_LVDS)) ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5663
link->type == dc_connection_none)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5674
dm->backlight_link[bl_idx] = link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5865
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5867
link = dc_get_link_at_index(dm->dc, i);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5869
if (link->connector_signal == SIGNAL_TYPE_VIRTUAL) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5883
link->psr_settings.psr_feature_enabled = false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5884
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5911
if (!dc_link_detect_connection_type(link, &new_connection_type))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5915
emulated_link_detect(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5922
ret = dc_link_detect(link, DETECT_REASON_BOOT);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5931
if (amdgpu_dm_set_replay_caps(link, aconnector))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5935
amdgpu_dm_set_psr_caps(link, aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5938
link->psr_settings.psr_feature_enabled,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5939
link->psr_settings.psr_version,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5940
link->dpcd_caps.psr_info.psr_version,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5941
link->dpcd_caps.psr_info.psr_dpcd_caps.raw,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5942
link->dpcd_caps.psr_info.psr2_su_y_granularity_cap);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
665
bool replay_en = acrtc->dm_irq_params.stream->link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
666
bool psr_en = acrtc->dm_irq_params.stream->link->psr_settings.psr_feature_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7171
create_fake_sink(struct drm_device *dev, struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7176
sink_init_data.link = link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7177
sink_init_data.sink_signal = link->connector_signal;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7378
if (sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_NONE)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7383
else if (sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_HDMI_CONVERTER) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7421
verified_link_cap = dc_link_get_link_cap(stream->link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7422
link_bw_in_kbps = dc_link_bandwidth_kbps(stream->link, verified_link_cap);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7502
if (sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_NONE) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7514
} else if (sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_HDMI_CONVERTER) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7550
frl_verified_link_cap = dc_link_get_frl_link_cap(stream->link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7554
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.c
7558
link_bandwidth_kbps = dc_link_frl_bandwidth_kbps(stream->link, frl_verified_link_cap->frl_link_rate);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7616
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7625
link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7632
link = dm_wbcon->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7636
sink = create_fake_sink(dev, link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
770
bool replay_en = acrtc->dm_irq_params.stream->link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
771
bool psr_en = acrtc->dm_irq_params.stream->link->psr_settings.psr_feature_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7761
stream->use_vsc_sdp_for_colorimetry = stream->link->dpcd_caps.dpcd_rev.raw >= 0x14 &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7762
stream->link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7797
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7808
if (!force && link->local_sink && link->type == dc_connection_analog_load)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7820
if (link->local_sink ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7821
dc_link_detect(link, DETECT_REASON_HPD))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7829
if (link->local_sink)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7830
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7832
link->local_sink = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7833
link->dpcd_sink_count = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
7834
link->type = dc_connection_none;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8305
.link = aconnector->dc_link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8347
struct dc_link *link = (struct dc_link *)aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8353
if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8354
link->verified_link_cap.lane_count = LANE_COUNT_FOUR;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8355
link->verified_link_cap.link_rate = LINK_RATE_HIGH2;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8876
pbn_div = dm_mst_get_pbn_divider(stream->link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
896
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
920
link = adev->dm.dc->links[link_index];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
930
if (link && aconnector->dc_link == link) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9303
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9317
aconnector->dc_link = link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9351
link->link_enc->features.hdmi_ycbcr420_supported ? true : false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9355
link->link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9356
ASSERT(link->link_enc);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9357
if (link->link_enc)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9359
link->link_enc->features.dp_ycbcr420_supported ? true : false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9474
ddc_service->link->link_index,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9509
ddc_service->link->link_index);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9551
struct dc_link *link = dc_get_link_at_index(dc, link_index);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9555
link->priv = aconnector;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9558
i2c = create_i2c(link->ddc, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9568
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
9572
connector_type = to_drm_connector_type(link->connector_signal, link->link_id.id);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9595
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9605
if (dc_is_dp_signal(link->connector_signal))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
9606
amdgpu_dm_initialize_dp_connector(dm, aconnector, link->link_index);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
1082
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
1129
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
895
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
119
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
128
if (link->psr_settings.psr_version < DC_PSR_VERSION_SU_1)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
259
struct psr_settings *psr = &acrtc_state->stream->link->psr_settings;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
260
struct replay_settings *pr = &acrtc_state->stream->link->replay_settings;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1012
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1016
if (!link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1019
if (link->type == dc_connection_none)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1022
if (!(link->connector_signal & SIGNAL_TYPE_EDP))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1026
if (link->replay_settings.config.replay_supported) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1030
sink_support_replay = amdgpu_dm_link_supports_replay(link, aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1032
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1034
sink_support_replay = amdgpu_dm_link_supports_replay(link, aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1042
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
1065
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1067
if (!link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1070
if (link->type == dc_connection_none)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1073
if (!(link->connector_signal & SIGNAL_TYPE_EDP))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1076
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
1077
if (link->dpcd_caps.psr_info.psr_version)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1078
seq_printf(m, " [0x%02x]", link->dpcd_caps.psr_info.psr_version);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1081
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
1082
if (link->psr_settings.psr_version)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1083
seq_printf(m, " [0x%02x]", link->psr_settings.psr_version);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1282
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1284
seq_printf(m, "Internal: %u\n", link->is_internal_display);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1297
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1302
pipe_ctx = &link->dc->current_state->res_ctx.pipe_ctx[i];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1304
pipe_ctx->stream->link == link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1449
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1520
link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1522
if (link->local_sink) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1523
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1524
link->local_sink = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1527
link->dpcd_sink_count = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1528
link->type = dc_connection_none;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1529
link->dongle_max_pix_clk = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1535
dc_link_reset_cur_dp_mst_topology(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1585
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1687
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1771
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1871
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
194
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
1955
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2055
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
213
link->cur_link_settings.lane_count,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2135
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
214
link->cur_link_settings.link_rate,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
215
link->cur_link_settings.link_spread);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
220
link->verified_link_cap.lane_count,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
221
link->verified_link_cap.link_rate,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
222
link->verified_link_cap.link_spread);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2232
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
227
link->reported_link_cap.lane_count,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
228
link->reported_link_cap.link_rate,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
229
link->reported_link_cap.link_spread);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2310
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
234
link->preferred_link_setting.lane_count,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
235
link->preferred_link_setting.link_rate,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
236
link->preferred_link_setting.link_spread);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2364
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2433
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2502
pipe_ctx->stream->link == aconnector->dc_link &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
262
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
264
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2791
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2794
backlight = dc_link_get_backlight_level(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2810
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2813
backlight = dc_link_get_target_backlight_pwm(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2913
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2918
seq_printf(m, "%s\n", (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) ? "yes" :
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
2919
(link->ep_type == DISPLAY_ENDPOINT_PHY) ? "no" : "unknown");
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3196
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3209
dc_link_get_replay_state(link, &state);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3227
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3241
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
3257
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
327
dc_link_set_preferred_training_settings(dc, NULL, NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3270
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
3288
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3301
dc_link_get_psr_state(link, &state);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3319
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3332
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
335
prefer_link_settings.link_spread = link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
341
dc_link_set_preferred_training_settings(dc, &prefer_link_settings, NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3412
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3423
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3425
link->psr_settings.psr_version = DC_PSR_VERSION_1;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3427
link->psr_settings.psr_version = DC_PSR_VERSION_SU_1;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3473
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3486
link->replay_settings.config.replay_supported = false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3488
link->replay_settings.config.replay_supported =
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3489
link->replay_settings.config.replay_cap_support;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3653
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3660
dm_helpers_dp_read_dpcd(link->ctx, link, DP_SUPPORTED_LINK_RATES,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3663
dpcd_rev = link->dpcd_caps.dpcd_rev.raw;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3693
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3695
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3739
if (param[1] >= link->dpcd_caps.edp_supported_link_rates_count)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3747
dc_link_set_preferred_training_settings(dc, NULL, NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3752
if (!dm_helpers_dp_read_dpcd(link->ctx, link, DP_SUPPORTED_LINK_RATES,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3756
dpcd_rev = link->dpcd_caps.dpcd_rev.raw;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3769
prefer_link_settings.link_spread = link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
3777
NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
396
struct dc_link *link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
398
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4220
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4251
link = aconnector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4252
dc_link_dp_receiver_power_ctrl(link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4254
link->mst_stream_alloc_table.stream_count = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4255
memset(link->mst_stream_alloc_table.stream_allocations, 0,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
4256
sizeof(link->mst_stream_alloc_table.stream_allocations));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
461
dc_link_set_preferred_training_settings(dc, NULL, NULL, link, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
469
prefer_link_settings.link_spread = link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
476
dc_link_set_preferred_training_settings(dc, &prefer_link_settings, NULL, link, true);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
540
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
554
link->cur_lane_setting[0].VOLTAGE_SWING,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
555
link->cur_lane_setting[0].PRE_EMPHASIS,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
556
link->cur_lane_setting[0].POST_CURSOR2);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
617
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
618
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
660
((link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN) &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
661
(link->test_pattern_enabled));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
667
link->preferred_link_setting.lane_count;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
669
link->preferred_link_setting.link_rate;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
671
link->preferred_link_setting.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
674
link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
676
link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
678
link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
692
dc_link_set_drive_settings(dc, &link_lane_settings, link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
760
struct dc_link *link = connector->dc_link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
767
bool supports_hpd = link->irq_source_hpd != DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
860
dc_link_enable_hpd(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
862
prefer_link_settings.lane_count = link->verified_link_cap.lane_count;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
863
prefer_link_settings.link_rate = link->verified_link_cap.link_rate;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
864
prefer_link_settings.link_spread = link->verified_link_cap.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
866
cur_link_settings.lane_count = link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
867
cur_link_settings.link_rate = link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
868
cur_link_settings.link_spread = link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
882
link_training_settings.hw_lane_settings[i] = link->cur_lane_setting[i];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
885
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
898
dc_link_disable_hpd(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
105
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
107
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
45
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
48
link->dc->caps.i2c_speed_in_khz};
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
50
return dm_helpers_submit_i2c(link->ctx, link, &cmd);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
501
static bool enable_assr(void *handle, struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
521
link->link_enc_hw_inst;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
542
struct mod_hdcp_link *link = &hdcp_work[link_index].link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
554
memset(link, 0, sizeof(*link));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
56
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
565
link->mode = mod_hdcp_signal_type_to_operation_mode(sink->sink_signal);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
569
link->dig_be = config->dig_be;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
570
link->ddc_line = aconnector->dc_link->ddc_hw_inst + 1;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
572
link->link_enc_idx = config->link_enc_idx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
573
link->dio_output_id = config->dio_output_idx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
574
link->phy_idx = config->phy_idx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
578
link->hdcp_supported_informational = link_is_hdcp14;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
579
link->dp.rev = aconnector->dc_link->dpcd_caps.dpcd_rev.raw;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
580
link->dp.assr_enabled = config->assr_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
581
link->dp.mst_enabled = config->mst_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
582
link->dp.dp2_enabled = config->dp2_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
583
link->dp.usb4_enabled = config->usb4_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
585
link->hdmi.frl_enabled = config->frl_enabled;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
587
link->adjust.auth_delay = 2;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
588
link->adjust.retry_limit = MAX_NUM_OF_ATTEMPTS;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
589
link->adjust.hdcp1.disable = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
590
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
591
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
602
mod_hdcp_add_display(&hdcp_w->hdcp, link, display, &hdcp_w->output);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
61
link->dc->caps.i2c_speed_in_khz};
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
63
return dm_helpers_submit_i2c(link->ctx, link, &cmd);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
69
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
71
return dm_helpers_dp_write_dpcd(link->ctx, link, address, data, size);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
77
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
79
return dm_helpers_dp_read_dpcd(link->ctx, link, address, data, size);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
91
struct dc_link *link = handle;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
93
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
60
struct mod_hdcp_link link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
101
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1050
dm_helpers_read_vbios_hardcoded_edid(struct dc_link *link, struct amdgpu_dm_connector *aconnector)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1052
struct dc_bios *bios = link->ctx->dc_bios;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1057
if (!dc_is_embedded_signal(link->connector_signal) ||
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
1159
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1167
if (link->aux_mode)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1169
else if (link->ddc_hw_inst == GPIO_DDC_LINE_UNKNOWN &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1170
dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1175
if (link->dc->hwss.prepare_ddc)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1176
link->dc->hwss.prepare_ddc(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1186
drm_edid = dm_helpers_read_vbios_hardcoded_edid(link, aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1192
if (link->aux_mode && connector->edid_corrupt)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1229
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1239
if (link->aux_mode) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1244
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1255
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1261
link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1272
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1276
if (!link->hpd_status) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1281
return amdgpu_dm_process_dmub_aux_transfer_sync(ctx, link->link_index, payload,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1286
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1290
return amdgpu_dm_process_dmub_set_config_sync(ctx, link->link_index, payload,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1331
struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1337
link->panel_config.dsc.disable_dsc_edp = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1339
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
1340
link->panel_config.psr.disable_psr = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1341
link->panel_config.psr.disallow_psrsu = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1342
link->panel_config.psr.disallow_replay = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
135
link->wa_flags.skip_phy_ssc_reduction = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1384
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1388
if (link->aux_access_disabled)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1391
if (!dm_helpers_dp_read_dpcd(link->ctx, link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1401
dm_helpers_dp_write_dpcd(link->ctx, link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1408
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1417
struct pipe_ctx *pipes = link->dc->current_state->res_ctx.pipe_ctx;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1419
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1429
if (pipes[i].stream->link == link && !pipes[i].top_pipe &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
152
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1534
(struct dc_link *) link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
156
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1562
struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1586
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
1588
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1617
static int mccs_operation_vcp_request(unsigned int vcp_code, struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1622
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1640
if (link->aux_mode)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1681
void dm_helpers_read_mccs_caps(struct dc_context *ctx, struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1694
if (!link || !sink) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1700
dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1703
if (dc_is_dp_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1717
if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT_MST) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1723
if (dc_is_hdmi_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1730
if (!mccs_operation_vcp_request(sink->edid_caps.freesync_vcp_code, link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1742
static int mccs_operation_vcp_set(unsigned int vcp_code, struct dc_link *link, uint16_t value)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1746
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1766
if (link->aux_mode)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1791
void dm_helpers_mccs_vcp_set(struct dc_context *ctx, struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1801
if (!link || !sink) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
1811
if (mccs_operation_vcp_set(sink->edid_caps.freesync_vcp_code, link, enable))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
189
populate_hdmi_info_from_connector(link->dc->config.enable_frl, &connector->display_info.hdmi, edid_caps);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
198
apply_edid_quirks(link, edid_buf, edid_caps);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
233
fill_dc_mst_payload_table_from_drm(struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
241
link->mst_stream_alloc_table;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
285
const struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
367
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
377
const struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
385
const struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
570
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
573
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
604
struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
606
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
618
link->cur_link_settings.lane_count = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
626
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
632
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
643
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
648
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
659
const struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
662
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
694
struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
702
return amdgpu_dm_execute_fused_io(dev, link, commands, count, timeout_us);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
861
if (!stream->link->link_status.link_active &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
862
memcmp(stream->link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
874
if (!stream->link->link_status.link_active) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
950
if (stream->sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_NONE) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
951
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
955
} 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
956
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
972
bool dm_helpers_is_dp_sink_present(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
975
struct amdgpu_dm_connector *aconnector = link->priv;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
98
static void apply_edid_quirks(struct dc_link *link, struct edid *edid,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
983
dp_sink_present = dc_link_is_dp_sink_present(link);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_ism.c
306
if (stream && stream->link) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1288
if (stream->link != dc_link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1319
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
1469
if (stream->link != dc_link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1530
if (stream->link != dc_link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1602
if (!is_dsc_need_re_compute(state, dc_state, stream->link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1606
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
1612
if (dc_state->streams[j]->link == stream->link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1666
if (!is_dsc_need_re_compute(state, dc_state, stream->link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1670
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
1676
if (dc_state->streams[j]->link == stream->link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1729
if (dm_crtc_state->stream && dm_crtc_state->stream->link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1730
if (is_link_to_dschub(dm_crtc_state->stream->link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1865
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
1871
&stream->timing, dc_link_get_highest_encoding_format(stream->link), bw_range);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1954
dc_link_get_highest_encoding_format(stream->link));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
1955
cur_link_settings = stream->link->verified_link_cap;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
2025
dc_dsc_get_default_config_option(stream->link->dc, &dsc_options);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
2032
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
100
bool amdgpu_dm_set_psr_caps(struct dc_link *link, struct amdgpu_dm_connector *aconnector)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
105
if (!link || !aconnector)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
108
dc = link->ctx->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
111
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
116
if (!(link->connector_signal & SIGNAL_TYPE_EDP))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
119
if (link->type == dc_connection_none)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
122
if (link->dpcd_caps.psr_info.psr_version == 0)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
126
if (dc_get_edp_link_panel_inst(dc, link, &panel_inst) && panel_inst == 1)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
129
if (link_supports_psrsu(link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
130
link->psr_settings.psr_version = DC_PSR_VERSION_SU_1;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
132
link->psr_settings.psr_version = DC_PSR_VERSION_1;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
134
amdgpu_dm_psr_fill_caps(link, &aconnector->psr_caps);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
150
const struct dc_link *link = dm->dc->current_state->streams[i]->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
152
if (!link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
155
if (link->psr_settings.psr_feature_enabled && link->psr_settings.psr_allow_active)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
177
if (!stream || !stream->link ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
178
!stream->link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
36
static bool link_supports_psrsu(struct dc_link *link)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
38
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
46
if (!is_psr_su_specific_panel(link))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
49
if (!link->dpcd_caps.alpm_caps.bits.AUX_WAKE_ALPM_CAP ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
50
!link->dpcd_caps.psr_info.psr_dpcd_caps.bits.Y_COORDINATE_REQUIRED)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
53
if (link->dpcd_caps.psr_info.psr_dpcd_caps.bits.SU_GRANULARITY_REQUIRED &&
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
54
!link->dpcd_caps.psr_info.psr2_su_y_granularity_cap)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
65
void amdgpu_dm_psr_fill_caps(struct dc_link *link, struct psr_caps *caps)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
67
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
74
if (link->psr_settings.psr_version == DC_PSR_VERSION_1)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c
76
else if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.h
39
bool amdgpu_dm_set_psr_caps(struct dc_link *link, struct amdgpu_dm_connector *aconnector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.h
46
void amdgpu_dm_psr_fill_caps(struct dc_link *link, struct psr_caps *caps);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
125
link->ctx->dc->debug.visual_confirm == VISUAL_CONFIRM_REPLAY;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
128
init_replay_config(link, &pr_config);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
145
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
149
if (!stream || !stream->link || !vrr_params)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
152
link = stream->link;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
153
if (!link->replay_settings.config.replay_supported)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
156
if (link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
159
calculate_replay_link_off_frame_count(link, stream->timing.v_total,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
166
set_replay_coasting_vtotal(link, PR_COASTING_TYPE_NOM,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
168
set_replay_coasting_vtotal(link, PR_COASTING_TYPE_STATIC,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
196
if (!stream || !stream->link ||
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
197
!stream->link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
43
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
46
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
47
struct adaptive_sync_caps *as_caps = &link->dpcd_caps.adaptive_sync_caps;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
81
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
85
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
88
if (link->replay_settings.config.replay_supported)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
91
if (!dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
94
if (link->panel_config.psr.disallow_replay)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
97
if (!amdgpu_dm_link_supports_replay(link, aconnector))
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.h
34
bool amdgpu_dm_link_supports_replay(struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.h
36
bool amdgpu_dm_set_replay_caps(struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
189
struct dc_link *link = dc_get_link_at_index(dc, link_index);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
192
wbcon->link = link;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
105
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
110
link->dpcd_caps.psr_info.psr_dpcd_caps.bits.PSR_SETUP_TIME = 6;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
112
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
121
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
125
link->dpcd_caps.psr_info.psr_dpcd_caps.bits.LINK_TRAINING_ON_EXIT_NOT_REQUIRED = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
127
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
134
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
138
link->dpcd_caps.psr_info.psr_dpcd_caps.bits.LINK_TRAINING_ON_EXIT_NOT_REQUIRED = 1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
140
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
149
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
154
link->dpcd_caps.edp_rev = 0x14;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
155
link->dpcd_caps.psr_info.psr_version = 2;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
156
link->dpcd_caps.psr_info.psr_dpcd_caps.bits.SU_GRANULARITY_REQUIRED = 1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
157
link->dpcd_caps.psr_info.psr_dpcd_caps.bits.Y_COORDINATE_REQUIRED = 1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
158
link->dpcd_caps.psr_info.psr2_su_y_granularity_cap = 4;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
159
link->dpcd_caps.alpm_caps.bits.AUX_WAKE_ALPM_CAP = 1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
160
link->dpcd_caps.alpm_caps.bits.PM_STATE_2A_SUPPORT = 1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
162
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
175
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
181
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
196
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
20
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
202
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
209
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
214
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
22
link = kunit_kzalloc(test, sizeof(*link), GFP_KERNEL);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
23
KUNIT_ASSERT_NOT_NULL(test, link);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
248
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
25
return link;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
253
link = kunit_kzalloc(test, sizeof(*link), GFP_KERNEL);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
254
KUNIT_ASSERT_NOT_NULL(test, link);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
256
stream->link = link;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
32
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
36
link->psr_settings.psr_version = DC_PSR_VERSION_1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
38
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
45
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
49
link->psr_settings.psr_version = DC_PSR_VERSION_SU_1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
51
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
58
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
62
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
64
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
77
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
82
link->dpcd_caps.psr_info.psr_dpcd_caps.bits.PSR_SETUP_TIME = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
84
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
91
struct dc_link *link = alloc_test_link(test);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
96
link->dpcd_caps.psr_info.psr_dpcd_caps.bits.PSR_SETUP_TIME = 3;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
98
amdgpu_dm_psr_fill_caps(link, &caps);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
100
amdgpu_dm_link_supports_replay(ctx->link, ctx->aconnector));
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
110
ctx->link->dpcd_caps.edp_rev = EDP_REVISION_12;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
113
amdgpu_dm_link_supports_replay(ctx->link, ctx->aconnector));
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
123
ctx->link->dpcd_caps.alpm_caps.bits.AUX_WAKE_ALPM_CAP = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
126
amdgpu_dm_link_supports_replay(ctx->link, ctx->aconnector));
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
136
ctx->link->dpcd_caps.adaptive_sync_caps.dp_adap_sync_caps.bits.ADAPTIVE_SYNC_SDP_SUPPORT = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
139
amdgpu_dm_link_supports_replay(ctx->link, ctx->aconnector));
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
149
ctx->link->dpcd_caps.pr_info.pixel_deviation_per_line = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
15
extern bool amdgpu_dm_link_supports_replay(struct dc_link *link,
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
152
amdgpu_dm_link_supports_replay(ctx->link, ctx->aconnector));
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
162
ctx->link->dpcd_caps.pr_info.max_deviation_line = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
165
amdgpu_dm_link_supports_replay(ctx->link, ctx->aconnector));
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
175
ctx->link->dpcd_caps.pr_info.pixel_deviation_per_line = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
176
ctx->link->dpcd_caps.pr_info.max_deviation_line = 0;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
179
amdgpu_dm_link_supports_replay(ctx->link, ctx->aconnector));
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
23
struct dc_link *link;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
35
ctx->link = kunit_kzalloc(test, sizeof(*ctx->link), GFP_KERNEL);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
36
KUNIT_ASSERT_NOT_NULL(test, ctx->link);
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
58
ctx->link->dpcd_caps.edp_rev = EDP_REVISION_13;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
59
ctx->link->dpcd_caps.alpm_caps.bits.AUX_WAKE_ALPM_CAP = 1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
60
ctx->link->dpcd_caps.adaptive_sync_caps.dp_adap_sync_caps.bits.ADAPTIVE_SYNC_SDP_SUPPORT = 1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
61
ctx->link->dpcd_caps.pr_info.pixel_deviation_per_line = 1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
62
ctx->link->dpcd_caps.pr_info.max_deviation_line = 1;
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
74
amdgpu_dm_link_supports_replay(ctx->link, ctx->aconnector));
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
87
amdgpu_dm_link_supports_replay(ctx->link, ctx->aconnector));
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
385
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
389
if (link) {
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
390
if (link->phy_transition_bitmask &&
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
400
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
401
process_phy_transition_init_params.transition_bitmask = link->phy_transition_bitmask;
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
402
process_phy_transition_init_params.hdmi_frl_num_lanes = link->frl_link_settings.frl_num_lanes;
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
403
process_phy_transition_init_params.hdmi_frl_link_rate = link->frl_link_settings.frl_link_rate;
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
405
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
146
stream->link->ddi_channel_mapping.raw;
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c
148
stream->link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c
150
stream->link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c
152
stream->link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c
154
stream->link->cur_link_settings.link_spread;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
496
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
507
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
549
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
554
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
472
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
482
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
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c
105
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c
106
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c
136
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c
139
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c
140
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c
78
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c
81
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c
82
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c
97
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
98
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
90
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c
93
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c
94
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
338
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
340
const struct dc *dc_struct = link->dc;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
364
const struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
368
if (!link)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
371
lowest_dpia_index = get_lowest_dpia_index(link);
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
372
if (link->link_index < lowest_dpia_index)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
375
hr_index = (link->link_index - lowest_dpia_index) / 2;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
379
&stream->timing, dc_link_get_highest_encoding_format(link));
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn42/dcn42_clk_mgr.c
103
const struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn42/dcn42_clk_mgr.c
106
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn42/dcn42_clk_mgr.c
107
link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/core/dc.c
1456
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/dc/core/dc.c
1471
if (stream->link->local_sink &&
drivers/gpu/drm/amd/display/dc/core/dc.c
1472
stream->link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1473
link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
1476
if (link != NULL && link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1480
enc_inst = link->link_enc->funcs->get_dig_frontend(link->link_enc);
drivers/gpu/drm/amd/display/dc/core/dc.c
1494
if (link->link_status.link_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1787
if (!streams[i]->link->link_state_valid)
drivers/gpu/drm/amd/display/dc/core/dc.c
1803
struct dc_link *link = sink->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
1818
if (!link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
1823
enc_inst = link->link_enc->funcs->get_dig_frontend(link->link_enc);
drivers/gpu/drm/amd/display/dc/core/dc.c
1852
if (tg_inst != link->link_enc->preferred_engine) {
drivers/gpu/drm/amd/display/dc/core/dc.c
2002
if (dc_is_dp_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
2062
if (link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED) {
drivers/gpu/drm/amd/display/dc/core/dc.c
2067
if (link->dpcd_caps.channel_coding_cap.bits.DP_128b_132b_SUPPORTED) {
drivers/gpu/drm/amd/display/dc/core/dc.c
2072
if (dc->link_srv->edp_is_ilr_optimization_required(link, crtc_timing)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
2344
const struct dc_link *link = context->streams[i]->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
2374
CONN_MSG_MODE(link, "{%dx%d, %dx%d@%dKhz}",
drivers/gpu/drm/amd/display/dc/core/dc.c
242
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/core/dc.c
254
link = dc->link_srv->create_link(&link_init_params);
drivers/gpu/drm/amd/display/dc/core/dc.c
256
if (link) {
drivers/gpu/drm/amd/display/dc/core/dc.c
257
dc->links[dc->link_count] = link;
drivers/gpu/drm/amd/display/dc/core/dc.c
258
link->dc = dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
269
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/core/dc.c
277
link = dc->link_srv->create_link(&link_init_params);
drivers/gpu/drm/amd/display/dc/core/dc.c
278
if (link) {
drivers/gpu/drm/amd/display/dc/core/dc.c
282
dc->links[dc->link_count] = link;
drivers/gpu/drm/amd/display/dc/core/dc.c
283
link->dc = dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
289
struct dc_link *link = kzalloc_obj(*link);
drivers/gpu/drm/amd/display/dc/core/dc.c
292
if (link == NULL) {
drivers/gpu/drm/amd/display/dc/core/dc.c
297
link->link_index = dc->link_count;
drivers/gpu/drm/amd/display/dc/core/dc.c
298
dc->links[dc->link_count] = link;
drivers/gpu/drm/amd/display/dc/core/dc.c
301
link->ctx = dc->ctx;
drivers/gpu/drm/amd/display/dc/core/dc.c
302
link->dc = dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
303
link->connector_signal = SIGNAL_TYPE_VIRTUAL;
drivers/gpu/drm/amd/display/dc/core/dc.c
304
link->link_id.type = OBJECT_TYPE_CONNECTOR;
drivers/gpu/drm/amd/display/dc/core/dc.c
305
link->link_id.id = CONNECTOR_ID_VIRTUAL;
drivers/gpu/drm/amd/display/dc/core/dc.c
306
link->link_id.enum_id = ENUM_ID_1;
drivers/gpu/drm/amd/display/dc/core/dc.c
307
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/core/dc.c
308
link->replay_settings.config.replay_version = DC_REPLAY_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/core/dc.c
309
link->link_enc = kzalloc_obj(*link->link_enc);
drivers/gpu/drm/amd/display/dc/core/dc.c
311
if (!link->link_enc) {
drivers/gpu/drm/amd/display/dc/core/dc.c
316
link->link_status.dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/core/dc.c
322
enc_init.connector = link->link_id;
drivers/gpu/drm/amd/display/dc/core/dc.c
326
virtual_link_encoder_construct(link->link_enc, &enc_init);
drivers/gpu/drm/amd/display/dc/core/dc.c
4105
pipe_ctx->stream->link,
drivers/gpu/drm/amd/display/dc/core/dc.c
4186
stream->link,
drivers/gpu/drm/amd/display/dc/core/dc.c
4212
} 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
4287
pipe_ctx->stream->link,
drivers/gpu/drm/amd/display/dc/core/dc.c
4354
dc->link_srv->dp_set_test_pattern(stream->link,
drivers/gpu/drm/amd/display/dc/core/dc.c
4383
} else if (dpms_pipe_ctx->stream->link->wa_flags.blank_stream_on_ocs_change &&
drivers/gpu/drm/amd/display/dc/core/dc.c
4417
if ((stream->link->psr_settings.psr_version == DC_PSR_VERSION_SU_1
drivers/gpu/drm/amd/display/dc/core/dc.c
4418
|| stream->link->psr_settings.psr_version == DC_PSR_VERSION_1)
drivers/gpu/drm/amd/display/dc/core/dc.c
4422
if (stream->link->replay_settings.config.replay_supported)
drivers/gpu/drm/amd/display/dc/core/dc.c
4446
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
4508
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
4846
if (should_use_dmub_inbox1_lock(dc, stream->link)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
5115
if (should_use_dmub_inbox1_lock(dc, stream->link)) {
drivers/gpu/drm/amd/display/dc/core/dc.c
6303
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/core/dc.c
6306
link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
6307
if (!link)
drivers/gpu/drm/amd/display/dc/core/dc.c
6310
if (link->psr_settings.psr_feature_enabled) {
drivers/gpu/drm/amd/display/dc/core/dc.c
6311
if (enable && !link->psr_settings.psr_allow_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
6313
if (!dc_link_set_psr_allow_active(link, &allow_active, false, false, NULL))
drivers/gpu/drm/amd/display/dc/core/dc.c
6315
} else if (!enable && link->psr_settings.psr_allow_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
6317
if (!dc_link_set_psr_allow_active(link, &allow_active, true, false, NULL))
drivers/gpu/drm/amd/display/dc/core/dc.c
6333
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/core/dc.c
6336
link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
6337
if (!link)
drivers/gpu/drm/amd/display/dc/core/dc.c
6340
if (link->replay_settings.replay_feature_enabled) {
drivers/gpu/drm/amd/display/dc/core/dc.c
6341
if (active && !link->replay_settings.replay_allow_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
6343
if (!dc_link_set_replay_allow_active(link, &allow_active,
drivers/gpu/drm/amd/display/dc/core/dc.c
6346
} else if (!active && link->replay_settings.replay_allow_active) {
drivers/gpu/drm/amd/display/dc/core/dc.c
6348
if (!dc_link_set_replay_allow_active(link, &allow_active,
drivers/gpu/drm/amd/display/dc/core/dc.c
6731
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
6735
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
6740
struct resource_context *res_ctx = &link->ctx->dc->current_state->res_ctx;
drivers/gpu/drm/amd/display/dc/core/dc.c
6744
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/core/dc.c
6751
res_ctx->pipe_ctx[i].stream->link &&
drivers/gpu/drm/amd/display/dc/core/dc.c
6752
res_ctx->pipe_ctx[i].stream->link == link &&
drivers/gpu/drm/amd/display/dc/core/dc.c
6753
res_ctx->pipe_ctx[i].stream->link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/core/dc.c
6781
cmd.smart_power_oled_enable.data.digfe_inst = (uint8_t)link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/core/dc.c
6782
cmd.smart_power_oled_enable.data.digbe_inst = (uint8_t)link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/core/dc.c
6798
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
6800
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
6806
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/core/dc.c
7021
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
7025
if (link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/core/dc.c
7028
if (link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/core/dc.c
7048
if (edp_links[i] == link)
drivers/gpu/drm/amd/display/dc/core/dc.c
7075
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
7078
if (link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/core/dc.c
7098
if (edp_links[i] == link)
drivers/gpu/drm/amd/display/dc/core/dc.c
7212
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
7216
if (!link || !host_router_index || link->ep_type != DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/core/dc.c
7219
dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/core/dc.c
7221
if (link->link_index < dc->lowest_dpia_link_index)
drivers/gpu/drm/amd/display/dc/core/dc.c
7224
*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
771
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc.c
776
if (link->dc->current_state->res_ctx.pipe_ctx[i].stream ==
drivers/gpu/drm/amd/display/dc/core/dc.c
778
pipes = &link->dc->current_state->res_ctx.pipe_ctx[i];
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3762
struct dc_link *link = params->dp_trace_source_sequence_params.link;
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3765
if (link && link->dc && link->dc->link_srv && link->dc->link_srv->dp_trace_source_sequence)
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3766
link->dc->link_srv->dp_trace_source_sequence(link, source);
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3774
if (pipe_ctx && pipe_ctx->stream && pipe_ctx->stream->link &&
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3775
pipe_ctx->stream->link->dc && pipe_ctx->stream->link->dc->link_srv &&
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3776
pipe_ctx->stream->link->dc->link_srv->increase_mst_payload)
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3777
pipe_ctx->stream->link->dc->link_srv->increase_mst_payload(pipe_ctx, mst_stream_bw);
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3785
if (pipe_ctx && pipe_ctx->stream && pipe_ctx->stream->link &&
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3786
pipe_ctx->stream->link->dc && pipe_ctx->stream->link->dc->link_srv &&
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3787
pipe_ctx->stream->link->dc->link_srv->reduce_mst_payload)
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3788
pipe_ctx->stream->link->dc->link_srv->reduce_mst_payload(pipe_ctx, mst_stream_bw);
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3793
struct dc_link *link = params->dp_set_test_pattern_params.link;
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3802
if (link && link->dc && link->dc->link_srv && link->dc->link_srv->dp_set_test_pattern)
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3803
link->dc->link_srv->dp_set_test_pattern(link, test_pattern, test_pattern_color_space,
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3811
if (pipe_ctx && pipe_ctx->stream && pipe_ctx->stream->link &&
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3812
pipe_ctx->stream->link->dc && pipe_ctx->stream->link->dc->link_srv &&
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3813
pipe_ctx->stream->link->dc->link_srv->set_dpms_off)
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3814
pipe_ctx->stream->link->dc->link_srv->set_dpms_off(pipe_ctx);
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3836
if (pipe_ctx && pipe_ctx->stream && pipe_ctx->stream->link &&
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3837
pipe_ctx->stream->link->dc && pipe_ctx->stream->link->dc->link_srv &&
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3838
pipe_ctx->stream->link->dc->link_srv->set_dpms_on)
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
3839
pipe_ctx->stream->link->dc->link_srv->set_dpms_on(state, pipe_ctx);
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
472
if (pipe_ctx && pipe_ctx->stream && pipe_ctx->stream->link) {
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
473
if (pipe_ctx->stream->link->connector_signal == SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
474
edp_link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
5027
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
5032
seq_state->steps[*seq_state->num_steps].params.dp_trace_source_sequence_params.link = link;
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
5084
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
5093
seq_state->steps[*seq_state->num_steps].params.dp_set_test_pattern_params.link = link;
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
769
dmub_hw_lock_mgr_does_link_require_lock(dc, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
808
block_sequence[*num_steps].params.dp_trace_source_sequence_params.link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
144
.link_id = stream->link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
145
.ep_type = stream->link->ep_type},
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
207
if (stream_assigned && stream != stream_assigned && stream->link == stream_assigned->link)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
230
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
237
.link_id = link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
238
.ep_type = link->ep_type};
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
246
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
314
if (stream->link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
322
eng_id = stream->link->eng_id;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
336
if (!stream->link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
346
if (stream == prev_stream && stream->link == prev_stream->link &&
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
365
if (!stream->link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
374
ASSERT(stream->link->is_dig_mapping_flexible != true);
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
384
link_enc = get_link_enc_used_by_link(state, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
387
if (stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
388
stream->link->dpia_preferred_eng_id != ENGINE_ID_UNKNOWN)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
389
eng_id_req = stream->link->dpia_preferred_eng_id;
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
460
is_mappable = stream->link->is_dig_mapping_flexible;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
488
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
494
link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
496
return link;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
501
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
508
.link_id = link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
509
.ep_type = link->ep_type};
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
517
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
554
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
561
if (link->is_dig_mapping_flexible &&
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
562
link->dc->res_pool->funcs->link_encs_assign) {
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
563
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
566
link->ctx->dc);
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
568
link_enc = link->link_enc;
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
582
.link_id = stream->link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
583
.ep_type = stream->link->ep_type};
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
593
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
601
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
610
.link_id = link->link_id,
drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c
611
.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
129
uint32_t dc_link_frl_bandwidth_kbps(const struct dc_link *link, enum hdmi_frl_link_rate link_rate)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
131
return link->dc->link_srv->frl_link_bandwidth_kbps(link_rate);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
135
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
139
return link->dc->link_srv->frl_margin_check_uncompressed_video(params, inter);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
143
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
146
return link->dc->link_srv->dp_required_hblank_size_bytes(link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
160
void dc_link_wait_for_unlocked(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
162
link->dc->link_srv->wait_for_unlocked(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
167
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
169
return link->dc->link_srv->update_dsc_config(pipe_ctx);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
197
struct dc_link *link = dc->links[link_index];
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
198
struct ddc_service *ddc = link->ddc;
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
221
void dc_link_dp_handle_automated_test(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
223
link->dc->link_srv->dp_handle_automated_test(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
227
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
234
return link->dc->link_srv->dp_set_test_pattern(link, test_pattern,
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
dc->link_srv->get_cur_link_res(link, &link_res);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
246
dc->link_srv->dp_set_drive_settings(link, &link_res, lt_settings);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
251
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
253
dc->link_srv->dp_set_preferred_link_settings(dc, link_setting, link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
259
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
263
lt_overrides, link, skip_immediate_retrain);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
266
bool dc_dp_trace_is_initialized(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
268
return link->dc->link_srv->dp_trace_is_initialized(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
271
void dc_dp_trace_set_is_logged_flag(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
275
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
278
bool dc_dp_trace_is_logged(struct dc_link *link, bool in_detection)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
280
return link->dc->link_srv->dp_trace_is_logged(link, in_detection);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
283
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
286
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
289
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
292
return link->dc->link_srv->dp_trace_get_lt_counts(link, in_detection);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
295
unsigned int dc_dp_trace_get_link_loss_count(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
297
return link->dc->link_srv->dp_trace_get_link_loss_count(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
301
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
306
return link->dc->link_srv->add_remote_sink(link, edid, len, init_data);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
309
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
311
link->dc->link_srv->remove_remote_sink(link, sink);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
318
const struct dc *dc = ddc->link->dc;
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
329
bool dc_link_decide_edp_link_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
332
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
336
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
339
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
343
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
345
return link->dc->link_srv->mst_decide_link_encoding_format(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
348
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
350
return link->dc->link_srv->dp_get_verified_link_cap(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
353
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
355
if (dc_is_dp_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
356
if (link->dpcd_caps.dongle_type >= DISPLAY_DONGLE_DP_DVI_DONGLE &&
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
357
link->dpcd_caps.dongle_type <= DISPLAY_DONGLE_DP_HDMI_MISMATCHED_DONGLE)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
359
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
362
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
365
} else if (dc_is_hdmi_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
367
&link->frl_verified_link_cap;
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
379
bool dc_link_is_dp_sink_present(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
381
return link->dc->link_srv->dp_is_sink_present(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
384
bool dc_link_is_fec_supported(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
386
return link->dc->link_srv->dp_is_fec_supported(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
390
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
392
link->dc->link_srv->dp_overwrite_extended_receiver_cap(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
395
bool dc_link_should_enable_fec(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
397
return link->dc->link_srv->dp_should_enable_fec(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
401
struct dc_link *link, int peak_bw)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
403
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
407
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
410
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
413
bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
415
return link->dc->link_srv->dp_should_allow_hpd_rx_irq(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
418
void dc_link_dp_handle_link_loss(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
420
link->dc->link_srv->dp_handle_link_loss(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
424
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
427
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
430
bool dc_link_handle_hpd_rx_irq(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
434
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
438
void dc_link_dp_receiver_power_ctrl(struct dc_link *link, bool on)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
440
link->dc->link_srv->dpcd_write_rx_power_ctrl(link, on);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
443
enum lttpr_mode dc_link_decide_lttpr_mode(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
446
return link->dc->link_srv->dp_decide_lttpr_mode(link, link_setting);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
449
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
451
link->dc->link_srv->edp_panel_backlight_power_on(link, wait_for_hpd);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
454
int dc_link_get_backlight_level(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
456
return link->dc->link_srv->edp_get_backlight_level(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
459
bool dc_link_get_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
463
return link->dc->link_srv->edp_get_backlight_level_nits(link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
468
bool dc_link_set_backlight_level(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
471
return link->dc->link_srv->edp_set_backlight_level(link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
475
bool dc_link_set_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
480
return link->dc->link_srv->edp_set_backlight_level_nits(link, isHDR,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
484
int dc_link_get_target_backlight_pwm(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
486
return link->dc->link_srv->edp_get_target_backlight_pwm(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
489
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
491
return link->dc->link_srv->edp_get_psr_state(link, state);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
494
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
497
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
501
bool dc_link_setup_psr(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
505
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
508
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
511
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
515
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
517
return link->dc->link_srv->edp_get_replay_state(link, state);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
520
bool dc_link_set_pr_enable(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
522
return link->dc->link_srv->dp_pr_enable(link, enable);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
525
bool dc_link_update_pr_state(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
528
return link->dc->link_srv->dp_pr_update_state(link, update_state_data);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
531
bool dc_link_set_pr_general_cmd(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
534
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
537
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
539
return link->dc->link_srv->dp_pr_get_state(link, state);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
542
bool dc_link_wait_for_t12(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
544
return link->dc->link_srv->edp_wait_for_t12(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
547
bool dc_link_frl_poll_status_flag(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
549
return link->dc->link_srv->hdmi_frl_poll_status_flag(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
553
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
555
return link->dc->link_srv->hdmi_frl_get_verified_link_cap(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
561
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
563
link->dc->link_srv->hdmi_frl_set_preferred_link_settings(dc, link_setting, lt_overrides, link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
566
bool dc_link_get_hpd_state(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
568
return link->dc->link_srv->get_hpd_state(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
571
void dc_link_enable_hpd(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
573
link->dc->link_srv->enable_hpd(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
576
void dc_link_disable_hpd(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
578
link->dc->link_srv->disable_hpd(link);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
581
void dc_link_enable_hpd_filter(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
583
link->dc->link_srv->enable_hpd_filter(link, enable);
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
591
void dc_link_get_alpm_support(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
595
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
2713
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2719
res_ctx->hpo_frl_link_enc_to_link_idx[i] == link->link_index)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2769
enc_index = find_acquired_hpo_frl_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2776
acquire_hpo_frl_link_enc(res_ctx, stream->link->link_index, enc_index);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2791
enc_index = find_acquired_hpo_frl_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2802
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2807
enc_index = find_acquired_hpo_frl_link_enc_for_link(res_ctx, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2818
bool get_temp_frl_link_res(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2821
const struct dc *dc = link->dc;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2825
link_res->hpo_frl_link_enc = get_temp_hpo_frl_link_enc(res_ctx, dc->res_pool, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2830
dc->res_pool, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2852
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2858
res_ctx->hpo_dp_link_enc_to_link_idx[i] == link->link_index)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2908
enc_index = find_acquired_hpo_dp_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2915
acquire_hpo_dp_link_enc(res_ctx, stream->link->link_index, enc_index);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2930
enc_index = find_acquired_hpo_dp_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2940
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2946
res_ctx->dio_link_enc_to_link_idx[i] == link->link_index)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2952
static inline int find_fixed_dio_link_enc(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2955
return link->eng_id;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
2959
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
2983
if (link->dpia_preferred_eng_id == i) {
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3020
static bool is_dio_enc_acquired_by_other_link(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3024
const struct dc *dc = link->dc;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3029
res_ctx->dio_link_enc_to_link_idx[enc_index] != link->link_index) {
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3068
enc_index = find_acquired_dio_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3073
if (stream->link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3074
enc_index = find_free_dio_link_enc(res_ctx, stream->link, pool, stream);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3078
enc_index = find_fixed_dio_link_enc(stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3083
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
3094
acquire_dio_link_enc(res_ctx, stream->link->link_index, enc_index);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3109
if (stream->link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3110
enc_index = find_acquired_dio_link_enc_for_link(res_ctx, stream->link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3881
&& stream_has_pll->link->connector_signal
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3942
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3948
if (!link->link_enc->funcs->is_dig_enabled(link->link_enc))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
3951
inst = link->link_enc->funcs->get_dig_frontend(link->link_enc);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
4231
pipe_ctx->stream->link->hpo_frl_link_enc;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
4619
frl_modified_pix_clock_for_dsc_padding(stream->link->frl_verified_link_cap.borrow_params.hc_active_target,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
4620
stream->link->frl_verified_link_cap.borrow_params.hc_blank_target,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
4621
stream->link->frl_verified_link_cap.frl_num_lanes,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
4623
stream->link->frl_verified_link_cap.frl_link_rate,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5301
if (false == pipe_ctx_old->stream->link->link_state_valid &&
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5473
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5483
if (link->ep_type == DISPLAY_ENDPOINT_PHY &&
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5484
!link->link_enc->funcs->validate_output_with_stream(
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5485
link->link_enc, stream))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5493
link,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5597
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5602
if (link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5603
enc_index = find_acquired_dio_link_enc_for_link(res_ctx, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5605
enc_index = link->eng_id;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5608
enc_index = find_free_dio_link_enc(res_ctx, link, pool, NULL);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5619
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5624
enc_index = find_acquired_hpo_dp_link_enc_for_link(res_ctx, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5635
bool get_temp_dp_link_res(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5639
const struct dc *dc = link->dc;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5645
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
5651
dc->res_pool, link);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5770
const struct link_hwss *get_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5776
if (can_use_hpo_dp_link_hwss(link, link_res))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5794
return (requires_fixed_vs_pe_retimer_hpo_link_hwss(link) ?
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5796
else if (can_use_hpo_frl_link_hwss(link, link_res))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5798
else if (can_use_dpia_link_hwss(link, link_res))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5800
else if (can_use_dio_link_hwss(link, link_res))
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
5801
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
100
if (stream->link->frl_flags.force_frl_always ||
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
101
stream->link->frl_flags.force_frl_max
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
102
|| stream->link->frl_flags.force_frl_dsc)
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
116
stream->link = dc_sink_data->link;
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
300
return stream->link;
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
59
stream->signal = stream->link->connector_signal;
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
968
stream->link->link_index);
drivers/gpu/drm/amd/display/dc/dc.h
2154
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2185
bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason);
drivers/gpu/drm/amd/display/dc/dc.h
2210
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2214
void dc_link_enable_hpd(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2217
void dc_link_disable_hpd(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2229
bool dc_link_detect_connection_type(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2236
bool dc_link_get_hpd_state(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2239
const struct dc_link_status *dc_link_get_status(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2255
void dc_link_enable_hpd_filter(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/dc.h
2295
bool dc_link_is_hdcp14(struct dc_link *link, enum signal_type signal);
drivers/gpu/drm/amd/display/dc/dc.h
2296
bool dc_link_is_hdcp22(struct dc_link *link, enum signal_type signal);
drivers/gpu/drm/amd/display/dc/dc.h
2314
void dc_link_dp_handle_automated_test(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2319
void dc_link_dp_handle_link_loss(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2325
bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2332
bool dc_link_check_link_loss_status(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2342
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2345
bool dc_link_frl_poll_status_flag(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2347
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2358
void dc_link_clear_dprx_states(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2364
bool dc_link_reset_cur_dp_mst_topology(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2372
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2378
uint32_t dc_link_frl_bandwidth_kbps(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2396
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2432
void dc_link_wait_for_unlocked(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2450
bool dc_link_decide_edp_link_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2457
bool dc_link_dp_get_max_link_enc_cap(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2468
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2477
const struct dc_link_settings *dc_link_get_link_cap(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2485
enum dc_link_encoding_format dc_link_get_highest_encoding_format(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2495
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2502
bool dc_link_is_dp_sink_present(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2513
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2530
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2544
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2554
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2571
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2575
bool dc_link_is_fec_supported(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2581
bool dc_link_should_enable_fec(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2586
enum lttpr_mode dc_link_decide_lttpr_mode(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2597
void dc_link_dp_receiver_power_ctrl(struct dc_link *link, bool on);
drivers/gpu/drm/amd/display/dc/dc.h
2605
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2607
void dc_link_edp_panel_backlight_power_on(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2618
bool dc_link_set_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2623
bool dc_link_get_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2629
int dc_link_get_target_backlight_pwm(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2664
bool dc_link_set_pr_enable(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/dc.h
2674
bool dc_link_update_pr_state(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2685
bool dc_link_set_pr_general_cmd(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2696
bool dc_link_get_pr_state(const struct dc_link *link, uint64_t *state);
drivers/gpu/drm/amd/display/dc/dc.h
2702
bool dc_link_wait_for_t12(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2708
bool dc_dp_trace_is_initialized(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2713
bool dc_dp_trace_is_logged(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2720
void dc_dp_trace_set_is_logged_flag(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2730
unsigned long long dc_dp_trace_get_lt_end_timestamp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2738
const struct dp_trace_lt_counts *dc_dp_trace_get_lt_counts(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2742
unsigned int dc_dp_trace_get_link_loss_count(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dc.h
2757
void dc_link_set_usb4_req_bw_req(struct dc_link *link, int req_bw);
drivers/gpu/drm/amd/display/dc/dc.h
2769
struct dc_link *link, int peak_bw);
drivers/gpu/drm/amd/display/dc/dc.h
2782
void dc_link_get_alpm_support(struct dc_link *link, bool *auxless_support,
drivers/gpu/drm/amd/display/dc/dc.h
2848
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dc.h
2865
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dc.h
2906
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dc.h
2967
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
2969
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
3002
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
1030
if ((pipe_ctx->stream->link->psr_settings.psr_version == DC_PSR_VERSION_SU_1 ||
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
1031
pipe_ctx->stream->link->psr_settings.psr_version == DC_PSR_VERSION_1) &&
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
1035
if (pipe_ctx->stream->link->replay_settings.config.replay_supported)
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
1054
pipe_ctx->stream->link, &panel_inst))
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
546
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
105
const bool over_aux = link->no_ddc_pin;
drivers/gpu/drm/amd/display/dc/dc_fused_io.c
106
const uint32_t ddc_line = over_aux ? link->aux_hw_inst : 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, (uint32_t)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
173
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dc_types.h
1545
const struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
463
struct dce_aux *aux_engine = ddc->ctx->dc->res_pool->engines[ddc->link->aux_hw_inst];
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
532
if (ddc->ctx->dc->config.dp_connector_no_native_i2c && ddc->link->no_ddc_pin)
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
655
if (ddc->ctx->dc->config.dp_connector_no_native_i2c && ddc->link->no_ddc_pin) {
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
742
aux_engine = ddc->ctx->dc->res_pool->engines[ddc->link->aux_hw_inst];
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
798
if (ddc->ctx->dc->config.dp_connector_no_native_i2c && ddc->link->no_ddc_pin) {
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
799
struct dce_aux *aux_engine = ddc->ctx->dc->res_pool->engines[ddc->link->aux_hw_inst];
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
808
return dm_helper_dmub_aux_transfer_sync(ddc->ctx, ddc->link, payload, operation_result);
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
896
if (ddc->ctx->dc->config.dp_connector_no_native_i2c && ddc->link->no_ddc_pin) {
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
897
aux_engine = ddc->ctx->dc->res_pool->engines[ddc->link->aux_hw_inst];
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
911
ddc && ddc->link ? ddc->link->link_index : UINT_MAX,
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
919
(ddc->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) ? true : false,
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
920
ddc->link->ddc_hw_inst);
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
931
ddc && ddc->link ? ddc->link->link_index : UINT_MAX,
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
942
(ddc->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) ? true : false,
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
943
ddc->link->ddc_hw_inst);
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
170
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
182
link->link_enc->funcs->psr_program_dp_dphy_fast_training(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
230
link->link_enc->funcs->psr_program_secondary_packet(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
601
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
617
link->link_enc->funcs->psr_program_dp_dphy_fast_training(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
665
link->link_enc->funcs->psr_program_secondary_packet(link->link_enc,
drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c
1023
stream->link->connector_signal,
drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
916
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
919
(void)link;
drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
966
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
970
(void)link;
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
101
if (dmub_hw_lock_mgr_does_link_require_lock(dc, link))
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
107
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.c
119
return dmub_hw_lock_mgr_does_link_require_lock(dc, link);
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
122
bool should_use_dmub_inbox0_lock_for_link(const struct dc *dc, const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
124
return dmub_hw_lock_has_inbox0_lock(dc) && dmub_hw_lock_mgr_does_link_require_lock(dc, link);
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
72
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
74
if (!link)
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
77
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1)
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
80
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
83
if (link->psr_settings.psr_version == DC_PSR_VERSION_1) {
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
99
const struct dc_link *link = context->streams[i]->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
58
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.h
81
bool should_use_dmub_inbox0_lock_for_link(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
163
copy_settings_data->dpphy_inst = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
168
copy_settings_data->debug.u32All = (uint16_t)link->replay_settings.config.debug_flags;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
169
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
170
copy_settings_data->max_deviation_line = (uint16_t)link->dpcd_caps.pr_info.max_deviation_line;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
171
copy_settings_data->smu_optimizations_en = link->replay_settings.replay_smu_opt_enable;
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
172
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
173
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
178
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
181
if (((link->dpcd_caps.fec_cap.bits.FEC_CAPABLE &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
182
!link->dc->debug.disable_fec) &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
183
(link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
184
!link->panel_config.dsc.disable_dsc_edp &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
185
link->dc->caps.edp_dsc_support)) &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
186
link->dpcd_caps.sink_dev_id == DP_DEVICE_ID_38EC11 &&
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
187
(!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_1,
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
189
!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_2,
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
195
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
196
if (link->replay_settings.config.alpm_mode == DC_ALPM_AUXLESS) {
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
204
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
803
stream->link->connector_signal,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.c
1029
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.c
906
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.c
937
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
956
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
961
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.h
685
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn10/dcn10_stream_encoder.h
689
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
583
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
585
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
600
if (link) {
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
601
dpia_control.dpia_id = link->ddc_hw_inst;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
602
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
630
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
632
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
647
if (link) {
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
648
dpia_control.dpia_id = link->ddc_hw_inst;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
649
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
676
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
681
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
694
if (link) {
drivers/gpu/drm/amd/display/dc/dio/dcn31/dcn31_dio_link_encoder.c
695
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
266
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/dcn401/dcn401_dio_stream_encoder.c
375
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
101
(void)link;
drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
106
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
110
(void)link;
drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
99
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_cp_psp.h
52
bool (*enable_assr)(void *handle, struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
121
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
126
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
130
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
137
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
147
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
154
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
159
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
176
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
182
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
187
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
192
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
197
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
223
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
226
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
231
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
234
enum adaptive_sync_type dm_get_adaptive_sync_support_type(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
236
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
64
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/dm_helpers.h
74
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
90
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dm_helpers.h
97
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
1085
struct dc_link *link = context->streams[0]->sink->link;
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
1089
bool is_pwrseq0 = (link && link->link_index == 0);
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
1090
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
1091
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
1092
bool is_replay = link && link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
1724
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
591
struct dc_link *link = context->streams[0]->sink->link;
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c
592
bool is_pwrseq0 = link && link->link_index == 0;
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c
593
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c
594
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
595
bool is_replay = link && link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
621
struct dc_link *link = context->streams[0]->sink->link;
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
622
bool is_pwrseq0 = link && link->link_index == 0;
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
623
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
624
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
625
bool is_replay = link && link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/dc/dml2_0/dml2_wrapper_fpu.c
372
if (!context->streams[0]->sink->link->dc->caps.is_apu) {
drivers/gpu/drm/amd/display/dc/dml2_0/dml2_wrapper_fpu.c
384
if (!context->streams[0]->sink->link->dc->caps.is_apu) {
drivers/gpu/drm/amd/display/dc/dml2_0/dml2_wrapper_fpu.c
392
if (!context->streams[0]->sink->link->dc->caps.is_apu) {
drivers/gpu/drm/amd/display/dc/dml2_0/dml2_wrapper_fpu.c
490
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
385
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
402
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
410
link,
drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c
416
link,
drivers/gpu/drm/amd/display/dc/hubp/dcn20/dcn20_hubp.c
1106
if (param->stream->link->psr_settings.psr_version >= DC_PSR_VERSION_SU_1 &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1000
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
1004
if (dal_graphics_object_id_get_connector_id(link->link_enc->connector)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1010
if (link->panel_cntl && !(link->dpcd_sink_ext_caps.bits.oled ||
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1011
link->dpcd_sink_ext_caps.bits.hdr_aux_backlight_control == 1 ||
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1012
link->dpcd_sink_ext_caps.bits.sdr_aux_backlight_control == 1)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1013
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
1034
cntl.transmitter = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1035
cntl.connector_obj_id = link->link_enc->connector;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1038
cntl.hpd_sel = link->link_enc->hpd_source;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1053
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1054
pwrseq_instance = (uint8_t)link->panel_cntl->pwrseq_inst;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1058
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1066
ctx->dc->link_srv->edp_receiver_ready_T7(link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1080
pwrseq_instance, link->link_powered_externally);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1084
pwrseq_instance, link->link_powered_externally);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1089
if (enable && link->dpcd_sink_ext_caps.bits.oled &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1090
!link->dc->config.edp_no_power_sequencing &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1091
!link->local_sink->edid_caps.panel_patch.oled_optimize_display_on) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1092
post_T7_delay += link->panel_config.pps.extra_post_t7_ms;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1096
if (link->dpcd_sink_ext_caps.bits.oled ||
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1097
link->dpcd_sink_ext_caps.bits.hdr_aux_backlight_control == 1 ||
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1098
link->dpcd_sink_ext_caps.bits.sdr_aux_backlight_control == 1)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1099
ctx->dc->link_srv->edp_backlight_enable_aux(link, enable);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1103
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1111
ctx->dc->link_srv->edp_add_delay_for_T9(link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1118
pre_T11_delay += link->panel_config.pps.extra_pre_t11_ms;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1140
link_hwss = get_link_hwss(pipe_ctx->stream->link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1179
link_hwss = get_link_hwss(pipe_ctx->stream->link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1204
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1206
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
1215
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1256
if (link->ext_enc_id.id)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1257
dce110_external_encoder_control(EXTERNAL_ENCODER_CONTROL_DISABLE, link, NULL);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1265
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1266
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1273
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, ¶ms);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1275
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1276
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1283
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1284
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1289
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1290
if (!link->skip_implict_edp_power_control && hws)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1291
hws->funcs.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1292
link->dc->hwss.set_abm_immediate_disable(pipe_ctx);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1295
if (link->dc->link_srv->dp_is_128b_132b_signal(pipe_ctx)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1300
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
1312
!link->dc->config.edp_no_power_sequencing) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1320
link->dc->link_srv->edp_receiver_ready_T9(link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1327
if (link->dc->res_pool->dccg &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1328
link->dc->res_pool->dccg->funcs->set_hdmistreamclk) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1329
link->dc->res_pool->dccg->funcs->set_hdmistreamclk(
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1330
link->dc->res_pool->dccg,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1369
const struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1372
dp_link_info->encoding = link->dc->link_srv->dp_get_encoding_format(
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1378
link_bw_kbps = dc_fixpt_from_int(dc_link_bandwidth_kbps(link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1385
link->dc->link_srv->dp_is_fec_supported(link)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1525
switch (pipe_ctx->stream->link->frl_link_settings.frl_link_rate) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1646
stream->link->phy_state.symclk_ref_cnts.otg = 1;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1647
if (stream->link->phy_state.symclk_state == SYMCLK_OFF_TX_OFF)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1648
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1650
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1682
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1688
link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1781
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
1789
((link->dc->config.smart_mux_version && link->dc->is_switch_in_progress_dest)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1790
|| link->is_dds || link->skip_implict_edp_power_control)) &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1816
pipe_ctx->stream->link->psr_settings.psr_feature_enabled = false;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1817
pipe_ctx->stream->link->replay_settings.replay_feature_enabled = false;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1829
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1830
struct link_encoder *link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1831
enum signal_type signal = link->connector_signal;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1833
dc->link_srv->blank_dp_stream(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1837
if (link->ep_type == DISPLAY_ENDPOINT_PHY && link_enc)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1840
if (link->fec_state == dc_link_fec_enabled) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1844
link->fec_state = dc_link_fec_not_ready;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1848
link->link_status.link_active = false;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
1849
memset(&link->cur_link_settings, 0, sizeof(link->cur_link_settings));
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2067
if (edp_link != edp_streams[0]->link)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2371
if (!pipe_ctx->stream->link)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2375
if (pipe_ctx->stream->link->connector_signal != SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2379
if (pipe_ctx->stream->link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2383
if (pipe_ctx->stream->link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2480
pipe_ctx_old->stream->link->phy_state.symclk_ref_cnts.otg = 0;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
2691
pipe_ctx->stream->link->link_state_valid) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3032
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3034
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3054
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3056
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3057
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3058
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3388
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3389
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3391
struct panel_cntl *panel_cntl = link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3413
link->panel_cntl->inst);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3421
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3425
pipe_ctx->stream->link->panel_cntl->inst);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3434
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3441
void dce110_enable_lvds_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3447
link->link_enc->funcs->enable_lvds_output(
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3448
link->link_enc,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3451
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3454
void dce110_enable_tmds_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3462
link->link_enc->funcs->enable_tmds_output(
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3463
link->link_enc,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3468
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3472
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3475
link->link_enc->funcs->enable_analog_output(
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3476
link->link_enc,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3481
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3487
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3490
link->dc->current_state->res_ctx.pipe_ctx;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3492
link->dc->res_pool->dp_clock_source;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3493
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3501
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3502
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3512
pipes[i].stream->link == link) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3527
if (link->ext_enc_id.id) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3528
dce110_external_encoder_control(EXTERNAL_ENCODER_CONTROL_INIT, link, NULL);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3529
dce110_external_encoder_control(EXTERNAL_ENCODER_CONTROL_SETUP, link, NULL);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3534
dc->clk_mgr->funcs->notify_link_rate_change(dc->clk_mgr, link);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3541
link_hwss->ext.enable_dp_link_output(link, link_res, signal,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3544
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3549
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
3552
void dce110_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3556
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3557
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3561
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3562
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3563
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3567
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3568
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
3576
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
669
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
672
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
673
struct dc_bios *bios = link->ctx->dc_bios;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
674
const struct dc_link_settings *link_settings = &link->cur_link_settings;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
678
.connector_obj_id = link->link_enc->connector,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
679
.encoder_id = link->ext_enc_id,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
684
.signal = link->connector_signal,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
703
dce110_prepare_ddc(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
705
if (link->ext_enc_id.id)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
706
dce110_external_encoder_control(EXTERNAL_ENCODER_CONTROL_DDC_SETUP, link, NULL);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
710
dce110_dac_load_detect(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
712
struct dc_bios *bios = link->ctx->dc_bios;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
713
struct link_encoder *link_enc = link->link_enc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
717
bios, link_enc->analog_engine, link->ext_enc_id);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
724
pipe_ctx->stream->link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
726
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
727
const struct dc *dc = link->dc;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
728
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
751
if (link->ext_enc_id.id)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
752
dce110_external_encoder_control(EXTERNAL_ENCODER_CONTROL_ENABLE, link, timing);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
771
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
774
struct graphics_object_id connector = link->link_enc->connector;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
780
DC_LOGGER_INIT(link->ctx);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
800
if (link->panel_config.pps.extra_t3_ms > 0) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
801
int extra_t3_in_ms = link->panel_config.pps.extra_t3_ms;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
809
if (!(link->dc->link_srv->get_hpd_state(link) ^ power_up)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
825
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
828
struct dc_context *ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
835
if (dal_graphics_object_id_get_connector_id(link->link_enc->connector)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
841
if (!link->panel_cntl)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
844
link->panel_cntl->funcs->is_panel_powered_on(link->panel_cntl)) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
851
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link)), 1000000);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
856
ctx->dc->link_srv->dp_trace_get_edp_poweron_timestamp(link)), 1000000);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
862
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link),
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
863
ctx->dc->link_srv->dp_trace_get_edp_poweron_timestamp(link),
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
873
if (link->local_sink != NULL)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
875
link->panel_config.pps.extra_t12_ms;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
878
if (ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link) != 0) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
910
cntl.transmitter = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
911
cntl.connector_obj_id = link->link_enc->connector;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
914
cntl.hpd_sel = link->link_enc->hpd_source;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
915
pwrseq_instance = (uint8_t)link->panel_cntl->pwrseq_inst;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
923
pwrseq_instance, link->link_powered_externally);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
927
pwrseq_instance, link->link_powered_externally);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
938
ctx->dc->link_srv->dp_trace_set_edp_power_timestamp(link, power_up);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
943
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link),
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
944
ctx->dc->link_srv->dp_trace_get_edp_poweron_timestamp(link));
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
958
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
960
struct dc_context *ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
962
if (dal_graphics_object_id_get_connector_id(link->link_enc->connector)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
968
if (!link->panel_cntl)
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
971
if (!link->panel_cntl->funcs->is_panel_powered_on(link->panel_cntl) &&
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
972
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link) != 0) {
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
979
ctx->dc->link_srv->dp_trace_get_edp_poweroff_timestamp(link)), 1000000);
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
981
t12_duration += link->panel_config.pps.extra_t12_ms; // Add extra T12
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
993
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
996
struct dc_context *ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
999
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.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
1257
stream->link->phy_state.symclk_ref_cnts.otg = 1;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1258
if (stream->link->phy_state.symclk_state == SYMCLK_OFF_TX_OFF)
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1259
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1261
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1334
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1341
link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1348
if (!pipe_ctx->stream->dpms_off || link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1381
pipe_ctx->stream->link->phy_state.symclk_ref_cnts.otg = 0;
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
1868
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1871
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1872
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1873
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1874
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1875
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1876
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1910
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1912
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1913
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1914
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1971
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1973
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
1974
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
2296
if (pipe->stream && should_use_dmub_inbox1_lock(dc, pipe->stream->link)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
3550
if (stream->link && stream->link->ddc) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
3552
stream->link->ddc->dongle_type;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4082
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4083
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4093
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, ¶ms);
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4096
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
4097
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
1223
if (stream->link->test_pattern_enabled)
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
1456
if (pipe->stream && should_use_dmub_inbox1_lock(dc, pipe->stream->link)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2767
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2768
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2783
if (link->dc->link_srv->dp_is_128b_132b_signal(pipe_ctx)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2794
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, ¶ms);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2802
if (link->link_status.link_active && link->frl_link_settings.frl_link_rate != 0)
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2807
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2808
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2830
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2831
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
2847
if (!pipe_ctx->stream->dpms_off || link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2888
link->phy_state.symclk_ref_cnts.otg = 0;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2889
if (link->phy_state.symclk_state == SYMCLK_ON_TX_OFF) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2890
link_hwss->disable_link_output(link,
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
2892
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3036
pipe_ctx->stream->link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3039
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3044
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
3055
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3067
phyd32clk = get_phyd32clk_src(link);
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3068
if (link->cur_link_settings.link_rate == LINK_RATE_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3077
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3078
&& link->cur_link_settings.link_rate == LINK_RATE_UNKNOWN
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3079
&& !link->link_status.link_active) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
3106
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
788
static enum phyd32clk_clock_source get_phyd32clk_src(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
790
switch (link->link_enc->transmitter) {
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
900
stream->link->phy_state.symclk_ref_cnts.otg = 1;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
901
if (stream->link->phy_state.symclk_state == SYMCLK_OFF_TX_OFF)
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
902
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
904
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, ¶ms);
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
1017
stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED &&
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
713
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
715
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
718
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
719
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
720
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
721
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
722
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
723
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
768
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
770
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
771
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
788
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
790
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
791
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
792
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
937
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
943
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
945
if ((!link->link_enc) ||
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
946
(!link->hpo_frl_link_enc) ||
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
951
link->hpo_frl_link_enc->funcs->enable_frl_phy_output(
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
952
link->hpo_frl_link_enc,
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
953
link->link_enc,
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
955
link->frl_link_settings.frl_link_rate);
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
956
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.h
76
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
165
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
167
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
170
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
173
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
174
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
175
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
176
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
177
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
178
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
230
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
232
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
233
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
234
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
531
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
541
link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
546
if ((!pipe_ctx->stream->dpms_off || link->link_status.link_active) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
547
(link->connector_signal == SIGNAL_TYPE_EDP)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
569
link->phy_state.symclk_ref_cnts.otg = 0;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
572
if (link->phy_state.symclk_state == SYMCLK_ON_TX_OFF) {
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
573
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
575
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
576
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
588
if (!pipe_ctx->stream->dpms_off || link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
599
((link->dc->config.smart_mux_version && link->dc->is_switch_in_progress_dest)
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
600
|| link->is_dds || link->skip_implict_edp_power_control)) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
727
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
394
&& pipe->stream->link && pipe->stream->link->link_enc
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
395
&& pipe->stream->link->link_enc->funcs->is_dig_enabled
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
396
&& 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
468
static void apply_symclk_on_tx_off_wa(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
485
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
489
if (link->phy_state.symclk_ref_cnts.otg > 0) {
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
492
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
499
link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
506
void dcn314_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
510
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
511
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
515
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
516
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
517
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
521
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
522
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c
530
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
532
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
1323
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1324
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1338
if (link->dc->link_srv->dp_is_128b_132b_signal(pipe_ctx)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1352
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, ¶ms);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1360
if (link->link_status.link_active && link->frl_link_settings.frl_link_rate != 0)
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1365
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1366
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1382
static void apply_symclk_on_tx_off_wa(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1399
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1403
if (link->phy_state.symclk_ref_cnts.otg > 0) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1406
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
1413
link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1420
void dcn32_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1424
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1425
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1429
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1430
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1431
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1435
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1436
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1445
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
1447
apply_symclk_on_tx_off_wa(link);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
1631
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
714
pipe->stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
851
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
853
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
856
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
857
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
858
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
859
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
860
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
861
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
862
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
932
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
934
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
935
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
952
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
954
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
955
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
956
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
1554
const struct dc *dc = pipe_ctx->stream->link->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1786
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
1788
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1794
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
1805
void dcn35_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1809
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1810
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1814
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1815
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1816
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1820
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
1821
disable_link_output_symclk_on_tx_off(link, DP_UNKNOWN_ENCODING);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1822
link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1824
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1825
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
1835
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
198
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
200
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
203
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
206
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
207
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
208
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
209
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
210
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
211
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
264
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
266
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
267
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
268
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
558
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
560
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
561
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
593
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
594
bool is_psr = link && !link->panel_config.psr.disable_psr &&
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
595
(link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
596
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1);
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
597
bool is_replay = link && link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
608
if (link && link->link_index != 0)
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.h
113
void dcn35_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.h
52
void dcn35_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1001
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1002
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
1013
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1021
if (link->cur_link_settings.link_rate == LINK_RATE_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1052
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
1073
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
1075
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1081
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
1092
void dcn401_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1096
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1097
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1101
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1102
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1103
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1107
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
1108
disable_link_output_symclk_on_tx_off(link, DP_UNKNOWN_ENCODING);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1109
link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1111
link_hwss->disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1112
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1116
link->dc->hwss.edp_backlight_control &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1117
!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1118
link->dc->hwss.edp_power_control(link, false);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1122
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
1306
(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
1360
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
1838
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1839
struct dce_hwseq *hws = link->dc->hwseq;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1848
if (link->dc->link_srv->dp_is_128b_132b_signal(pipe_ctx)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1853
pipe_ctx->stream_res.stream_enc->funcs->dp_unblank(link, pipe_ctx->stream_res.stream_enc, ¶ms);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1857
if (link->link_status.link_active && link->frl_link_settings.frl_link_rate != 0)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1862
if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
1863
hws->funcs.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2052
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2053
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
2066
if (!pipe_ctx->stream->dpms_off || link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2108
link->phy_state.symclk_ref_cnts.otg = 0;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2109
if (link->phy_state.symclk_state == SYMCLK_ON_TX_OFF) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
211
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2110
link_hwss->disable_link_output(link,
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
2112
link->phy_state.symclk_state = SYMCLK_OFF_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
213
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
216
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
219
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
220
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
221
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
222
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
223
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
224
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
225
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
295
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
297
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
299
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
300
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
317
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
319
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
320
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
321
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
324
if (link->ctx->dc->config.dp_connector_no_native_i2c && link->no_ddc_pin) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
3241
if (stream->link->test_pattern_enabled)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
329
if (link->ctx->dc_bios->funcs->get_i2c_info(dcb, link->link_id, &i2c_info) == BP_RESULT_OK) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
334
link->ctx->gpio_service,
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
4077
pipe->stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED &&
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
783
stream->link->phy_state.symclk_ref_cnts.otg = 1;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
784
if (stream->link->phy_state.symclk_state == SYMCLK_OFF_TX_OFF)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
785
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_OFF;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
787
stream->link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
941
static enum phyd32clk_clock_source get_phyd32clk_src(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
943
switch (link->link_enc->transmitter) {
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
970
pipe_ctx->stream->link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
975
*phyd32clk = get_phyd32clk_src(pipe_ctx->stream->link);
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/dcn42/dcn42_hwseq.c
131
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
133
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
136
link->link_enc->funcs->hw_init(link->link_enc);
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
139
if (link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
140
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
141
link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
142
link->phy_state.symclk_state = SYMCLK_ON_TX_ON;
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
143
if (link->link_enc->funcs->fec_is_active &&
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
144
link->link_enc->funcs->fec_is_active(link->link_enc))
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
145
link->fec_state = dc_link_fec_enabled;
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
1549
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
1551
if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
1552
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
204
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
206
if (link && link->link_enc &&
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
207
link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
208
link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
225
struct dc_link *link = dc->links[i];
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
227
if (link->panel_cntl) {
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
228
backlight = link->panel_cntl->funcs->hw_init(link->panel_cntl);
drivers/gpu/drm/amd/display/dc/hwss/dcn42/dcn42_hwseq.c
229
user_level = link->panel_cntl->stored_backlight_registers.USER_LEVEL;
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1231
void (*edp_power_control)(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1232
void (*edp_wait_for_hpd_ready)(struct dc_link *link, bool power_up);
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1233
void (*edp_wait_for_T12)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1267
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1407
void (*enable_dp_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1412
void (*enable_tmds_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1418
void (*enable_lvds_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1422
void (*enable_analog_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1424
void (*disable_link_output)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1427
bool (*dac_load_detect)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1428
void (*prepare_ddc)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
1433
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
2442
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
2457
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
861
struct dc_link *link;
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
881
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
233
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
356
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
195
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
199
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
153
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
160
void (*resume)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
163
void (*blank_dp_stream)(struct dc_link *link, bool hw_init);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
171
void (*wait_for_unlocked)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
199
bool (*dp_is_sink_present)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
200
bool (*dp_is_fec_supported)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
202
bool (*dp_get_max_link_enc_cap)(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
205
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
208
bool (*dp_should_enable_fec)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
216
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
217
bool (*edp_decide_link_settings)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
220
bool (*dp_overwrite_extended_receiver_cap)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
221
enum lttpr_mode (*dp_decide_lttpr_mode)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
223
uint8_t (*dp_get_lttpr_count)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
224
void (*edp_get_alpm_support)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
230
struct dc_link *link, int peak_bw);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
232
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
235
void (*dpcd_write_rx_power_ctrl)(struct dc_link *link, bool on);
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_should_allow_hpd_rx_irq)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
243
void (*dp_handle_link_loss)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
245
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
247
bool (*dp_handle_hpd_rx_irq)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
255
struct dc_link *link, bool wait_for_hpd);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
256
int (*edp_get_backlight_level)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
257
bool (*edp_get_backlight_level_nits)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
260
bool (*edp_set_backlight_level)(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
262
bool (*edp_set_backlight_level_nits)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
266
int (*edp_get_target_backlight_pwm)(const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
268
const struct dc_link *link, enum dc_psr_state *state);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
270
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
275
bool (*edp_setup_psr)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
280
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
284
const struct dc_link *link, uint32_t *residency, enum psr_residency_mode mode);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
287
const struct dc_link *link, uint64_t *state);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
291
bool (*edp_send_replay_cmd)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
295
struct dc_link *link, uint32_t coasting_vtotal, uint16_t frame_skip_number);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
296
bool (*edp_replay_residency)(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
299
bool (*edp_set_replay_power_opt_and_coasting_vtotal)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
302
bool (*edp_wait_for_t12)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
303
bool (*edp_is_ilr_optimization_required)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
305
bool (*edp_backlight_enable_aux)(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
306
void (*edp_add_delay_for_T9)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
307
bool (*edp_receiver_ready_T9)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
308
bool (*edp_receiver_ready_T7)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
309
bool (*edp_power_alpm_dpcd_enable)(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
310
bool (*dp_setup_replay)(struct dc_link *link, const struct dc_stream_state *stream);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
311
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
312
bool (*dp_pr_enable)(struct dc_link *link, bool enable);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
313
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
314
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
315
bool (*dp_pr_get_state)(const struct dc_link *link, uint64_t *state);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
316
void (*edp_set_panel_power)(struct dc_link *link, bool powerOn);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
320
bool (*hdmi_frl_poll_status_flag)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
322
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
326
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
330
void (*dp_handle_automated_test)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
332
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
340
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
344
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
349
bool (*dp_trace_is_initialized)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
350
void (*dp_trace_set_is_logged_flag)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
353
bool (*dp_trace_is_logged)(struct dc_link *link, bool in_detection);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
355
struct dc_link *link, bool in_detection);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
357
struct dc_link *link, bool in_detection);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
358
unsigned int (*dp_trace_get_link_loss_count)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
359
void (*dp_trace_set_edp_power_timestamp)(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/link_service.h
361
uint64_t (*dp_trace_get_edp_poweron_timestamp)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
362
uint64_t (*dp_trace_get_edp_poweroff_timestamp)(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/inc/link_service.h
364
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
611
bool get_temp_dp_link_res(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/resource.h
614
bool get_temp_frl_link_res(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/resource.h
630
const struct link_hwss *get_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/inc/resource.h
672
const struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
104
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
105
link->dc->res_pool->funcs->update_dc_state_for_encoder_switch(link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
112
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
117
link, &pipes[i]->link_res);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
129
if (link->dc->config.disable_hbr_audio_dp2 &&
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
131
link->dc->link_srv->dp_is_128b_132b_signal(pipes[i]))
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
139
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
140
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
150
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
155
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
163
static void dp_test_send_link_training(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
169
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
174
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
186
link->verified_link_cap.lane_count = link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
187
link->verified_link_cap.link_rate = link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
189
dp_retrain_link_dp_test(link, &link_settings, false);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
192
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
199
struct pipe_ctx *pipes = link->dc->current_state->res_ctx.pipe_ctx;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
207
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
213
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
229
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
236
link->audio_test_data.flags.test_requested = 1;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
237
link->audio_test_data.flags.disable_video = disable_video;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
238
link->audio_test_data.sampling_rate = (uint8_t)dpcd_test_mode.bits.sampling_rate;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
239
link->audio_test_data.channel_count = (uint8_t)channel_count;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
240
link->audio_test_data.pattern_type = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
244
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
253
static void dp_test_send_phy_test_pattern(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
275
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
280
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
286
link_training_settings.link_settings = link->cur_link_settings;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
288
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
290
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
293
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
303
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
324
test_pattern = (link->dc->caps.force_dp_tps4_for_cp2520 == 1) ?
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
330
test_pattern = (link->dc->caps.force_dp_tps4_for_cp2520 == 1) ?
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
386
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
395
link,
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
405
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
412
(unsigned int)(link->cur_link_settings.lane_count);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
416
if (link_dp_get_encoding_format(&link->cur_link_settings) ==
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
427
} else if (link_dp_get_encoding_format(&link->cur_link_settings) ==
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
447
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
455
static void set_crtc_test_pattern(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
471
resource_build_test_pattern_params(&link->dc->current_state->res_ctx,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
488
} else if (link->dc->hwss.set_disp_pattern_generator) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
504
link->dc->hwss.set_disp_pattern_generator(link->dc,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
528
} else if (link->dc->hwss.set_disp_pattern_generator) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
536
link->dc->hwss.set_disp_pattern_generator(link->dc,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
556
void dp_handle_automated_test(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
565
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
573
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
577
dp_test_send_link_training(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
595
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
599
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
604
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
609
dp_test_send_phy_test_pattern(link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
616
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
623
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
631
struct pipe_ctx *pipes = link->dc->current_state->res_ctx.pipe_ctx;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
646
pipes[i].stream->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
655
link->pending_test_pattern = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
658
if (link->test_pattern_enabled && test_pattern ==
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
661
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
662
dp_set_hw_test_pattern(link, &pipe_ctx->link_res, test_pattern,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
667
link->dc->hwss.unblank_stream(
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
669
&link->verified_link_cap);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
675
link->test_pattern_enabled = false;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
676
link->current_test_pattern = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
677
link->pending_test_pattern = DP_TEST_PATTERN_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
686
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
689
link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
693
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
695
dpcd_set_lane_settings(link, p_link_settings, DPRX);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
705
link->dc->hwss.blank_stream(pipe_ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
708
dp_set_hw_test_pattern(link, &pipe_ctx->link_res, test_pattern,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
71
struct dc_state *state = link->dc->current_state;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
714
link->test_pattern_enabled = true;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
715
link->current_test_pattern = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
716
link->pending_test_pattern = DP_TEST_PATTERN_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
718
dpcd_set_link_settings(link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
75
bool was_hpo_acquired = resource_is_hpo_acquired(link->dc->current_state);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
791
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_12) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
793
core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
807
core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
811
} else if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_10 ||
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
812
link->dpcd_caps.dpcd_rev.raw == 0) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
82
struct dc *dc = (struct dc *)link->dc;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
820
core_link_read_dpcd(link, DP_TRAINING_PATTERN_SET,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
824
core_link_write_dpcd(link, DP_TRAINING_PATTERN_SET,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
84
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
85
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
856
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
86
|| link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
863
dmub_hw_lock_mgr_cmd(link->ctx->dmub_srv,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
874
link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
890
link->dc->hwss.update_info_frame(pipe_ctx);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
894
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
90
link_get_master_pipes_with_dpms_on(link, state, &count, pipes);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
904
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
911
dmub_hw_lock_mgr_cmd(link->ctx->dmub_srv,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
921
link->test_pattern_enabled = true;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
922
link->current_test_pattern = test_pattern;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
923
link->pending_test_pattern = DP_TEST_PATTERN_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
931
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
938
link->preferred_link_setting = store_settings;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
944
if (!dc_is_dp_signal(link->connector_signal) ||
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
945
link->dongle_max_pix_clk > 0)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
950
if (pipe->stream && pipe->stream->link) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
951
if (pipe->stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
96
link->dc,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
967
dp_retrain_link_dp_test(link, &store_settings, false);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
973
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
977
link->preferred_training_settings = *lt_overrides;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
979
memset(&link->preferred_training_settings, 0, sizeof(link->preferred_training_settings));
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
982
link->preferred_link_setting = *link_setting;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
984
link->preferred_link_setting.lane_count = LANE_COUNT_UNKNOWN;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
985
link->preferred_link_setting.link_rate = LINK_RATE_UNKNOWN;
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
988
if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
989
link->type == dc_connection_mst_branch)
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
990
dm_helpers_dp_mst_update_branch_bandwidth(dc->ctx, link);
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
994
dp_set_preferred_link_settings(dc, &link->preferred_link_setting, 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
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
103
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
104
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
111
link->ddc_hw_inst,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
117
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
121
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
125
static void disable_dpia_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
130
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
132
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
133
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
136
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
140
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
147
link->dc->link_srv->dp_trace_source_sequence(link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
172
bool can_use_dpia_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
175
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
176
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
178
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
84
(void)link;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
90
static void enable_dpia_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
97
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dpia.c
99
if (!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
120
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
121
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
122
link->dc->res_pool->dccg,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
128
link->link_enc->transmitter,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
129
link->link_enc->hpd_source);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
132
void disable_hpo_dp_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
144
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
145
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
146
link->dc->res_pool->dccg,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
151
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
157
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
160
static void set_hpo_dp_lane_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
165
(void)link;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
172
void update_hpo_dp_stream_allocation_table(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
176
(void)link;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_dp.c
223
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
226
(void)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
101
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
103
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
105
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
108
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
109
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
112
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
115
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
116
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
119
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
123
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
130
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
138
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
139
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
140
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
143
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
144
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
153
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
155
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
160
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
165
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
170
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
177
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
183
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
185
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
186
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
196
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
203
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
205
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
226
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
228
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
93
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
95
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
97
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
99
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_hpo_frl.c
103
bool can_use_hpo_frl_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_frl.c
106
(void)link;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_frl.c
34
struct dc *dc = stream->link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_frl.c
53
&stream->link->frl_link_settings.borrow_params,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_frl.c
57
static void disable_hpo_frl_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_frl.c
63
link->hpo_frl_link_enc->funcs->disable_link_encoder(link->hpo_frl_link_enc);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_frl.c
64
link->link_enc->funcs->disable_output(link->link_enc, signal);
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_hpo_frl.h
30
bool can_use_hpo_frl_link_hwss(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_virtual.c
43
static void virtual_disable_link_output(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_virtual.c
47
(void)link;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1004
if (!link->ddc)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1007
if (link->dc->hwss.prepare_ddc)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1008
link->dc->hwss.prepare_ddc(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1010
set_ddc_transaction_type(link->ddc, transaction_type);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1012
ddc_probed = link_query_ddc_data(link->ddc, 0x50, &zero, 1, edid_header, sizeof(edid_header));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1035
static bool link_detect_dac_load_detect(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1037
if (!link->dc->hwss.dac_load_detect)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1040
return link->dc->hwss.dac_load_detect(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1050
static bool detect_link_and_local_sink(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1057
struct audio_support *aud_support = &link->dc->res_pool->audio_support;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1060
struct dc_context *dc_ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1068
if (dc_is_virtual_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1071
if (((link->connector_signal == SIGNAL_TYPE_LVDS ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1072
link->connector_signal == SIGNAL_TYPE_EDP) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1073
(!link->dc->config.allow_edp_hotplug_detection)) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1074
link->local_sink) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1076
if (link->connector_signal == SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1077
(link->dpcd_sink_ext_caps.bits.oled == 1)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1078
dpcd_set_source_specific_data(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1080
set_default_brightness_aux(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1086
if (!link_detect_connection_type(link, &new_connection_type)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1091
prev_sink = link->local_sink;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1094
memcpy(&prev_dpcd_caps, &link->dpcd_caps, sizeof(struct dpcd_caps));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1097
link_disconnect_sink(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1099
link->type = new_connection_type;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1100
link->link_state_valid = false;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1103
switch (link->connector_signal) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1139
detect_edp_sink_caps(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1140
read_current_link_settings_on_detect(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1146
link->dpcd_caps.sink_dev_id == DP_BRANCH_DEVICE_ID_0022B9 &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1147
memcmp(&link->dpcd_caps.branch_dev_name, DP_SINK_BRANCH_DEV_NAME_7580,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1148
sizeof(link->dpcd_caps.branch_dev_name)) == 0) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1151
if (!link->dpcd_caps.set_power_state_capable_edp)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1152
link->wa_flags.dp_keep_receiver_powered = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1163
if (link->ep_type == DISPLAY_ENDPOINT_PHY &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1164
link->link_enc->features.flags.bits.DP_IS_USB_C == 1) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1167
if (!wait_for_entering_dp_alt_mode(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1174
if (!detect_dp(link, &sink_caps, reason)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1182
if (link->type == dc_connection_sst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1183
link->dpcd_caps.sink_count.bits.SINK_COUNT == 0) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1191
if (link->type == dc_connection_sst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1192
is_dp_active_dongle(link) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1193
(link->dpcd_caps.dongle_type !=
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1198
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1199
link->reported_link_cap.link_rate > LINK_RATE_HIGH3)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1200
link->reported_link_cap.link_rate = LINK_RATE_HIGH3;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1202
if (link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dp_tunneling
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1203
&& link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.bits.dpia_bw_alloc
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1204
&& 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
1205
if (link_dpia_enable_usb4_dp_bw_alloc_mode(link) == false)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1206
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
1213
link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1219
if (link->dpcd_caps.sink_count.bits.SINK_COUNT)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1220
link->dpcd_sink_count =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1221
link->dpcd_caps.sink_count.bits.SINK_COUNT;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1223
link->dpcd_sink_count = 1;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1225
set_ddc_transaction_type(link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1228
link->aux_mode =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1229
link_is_in_aux_transaction_mode(link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1231
sink_init_data.link = link;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1242
sink->link->dongle_max_pix_clk = sink_caps.max_hdmi_pixel_clock;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1246
link->local_sink = sink;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1248
edid_status = dm_helpers_read_local_edid(link->ctx,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1249
link, sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1263
if (dc_connector_supports_analog(link->link_id.id)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1267
if (link->type != dc_connection_analog_load) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1270
link_disconnect_sink(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1275
link->link_index);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1277
link->type = dc_connection_analog_load;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1292
if (dc_is_hdmi_signal(link->connector_signal) ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1293
dc_is_dvi_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1300
if (link->type == dc_connection_sst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1301
link->dpcd_caps.dongle_type ==
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1310
link_disconnect_sink(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1327
link->ctx->dc->debug.hdmi20_disable = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1330
link->dpcd_sink_ext_caps.raw = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1332
if (dc_is_hdmi_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1333
read_scdc_caps(link->ddc, link->local_sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1335
if (dc_is_hdmi_signal(link->connector_signal) && dc->debug.enable_hdmi_idcc) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1336
memset(&link->hdmi_cable_id, 0, sizeof(union hdmi_idcc_cable_id));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1337
read_idcc_data(link->ddc, HDMI_IDCC_SCOPE_RW_CA,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1338
link->hdmi_cable_id.raw, 0, 4);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1341
hdmi_frl_write_read_request_enable(link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1347
link->ctx,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1348
link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1356
if (reason != DETECT_REASON_FALLBACK && dc_is_hdmi_signal(link->connector_signal) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1357
link->link_enc->features.flags.bits.IS_HDMI_FRL_CAPABLE && sink->edid_caps.max_frl_rate != 0) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1358
hdmi_frl_retrieve_link_cap(link, link->local_sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1362
if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1369
query_hdcp_capability(sink->sink_signal, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1373
link_disconnect_remap(prev_sink, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1381
query_hdcp_capability(sink->sink_signal, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1385
if ((link->link_id.id == CONNECTOR_ID_DUAL_LINK_DVII ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1386
link->link_id.id == CONNECTOR_ID_SINGLE_LINK_DVII) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1395
dc_is_dvi_signal(link->connector_signal) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1400
if (link->local_sink && dc_is_dp_signal(sink_caps.signal))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1401
dp_trace_init(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1405
CONN_DATA_DETECT(link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1444
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1447
dc_ctx->dc->res_pool->funcs->get_panel_config_defaults(&link->panel_config);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1449
dm_helpers_init_panel_settings(dc_ctx, &link->panel_config, sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1451
dm_helpers_override_panel_settings(dc_ctx, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1454
if (link->reported_link_cap.link_rate == LINK_RATE_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1455
link->panel_config.ilr.optimize_edp_link_rate = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1456
link->reported_link_cap.link_rate = get_max_edp_link_rate(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1461
link->type = dc_connection_none;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1463
memset(&link->hdcp_caps, 0, sizeof(struct hdcp_caps));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1469
link->dongle_max_pix_clk = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1471
dc_link_clear_dprx_states(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1472
dp_trace_reset(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1476
link->link_index, sink,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1498
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
1501
ASSERT(dc_connector_supports_analog(link->link_id.id));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1503
if (link_detect_ddc_probe(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1508
if (link_detect_dac_load_detect(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1524
bool link_detect_connection_type(struct dc_link *link, enum dc_connection_type *type)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1526
if (link->connector_signal == SIGNAL_TYPE_LVDS) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1539
if (dc_connector_supports_analog(link->link_id.id))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1540
return link_detect_connection_type_analog(link, type);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1542
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1544
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1545
link->dc->hwss.edp_power_control(link, true);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1546
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1550
if (link->ep_type != DISPLAY_ENDPOINT_PHY) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1551
if (link->is_hpd_pending || !dpia_query_hpd_status(link))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1560
if (link_get_hpd_state(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1565
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1567
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1568
link->dc->hwss.edp_power_control(link, false);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1575
bool link_detect(struct dc_link *link, enum dc_detect_reason reason)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1579
enum dc_connection_type pre_link_type = link->type;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1581
is_local_sink_detect_success = detect_link_and_local_sink(link, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1583
if (is_local_sink_detect_success && link->local_sink) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1584
verify_link_capability(link, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1588
link->link_index, is_local_sink_detect_success, pre_link_type, link->type);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1590
if (is_local_sink_detect_success && link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1591
dc_is_dp_signal(link->local_sink->sink_signal) &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1592
link->dpcd_caps.is_mst_capable)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1593
is_delegated_to_mst_top_mgr = discover_dp_mst_topology(link, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1596
link->type != dc_connection_mst_branch)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1597
is_delegated_to_mst_top_mgr = link_reset_cur_dp_mst_topology(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1602
void link_clear_dprx_states(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1604
memset(&link->dprx_states, 0, sizeof(link->dprx_states));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1607
bool link_is_hdcp14(struct dc_link *link, enum signal_type signal)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1614
ret = link->hdcp_caps.bcaps.bits.HDCP_CAPABLE;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1631
bool link_is_hdcp22(struct dc_link *link, enum signal_type signal)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1638
ret = (link->hdcp_caps.bcaps.bits.HDCP_CAPABLE &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1639
link->hdcp_caps.rx_caps.fields.byte0.hdcp_capable &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
164
static enum signal_type link_detect_sink_signal_type(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1640
(link->hdcp_caps.rx_caps.fields.version == 0x2)) ? 1 : 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1646
ret = (link->hdcp_caps.rx_caps.fields.version == 0x4) ? 1:0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1655
const struct dc_link_status *link_get_status(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1657
return &link->link_status;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1677
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1695
if (!init_data->link) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1709
link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1714
link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
172
if (link->ext_enc_id.id)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1734
void link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1738
if (!link->sink_count) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1743
for (i = 0; i < link->sink_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1744
if (link->remote_sinks[i] == sink) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1746
link->remote_sinks[i] = NULL;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1749
while (i < link->sink_count - 1) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
175
if (link->is_dig_mapping_flexible)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1750
link->remote_sinks[i] = link->remote_sinks[i+1];
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1753
link->remote_sinks[i] = NULL;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
1754
link->sink_count--;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
178
enc_id = link->link_enc->id;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
179
result = get_basic_signal_type(enc_id, link->link_id);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
182
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
198
switch (link->link_id.id) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
204
aud_support = &link->dc->res_pool->audio_support;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
221
if (!dm_helpers_is_dp_sink_present(link))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
270
if (ddc_service->link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
271
!ddc_service->link->local_sink->edid_caps.scdc_present)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
312
ddc->link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
332
struct dc_link *link = ddc->link;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
357
CONN_DATA_DETECT(link, type2_dongle_buf, sizeof(type2_dongle_buf),
drivers/gpu/drm/amd/display/dc/link/link_detection.c
406
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
414
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
421
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
438
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
445
CONN_DATA_DETECT(ddc->link, type2_dongle_buf,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
466
static void link_disconnect_sink(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
468
if (link->local_sink) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
469
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
470
link->local_sink = NULL;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
473
link->dpcd_sink_count = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
477
static void link_disconnect_remap(struct dc_sink *prev_sink, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
479
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
480
link->local_sink = prev_sink;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
483
static void query_hdcp_capability(enum signal_type signal, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
490
memset(link->hdcp_caps.rx_caps.raw, 0,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
491
sizeof(link->hdcp_caps.rx_caps.raw));
drivers/gpu/drm/amd/display/dc/link/link_detection.c
493
if ((link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
494
link->ddc->transaction_type ==
drivers/gpu/drm/amd/display/dc/link/link_detection.c
496
link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
497
msg22.data = link->hdcp_caps.rx_caps.raw;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
498
msg22.length = sizeof(link->hdcp_caps.rx_caps.raw);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
501
msg22.data = &link->hdcp_caps.rx_caps.fields.version;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
502
msg22.length = sizeof(link->hdcp_caps.rx_caps.fields.version);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
506
msg22.link = HDCP_LINK_PRIMARY;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
508
dc_process_hdcp_msg(signal, link, &msg22);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
511
msg14.data = &link->hdcp_caps.bcaps.raw;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
512
msg14.length = sizeof(link->hdcp_caps.bcaps.raw);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
515
msg14.link = HDCP_LINK_PRIMARY;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
518
dc_process_hdcp_msg(signal, link, &msg14);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
522
static void read_current_link_settings_on_detect(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
534
status = core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
544
link->cur_link_settings.lane_count =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
553
core_link_read_dpcd(link, DP_LINK_BW_SET,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
557
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
56
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/link_detection.c
561
core_link_read_dpcd(link, DP_LINK_RATE_SET,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
565
if (link_rate_set < link->dpcd_caps.edp_supported_link_rates_count) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
566
link->cur_link_settings.link_rate =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
567
link->dpcd_caps.edp_supported_link_rates[link_rate_set];
drivers/gpu/drm/amd/display/dc/link/link_detection.c
568
link->cur_link_settings.link_rate_set = link_rate_set;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
569
link->cur_link_settings.use_link_rate_set = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
576
link->cur_link_settings.link_rate = link_bw_set;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
577
link->cur_link_settings.use_link_rate_set = false;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
580
core_link_read_dpcd(link, DP_MAX_DOWNSPREAD,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
582
link->cur_link_settings.link_spread =
drivers/gpu/drm/amd/display/dc/link/link_detection.c
587
static bool detect_dp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
591
struct audio_support *audio_support = &link->dc->res_pool->audio_support;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
593
sink_caps->signal = link_detect_sink_signal_type(link, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
599
if (!detect_dp_sink_caps(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
603
if (is_dp_branch_device(link))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
605
link->type = dc_connection_sst_branch;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
607
if (link->dc->debug.disable_dp_plus_plus_wa &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
608
link->link_enc->features.flags.bits.IS_UHBR20_CAPABLE)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
612
sink_caps->signal = dp_passive_dongle_detection(link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
615
link->dpcd_caps.dongle_type = sink_caps->dongle_type;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
616
link->dpcd_caps.is_dongle_type_one = sink_caps->is_dongle_type_one;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
617
link->dpcd_caps.dpcd_rev.raw = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
618
link->dpcd_caps.usb4_dp_tun_info.dp_tun_cap.raw = 0;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
621
if (link->ext_enc_id.id) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
623
link->dpcd_caps.sink_count.bits.SINK_COUNT = 1;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
625
if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_00001A)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
626
link->wa_flags.dp_skip_rbr = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
647
static bool wait_for_entering_dp_alt_mode(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
667
if (!link->link_enc->funcs->is_in_alt_mode)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
670
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
671
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
676
enter_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
681
if (link->link_enc->funcs->is_in_alt_mode(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
682
finish_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
684
dm_get_elapse_time_in_ns(link->ctx,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
692
finish_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
693
time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx, finish_timestamp,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
700
static void apply_dpia_mst_dsc_always_on_wa(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
705
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
706
link->type == dc_connection_mst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
707
link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_90CC24 &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
708
link->dpcd_caps.branch_hw_revision == DP_BRANCH_HW_REV_20 &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
709
link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
710
!link->dc->debug.dpia_debug.bits.disable_mst_dsc_work_around)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
711
link->wa_flags.dpia_mst_dsc_always_on = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
713
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
714
link->type == dc_connection_mst_branch &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
715
link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_90CC24 &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
716
link->dpcd_caps.branch_vendor_specific_data[2] == MST_HUB_ID_0x5A &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
717
link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
718
!link->dc->debug.dpia_debug.bits.disable_mst_dsc_work_around) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
719
link->wa_flags.dpia_mst_dsc_always_on = true;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
723
static void revert_dpia_mst_dsc_always_on_wa(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
726
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
727
link->wa_flags.dpia_mst_dsc_always_on = false;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
730
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
733
link->link_index);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
735
link->type = dc_connection_mst_branch;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
736
apply_dpia_mst_dsc_always_on_wa(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
738
dm_helpers_dp_update_branch_info(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
739
if (dm_helpers_dp_mst_start_top_mgr(link->ctx,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
740
link, (reason == DETECT_REASON_BOOT || reason == DETECT_REASON_RESUMEFROMS3S4))) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
741
link_disconnect_sink(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
743
link->type = dc_connection_sst_branch;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
746
return link->type == dc_connection_mst_branch;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
749
bool link_reset_cur_dp_mst_topology(struct dc_link *link)
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
774
static bool is_hdmi_frl_in_use(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
783
for (i = 0; i < link->dc->link_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
784
if (link->dc->links[i] != NULL &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
785
dc_is_hdmi_signal(link->dc->links[i]->connector_signal))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
793
for (i = 0; i < link->dc->current_state->stream_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
794
if (dc_is_hdmi_signal(link->dc->current_state->streams[i]->signal))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
796
if (link == link->dc->current_state->streams[i]->link &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
797
(dc_is_hdmi_frl_signal(link->dc->current_state->streams[i]->signal)))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
802
for (i = 0; i < link->dc->current_state->stream_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
804
link->dc->current_state->streams[i]->signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
813
for (i = 0; i < link->dc->link_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
814
if (link->dc->links[i] != NULL &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
815
link->dc->links[i]->local_sink != NULL &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
816
link != link->dc->links[i] &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
818
link->dc->links[i]->local_sink->sink_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
839
static void verify_link_capability_destructive(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
843
should_prepare_phy_clocks_for_link_verification(link->dc, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
846
prepare_phy_clocks_for_destructive_link_verification(link->dc);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
848
if (dc_is_dp_signal(link->local_sink->sink_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
850
dp_get_max_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
851
link_set_all_streams_dpms_off_for_link(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
853
link, &known_limit_link_setting,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
855
} else if (dc_is_hdmi_signal(link->local_sink->sink_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
856
if (!is_hdmi_frl_in_use(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
857
link_set_all_streams_dpms_off_for_link(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
858
hdmi_frl_verify_link_cap(link, &link->frl_reported_link_cap);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
859
link->local_sink->sink_signal = (link->frl_verified_link_cap.frl_link_rate != HDMI_FRL_LINK_RATE_DISABLE)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
862
link->local_sink->sink_signal = SIGNAL_TYPE_HDMI_TYPE_A;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
863
link->frl_verified_link_cap.frl_link_rate = HDMI_FRL_LINK_RATE_DISABLE;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
870
restore_phy_clocks_for_destructive_link_verification(link->dc);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
873
static void verify_link_capability_non_destructive(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
875
if (dc_is_dp_signal(link->local_sink->sink_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
876
if (dc_is_embedded_signal(link->local_sink->sink_signal) ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
877
link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
881
link->verified_link_cap = link->reported_link_cap;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
883
link->verified_link_cap = dp_get_max_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
884
} else if (dc_is_hdmi_signal(link->local_sink->sink_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
885
link->verified_link_cap = link->reported_link_cap;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
887
if (is_hdmi_frl_in_use(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
888
link->local_sink->sink_signal = SIGNAL_TYPE_HDMI_TYPE_A;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
889
link->frl_verified_link_cap.frl_link_rate = HDMI_FRL_LINK_RATE_DISABLE;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
894
static bool should_verify_link_capability_destructively(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
902
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
903
is_link_enc_unavailable = link->link_enc &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
904
link->dc->res_pool->funcs->link_encs_assign &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
906
link->ctx->dc,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
907
link->link_enc->preferred_engine,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
908
link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
910
if (dc_is_dp_signal(link->local_sink->sink_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
911
max_link_cap = dp_get_max_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
914
if (link->dc->debug.skip_detection_link_training ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
915
dc_is_embedded_signal(link->local_sink->sink_signal) ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
916
(link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
917
!link->dc->config.enable_dpia_pre_training)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
921
if (link->dpcd_caps.is_mst_capable ||
drivers/gpu/drm/amd/display/dc/link/link_detection.c
926
} else if (dc_is_hdmi_signal(link->local_sink->sink_signal) && link->link_enc &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
927
link->link_enc->features.flags.bits.IS_HDMI_FRL_CAPABLE &&
drivers/gpu/drm/amd/display/dc/link/link_detection.c
928
link->local_sink->edid_caps.max_frl_rate != 0) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
931
link->dc->current_state->res_ctx.pipe_ctx;
drivers/gpu/drm/amd/display/dc/link/link_detection.c
934
if (is_hdmi_frl_in_use(link)) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
936
} else if (link->dc->config.skip_frl_pretraining) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
939
pipes[i].stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
941
if (link->link_status.link_active) {
drivers/gpu/drm/amd/display/dc/link/link_detection.c
952
static void verify_link_capability(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_detection.c
955
if (should_verify_link_capability_destructively(link, reason))
drivers/gpu/drm/amd/display/dc/link/link_detection.c
956
verify_link_capability_destructive(link, reason);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
958
verify_link_capability_non_destructive(link);
drivers/gpu/drm/amd/display/dc/link/link_detection.c
996
static bool link_detect_ddc_probe(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_detection.c
998
enum signal_type signal = link_detect_sink_signal_type(link, DETECT_REASON_HPD);
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
1005
core_link_read_dpcd(link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1014
core_link_write_dpcd(link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1023
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
1027
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1047
if (link->type == dc_connection_mst_branch)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1066
uint32_t link_rate_in_mbytes_per_sec = dp_link_bandwidth_kbps(stream->link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1067
&stream->link->cur_link_settings);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1120
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1133
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1145
static bool poll_for_allocation_change_trigger(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1153
enum dc_connection_type display_connected = (link->type != dc_connection_none);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1157
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1159
if (!display_connected || link->aux_access_disabled)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1162
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
1164
if (!dp_is_cr_done(link->cur_link_settings.lane_count, dpcd_lane_status) ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1165
!dp_is_ch_eq_done(link->cur_link_settings.lane_count, dpcd_lane_status) ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1166
!dp_is_symbol_locked(link->cur_link_settings.lane_count, dpcd_lane_status) ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1174
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1197
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1210
link->mst_stream_alloc_table.stream_count < 2);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1215
for (j = 0; j < link->mst_stream_alloc_table.stream_count; j++) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1217
&link->mst_stream_alloc_table.stream_allocations[j];
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1229
if (j == link->mst_stream_alloc_table.stream_count) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1240
link->mst_stream_alloc_table.stream_count =
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1243
link->mst_stream_alloc_table.stream_allocations[i] =
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1248
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1254
&link->mst_stream_alloc_table;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
126
void link_blank_dp_stream(struct dc_link *link, bool hw_init)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1276
static void print_mst_streams(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1280
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1284
link->mst_stream_alloc_table.stream_count);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1288
(void *) link->mst_stream_alloc_table.stream_allocations[i].stream_enc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
129
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1290
(void *) link->mst_stream_alloc_table.stream_allocations[i].hpo_dp_stream_enc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1292
link->mst_stream_alloc_table.stream_allocations[i].vcp_id);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1294
link->mst_stream_alloc_table.stream_allocations[i].slot_count);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
130
enum signal_type signal = link->connector_signal;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1301
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1304
bool mst_mode = (link->type == dc_connection_mst_branch);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1305
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1307
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1334
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
134
if (link->ep_type == DISPLAY_ENDPOINT_PHY &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1345
remove_stream_from_alloc_table(link, pipe_ctx->stream_res.stream_enc,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1349
print_mst_streams(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
135
link->link_enc->funcs->get_dig_frontend &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1353
link_dp_get_encoding_format(&link->cur_link_settings) == DP_UNKNOWN_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1358
link_hwss->ext.update_stream_allocation_table(link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1359
&link->mst_stream_alloc_table);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
136
link->link_enc->funcs->is_dig_enabled(link->link_enc)) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
137
int fe = link->link_enc->funcs->get_dig_frontend(link->link_enc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1379
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1385
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1386
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1400
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1408
print_mst_streams(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1414
link_dp_get_encoding_format(&link->cur_link_settings) == DP_UNKNOWN_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1419
link_hwss->ext.update_stream_allocation_table(link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
142
dc->res_pool->stream_enc[j]->funcs->dp_blank(link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1421
&link->mst_stream_alloc_table);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1442
log_vcp_x_y(link, avg_time_slots_per_mtp);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1448
&link->cur_link_settings,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1456
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1460
dp_link_bandwidth_kbps(link, &link->cur_link_settings));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1466
dc_link_get_highest_encoding_format(link)));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1476
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1488
enum dc_connection_type display_connected = (link->type != dc_connection_none);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1489
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
149
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
1492
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
150
(link->type != dc_connection_none))
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1506
if (!display_connected || link->aux_access_disabled)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
151
dpcd_write_rx_power_ctrl(link, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1512
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1520
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1527
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1533
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1543
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
155
void link_set_all_streams_dpms_off_for_link(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1556
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1586
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
159
struct dc_state *state = link->dc->current_state;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1590
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1591
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1597
log_vcp_x_y(link, avg_time_slots_per_mtp);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1611
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1634
link_hwss->ext.update_stream_allocation_table(link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1638
if (!poll_for_allocation_change_trigger(link)) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1644
if (allocate && link_dp_get_encoding_format(&link->cur_link_settings) ==
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1646
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
1648
log_vcp_x_y(link, avg_time_slots_per_mtp);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1655
&link->cur_link_settings,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1668
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1673
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1674
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1685
&link->cur_link_settings,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
169
link_get_master_pipes_with_dpms_on(link, state, &count, pipes);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1701
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1710
print_mst_streams(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1716
link_dp_get_encoding_format(&link->cur_link_settings) == DP_UNKNOWN_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1721
link_hwss->ext.update_stream_allocation_table(link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1722
&link->mst_stream_alloc_table);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1735
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1741
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1742
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1752
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1758
print_mst_streams(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1764
link_dp_get_encoding_format(&link->cur_link_settings) == DP_UNKNOWN_ENCODING) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1769
link_hwss->ext.update_stream_allocation_table(link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1770
&link->mst_stream_alloc_table);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1793
&link->cur_link_settings,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1799
static void disable_link_dp(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1803
struct dc_link_settings link_settings = link->cur_link_settings;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1806
link->mst_stream_alloc_table.stream_count > 0)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
181
dc_commit_updates_for_stream(link->ctx->dc, NULL, 0,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1810
dp_disable_link_phy(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1812
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1813
if (!link->skip_implict_edp_power_control)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1814
link->dc->hwss.edp_power_control(link, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1817
if (signal == SIGNAL_TYPE_DISPLAY_PORT_MST && link->sink_count == 0)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1819
enable_mst_on_sink(link, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1823
dp_set_fec_enable(link, link_res, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1824
dp_set_fec_ready(link, link_res, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1828
static void disable_link(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1833
disable_link_dp(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1835
link->dc->hwss.disable_link_output(link, link_res, SIGNAL_TYPE_DISPLAY_PORT);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1837
link->dc->hwss.disable_link_output(link, link_res, signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1842
if (link->mst_stream_alloc_table.stream_count <= 0)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1843
link->link_status.link_active = false;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1845
link->link_status.link_active = false;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1852
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1860
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1872
unsigned short masked_chip_caps = pipe_ctx->stream->link->chip_caps &
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1879
write_i2c_retimer_setting(link, is_vga_mode, is_over_340mhz, &settings);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1881
write_i2c_default_retimer_setting(link, is_vga_mode, is_over_340mhz);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1885
write_i2c_redriver_setting(link, is_over_340mhz);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
189
if (dc_is_dp_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1891
stream->link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1899
write_idcc_data(stream->link->ddc, HDMI_IDCC_SCOPE_WRITE,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
190
dp_disable_link_phy(link, &link_res, link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1902
memset(&stream->link->cur_link_settings, 0,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1916
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1924
read_scdc_data(link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
193
void link_resume(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1938
if ((!stream->link->link_enc) ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1939
(!stream->link->hpo_frl_link_enc) ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1945
hdmi_frl_decide_link_settings(stream, &stream->link->frl_link_settings, &pipe_ctx->dsc_padding_params);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1947
switch (stream->link->frl_link_settings.frl_link_rate) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
195
if (link->connector_signal != SIGNAL_TYPE_VIRTUAL)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
196
program_hpd_filter(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1979
memset(&stream->link->cur_link_settings, 0,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1983
frl_phy_clock_source_id = hdmi_frl_find_matching_phypll(stream->link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1987
core_dc->hwss.setup_hdmi_frl_link(stream->link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
1991
link_stat = hdmi_frl_perform_link_training_with_retries(stream->link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2002
stream->link->hpo_frl_link_enc->funcs->enable_output(
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2003
stream->link->hpo_frl_link_enc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2004
if (stream->link->frl_flags.apply_vsdb_rcc_wa)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2005
stream->link->hpo_frl_link_enc->funcs->apply_vsdb_rcc_wa(stream->link->hpo_frl_link_enc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2007
hdmi_frl_poll_start(stream->link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
202
static bool is_master_pipe_for_link(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2024
stream->link->frl_link_settings.frl_link_rate = 0;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2036
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2049
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
206
pipe->stream->link == link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2064
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2065
!link->dc->config.enable_dpia_pre_training)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2074
link->dc->debug.set_mst_en_for_sst) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2075
enable_mst_on_sink(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2076
} else if (link->dpcd_caps.is_mst_capable &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2079
enable_mst_on_sink(link, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2084
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2085
link->dc->hwss.edp_power_control(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2086
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2100
dpcd_set_source_specific_data(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2101
if (link->dpcd_sink_ext_caps.raw != 0) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2102
post_oui_delay += link->panel_config.pps.extra_post_OUI_ms;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2107
dpcd_write_cable_id_to_dprx(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2115
set_default_brightness_aux(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2128
if (link->preferred_training_settings.fec_enable)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2129
fec_enable = *link->preferred_training_settings.fec_enable;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
213
void link_get_master_pipes_with_dpms_on(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2134
dp_set_fec_enable(link, &pipe_ctx->link_res, fec_enable);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2137
if (link->dpcd_sink_ext_caps.bits.oled == 1 ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2138
link->dpcd_sink_ext_caps.bits.sdr_aux_backlight_control == 1 ||
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2139
link->dpcd_sink_ext_caps.bits.hdr_aux_backlight_control == 1) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2141
set_default_brightness_aux(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2142
if (link->dpcd_sink_ext_caps.bits.oled == 1)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2144
edp_backlight_enable_aux(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2146
edp_backlight_enable_aux(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2163
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2169
memset(&stream->link->cur_link_settings, 0,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2172
link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2183
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2189
if (link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2193
core_link_read_dpcd(link, DP_MSTM_CTRL, &mstm_cntl, 1);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2195
dm_helpers_dp_mst_clear_payload_allocation_table(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2200
dm_helpers_dp_mst_poll_pending_down_reply(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2203
enable_mst_on_sink(link, true);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2210
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2212
link->dc->hwss.enable_analog_link_output(
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2213
link, pipe_ctx->stream->timing.pix_clk_100hz);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2220
struct dc_link *link = pipe_ctx->stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2222
link->dc->hwss.enable_dp_link_output(link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2236
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2240
link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2248
if (link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2249
disable_link(link, &pipe_ctx->link_res, pipe_ctx->stream->signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
225
if (is_master_pipe_for_link(link, pipe) &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2269
if (link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2270
link->local_sink->edid_caps.panel_patch.delay_hdmi_link_training &&
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2272
msleep(link->local_sink->edid_caps.panel_patch.delay_hdmi_link_training);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2291
pipe_ctx->stream->link->link_status.link_active = true;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2299
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2302
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2304
if (!link->dpia_bw_alloc_config.bw_alloc_enabled)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2311
for (i = 0; i < link->sink_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2312
if (link->remote_sinks[i] == NULL)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2315
if (stream->sink->sink_id != link->remote_sinks[i]->sink_id) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2317
(const char *)(&link->remote_sinks[i]->edid_caps.display_name[0]),
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2318
link->dpia_bw_alloc_config.remote_sink_req_bw[i]);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2320
req_bw += link->dpia_bw_alloc_config.remote_sink_req_bw[i];
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2326
link->dpia_bw_alloc_config.remote_sink_req_bw[sink_index] = stream_bw;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2332
link->dpia_bw_alloc_config.dp_overhead = link_dpia_get_dp_overhead(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2333
req_bw += link->dpia_bw_alloc_config.dp_overhead;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2335
link->dpia_bw_alloc_config.dp_overhead = 0;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2338
link_dp_dpia_allocate_usb4_bandwidth_for_stream(link, req_bw);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2348
dc_link_get_highest_encoding_format(stream->sink->link));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2368
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2370
enum dp_panel_mode panel_mode_dp = dp_get_panel_mode(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2374
ASSERT(is_master_pipe_for_link(link, pipe_ctx));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2388
pipe_ctx->stream->signal, link->link_index, link->sink_count);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2392
link_wait_for_unlocked(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2417
unsigned short masked_chip_caps = link->chip_caps &
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2421
link->ddc,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2427
write_i2c_retimer_setting(link, false, false, &settings);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2429
write_i2c_default_retimer_setting(link, false, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2432
write_i2c_redriver_setting(link, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2446
disable_link(pipe_ctx->stream->link, &pipe_ctx->link_res, pipe_ctx->stream->signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2450
disable_link(pipe_ctx->stream->link, &pipe_ctx->link_res, pipe_ctx->stream->signal);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2452
edp_set_panel_assr(link, pipe_ctx, &panel_mode_dp, false);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2469
if (link->connector_signal == SIGNAL_TYPE_EDP && dc->debug.psp_disabled_wa) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2471
enum dp_panel_mode panel_mode = dp_get_panel_mode(pipe_ctx->stream->link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2473
link->panel_mode = panel_mode;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2483
struct dc_link *link = stream->sink->link;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2488
const struct link_hwss *link_hwss = get_link_hwss(link, &pipe_ctx->link_res);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2494
ASSERT(is_master_pipe_for_link(link, pipe_ctx));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2509
link->link_index,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2510
link->sink_count);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2514
link_wait_for_unlocked(stream->link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2516
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2528
pipe_ctx->stream->link->link_state_valid = true;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2531
hdmi_frl_decide_link_settings(stream, &stream->link->frl_link_settings, &pipe_ctx->dsc_padding_params);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2555
dp_trace_source_sequence(link, DPCD_SOURCE_SEQ_AFTER_UPDATE_INFO_FRAME);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2579
if (link->is_dds) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2582
dpcd_set_source_specific_data(link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2596
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && link->is_hpd_pending) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2597
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
2613
if (link->replay_settings.config.replay_supported && !dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2614
dp_setup_replay(link, stream);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2620
pipe_ctx->stream->link->link_index,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2631
if (false == stream->link->link_status.link_active)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2632
disable_link(stream->link, &pipe_ctx->link_res,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2694
link->is_display_mux_present)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
2698
&pipe_ctx->stream->link->cur_link_settings);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
333
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
349
.speed = link->ctx->dc->caps.i2c_speed_in_khz,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
352
return dm_helpers_submit_i2c(link->ctx, link, &cmd);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
356
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
362
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
364
const bool success = write_i2c(link, address, buffer, sizeof(buffer));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
374
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
378
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
386
if (!write_i2c_retimer_offset_value(link, address, vga_data[i][0], vga_data[i][1])) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
395
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
401
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
407
if (!write_i2c_retimer_offset_value(link, address, index, value)) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
422
link->ddc, address, &offset, 1, &value, 1
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
430
if (!write_i2c_retimer_offset_value(link, address, offset, value)) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
439
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
444
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
451
if (!write_i2c_retimer_byte(link, address, index, value)) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
462
if (!write_i2c_retimer_byte(link, address, index, value)) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
470
return write_i2c_retimer_vga(link, address);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
476
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
482
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
494
if (!write_i2c_retimer_offset_value(link, address, data[i][0], data[i][1])) {
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
501
return write_i2c_retimer_vga(link, address);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
507
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
510
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
519
const bool success = write_i2c(link, address, buffer, sizeof(buffer));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
537
dp_get_panel_mode(pipe_ctx->stream->link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
542
link_enc = link_enc_cfg_get_link_enc(pipe_ctx->stream->link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
565
config.dig_be = pipe_ctx->stream->link->link_enc_hw_inst;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
574
config.link_enc_idx = (uint8_t)pipe_ctx->stream->link->hpo_frl_link_enc->inst;
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
577
if (pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
578
config.dio_output_idx = (uint8_t)(pipe_ctx->stream->link->link_id.enum_id - ENUM_ID_1);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
585
pipe_ctx->stream->link->dc, link_enc->transmitter);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
586
if (pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
596
config.usb4_enabled = (pipe_ctx->stream->link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) ?
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
606
void link_wait_for_unlocked(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
613
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
615
enter_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
617
while (link->is_link_locked) { // busy wait
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
619
DC_LOG_DC("%s: 0x%p ...", __func__, link);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
630
finish_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
631
time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx,
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
635
link, div_u64(time_taken_in_ns, 1000000));
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
651
static void enable_mst_on_sink(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
655
core_link_read_dpcd(link, DP_MSTM_CTRL, &mstmCntl, 1);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
661
core_link_write_dpcd(link, DP_MSTM_CTRL, &mstmCntl, 1);
drivers/gpu/drm/amd/display/dc/link/link_dpms.c
999
struct dc_link *link = stream->link;
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_dpms.h
53
void link_wait_for_unlocked(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
1000
link_destruct(*link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
1001
kfree(*link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
1002
*link = NULL;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
406
static void link_destruct(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
410
if (link->ddc)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
411
link_destroy_ddc_service(&link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
413
if (link->panel_cntl)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
414
link->panel_cntl->funcs->destroy(&link->panel_cntl);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
416
if (link->link_enc && !link->is_dig_mapping_flexible) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
421
if (link->link_id.id != CONNECTOR_ID_VIRTUAL && link->eng_id != ENGINE_ID_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
422
link->dc->res_pool->link_encoders[link->eng_id - ENGINE_ID_DIGA] = NULL;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
423
link->dc->res_pool->dig_link_enc_count--;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
425
link->link_enc->funcs->destroy(&link->link_enc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
428
if (link->hpo_frl_link_enc)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
429
link->hpo_frl_link_enc->funcs->destroy(&link->hpo_frl_link_enc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
430
if (link->local_sink)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
431
dc_sink_release(link->local_sink);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
433
for (i = 0; i < link->sink_count; ++i)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
434
dc_sink_release(link->remote_sinks[i]);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
437
static enum channel_id get_ddc_line(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
444
if (link->ctx->dc->config.dp_connector_no_native_i2c && link->no_ddc_pin) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
445
channel = link->aux_hw_inst + 1;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
447
ddc = get_ddc_pin(link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
484
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
486
struct dc_bios *bp = link->ctx->dc_bios;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
491
bp_result = bp->funcs->get_src_obj(bp, link->link_id, i, enc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
516
static bool construct_phy(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
533
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
534
link->irq_source_hpd_rx = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
535
link->irq_source_read_request = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
536
link->link_status.dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
538
link->dc = init_params->dc;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
539
link->ctx = dc_ctx;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
540
link->link_index = init_params->link_index;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
542
memset(&link->preferred_training_settings, 0,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
544
memset(&link->preferred_link_setting, 0,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
547
link->link_id =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
550
link->ep_type = DISPLAY_ENDPOINT_PHY;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
552
DC_LOG_DC("BIOS object table - link_id: %d", link->link_id.id);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
557
bp_funcs->get_src_obj(bios, link->link_id, 0, &link_encoder);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
561
link->ext_enc_id = link_encoder;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
562
bp_funcs->get_src_obj(bios, link->ext_enc_id, 0, &link_encoder);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
566
link_analog_engine = find_analog_engine(link, &enc_init_data.analog_encoder);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
570
DC_LOG_WARNING("link_id %d has unsupported encoder\n", link->link_id.id);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
575
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
576
link->is_internal_display = (disp_connect_caps_info.INTERNAL_DISPLAY != 0);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
577
DC_LOG_DC("BIOS object table - is_internal_display: %d", link->is_internal_display);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
578
link->no_ddc_pin = disp_connect_caps_info.NO_DDC_PIN != 0;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
581
if (link->link_id.type != OBJECT_TYPE_CONNECTOR) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
584
link->link_id.type, OBJECT_TYPE_CONNECTOR);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
588
if (link->dc->res_pool->funcs->link_init)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
589
link->dc->res_pool->funcs->link_init(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
591
ddc_service_init_data.ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
592
ddc_service_init_data.id = link->link_id;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
593
ddc_service_init_data.link = link;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
594
link->ddc = link_create_ddc_service(&ddc_service_init_data);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
596
if (!link->ddc) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
601
if (link->ctx->dc->config.dp_connector_no_native_i2c && link->no_ddc_pin) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
602
link->ddc_hw_inst = link->aux_hw_inst;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
605
if (!link->ddc->ddc_pin &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
606
!dc_is_embedded_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
611
link->ddc_hw_inst =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
612
dal_ddc_get_line(get_ddc_pin(link->ddc));
drivers/gpu/drm/amd/display/dc/link/link_factory.c
616
enc_init_data.connector = link->link_id;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
617
enc_init_data.channel = get_ddc_line(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
621
if (link->ctx->dce_version <= DCN_VERSION_4_01)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
622
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
623
link->ctx->gpio_service);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
629
link->irq_source_hpd = dal_irq_get_source(enc_init_data.hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
630
enc_init_data.hpd_source = get_hpd_line(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
631
link->hpd_src = enc_init_data.hpd_source;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
638
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
639
link->hpd_src = hpd_info.hpd_int_gpio_uid - 1;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
640
link->irq_source_hpd = DC_IRQ_SOURCE_HPD1 + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
641
enc_init_data.hpd_source = link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
649
link->link_enc =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
650
link->dc->res_pool->funcs->link_enc_create(dc_ctx, &enc_init_data);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
652
if (!link->link_enc) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
657
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
658
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
659
DC_LOG_DC("BIOS object table - IS_HDMI_FRL_CAPABLE: %d", link->link_enc->features.flags.bits.IS_HDMI_FRL_CAPABLE);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
661
switch (link->link_id.id) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
663
link->connector_signal = SIGNAL_TYPE_HDMI_TYPE_A;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
665
if (link->link_enc->hpd_gpio)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
666
link->irq_source_read_request =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
667
dal_irq_get_read_request(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
668
else if (link->hpd_src != HPD_SOURCEID_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
669
link->irq_source_read_request = DC_IRQ_SOURCE_DCI2C_RR_DDC1 + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
673
link->connector_signal = SIGNAL_TYPE_DVI_SINGLE_LINK;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
677
link->connector_signal = SIGNAL_TYPE_DVI_DUAL_LINK;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
680
link->connector_signal = SIGNAL_TYPE_RGB;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
685
link->connector_signal = SIGNAL_TYPE_DISPLAY_PORT;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
687
if (link->link_enc->hpd_gpio)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
688
link->irq_source_hpd_rx =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
689
dal_irq_get_rx_source(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
690
else if (link->hpd_src != HPD_SOURCEID_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
691
link->irq_source_hpd_rx = DC_IRQ_SOURCE_HPD1RX + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
697
if (!(!link->dc->config.smart_mux_version || dc_ctx->dc_edp_id_count == 0))
drivers/gpu/drm/amd/display/dc/link/link_factory.c
700
link->connector_signal = SIGNAL_TYPE_EDP;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
701
if (!link->dc->config.allow_edp_hotplug_detection
drivers/gpu/drm/amd/display/dc/link/link_factory.c
702
&& !is_smartmux_suported(link))
drivers/gpu/drm/amd/display/dc/link/link_factory.c
703
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
705
switch (link->dc->config.allow_edp_hotplug_detection) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
707
if (link->link_enc->hpd_gpio) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
708
link->irq_source_hpd_rx =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
709
dal_irq_get_rx_source(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
710
} else if (link->hpd_src != HPD_SOURCEID_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
711
link->irq_source_hpd_rx = DC_IRQ_SOURCE_HPD1RX + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
715
if (link->link_index == 0) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
716
if (link->link_enc->hpd_gpio) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
717
link->irq_source_hpd_rx =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
718
dal_irq_get_rx_source(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
719
} else if (link->hpd_src != HPD_SOURCEID_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
720
link->irq_source_hpd_rx = DC_IRQ_SOURCE_HPD1RX + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
723
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
726
if (link->link_index == 1) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
727
if (link->link_enc->hpd_gpio) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
728
link->irq_source_hpd_rx =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
729
dal_irq_get_rx_source(link->link_enc->hpd_gpio);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
730
} else if (link->hpd_src != HPD_SOURCEID_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
731
link->irq_source_hpd_rx = DC_IRQ_SOURCE_HPD1RX + link->hpd_src;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
734
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
737
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
742
link->connector_signal = SIGNAL_TYPE_LVDS;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
746
link->link_id.id);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
754
if (link->ext_enc_id.id != ENCODER_ID_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
755
link->connector_signal = SIGNAL_TYPE_DISPLAY_PORT;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
759
signal_type_to_string(link->connector_signal));
drivers/gpu/drm/amd/display/dc/link/link_factory.c
764
link->eng_id = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
765
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
766
link->dc->res_pool->dig_link_enc_count++;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
768
link->link_enc_hw_inst = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
770
if (link->dc->res_pool->funcs->panel_cntl_create &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
771
(link->link_id.id == CONNECTOR_ID_EDP ||
drivers/gpu/drm/amd/display/dc/link/link_factory.c
772
link->link_id.id == CONNECTOR_ID_LVDS)) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
775
panel_cntl_init_data.eng_id = link->eng_id;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
776
link->panel_cntl =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
777
link->dc->res_pool->funcs->panel_cntl_create(
drivers/gpu/drm/amd/display/dc/link/link_factory.c
781
if (link->panel_cntl == NULL) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
788
link->link_id, i,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
789
&link->device_tag) != BP_RESULT_OK) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
798
link->device_tag.dev_id))
drivers/gpu/drm/amd/display/dc/link/link_factory.c
800
if (link->device_tag.dev_id.device_type == DEVICE_TYPE_CRT &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
801
link->connector_signal != SIGNAL_TYPE_RGB &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
802
link->ext_enc_id.id == ENCODER_ID_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
804
if (link->device_tag.dev_id.device_type == DEVICE_TYPE_LCD &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
805
link->connector_signal == SIGNAL_TYPE_RGB)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
808
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
809
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
810
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
820
if (path->device_connector_id.enum_id == link->link_id.enum_id &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
821
path->device_connector_id.id == link->link_id.id &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
822
path->device_connector_id.type == link->link_id.type) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
823
if (link->device_tag.acpi_device != 0 &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
824
path->device_acpi_enum == link->device_tag.acpi_device) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
825
link->ddi_channel_mapping = path->channel_mapping;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
826
link->chip_caps = path->caps;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
828
link->ddi_channel_mapping.raw);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
830
link->chip_caps);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
832
link->device_tag.dev_id.raw_device_tag) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
833
link->ddi_channel_mapping = path->channel_mapping;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
834
link->chip_caps = path->caps;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
836
link->ddi_channel_mapping.raw);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
838
link->chip_caps);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
841
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
842
link->bios_forced_drive_settings.VOLTAGE_SWING =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
844
link->bios_forced_drive_settings.PRE_EMPHASIS =
drivers/gpu/drm/amd/display/dc/link/link_factory.c
861
program_hpd_filter(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
864
if ((link->link_enc->features.flags.bits.IS_HDMI_FRL_CAPABLE) &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
865
(!link->link_enc->features.flags.bits.DP_IS_USB_C) &&
drivers/gpu/drm/amd/display/dc/link/link_factory.c
866
(link->dc->res_pool->funcs->hpo_frl_link_enc_create)) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
870
link->hpo_frl_link_enc = link->dc->res_pool->funcs->hpo_frl_link_enc_create(
drivers/gpu/drm/amd/display/dc/link/link_factory.c
873
if (link->hpo_frl_link_enc == NULL) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
879
link->psr_settings.psr_vtotal_control_support = false;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
880
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
881
link->replay_settings.config.replay_version = DC_REPLAY_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
891
if (link->ddc)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
892
link_destroy_ddc_service(&link->ddc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
893
if (link->panel_cntl)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
894
link->panel_cntl->funcs->destroy(&link->panel_cntl);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
895
if (link->link_enc)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
896
link->link_enc->funcs->destroy(&link->link_enc);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
902
static bool construct_dpia(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
911
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
912
link->irq_source_hpd_rx = DC_IRQ_SOURCE_INVALID;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
913
link->link_status.dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
915
link->dc = init_params->dc;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
916
link->ctx = dc_ctx;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
917
link->link_index = init_params->link_index;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
919
memset(&link->preferred_training_settings, 0,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
921
memset(&link->preferred_link_setting, 0,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
925
link->link_id.type = OBJECT_TYPE_CONNECTOR;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
926
link->link_id.id = CONNECTOR_ID_DISPLAY_PORT;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
927
link->link_id.enum_id = ENUM_ID_1 + init_params->connector_index;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
928
link->is_internal_display = false;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
929
link->connector_signal = SIGNAL_TYPE_DISPLAY_PORT;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
932
link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
934
link->ep_type = DISPLAY_ENDPOINT_USB4_DPIA;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
935
link->is_dig_mapping_flexible = true;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
939
ddc_service_init_data.ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
940
ddc_service_init_data.id = link->link_id;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
941
ddc_service_init_data.link = link;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
945
link->ddc = link_create_ddc_service(&ddc_service_init_data);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
946
if (!link->ddc) {
drivers/gpu/drm/amd/display/dc/link/link_factory.c
952
link->ddc_hw_inst = (uint8_t)init_params->connector_index;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
955
if (link->dc->res_pool->funcs->get_preferred_eng_id_dpia)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
956
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
960
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
961
link->replay_settings.config.replay_version = DC_REPLAY_VERSION_UNSUPPORTED;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
969
static bool link_construct(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_factory.c
974
return construct_dpia(link, init_params);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
976
return construct_phy(link, init_params);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
981
struct dc_link *link = kzalloc_obj(*link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
983
if (NULL == link)
drivers/gpu/drm/amd/display/dc/link/link_factory.c
986
if (false == link_construct(link, init_params))
drivers/gpu/drm/amd/display/dc/link/link_factory.c
989
return link;
drivers/gpu/drm/amd/display/dc/link/link_factory.c
992
kfree(link);
drivers/gpu/drm/amd/display/dc/link/link_factory.c
998
void link_destroy(struct dc_link **link)
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
232
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
246
if (dp_should_enable_fec(link)) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
458
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
461
dc_link_get_highest_encoding_format(link));
drivers/gpu/drm/amd/display/dc/link/link_validation.c
465
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
475
!link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED &&
drivers/gpu/drm/amd/display/dc/link/link_validation.c
476
dal_graphics_object_id_get_connector_id(link->link_id) != CONNECTOR_ID_VIRTUAL)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
485
link_setting = dp_get_verified_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/link_validation.c
493
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
494
max_bw = dp_link_bandwidth_kbps(link, link_setting);
drivers/gpu/drm/amd/display/dc/link/link_validation.c
496
link->dpcd_caps.max_uncompressed_pixel_rate_cap.bits.max_uncompressed_pixel_rate_cap * 10000U;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
498
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
525
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
536
if (!link)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
538
if (!link->local_sink)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
541
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
547
if (link->connector_signal == SIGNAL_TYPE_VIRTUAL)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
554
for (i = 0; i < link->dc->res_pool->hpo_frl_stream_enc_count; i++) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
555
if (link->dc->res_pool->hpo_frl_stream_enc[i]->id == hpo_eng_id) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
561
for (i = 0; i < (link->local_sink->edid_caps.audio_mode_count); i++) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
562
audio_info.modes[i].channel_count = link->local_sink->edid_caps.audio_modes[i].channel_count;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
563
audio_info.modes[i].format_code = link->local_sink->edid_caps.audio_modes[i].format_code;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
564
audio_info.modes[i].sample_rates.all = link->local_sink->edid_caps.audio_modes[i].sample_rate;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
565
audio_info.modes[i].sample_size = link->local_sink->edid_caps.audio_modes[i].sample_size;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
567
audio_info.mode_count = link->local_sink->edid_caps.audio_mode_count;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
571
link->dc->res_pool->hpo_frl_stream_enc[hpo_frl_stream_enc_index]->funcs->validate_hdmi_frl_output(
drivers/gpu/drm/amd/display/dc/link/link_validation.c
572
link->dc->res_pool->hpo_frl_stream_enc[hpo_frl_stream_enc_index],
drivers/gpu/drm/amd/display/dc/link/link_validation.c
575
link->local_sink->edid_caps.frl_dsc_max_frl_rate);
drivers/gpu/drm/amd/display/dc/link/link_validation.c
606
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
609
uint32_t max_pix_clk = stream->link->dongle_max_pix_clk * 10;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
610
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
615
if (link->remote_sinks[0] && link->remote_sinks[0]->sink_signal == SIGNAL_TYPE_VIRTUAL)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
622
if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR422 && link->dc->config.no_native422_support) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
639
link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
653
if (pxl_clk_mhz > DTBCLK_LIMIT && link->ctx->dce_version < DCN_VERSION_3_1)
drivers/gpu/drm/amd/display/dc/link/link_validation.c
658
link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
660
hdmi_frl_get_verified_link_cap(link)))
drivers/gpu/drm/amd/display/dc/link/link_validation.c
702
const struct dc_link *link;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
709
link = stream->link;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
711
if (!(link && (stream->signal == SIGNAL_TYPE_DISPLAY_PORT
drivers/gpu/drm/amd/display/dc/link/link_validation.c
715
if ((link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA) && (link->hpd_status == false))
drivers/gpu/drm/amd/display/dc/link/link_validation.c
723
timing_bw = dp_get_timing_bandwidth_kbps(&stream->timing, link);
drivers/gpu/drm/amd/display/dc/link/link_validation.c
729
if (dpia_link_sets[j].link == NULL) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
733
dpia_link_sets[j].link = link;
drivers/gpu/drm/amd/display/dc/link/link_validation.c
736
if (is_new_slot || (dpia_link_sets[j].link == link)) {
drivers/gpu/drm/amd/display/dc/link/link_validation.c
845
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.c
863
const bool is_mst = (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT);
drivers/gpu/drm/amd/display/dc/link/link_validation.c
873
if (link_encoding == DP_8b_10b_ENCODING && link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT)
drivers/gpu/drm/amd/display/dc/link/link_validation.h
33
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.h
39
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.h
43
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/link_validation.h
55
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
120
ddc_service->link = init_data->link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
123
if (ddc_service->link && ddc_service->ctx->dc->config.dp_connector_no_native_i2c &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
124
ddc_service->link->no_ddc_pin) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
127
ddc_service->link->aux_hw_inst = (uint8_t)i2c_info.i2c_line;
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
138
if (ddc_service->link != NULL)
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
223
struct dc_link *link = ddc->link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
225
if (link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_VGA_CONVERTER &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
226
link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_0080E1 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
227
(link->dpcd_caps.branch_fw_revision[0] < 0x01 ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
228
(link->dpcd_caps.branch_fw_revision[0] == 0x01 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
229
link->dpcd_caps.branch_fw_revision[1] < 0x40)) &&
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
237
if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_0080E1 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
238
!memcmp(link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
240
sizeof(link->dpcd_caps.branch_dev_name)))
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
243
if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_006037 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
244
!memcmp(link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
246
sizeof(link->dpcd_caps.branch_dev_name)))
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
399
ddc->link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
415
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
420
switch (link->dpcd_caps.lttpr_caps.phy_repeater_cnt) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
456
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
458
return link_get_fixed_vs_pe_retimer_write_address(link) + 4;
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
466
.address = link_get_fixed_vs_pe_retimer_write_address(ddc->link),
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
484
.address = link_get_fixed_vs_pe_retimer_read_address(ddc->link),
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
510
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
511
!ddc->link->dc->debug.disable_fixed_vs_aux_timeout_wa &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
517
core_link_write_dpcd(ddc->link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
526
if (ddc->link->ep_type != DISPLAY_ENDPOINT_PHY)
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
529
if (ddc->ctx->dc->config.dp_connector_no_native_i2c && ddc->link->no_ddc_pin) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
530
if (ddc->ctx->dc->res_pool->engines[ddc->link->aux_hw_inst]->funcs->configure_timeout) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
531
ddc->ctx->dc->res_pool->engines[ddc->link->aux_hw_inst]->funcs->configure_timeout(ddc, timeout);
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
560
if (ddc_service->link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
561
(ddc_service->link->local_sink->edid_caps.panel_patch.skip_scdc_overwrite ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
562
!ddc_service->link->local_sink->edid_caps.scdc_present))
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
596
if (ddc_service->link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
597
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
1002
if (link->panel_config.dsc.force_dsc_edp_policy) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1011
dc_link_get_highest_encoding_format(link));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1012
edp_decide_link_settings(link, &tmp_link_setting, orig_req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1015
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
1017
edp_decide_link_settings(link, link_setting, req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1020
decide_dp_link_settings(link, link_setting, req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1038
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
1042
if (!dc_is_dp_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1045
if (link->preferred_link_setting.lane_count !=
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1047
link->preferred_link_setting.link_rate !=
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1049
link_settings = link->preferred_link_setting;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1051
decide_mst_link_settings(link, &link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1057
static void read_dp_device_vendor_id(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1063
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1068
link->dpcd_caps.branch_dev_id =
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
link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1079
static enum dc_status wake_up_aux_channel(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1086
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
110
(link->dpcd_caps.dongle_type <= DISPLAY_DONGLE_DP_HDMI_CONVERTER);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1103
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1110
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1122
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1129
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
113
bool is_dp_branch_device(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1132
link->dpcd_caps.dongle_caps.dp_hdmi_regulated_autonomous_mode_support =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1135
if (link->dpcd_caps.dongle_caps.dp_hdmi_regulated_autonomous_mode_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1138
core_link_read_dpcd(link, DP_PCON_HDMI_TX_LINK_STATUS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1143
if (core_link_read_dpcd(link, DP_PCON_HDMI_POST_FRL_STATUS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1146
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
1155
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
1156
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
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
1164
uint8_t data, struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1167
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
1171
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_NONE;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1172
set_dongle_type(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1173
link->dpcd_caps.dongle_type);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1174
link->dpcd_caps.is_branch_dev = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1179
link->dpcd_caps.is_branch_dev = ds_port.fields.PORT_PRESENT;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1183
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_VGA_CONVERTER;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1188
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_DVI_CONVERTER;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1191
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_NONE;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1195
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_11) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1199
if (core_link_read_dpcd(link, DP_DOWNSTREAM_PORT_0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1205
link->dpcd_caps.dongle_type = DISPLAY_DONGLE_NONE;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1208
link->dpcd_caps.dongle_type =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1212
link->dpcd_caps.dongle_type =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1218
link->dpcd_caps.dongle_type =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1221
link->dpcd_caps.dongle_caps.dongle_type = link->dpcd_caps.dongle_type;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1228
link->dpcd_caps.dongle_caps.dp_hdmi_max_pixel_clk_in_khz =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1231
link->dpcd_caps.dongle_caps.is_dp_hdmi_s3d_converter =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1236
link->dpcd_caps.dongle_caps.is_dp_hdmi_ycbcr422_pass_through =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1238
link->dpcd_caps.dongle_caps.is_dp_hdmi_ycbcr420_pass_through =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1240
link->dpcd_caps.dongle_caps.is_dp_hdmi_ycbcr422_converter =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1242
link->dpcd_caps.dongle_caps.is_dp_hdmi_ycbcr420_converter =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1246
link->dpcd_caps.dongle_caps.dp_hdmi_max_bpc =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1250
if (link->dc->caps.dp_hdmi21_pcon_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1252
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
1256
read_and_intersect_post_frl_lt_status(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1258
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
1259
link->dpcd_caps.dongle_caps.extendedCapValid = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1262
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
1263
link->dpcd_caps.dongle_caps.extendedCapValid = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1271
set_dongle_type(link->ddc, link->dpcd_caps.dongle_type);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1277
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1282
link->dpcd_caps.branch_hw_revision =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1286
link->dpcd_caps.branch_fw_revision,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1292
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1294
(uint8_t *)link->dpcd_caps.branch_vendor_specific_data,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1295
sizeof(link->dpcd_caps.branch_vendor_specific_data));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1297
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_14 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1298
link->dpcd_caps.dongle_type != DISPLAY_DONGLE_NONE) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1302
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1306
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
1307
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
1310
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
1313
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
1316
link->dpcd_caps.dongle_caps.dfp_cap_ext.encoding_format_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1318
link->dpcd_caps.dongle_caps.dfp_cap_ext.rgb_color_depth_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1320
link->dpcd_caps.dongle_caps.dfp_cap_ext.ycbcr444_color_depth_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1322
link->dpcd_caps.dongle_caps.dfp_cap_ext.ycbcr422_color_depth_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1324
link->dpcd_caps.dongle_caps.dfp_cap_ext.ycbcr420_color_depth_caps =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1326
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
1327
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
1328
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
1329
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
1330
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
1334
static void apply_usbc_combo_phy_reset_wa(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1342
enum clock_source_id dp_cs_id = get_clock_source_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1344
dp_enable_link_phy(link, &link_res, link->connector_signal,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1346
dp_disable_link_phy(link, &link_res, link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1349
bool dp_overwrite_extended_receiver_cap(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1362
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1370
link->dpcd_caps.dpcd_rev.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1379
get_active_converter_info(ds_port.byte, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1384
link->dpcd_caps.allow_invalid_MSA_timing_param =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1387
link->dpcd_caps.max_ln_count.raw = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1390
link->dpcd_caps.max_down_spread.raw = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1393
link->reported_link_cap.lane_count =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1394
link->dpcd_caps.max_ln_count.bits.MAX_LANE_COUNT;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1395
link->reported_link_cap.link_rate = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1397
link->reported_link_cap.link_spread =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1398
link->dpcd_caps.max_down_spread.bits.MAX_DOWN_SPREAD ?
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1403
link->dpcd_caps.panel_mode_edp =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1405
link->dpcd_caps.dpcd_display_control_capable =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1411
void dpcd_set_source_specific_data(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1413
if (!link->dc->vendor_signature.is_valid) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1418
if (link->is_dds) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1425
core_link_read_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1429
core_link_write_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1434
(uint8_t)(link->ctx->asic_id.chip_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1436
(uint8_t)(link->ctx->asic_id.chip_id >> 8);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1438
(uint8_t)(link->ctx->dce_version);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1442
core_link_read_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,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1459
core_link_write_dpcd(link, DP_SOURCE_OUI+0x03,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1463
if (link->ctx->dce_version >= DCN_VERSION_2_0 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1464
link->dc->caps.min_horizontal_blanking_period != 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1466
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
1468
result_write_min_hblank = core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1476
link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1477
link->ctx->dce_version,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1479
link->dc->caps.min_horizontal_blanking_period,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1480
link->dpcd_caps.branch_dev_id,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1481
link->dpcd_caps.branch_dev_name[0],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1482
link->dpcd_caps.branch_dev_name[1],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1483
link->dpcd_caps.branch_dev_name[2],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1484
link->dpcd_caps.branch_dev_name[3],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1485
link->dpcd_caps.branch_dev_name[4],
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1486
link->dpcd_caps.branch_dev_name[5]);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1488
core_link_write_dpcd(link, DP_SOURCE_OUI,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1489
link->dc->vendor_signature.data.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1490
sizeof(link->dc->vendor_signature.data.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1494
void dpcd_write_cable_id_to_dprx(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1496
if (!link->dpcd_caps.channel_coding_cap.bits.DP_128b_132b_SUPPORTED ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1497
link->dpcd_caps.cable_id.raw == 0 ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1498
link->dprx_states.cable_id_written)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1501
core_link_write_dpcd(link, DP_CABLE_ATTRIBUTES_UPDATED_BY_DPTX,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1502
&link->dpcd_caps.cable_id.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1503
sizeof(link->dpcd_caps.cable_id.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1505
link->dprx_states.cable_id_written = 1;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1508
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
1512
if (!link->ctx->dmub_srv ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1513
link->ep_type != DISPLAY_ENDPOINT_PHY ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1514
link->link_enc->features.flags.bits.DP_IS_USB_C == 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1521
link->dc, link->link_enc->transmitter);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1522
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
1530
static void retrieve_cable_id(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1534
link->dpcd_caps.cable_id.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1535
core_link_read_dpcd(link, DP_CABLE_ATTRIBUTES_UPDATED_BY_DPRX,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1536
&link->dpcd_caps.cable_id.raw, sizeof(uint8_t));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1538
if (get_usbc_cable_id(link, &usbc_cable_id))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1539
link->dpcd_caps.cable_id = intersect_cable_id(
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1540
&link->dpcd_caps.cable_id, &usbc_cable_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1543
bool read_is_mst_supported(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1550
if (link->preferred_training_settings.mst_enable &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1551
*link->preferred_training_settings.mst_enable == false) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1558
st = core_link_read_dpcd(link, DP_DPCD_REV, &rev.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1563
st = core_link_read_dpcd(link, DP_MSTM_CAP,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1576
static bool dpcd_read_sink_ext_caps(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1581
if (!link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1584
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
1587
link->dpcd_sink_ext_caps.raw = dpcd_data;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1588
if (link->is_dds && !link->dpcd_sink_ext_caps.bits.oled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1589
link->dpcd_sink_ext_caps.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1593
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
1596
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
1601
static void retrieve_vesa_replay_su_info(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1605
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1609
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
1611
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1615
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
1617
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1621
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
1623
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1627
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
1629
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1633
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
1636
enum dc_status dp_retrieve_lttpr_cap(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1645
bool vbios_lttpr_interop = link->dc->caps.vbios_lttpr_aware;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1647
if (!vbios_lttpr_interop || !link->dc->caps.extended_aux_timeout_support)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1654
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1659
link->dpcd_caps.lttpr_caps.revision.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1663
link->dpcd_caps.lttpr_caps.max_link_rate =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1667
link->dpcd_caps.lttpr_caps.phy_repeater_cnt =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1671
link->dpcd_caps.lttpr_caps.max_lane_count =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1675
link->dpcd_caps.lttpr_caps.mode =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1679
link->dpcd_caps.lttpr_caps.max_ext_timeout =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1682
link->dpcd_caps.lttpr_caps.main_link_channel_coding.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1686
link->dpcd_caps.lttpr_caps.supported_128b_132b_rates.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1690
link->dpcd_caps.lttpr_caps.alpm.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1694
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
1698
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
1704
link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1705
link->dpcd_caps.lttpr_caps.phy_repeater_cnt = 0x80;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1707
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
1710
is_lttpr_present = dp_is_lttpr_present(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1715
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
1720
core_link_read_dpcd(link, (DP_LTTPR_IEEE_OUI + closest_lttpr_offset),
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1721
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
1722
core_link_read_dpcd(link, (DP_LTTPR_DEVICE_ID + closest_lttpr_offset),
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1723
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
1731
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
1733
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
1741
static bool retrieve_link_cap(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1774
try_to_configure_aux_timeout(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1777
status = dp_retrieve_lttpr_cap(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1780
status = wake_up_aux_channel(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1782
dp_retrieve_lttpr_cap(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1787
if (dp_is_lttpr_present(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1788
configure_lttpr_mode_transparent(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1792
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1794
&link->dpcd_caps.lttpr_caps.phy_repeater_cnt,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1795
sizeof(link->dpcd_caps.lttpr_caps.phy_repeater_cnt));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1798
dpcd_set_source_specific_data(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1807
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1821
if (!dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1822
try_to_configure_aux_timeout(link->ddc, LINK_AUX_DEFAULT_TIMEOUT_PERIOD);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1831
link->dpcd_caps.ext_receiver_cap_field_present =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1840
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1854
link->dpcd_caps.dpcd_rev.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1857
if (link->dpcd_caps.ext_receiver_cap_field_present) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1860
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1868
link->dpcd_caps.dprx_feature.raw = dpcd_dprx_data;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1877
link, DP_DPRX_FEATURE_ENUMERATION_LIST_CONT_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1883
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
1890
link->dpcd_caps.dprx_feature.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1905
read_dp_device_vendor_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1908
link->dpcd_caps.is_mst_capable = read_is_mst_supported(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1909
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
1912
if (link->dpcd_caps.is_mst_capable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1913
link->wa_flags.dp_mot_reset_segment = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1915
link->wa_flags.dp_mot_reset_segment = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1917
get_active_converter_info(ds_port.byte, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1919
dp_wa_power_up_0010FA(link, dpcd_data, sizeof(dpcd_data));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1924
link->dpcd_caps.allow_invalid_MSA_timing_param =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1927
link->dpcd_caps.max_ln_count.raw = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1930
link->dpcd_caps.max_down_spread.raw = dpcd_data[
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1933
link->reported_link_cap.lane_count =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1934
link->dpcd_caps.max_ln_count.bits.MAX_LANE_COUNT;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1935
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
1937
link->reported_link_cap.link_spread =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1938
link->dpcd_caps.max_down_spread.bits.MAX_DOWN_SPREAD ?
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1943
link->dpcd_caps.panel_mode_edp =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1945
link->dpcd_caps.dpcd_display_control_capable =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1947
link->dpcd_caps.channel_coding_cap.raw =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1949
link->test_pattern_enabled = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1950
link->compliance_test_state.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1952
link->dpcd_caps.receive_port0_cap.raw[0] =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1954
link->dpcd_caps.receive_port0_cap.raw[1] =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1958
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1960
&link->dpcd_caps.sink_count.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1961
sizeof(link->dpcd_caps.sink_count.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1964
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1969
link->dpcd_caps.sink_dev_id =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1975
link->dpcd_caps.sink_dev_id_str,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1980
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1985
link->dpcd_caps.sink_hw_revision =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
1989
link->dpcd_caps.sink_fw_revision,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2002
if ((link->dpcd_caps.sink_dev_id == 0x0010fa) &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2003
!memcmp(link->dpcd_caps.sink_dev_id_str, str_mbp_2018,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2005
(!memcmp(link->dpcd_caps.sink_fw_revision, fwrev_mbp_2018,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2007
!memcmp(link->dpcd_caps.sink_fw_revision, fwrev_mbp_2018_vega,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2009
link->reported_link_cap.link_rate = LINK_RATE_RBR2;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2013
memset(&link->dpcd_caps.dsc_caps, '\0',
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2014
sizeof(link->dpcd_caps.dsc_caps));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2015
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
2017
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_14) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2019
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2021
&link->dpcd_caps.fec_cap.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2022
sizeof(link->dpcd_caps.fec_cap.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2027
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2029
link->dpcd_caps.dsc_caps.dsc_basic_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2030
sizeof(link->dpcd_caps.dsc_caps.dsc_basic_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2032
is_fec_supported = link->dpcd_caps.fec_cap.bits.FEC_CAPABLE;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2033
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
2034
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
2042
if (link->dpcd_caps.dongle_type != DISPLAY_DONGLE_NONE) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2044
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2046
link->dpcd_caps.dsc_caps.dsc_branch_decoder_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2047
sizeof(link->dpcd_caps.dsc_caps.dsc_branch_decoder_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2051
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
2053
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
2055
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
2057
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
2063
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2064
link->dc->debug.dpia_debug.bits.enable_force_tbt3_work_around &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2065
link->dpcd_caps.is_branch_dev &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2066
link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_90CC24 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2067
link->dpcd_caps.branch_hw_revision == DP_BRANCH_HW_REV_10 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2068
(link->dpcd_caps.fec_cap.bits.FEC_CAPABLE ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2069
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
2073
link->wa_flags.dpia_forced_tbt3_mode = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2074
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
2075
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
2076
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
2078
link->wa_flags.dpia_forced_tbt3_mode = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2081
if (!dpcd_read_sink_ext_caps(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2082
link->dpcd_sink_ext_caps.raw = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2084
if (link->dpcd_caps.channel_coding_cap.bits.DP_128b_132b_SUPPORTED) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2085
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
2088
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2090
&link->dpcd_caps.dp_128b_132b_supported_link_rates.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2091
sizeof(link->dpcd_caps.dp_128b_132b_supported_link_rates.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2092
if (link->dpcd_caps.dp_128b_132b_supported_link_rates.bits.UHBR20)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2093
link->reported_link_cap.link_rate = LINK_RATE_UHBR20;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2094
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
2095
link->reported_link_cap.link_rate = LINK_RATE_UHBR13_5;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2096
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
2097
link->reported_link_cap.link_rate = LINK_RATE_UHBR10;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2100
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
2102
link->reported_link_cap.link_rate / 100,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2103
link->reported_link_cap.link_rate % 100);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2105
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2107
&link->dpcd_caps.fallback_formats.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2108
sizeof(link->dpcd_caps.fallback_formats.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2109
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
2110
if (link->dpcd_caps.fallback_formats.bits.dp_1920x1080_60Hz_24bpp_support)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2112
if (link->dpcd_caps.fallback_formats.bits.dp_1280x720_60Hz_24bpp_support)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2114
if (link->dpcd_caps.fallback_formats.bits.dp_1024x768_60Hz_24bpp_support)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2116
if (link->dpcd_caps.fallback_formats.raw == 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2118
link->dpcd_caps.fallback_formats.bits.dp_1920x1080_60Hz_24bpp_support = 1;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2121
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2123
&link->dpcd_caps.fec_cap1.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2124
sizeof(link->dpcd_caps.fec_cap1.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2125
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
2126
if (link->dpcd_caps.fec_cap1.bits.AGGREGATED_ERROR_COUNTERS_CAPABLE)
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.max_uncompressed_pixel_rate_cap.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2133
sizeof(link->dpcd_caps.max_uncompressed_pixel_rate_cap.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_supported.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2138
sizeof(link->dpcd_caps.vesa_replay_caps_supported.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2140
core_link_read_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2142
&link->dpcd_caps.vesa_replay_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2143
sizeof(link->dpcd_caps.vesa_replay_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2146
retrieve_vesa_replay_su_info(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2149
status = dpcd_get_tunneling_device_data(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2153
retrieve_cable_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2154
dpcd_write_cable_id_to_dprx(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2157
CONN_DATA_DETECT(link, dpcd_data, sizeof(dpcd_data), "Rx Caps: ");
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2162
bool detect_dp_sink_caps(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2164
return retrieve_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2167
void detect_edp_sink_caps(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2176
retrieve_link_cap(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2177
link->dpcd_caps.edp_supported_link_rates_count = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2184
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_13) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2186
core_link_read_dpcd(link, DP_SUPPORTED_LINK_RATES,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2200
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
2201
link->dpcd_caps.edp_supported_link_rates_count++;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2206
core_link_read_dpcd(link, DP_EDP_BACKLIGHT_ADJUSTMENT_CAP,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2209
link->dpcd_caps.dynamic_backlight_capable_edp =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2212
core_link_read_dpcd(link, DP_EDP_GENERAL_CAP_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2215
link->dpcd_caps.set_power_state_capable_edp =
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2218
set_default_brightness_aux(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2220
core_link_read_dpcd(link, DP_EDP_DPCD_REV,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2221
&link->dpcd_caps.edp_rev,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2222
sizeof(link->dpcd_caps.edp_rev));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2226
if (link->dpcd_caps.edp_rev >= DP_EDP_13) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2227
core_link_read_dpcd(link, DP_PSR_SUPPORT,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2228
&link->dpcd_caps.psr_info.psr_version,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2229
sizeof(link->dpcd_caps.psr_info.psr_version));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2230
if (link->dpcd_caps.sink_dev_id == DP_BRANCH_DEVICE_ID_001CF8)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2231
core_link_read_dpcd(link, DP_FORCE_PSRSU_CAPABILITY,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2232
&link->dpcd_caps.psr_info.force_psrsu_cap,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2233
sizeof(link->dpcd_caps.psr_info.force_psrsu_cap));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2234
core_link_read_dpcd(link, DP_PSR_CAPS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2235
&link->dpcd_caps.psr_info.psr_dpcd_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2236
sizeof(link->dpcd_caps.psr_info.psr_dpcd_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2237
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
2238
core_link_read_dpcd(link, DP_PSR2_SU_Y_GRANULARITY,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2239
&link->dpcd_caps.psr_info.psr2_su_y_granularity_cap,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2240
sizeof(link->dpcd_caps.psr_info.psr2_su_y_granularity_cap));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2247
if (link->dpcd_caps.dpcd_rev.raw >= DP_EDP_14)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2248
core_link_read_dpcd(link, DP_RECEIVER_ALPM_CAP,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2249
&link->dpcd_caps.alpm_caps.raw,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2250
sizeof(link->dpcd_caps.alpm_caps.raw));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2255
core_link_read_dpcd(link, DP_SINK_PR_PIXEL_DEVIATION_PER_LINE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2256
&link->dpcd_caps.pr_info.pixel_deviation_per_line,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2257
sizeof(link->dpcd_caps.pr_info.pixel_deviation_per_line));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2258
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
2259
&link->dpcd_caps.pr_info.max_deviation_line,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2260
sizeof(link->dpcd_caps.pr_info.max_deviation_line));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2265
if (link->dpcd_sink_ext_caps.bits.emission_output)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2266
core_link_read_dpcd(link, DP_SINK_EMISSION_RATE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2267
(uint8_t *)&link->dpcd_caps.edp_oled_emission_rate,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2268
sizeof(link->dpcd_caps.edp_oled_emission_rate));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2273
core_link_read_dpcd(link, DP_SINK_DRR_GRANULARITY,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2274
(uint8_t *)&link->dpcd_caps.drr_granularity,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2275
sizeof(link->dpcd_caps.drr_granularity));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2281
if (link->dpcd_caps.dpcd_rev.raw >= DP_EDP_14)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2283
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2285
(uint8_t *)&link->dpcd_caps.mso_cap_sst_links_supported,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2286
sizeof(link->dpcd_caps.mso_cap_sst_links_supported));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2290
core_link_read_dpcd(link, DP_EDP_GENERAL_CAP_2,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2291
(uint8_t *)&link->dpcd_caps.dp_edp_general_cap_2,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2292
sizeof(link->dpcd_caps.dp_edp_general_cap_2));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2295
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
2297
struct resource_context *res_ctx = &link->dc->current_state->res_ctx;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2298
struct resource_pool *res_pool = link->dc->res_pool;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2299
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
2306
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2307
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2322
const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2324
if (link->preferred_link_setting.lane_count != LANE_COUNT_UNKNOWN &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2325
link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2326
return &link->preferred_link_setting;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2327
return &link->verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2330
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
2336
struct resource_context *res_ctx = &link->dc->current_state->res_ctx;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2337
struct resource_pool *res_pool = link->dc->res_pool;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2338
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
2341
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2342
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2350
if (link->reported_link_cap.lane_count < max_link_cap.lane_count)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2352
link->reported_link_cap.lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2353
if (link->reported_link_cap.link_rate < max_link_cap.link_rate)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2355
link->reported_link_cap.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2356
if (link->reported_link_cap.link_spread <
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2359
link->reported_link_cap.link_spread;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2361
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
2379
cable_max_link_rate = get_cable_max_link_rate(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2381
if (!link->dc->debug.ignore_cable_id &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2386
if (!link->dpcd_caps.cable_id.bits.UHBR13_5_CAPABILITY &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2387
link->dpcd_caps.cable_id.bits.CABLE_TYPE >= 2)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2394
if (dp_is_lttpr_present(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2397
if (link->dpcd_caps.lttpr_caps.revision.raw >= DPCD_REV_14) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2398
lttpr_max_lane_count = get_lttpr_max_lane_count(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2403
lttpr_max_link_rate = get_lttpr_max_link_rate(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2408
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
2423
link->dc->debug.disable_uhbr)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2430
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2438
enum clock_source_id dp_cs_id = get_clock_source_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2447
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
2448
uint8_t grant = link->dpcd_caps.lttpr_caps.max_ext_timeout & 0x80;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2450
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
2454
if (!get_temp_dp_link_res(link, &link_res, &cur_link_settings))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2459
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2461
link->connector_signal,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2466
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2474
if (dp_read_hpd_rx_irq_data(link, &irq_data) == DC_OK &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2476
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2485
dp_trace_lt_total_count_increment(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2486
dp_trace_lt_result_update(link, status, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2487
dp_disable_link_phy(link, &link_res, link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2488
} while (!success && decide_fallback_link_setting(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2491
link->verified_link_cap = success ?
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2497
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2506
dp_trace_detect_lt_init(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2509
__func__, link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2513
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
2514
link->dc->debug.usbc_combo_phy_reset_wa)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2515
apply_usbc_combo_phy_reset_wa(link, known_limit_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2517
dp_trace_set_lt_start_timestamp(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2521
memset(&link->verified_link_cap, 0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2523
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
2524
link->verified_link_cap = fail_safe_link_settings;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2526
} 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
2527
last_verified_link_cap = link->verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2533
link->verified_link_cap = last_verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2540
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && link->is_hpd_pending)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2546
dp_trace_lt_fail_count_update(link, fail_count, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2547
dp_trace_set_lt_end_timestamp(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2550
__func__, link->link_index,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2560
bool dp_is_sink_present(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2568
dal_graphics_object_id_get_connector_id(link->link_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2578
if (link->ctx->dc->config.dp_connector_no_native_i2c && link->no_ddc_pin)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2581
ddc = get_ddc_pin(link->ddc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2625
uint8_t dp_get_lttpr_count(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2627
if (dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2628
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
2633
void edp_get_alpm_support(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2637
bool lttpr_present = dp_is_lttpr_present(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2645
if (!dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2648
if (link->dpcd_caps.alpm_caps.bits.AUX_LESS_ALPM_CAP) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2650
if (link->dpcd_caps.lttpr_caps.alpm.bits.AUX_LESS_ALPM_SUPPORTED)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
2656
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
753
if (link->wa_flags.dp_skip_rbr) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
763
link->verified_link_cap.link_rate) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
765
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
773
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
779
increase_link_rate(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
789
bool edp_decide_link_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
800
if (!edp_is_ilr_optimization_enabled(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
801
*link_setting = link->verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
807
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
818
link->verified_link_cap.link_rate) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
820
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
828
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
833
increase_edp_link_rate(link, ¤t_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
839
bool decide_edp_link_settings_with_dsc(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
850
policy = link->panel_config.dsc.force_dsc_edp_policy;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
852
max_link_rate = link->verified_link_cap.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
857
if (!edp_is_ilr_optimization_enabled(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
866
if (req_bw > dp_link_bandwidth_kbps(link, &link->verified_link_cap))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
876
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
885
increase_edp_link_rate(link, ¤t_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
888
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
899
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
904
increase_edp_link_rate(link, ¤t_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
916
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
929
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
938
increase_edp_link_rate(link, ¤t_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
940
if (current_link_setting.lane_count < link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
947
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
954
link->verified_link_cap.lane_count) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
959
increase_edp_link_rate(link, ¤t_link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
968
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
970
*link_setting = link->verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
977
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
978
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
983
link->preferred_link_setting.lane_count != LANE_COUNT_UNKNOWN &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
984
link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
988
*link_setting = link->preferred_link_setting;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
993
decide_mst_link_settings(link, link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
997
} else if (link->connector_signal == SIGNAL_TYPE_EDP) {
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 = (uint8_t)(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 uint8_t 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 uint8_t 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 > (uint32_t)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
216
core_link_write_dpcd(link, REQUESTED_BW, &requested_bw_dpcd,
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, bool *need_re_enable, bool *replay_esd_detection_needed)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
235
if (!link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
238
if (link->replay_settings.config.replay_version != DC_FREESYNC_REPLAY) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
239
handle_hpd_irq_vesa_replay_sink(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
245
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
246
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
263
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
264
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
270
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
271
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
282
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
286
link->replay_settings.replay_desync_error_fail_count++;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
288
if (link->replay_settings.config.force_disable_desync_error_check)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
293
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
294
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
301
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
302
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
308
if (link->replay_settings.replay_allow_active) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
310
edp_set_replay_allow_active(link, &allow_active, true, false, NULL);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
315
if (link->ctx->dc->debug.enable_replay_esd_recovery) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
316
if (!link->replay_settings.replay_allow_active &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
326
void dp_handle_link_loss(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
329
struct dc_state *state = link->dc->current_state;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
333
link_get_master_pipes_with_dpms_on(link, state, &count, pipes);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
340
if (link->skip_fallback_on_link_loss) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
342
link->verified_link_cap.lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
344
link->verified_link_cap.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
346
link->verified_link_cap.link_spread;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
348
link_set_dpms_on(link->dc->current_state, pipes[i]);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
352
static void dp_handle_tunneling_irq(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
358
link, DP_TUNNELING_STATUS,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
364
__func__, link->link_index, tunneling_status);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
367
link_dp_dpia_handle_bw_alloc_status(link, tunneling_status);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
372
link, DP_LINK_SERVICE_IRQ_VECTOR_ESI0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
376
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
382
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
396
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
409
if (link->dpcd_caps.dpcd_rev.raw < DPCD_REV_14) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
411
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
416
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
418
link, DP_LINK_SERVICE_IRQ_VECTOR_ESI0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
428
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
448
if (link->wa_flags.read_dpcd204h_on_irq_hpd)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
449
read_dpcd204h_on_irq_hpd(link, irq_data);
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
456
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
465
if ((link->cur_link_settings.lane_count != LANE_COUNT_UNKNOWN) ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
466
is_dp_branch_device(link) ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
467
link->dpia_bw_alloc_config.bw_alloc_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
473
bool dp_handle_hpd_rx_irq(struct dc_link *link,
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
__func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
496
handle_hpd_irq_replay_sink(link, &replay_re_enable_needed, &replay_esd_detection_needed);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
503
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
515
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
516
!link->dc->config.enable_dpia_pre_training)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
517
link->skip_fallback_on_link_loss = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
521
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
529
dc_link_dp_handle_automated_test(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
533
if (!dp_should_allow_hpd_rx_irq(link)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
535
__func__, link->link_index);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
539
if (handle_hpd_irq_psr_sink(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
568
if (link->connector_signal != SIGNAL_TYPE_EDP || replay_esd_detection_needed) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
570
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
573
CONN_DATA_LINK_LOSS(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
581
dp_handle_link_loss(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
587
dp_trace_link_loss_increment(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
591
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
593
dp_handle_tunneling_irq(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
596
if (link->type == dc_connection_sst_branch &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
598
!= link->dpcd_sink_count)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
604
edp_set_replay_allow_active(link, &allow_active, true, false, NULL);
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 < (uint32_t)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
100
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
104
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
108
if (!(link->replay_settings.config.replay_supported))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
111
dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
119
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
122
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
123
replay_context.digbe_inst = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
124
replay_context.digfe_inst = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
144
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
146
if (link->replay_settings.replay_feature_enabled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
147
if (dc_is_embedded_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
162
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
167
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
171
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
177
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
179
if (link->replay_settings.config.alpm_mode == DC_ALPM_AUXLESS) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
185
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
186
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
192
if (link->replay_settings.config.frame_skip_supported)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
195
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
205
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
208
if (!dc || !link || !inst_out)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
212
return dc_get_edp_link_panel_inst(dc, link, inst_out);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
214
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
219
dc->current_state->res_ctx.pipe_ctx[i].stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
233
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
235
if (!link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
237
if (link->replay_settings.config.replay_version == DC_VESA_PANEL_REPLAY)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
238
return dp_setup_panel_replay(link, stream);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
239
else if (link->replay_settings.config.replay_version == DC_FREESYNC_REPLAY)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
240
return edp_setup_freesync_replay(link, stream);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
245
bool dp_pr_enable(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
247
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
251
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
254
if (link->replay_settings.replay_allow_active == enable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
257
if (enable && !dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
258
dp_pr_set_static_screen_param(link);
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
325
cmd.pr_copy_settings.data.flags.bitfields.alpm_mode = (enum dmub_alpm_mode)link->replay_settings.config.alpm_mode;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
326
if (link->replay_settings.config.alpm_mode == DC_ALPM_AUXLESS) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
334
cmd.pr_copy_settings.data.auxless_alpm_data.lttpr_count = link->dc->link_srv->dp_get_lttpr_count(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
337
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
338
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
339
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
34
link->ctx->logger
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
341
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
348
if (dc_is_embedded_signal(link->connector_signal))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
358
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
360
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
364
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
379
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
381
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
385
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
400
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
402
const struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_panel_replay.c
407
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
78
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
96
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
1006
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1018
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
1023
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
1030
status = dpcd_set_training_pattern(link, DP_TRAINING_PATTERN_VIDEOIDLE);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1032
if (dp_check_dpcd_reqeust_status(link, status))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1038
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
1048
enum dc_status dpcd_configure_channel_coding(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1057
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1070
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1078
link, training_pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1081
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1095
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1114
if (link->ep_type == DISPLAY_ENDPOINT_PHY &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1117
link->dpcd_caps.max_ln_count.bits.POST_LT_ADJ_REQ_SUPPORTED;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1120
status = core_link_write_dpcd(link, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1125
status = core_link_write_dpcd(link, DP_LANE_COUNT_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1130
if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_13 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1137
if (link->connector_signal == SIGNAL_TYPE_EDP) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1140
core_link_read_dpcd(link, DP_SUPPORTED_LINK_RATES,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1143
status = core_link_write_dpcd(link, DP_LINK_BW_SET, &rate, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1147
status = core_link_write_dpcd(link, DP_LINK_RATE_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1154
status = core_link_write_dpcd(link, DP_LINK_BW_SET, &rate, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1185
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1197
status = core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1227
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1247
dp_training_pattern_to_dpcd_training_pattern(link, pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1250
dp_initialize_scrambling_data_symbols(link, pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1255
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1257
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1327
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1333
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1341
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1348
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1354
void start_clock_recovery_pattern_early(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1361
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
1362
dp_set_hw_lane_settings(link, link_res, lt_settings, offset);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1367
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1373
const struct link_hwss *link_hwss = get_link_hwss(link, link_res);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1379
pattern_param.dp_panel_mode = dp_get_panel_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1382
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
1386
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1417
dp_set_hw_test_pattern(link, link_res, test_pattern, NULL, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1423
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1449
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1485
dp_set_drive_settings(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1511
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1519
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
1526
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
1531
if (link->connector_signal != SIGNAL_TYPE_EDP && status == LINK_TRAINING_SUCCESS) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1533
if (!link->skip_fallback_on_link_loss)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1534
status = dp_check_link_loss_status(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1540
perform_post_lt_adj_req_sequence(link, link_res, lt_settings) == false)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1548
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1557
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1569
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1575
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1576
&link->preferred_training_settings,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1580
dpcd_exit_training_mode(link, encoding);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1583
dpcd_configure_lttpr_mode(link, <_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1585
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
1586
dpcd_configure_channel_coding(link, <_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1592
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
1593
status = dp_perform_fixed_vs_pe_training_sequence(link, link_res, <_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1595
status = dp_perform_8b_10b_link_training(link, link_res, <_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1597
status = dp_perform_128b_132b_link_training(link, link_res, <_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1602
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
1603
link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1604
dpia_training_abort(link, <_settings, 0);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1608
status = dp_transition_to_video_idle(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1614
dp_log_training_result(link, <_settings, status);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1616
link->ctx->dc->debug_data.ltFailCount++;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1631
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1632
enum dp_panel_mode panel_mode = dp_get_panel_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1636
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
1643
dp_trace_commit_lt_init(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1652
dp_trace_set_lt_start_timestamp(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1657
__func__, link->link_index, (unsigned int)j + 1, attempts,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1662
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1674
edp_set_panel_assr(link, pipe_ctx, &panel_mode, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1676
dp_set_panel_mode(link, panel_mode);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1678
if (link->aux_access_disabled) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1679
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
1682
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
1684
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1691
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
1695
link->verified_link_cap.link_rate = link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1696
link->verified_link_cap.lane_count = link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1697
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
1702
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1708
dp_trace_lt_total_count_increment(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1709
dp_trace_lt_result_update(link, status, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1710
dp_trace_set_lt_end_timestamp(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1714
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1716
link->verified_link_cap.link_rate = link->cur_link_settings.link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1717
link->verified_link_cap.lane_count = link->cur_link_settings.lane_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1718
dm_helpers_dp_mst_update_branch_bandwidth(link->ctx, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1725
dp_trace_lt_fail_count_update(link, fail_count, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1726
if (link->ep_type == DISPLAY_ENDPOINT_PHY) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1734
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1736
!link->dc->config.enable_dpia_pre_training) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1746
__func__, link->link_index, (unsigned int)j + 1, attempts,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1752
__func__, link->link_index, (unsigned int)j + 1, attempts,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1757
dp_disable_link_phy(link, &pipe_ctx->link_res, signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1763
if (link_detect_connection_type(link, &type) && type == dc_connection_none) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1790
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
1802
link_bw = dp_link_bandwidth_kbps(link, &cur_link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
1810
__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
565
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
571
for (lane = 0; lane < (uint32_t)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
596
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
618
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
705
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
707
if (!dp_is_lttpr_present(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
710
if (link->dc->debug.lttpr_mode_override == LTTPR_MODE_TRANSPARENT) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
712
} else if (link->dc->debug.lttpr_mode_override == LTTPR_MODE_NON_TRANSPARENT) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
714
} else if (link->dc->debug.lttpr_mode_override == LTTPR_MODE_NON_LTTPR) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
721
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
728
if (!link->dp_ss_off && overrides->downspread != NULL)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
740
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
741
lt_settings->ffe_preset = &link->forced_dp_ffe_preset;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
745
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
747
lt_settings->voltage_swing = &link->bios_forced_drive_settings.VOLTAGE_SWING;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
748
lt_settings->pre_emphasis = &link->bios_forced_drive_settings.PRE_EMPHASIS;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
781
if (link->preferred_training_settings.fec_enable != NULL)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
782
lt_settings->should_set_fec_ready = *link->preferred_training_settings.fec_enable;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
785
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
788
dp_get_lttpr_mode_override(link, <_settings->lttpr_mode);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
803
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
809
struct dpcd_caps *rx_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
814
if (!link->dc->config.unify_link_enc_assignment)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
815
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
840
enum lttpr_mode dp_decide_lttpr_mode(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
846
return dp_decide_8b_10b_lttpr_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
848
return dp_decide_128b_132b_lttpr_mode(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
892
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
898
decide_8b_10b_training_settings(link, link_res, link_settings, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
900
decide_128b_132b_training_settings(link, link_res, link_settings, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
904
enum dc_status configure_lttpr_mode_transparent(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
909
return core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
916
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
926
const struct dc *dc = link->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
932
result = core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
940
link->dpcd_caps.lttpr_caps.mode = repeater_mode;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
948
result = core_link_write_dpcd(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
954
link->dpcd_caps.lttpr_caps.mode = repeater_mode;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
958
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
963
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
964
link->dpcd_caps.lttpr_caps.aux_rd_interval[--repeater_cnt] = 0;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
970
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
972
(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
973
sizeof(link->dpcd_caps.lttpr_caps.aux_rd_interval[repeater_id - 1]));
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
974
link->dpcd_caps.lttpr_caps.aux_rd_interval[repeater_id - 1] &= 0x7F;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
982
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
987
status = configure_lttpr_mode_transparent(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
990
status = configure_lttpr_mode_non_transparent(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
995
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
171
dpcd_set_training_pattern(link, lt_settings->pattern_for_cds);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
175
dp_wait_for_training_aux_rd_interval(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
178
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
197
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
204
if (link->dc->debug.legacy_dp2_lt) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
207
decide_8b_10b_training_settings(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
211
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
214
dpcd_set_link_settings(link, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
217
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
223
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
231
void decide_128b_132b_training_settings(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
240
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
244
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
251
link->dpcd_caps.lttpr_caps.phy_repeater_cnt) + 1) * 20000;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_128b_132b.c
253
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
258
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
262
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 = (uint16_t)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 = (uint16_t)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, (uint8_t)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, (uint8_t)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, <_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, <_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, <_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
1007
lt_settings.lttpr_mode = dp_decide_lttpr_mode(link, &link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1010
result = dpia_configure_link(link, link_res, link_setting, <_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1015
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
1022
result = dpia_training_cr_phase(link, link_res, <_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1027
result = dpia_training_eq_phase(link, link_res, <_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1032
result = dpia_training_end(link, <_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1044
if (!link->skip_fallback_on_link_loss)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1045
result = dp_check_link_loss_status(link, <_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1047
dpia_training_abort(link, <_settings, repeater_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
1049
dpia_training_end(link, <_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, <_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
175
(void)link;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
236
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
250
dp_training_pattern_to_dpcd_training_pattern(link, pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
253
dp_initialize_scrambling_data_symbols(link, pattern);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
269
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
289
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
308
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
328
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
331
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
353
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
360
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
373
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
376
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
384
status = dpcd_set_lane_settings(link, lt_settings, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
390
dp_wait_for_training_aux_rd_interval(link, wait_time_microsec);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
394
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
439
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
458
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
488
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
495
dp_wait_for_training_aux_rd_interval(link, wait_time_microsec);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
499
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
542
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
558
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
566
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
568
result = dpia_training_cr_transparent(link, link_res, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
586
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
613
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
631
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
638
status = dpcd_set_lt_pattern(link, tr_pattern, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
651
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
654
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
662
status = dpcd_set_lane_settings(link, lt_settings, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
674
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
676
dp_wait_for_training_aux_rd_interval(link, wait_time_microsec);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
680
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
698
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
712
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
733
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
748
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
753
status = dpcd_set_lt_pattern(link, tr_pattern, DPRX);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
760
dp_wait_for_training_aux_rd_interval(link, wait_time_microsec);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
764
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
782
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
786
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
799
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
815
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
823
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
825
result = dpia_training_eq_transparent(link, link_res, lt_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
832
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
844
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
865
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
875
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
882
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
889
status = dpcd_clear_lt_pattern(link, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
897
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
907
status = dpcd_clear_lt_pattern(link, hop);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
915
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
925
const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
930
if (link->dc->debug.dpia_debug.bits.extend_aux_rd_interval)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
936
link->dpcd_caps.lttpr_caps.aux_rd_interval[hop - 1]);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
947
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
956
link->link_id.enum_id - ENUM_ID_1,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
958
link->is_hpd_pending);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
961
if (link->is_hpd_pending)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
968
core_link_write_dpcd(link, dpcd_tps_offset, &data, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
969
core_link_write_dpcd(link, DP_LINK_BW_SET, &data, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
970
core_link_write_dpcd(link, DP_LANE_COUNT_SET, &data, 1);
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
972
if (!link->dc->config.consolidated_dpia_dp_lt)
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
973
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
977
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
987
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
990
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
994
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
199
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
220
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
232
struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
243
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
103
if (link->ext_enc_id.id) {
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
105
switch (link->dpcd_caps.branch_dev_id) {
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, (uint8_t)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
1060
dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1065
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
1067
if (link->replay_settings.config.alpm_mode == DC_ALPM_AUXLESS) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1073
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1074
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1080
link->replay_settings.config.replay_video_conferencing_optimization_enabled = false;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1091
bool edp_send_replay_cmd(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1095
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1102
if (dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1114
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
1116
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1123
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1126
if (coasting_vtotal && (link->replay_settings.coasting_vtotal != coasting_vtotal ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1127
link->replay_settings.frame_skip_number != frame_skip_number)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1129
link->replay_settings.coasting_vtotal = coasting_vtotal;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1130
link->replay_settings.frame_skip_number = frame_skip_number;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1136
bool edp_replay_residency(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1139
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
114
link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1143
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1149
if (replay != NULL && link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1157
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
1160
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1164
if (!dp_pr_get_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1168
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
117
link->dpcd_caps.
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1170
(link->replay_settings.coasting_vtotal != coasting_vtotal ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1171
link->replay_settings.frame_skip_number != frame_skip_number))) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1172
if (link->replay_settings.replay_feature_enabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1176
link->replay_settings.replay_power_opt_active = *power_opts;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1177
link->replay_settings.coasting_vtotal = coasting_vtotal;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1178
link->replay_settings.frame_skip_number = frame_skip_number;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1188
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
1191
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1198
if (stream && stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1206
int edp_get_backlight_level(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1208
struct abm *abm = get_abm_from_stream_res(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1209
struct panel_cntl *panel_cntl = link->panel_cntl;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1210
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1225
int edp_get_target_backlight_pwm(const struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1227
struct abm *abm = get_abm_from_stream_res(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1235
bool is_smartmux_suported(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1237
if (link->dc->caps.is_apu)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1239
if (!link->dc->config.smart_mux_version)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1245
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
1259
link_enc_index = (uint8_t)(link->link_enc->transmitter - TRANSMITTER_UNIPHY_A);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1267
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
1269
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
128
if (strncmp(link->dpcd_caps.branch_dev_name,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1282
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
1291
if (link->dc->config.use_assr_psp_message) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1292
edp_set_assr_enable(link->dc, link, link_res, enable);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1301
result = cp_psp->funcs.enable_assr(cp_psp->handle, link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
1303
if (!result && link->panel_mode != DP_PANEL_MODE_EDP)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
131
link->dpcd_caps.
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
141
if (link->dpcd_caps.panel_mode_edp &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
142
(link->connector_signal == SIGNAL_TYPE_EDP ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
143
(link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
144
link->is_internal_display))) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
151
bool edp_set_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
156
if (!link || (link->connector_signal != SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
157
link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
160
if (link->is_dds && !link->dpcd_caps.panel_luminance_control)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
164
if (link->backlight_control_type == BACKLIGHT_CONTROL_VESA_AUX &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
165
!link->dc->caps.dmub_caps.aux_backlight_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
176
core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_CONTROL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
180
core_link_write_dpcd(link, DP_SOURCE_BACKLIGHT_CONTROL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
184
core_link_read_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
189
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
194
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
198
} else if (link->backlight_control_type == BACKLIGHT_CONTROL_AMD_AUX) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
207
if (link->dpcd_sink_ext_caps.bits.oled == 1)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
211
core_link_read_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
216
core_link_write_dpcd(link, DP_EDP_BACKLIGHT_MODE_SET_REGISTER,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
220
if (core_link_write_dpcd(link, DP_SOURCE_BACKLIGHT_LEVEL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
225
if (core_link_write_dpcd(link, DP_SOURCE_BACKLIGHT_CONTROL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
233
bool edp_get_backlight_level_nits(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
241
if (!link || (link->connector_signal != SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
242
link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
245
if (link->is_dds)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
247
if (!core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_CURRENT_PEAK,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
265
bool edp_backlight_enable_aux(struct dc_link *link, bool enable)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
269
if (!link || (link->connector_signal != SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
270
link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
273
if (link->is_dds)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
275
if (core_link_write_dpcd(link, DP_SOURCE_BACKLIGHT_ENABLE,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
284
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
286
if (!link || (link->connector_signal != SIGNAL_TYPE_EDP &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
287
link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
290
if (!link->dpcd_caps.panel_luminance_control) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
291
if (!core_link_read_dpcd(link, DP_SOURCE_BACKLIGHT_LEVEL,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
299
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
308
bool set_default_brightness_aux(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
312
if (link && link->dpcd_sink_ext_caps.bits.oled == 1) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
313
if (!read_default_bl_aux(link, &default_backlight))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
319
return edp_set_backlight_level_nits(link, true,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
325
bool edp_is_ilr_optimization_enabled(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
327
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
332
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
335
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
337
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
338
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
339
max_ilr_rate = link->dpcd_caps.edp_supported_link_rates[i];
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
345
bool edp_is_ilr_optimization_required(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
354
ASSERT(link || crtc_timing); // invalid input
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
356
if (!edp_is_ilr_optimization_enabled(link))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
361
core_link_read_dpcd(link, DP_LINK_BW_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
370
core_link_read_dpcd(link, DP_LINK_RATE_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
374
core_link_read_dpcd(link, DP_LANE_COUNT_SET,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
377
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
380
edp_decide_link_settings(link, &link_setting, req_bw);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
382
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
384
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
394
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
396
if (link->connector_signal != SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
399
link->dc->hwss.edp_power_control(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
401
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
402
if (link->dc->hwss.edp_backlight_control)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
403
link->dc->hwss.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
406
void edp_set_panel_power(struct dc_link *link, bool powerOn)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
410
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
411
link->dc->hwss.edp_power_control(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
412
link->dc->hwss.edp_wait_for_hpd_ready(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
415
if (link->dc->hwss.edp_backlight_control)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
416
link->dc->hwss.edp_backlight_control(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
419
dpcd_write_rx_power_ctrl(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
422
dpcd_write_rx_power_ctrl(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
425
if (link->dc->hwss.edp_backlight_control)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
426
link->dc->hwss.edp_backlight_control(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
429
if (!link->dc->config.edp_no_power_sequencing)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
430
link->dc->hwss.edp_power_control(link, false);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
434
bool edp_wait_for_t12(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
436
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
437
link->dc->hwss.edp_wait_for_T12(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
445
void edp_add_delay_for_T9(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
447
if (link && link->panel_config.pps.extra_delay_backlight_off > 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
448
fsleep(link->panel_config.pps.extra_delay_backlight_off * 1000);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
451
bool edp_receiver_ready_T9(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
458
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
464
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
476
bool edp_receiver_ready_T7(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
487
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
491
enter_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
494
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
500
finish_timestamp = dm_get_timestamp(link->ctx);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
501
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
505
if (link && link->panel_config.pps.extra_t7_ms > 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
506
fsleep(link->panel_config.pps.extra_t7_ms * 1000);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
511
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
516
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
520
ret = dm_helpers_dp_write_dpcd(link->ctx, link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
527
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
530
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
535
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
545
bool edp_set_backlight_level(const struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
548
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
555
if (dc_is_embedded_signal(link->connector_signal)) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
556
struct pipe_ctx *pipe_ctx = get_pipe_from_link(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
558
if (link->panel_cntl)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
559
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
580
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
583
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
591
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
594
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
600
if (power_opts && link->psr_settings.psr_power_opt != *power_opts) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
601
link->psr_settings.psr_power_opt = *power_opts;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
603
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
604
psr->funcs->psr_set_power_opt(psr, link->psr_settings.psr_power_opt, (uint8_t)panel_inst);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
607
if (psr != NULL && link->psr_settings.psr_feature_enabled &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
612
if (allow_active && link->psr_settings.psr_allow_active != *allow_active) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
613
link->psr_settings.psr_allow_active = *allow_active;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
615
if (!link->psr_settings.psr_allow_active)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
618
if (psr != NULL && link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
619
psr->funcs->psr_enable(psr, link->psr_settings.psr_allow_active, wait, (uint8_t)panel_inst);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
621
link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
622
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
629
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
631
struct dc *dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
636
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
639
if (psr != NULL && link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
641
else if (dmcu != NULL && link->psr_settings.psr_feature_enabled)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
648
transmitter_to_phy_id(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
650
struct dc_context *dc_ctx = link->ctx;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
651
enum transmitter transmitter_value = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
684
bool edp_setup_psr(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
699
if (!link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
707
if (link->panel_config.psr.read_psrcap_again) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
709
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
710
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
712
&link->dpcd_caps.psr_info.psr_version,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
713
sizeof(link->dpcd_caps.psr_info.psr_version));
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
719
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
720
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
725
if (link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
728
dc = link->ctx->dc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
735
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
744
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
766
link->ctx,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
767
link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
772
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
773
edp_power_alpm_dpcd_enable(link, true);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
783
if (link->psr_settings.psr_vtotal_control_support) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
786
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
791
if (dc->config.dp_connector_no_native_i2c && link->no_ddc_pin)
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
792
psr_context->channel = (enum channel_id)link->aux_hw_inst;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
794
psr_context->channel = link->ddc->ddc_pin->hw_info.ddc_channel;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
795
psr_context->transmitterId = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
796
psr_context->engineId = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
814
psr_context->smuPhyId = transmitter_to_phy_id(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
833
link->dc->res_pool->timing_generator_count;
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
848
if (link->ctx->asic_id.chip_family >= FAMILY_RV) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
849
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, (uint8_t)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_hdmi_frl.c
1004
link_stream->link->frl_link_settings.frl_link_rate);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1005
link_stat = hdmi_frl_perform_link_training_with_retries(link_stream->link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1009
link_stream->link->hpo_frl_link_enc->funcs->enable_output(
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
101
DC_LOGGER_INIT(ddc_service->link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1010
link_stream->link->hpo_frl_link_enc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1011
if (link_stream->link->frl_flags.apply_vsdb_rcc_wa)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1012
link_stream->link->hpo_frl_link_enc->funcs->apply_vsdb_rcc_wa(link_stream->link->hpo_frl_link_enc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1013
hdmi_frl_poll_start(link_stream->link->ddc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1035
&pipe->stream->link->cur_link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1039
link_stream->link->frl_link_settings.frl_link_rate--;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1040
if (link_stream->link->frl_link_settings.frl_link_rate >
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1042
link_stream->link->frl_link_settings.frl_num_lanes = 4;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1044
link_stream->link->frl_link_settings.frl_num_lanes = 3;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1046
link_stream->link->frl_link_settings.frl_link_rate);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1088
stream->link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1090
&stream->link->frl_verified_link_cap);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1092
if (stream->link->frl_flags.force_frl_rate != 0 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1093
stream->link->frl_flags.force_frl_rate < stream->link->frl_verified_link_cap.frl_link_rate) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1094
switch (stream->link->frl_flags.force_frl_rate) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1138
if (stream->link->frl_flags.force_frl_max) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1139
*frl_link_settings = stream->link->frl_verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1142
if (stream->link->frl_flags.force_frl_dsc) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1143
*frl_link_settings = stream->link->frl_verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1147
if (stream->link->local_sink)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1148
if (stream->link->local_sink->edid_caps.panel_patch.hdmi_spe_handling) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1149
*frl_link_settings = stream->link->frl_verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
115
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1155
stream->link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
1159
stream->link->frl_verified_link_cap.frl_link_rate)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
117
switch (link->link_enc->transmitter) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
135
void hdmi_frl_retrieve_link_cap(struct dc_link *link, struct dc_sink *sink)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
139
if (link->link_enc->features.flags.bits.IS_FRL_8G_CAPABLE)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
142
if (link->link_enc->features.flags.bits.IS_FRL_10G_CAPABLE)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
145
if (link->link_enc->features.flags.bits.IS_FRL_12G_CAPABLE)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
148
if (link->dc->debug.max_frl_rate != 0 && encoder_link_rate > link->dc->debug.max_frl_rate)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
149
encoder_link_rate = link->dc->debug.max_frl_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
151
if (link->frl_flags.force_frl_rate != 0 &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
152
link->frl_flags.force_frl_rate != 0xF)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
153
encoder_link_rate = link->frl_flags.force_frl_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
155
link->frl_reported_link_cap.frl_link_rate =
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
160
link->frl_reported_link_cap.frl_num_lanes = 3;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
162
link->frl_reported_link_cap.frl_num_lanes = 4;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
166
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
169
return &link->frl_verified_link_cap;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
179
DC_LOGGER_INIT(ddc_service->link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
197
bool hdmi_frl_poll_status_flag(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
209
struct hpo_frl_link_encoder *hpo_frl_link_enc = link->hpo_frl_link_enc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
210
struct link_encoder *dio_link_enc = link->link_enc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
216
link_query_ddc_data(link->ddc, slave_address, &offset,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
224
link_query_ddc_data(link->ddc, slave_address,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
232
link_query_ddc_data(link->ddc, slave_address,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
238
link_query_ddc_data(link->ddc, slave_address,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
273
if (link->dc->debug.limit_ffe == 0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
280
hdmi_return_preeshoot_and_deemphasis(link, &test_req,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
287
&link->frl_link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
291
hdmi_frl_LTS_clear_Link_Setting(link->ddc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
292
hdmi_frl_LTS_clear_Update_flag(link->ddc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
294
hdmi_frl_perform_link_training_with_retries(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
301
link_query_ddc_data(link->ddc, slave_address,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
310
link_query_ddc_data(link->ddc, slave_address,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
314
hdmi_return_preeshoot_and_deemphasis(link, &test_req,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
321
&link->frl_link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
327
link_query_ddc_data(link->ddc, slave_address,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
346
DC_LOGGER_INIT(ddc_service->link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
395
DC_LOGGER_INIT(ddc_service->link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
431
struct hpo_frl_link_encoder *hpo_frl_link_enc = ddc_service->link->hpo_frl_link_enc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
432
struct link_encoder *dio_link_enc = ddc_service->link->link_enc;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
434
uint8_t FFE_Levels = (uint8_t)ddc_service->link->dc->debug.limit_ffe;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
440
DC_LOGGER_INIT(ddc_service->link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
609
if (ddc_service->link->dc->debug.limit_ffe == 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
61
DC_LOGGER_INIT(ddc_service->link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
635
if (ddc_service->link->dc->debug.limit_ffe == 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
690
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
696
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
698
if (link->preferred_hdmi_frl_settings.valid)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
699
max_retries = link->preferred_hdmi_frl_settings.max_retries;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
711
status = hdmi_frl_perform_link_training(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
712
&link->frl_link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
726
struct dc_link *link, struct link_resource *link_res,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
731
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
735
if (link->frl_link_settings.frl_link_rate ==
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
74
static void hdmi_return_preeshoot_and_deemphasis(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
744
link->ctx->dc->hwss.setup_hdmi_frl_link(link, 0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
747
status = hdmi_frl_perform_link_training(link->ddc,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
748
&link->frl_link_settings);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
750
link->dc->hwss.disable_link_output(link, link_res, SIGNAL_TYPE_HDMI_FRL);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
755
link->frl_link_settings.frl_link_rate--;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
756
if (link->frl_link_settings.frl_link_rate <
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
758
link->frl_link_settings.frl_num_lanes = 3;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
764
void hdmi_frl_verify_link_cap(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
772
unsigned int t_id = link->link_enc->transmitter;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
773
struct link_resource link_res = {.hpo_frl_link_enc = link->hpo_frl_link_enc};
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
778
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
780
link->frl_flags.force_frl_rate =
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
781
link->ctx->dc->debug.force_frl_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
782
link->frl_flags.force_frl_always =
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
783
link->preferred_hdmi_frl_settings.force_frl_always ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
784
link->ctx->dc->debug.force_frl_always;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
785
link->frl_flags.force_frl_max =
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
786
link->preferred_hdmi_frl_settings.force_frl_max ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
787
link->ctx->dc->debug.force_frl_max ? true :
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
788
hdmi_frl_test_max_rate(link->ddc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
789
link->frl_flags.force_frl_dsc =
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
79
if (link->hdmi_cable_id.raw[0] && link->frl_link_settings.frl_link_rate >=
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
790
link->ctx->dc->debug.force_frl_dsc ? true :
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
791
hdmi_frl_test_dsc_max_rate(link->ddc);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
792
link->frl_flags.apply_vsdb_rcc_wa =
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
793
link->ctx->dc->debug.apply_vsdb_rcc_wa;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
795
if (link->frl_flags.force_frl_rate == 0xF)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
798
if (link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
799
link->local_sink->edid_caps.panel_patch.force_frl)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
800
link->frl_flags.force_frl_always = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
802
if (!link->frl_flags.force_frl_max &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
803
!link->frl_flags.force_frl_dsc &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
804
link->local_sink->edid_caps.panel_patch.hdmi_comp_auto) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
805
link->frl_flags.force_frl_max = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
806
link->frl_flags.force_frl_dsc = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
809
if (link->frl_flags.force_frl_max &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
81
*de_emphasis_only = (test_req->fields.TXFFE_DEEMPHASIS && link->hdmi_cable_id.bits.no_DeEmphasis_n) ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
810
!link->frl_flags.force_frl_dsc &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
811
link->local_sink->edid_caps.panel_patch.hdmi_comp_auto) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
812
link->frl_flags.force_frl_dsc = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
815
if (link->local_sink &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
816
link->local_sink->edid_caps.panel_patch.vsdb_rcc_wa)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
817
link->frl_flags.apply_vsdb_rcc_wa = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
819
frl_phy_clock_source_id = hdmi_frl_find_matching_phypll(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
82
!link->hdmi_cable_id.bits.no_PreShoot_n;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
823
if (link->frl_flags.force_frl_rate != 0) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
825
link->frl_flags.force_frl_rate) ?
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
827
link->frl_flags.force_frl_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
828
link->frl_verified_link_cap = *cur;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
83
*pre_shoot_only = (test_req->fields.TXFFE_PRESHOOT && link->hdmi_cable_id.bits.no_PreShoot_n) ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
832
if (link->local_sink) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
833
if (link->local_sink->edid_caps.panel_patch.hdmi_spe_handling) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
834
link->dc->hwss.disable_link_output(link, &link_res, link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
835
link->dc->res_pool->clock_sources[t_id]->funcs->cs_power_down(
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
836
link->dc->res_pool->clock_sources[t_id]);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
837
link->frl_verified_link_cap = *cur;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
84
!link->hdmi_cable_id.bits.no_DeEmphasis_n;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
841
if (link->local_sink->edid_caps.panel_patch.block_10g) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
847
link->frl_link_settings = cur_link_setting;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
849
if (link->dc->ctx->dce_version <= DCN_VERSION_3_0)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
850
link->dc->hwss.disable_link_output(link, &link_res, SIGNAL_TYPE_HDMI_FRL);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
852
link->dc->hwss.disable_link_output(link, &link_res, link->connector_signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
854
link->dc->res_pool->clock_sources[t_id]->funcs->cs_power_down(
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
855
link->dc->res_pool->clock_sources[t_id]);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
86
(!link->hdmi_cable_id.bits.no_PreShoot_n &&
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
860
status = hdmi_frl_perform_link_training_with_fallback(link, &link_res, frl_phy_clock_source_id);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
863
cur->frl_link_rate = link->frl_link_settings.frl_link_rate;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
864
cur->frl_num_lanes = link->frl_link_settings.frl_num_lanes;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
866
link->frl_verified_link_cap = *cur;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
869
link->frl_verified_link_cap.frl_link_rate = HDMI_FRL_LINK_RATE_DISABLE;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
87
!link->hdmi_cable_id.bits.no_DeEmphasis_n);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
870
link->frl_verified_link_cap.frl_num_lanes = 3;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
874
stream = link->dc->current_state->streams[i];
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
875
if (stream && stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
882
link->dc->hwss.disable_link_output(link, &link_res, link_stream->signal);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
889
struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
901
DC_LOGGER_INIT(link->ctx->logger);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
905
if (pipe->stream && pipe->stream->link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
906
if (pipe->stream->link == link) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
920
frl_validate_mode_timing(link, &link_stream->timing, link_setting);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
923
link->preferred_hdmi_frl_settings = *lt_overrides;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
925
memset(&link->preferred_hdmi_frl_settings, 0, sizeof(link->preferred_hdmi_frl_settings));
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
927
link_stream->link->frl_link_settings = *link_setting;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
928
link_stream->link->frl_verified_link_cap = *link_setting;
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
949
&link_stream->link->frl_link_settings.borrow_params,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
955
if ((!link_stream->link->link_enc) ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
956
(!link_stream->link->hpo_frl_link_enc) ||
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
961
switch (link_stream->link->frl_link_settings.frl_link_rate) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
993
memset(&link_stream->link->cur_link_settings, 0,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
997
frl_phy_clock_source_id = hdmi_frl_find_matching_phypll(link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.c
999
dc->hwss.setup_hdmi_frl_link(link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.h
29
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.h
33
void hdmi_frl_retrieve_link_cap(struct dc_link *link, struct dc_sink *sink);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.h
35
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.h
37
struct dc_link *link, struct link_resource *link_res,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.h
39
void hdmi_frl_verify_link_cap(struct dc_link *link,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.h
44
bool hdmi_frl_poll_status_flag(struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.h
46
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hdmi_frl.h
50
struct dc_link *link);
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
107
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
133
enum hpd_source_id get_hpd_line(struct dc_link *link)
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
141
if (link->ctx && link->ctx->dce_version <= DCN_VERSION_4_01) {
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
142
hpd = link_get_hpd_gpio(link->ctx->dc_bios, link->link_id,
drivers/gpu/drm/amd/display/dc/link/protocols/link_hpd.c
143
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
983
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
984
enum engine_id preferred_engine = link->link_enc->preferred_engine;
drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
989
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
990
preferred_engine = link->link_enc->analog_engine;
drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
1218
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
1228
link->link_enc->preferred_engine)
drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
898
pixel_clk_params->encoder_object_id = stream->link->link_enc->id;
drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
900
pixel_clk_params->encoder_object_id = stream->link->link_enc->analog_id;
drivers/gpu/drm/amd/display/dc/resource/dce112/dce112_resource.c
857
switch (stream->link->link_enc->transmitter) {
drivers/gpu/drm/amd/display/dc/resource/dce112/dce112_resource.c
987
if (stream && stream->link && stream->link->link_enc)
drivers/gpu/drm/amd/display/dc/resource/dce120/dce120_resource.c
1275
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1035
pixel_clk_params->encoder_object_id = stream->link->link_enc->id;
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1272
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1284
if (link->ep_type == DISPLAY_ENDPOINT_PHY && pool->stream_enc[i]->id ==
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1285
link->link_enc->preferred_engine)
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1288
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && pool->stream_enc[i]->id ==
drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
1289
link->dpia_preferred_eng_id)
drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
1258
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
1269
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
2806
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
2770
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn302/dcn302_resource.c
1647
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn303/dcn303_resource.c
1579
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2417
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
2424
struct dc_state *state = link->dc->current_state;
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2428
if (link->dc->hwss.calculate_pix_rate_divider) {
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2430
if (state->streams[i] && state->streams[i]->link && state->streams[i]->link == link)
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2431
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
2435
if (link->dc->res_pool->funcs->build_pipe_pix_clk_params)
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
2436
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
2696
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource_helpers.c
238
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
2184
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
1864
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
1874
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
2391
ddc_init_data.link = NULL;
drivers/gpu/drm/amd/display/dc/resource/dcn42/dcn42_resource.c
1658
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dcn42/dcn42_resource.c
1668
link_enc = link_enc_cfg_get_link_enc(link);
drivers/gpu/drm/amd/display/dc/resource/dcn42/dcn42_resource_fpu.c
29
struct dc_link *link = context->streams[0]->sink->link;
drivers/gpu/drm/amd/display/dc/resource/dcn42/dcn42_resource_fpu.c
30
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
drivers/gpu/drm/amd/display/dc/resource/dcn42/dcn42_resource_fpu.c
31
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) && !link->panel_config.psr.disable_psr);
drivers/gpu/drm/amd/display/dc/resource/dcn42/dcn42_resource_fpu.c
32
bool is_replay = link && link->replay_settings.replay_feature_enabled;
drivers/gpu/drm/amd/display/dc/resource/dcn42b/dcn42b_resource.c
1623
struct dc_link *link = stream->link;
drivers/gpu/drm/amd/display/dc/resource/dcn42b/dcn42b_resource.c
1633
link_enc = link_enc_cfg_get_link_enc(link);
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
322
struct mod_hdcp_link *link, struct mod_hdcp_display *display,
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
362
hdcp->connection.link = *link;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
372
callback_in_ms(hdcp->connection.link.adjust.auth_delay * 1000, output);
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
415
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
443
if (memcmp(link_adjust, &hdcp->connection.link.adjust,
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
451
if (memcmp(link_adjust, &hdcp->connection.link.adjust,
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
472
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
500
query->link = &hdcp->connection.link;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
509
if (query->link->adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_0)
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
511
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
89
!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/hdcp.h
411
return (hdcp->connection.link.mode == MOD_HDCP_MODE_DEFAULT &&
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h
412
hdcp->connection.link.hdmi.frl_enabled);
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
684
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
205
dtm_cmd->dtm_in_message.topology_update_v3.phy_id = link->phy_idx;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
206
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
207
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
210
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
526
if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_0)
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
529
else if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_1)
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
532
else if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_MAX)
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h
318
const struct mod_hdcp_link *link;
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h
342
struct mod_hdcp_link *link, struct mod_hdcp_display *display,
drivers/gpu/drm/amd/display/modules/inc/mod_power.h
245
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/inc/mod_power.h
251
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/inc/mod_power.h
257
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/inc/mod_power.h
262
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/inc/mod_power.h
267
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/inc/mod_power.h
279
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/inc/mod_power.h
328
const struct dc_link *link,
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
663
if (stream && stream->link->replay_settings.config.replay_supported &&
drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
664
stream->link->replay_settings.config.replay_version == DC_VESA_PANEL_REPLAY)
drivers/gpu/drm/amd/display/modules/power/power.c
464
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power.c
483
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power.c
485
if (link != NULL && dc_get_edp_link_panel_inst(dc, link, &panel_inst)) {
drivers/gpu/drm/amd/display/modules/power/power.c
486
if (link->ctx->dc->config.dp_connector_no_native_i2c && link->no_ddc_pin) {
drivers/gpu/drm/amd/display/modules/power/power.c
487
aux_inst = (uint8_t)link->aux_hw_inst;
drivers/gpu/drm/amd/display/modules/power/power.c
489
ASSERT(link->ddc->ddc_pin->hw_info.ddc_channel <= 0xFF);
drivers/gpu/drm/amd/display/modules/power/power.c
490
aux_inst = (uint8_t)link->ddc->ddc_pin->hw_info.ddc_channel;
drivers/gpu/drm/amd/display/modules/power/power.c
493
mod_power_update_backlight_on_mode_change(core_power, link, panel_inst, aux_inst, is_hdr);
drivers/gpu/drm/amd/display/modules/power/power.c
496
mod_power_psr_notify_mode_change(mod_power, stream, link, stream_index);
drivers/gpu/drm/amd/display/modules/power/power.c
499
mod_power_replay_notify_mode_change(mod_power, dc, link, stream, stream_index);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1006
if (!dc_get_edp_link_panel_inst(core_power->dc, stream->link, &inst))
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1066
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1078
if (mod_power_get_hw_target_backlight_pwm(mod_power, link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1089
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1101
if (mod_power_get_hw_target_backlight_pwm(mod_power, link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1112
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1118
*backlight_u16_16 = dc_link_get_target_backlight_pwm(link);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1124
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1136
if (mod_power_get_hw_backlight_pwm(mod_power, link, &backlight_u16_16)) {
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1151
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1166
if (streams[stream_index]->link->connector_signal == SIGNAL_TYPE_EDP ||
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1167
streams[stream_index]->link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT)
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1173
link = dc_stream_get_link(streams[stream_index]);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1174
if (link->dpcd_sink_ext_caps.bits.hdr_aux_backlight_control == 0)
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1177
return dc_link_get_backlight_level_nits(link, backlight_millinit_avg,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1182
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1194
if (mod_power_get_hw_backlight_pwm(mod_power, link, &backlight_u16_16)) {
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1204
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1210
*backlight_u16_16 = dc_link_get_backlight_level(link);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1440
const struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
1451
mod_power_get_hw_backlight_pwm(mod_power, link, ¤t_backlight);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
712
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
719
if (link->dpcd_sink_ext_caps.bits.hdr_aux_backlight_control == 1 ||
drivers/gpu/drm/amd/display/modules/power/power_abm.c
720
link->dpcd_sink_ext_caps.bits.sdr_aux_backlight_control == 1)
drivers/gpu/drm/amd/display/modules/power/power_abm.c
721
dc_link_set_backlight_level_nits(link, core_power->bl_state[panel_inst].isHDR,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
727
core_power->bl_state[panel_inst].backlight_pwm, link->backlight_control_type,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
730
dc_link_set_backlight_level(link, &backlight_level_params);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
739
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_abm.c
747
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
749
return dc_link_set_backlight_level_nits(link, core_power->bl_state[inst].isHDR,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
762
const struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_abm.c
774
if (stream->link->connector_signal != SIGNAL_TYPE_EDP)
drivers/gpu/drm/amd/display/modules/power/power_abm.c
795
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
801
retv = dc_link_set_backlight_level(link, backlight_level_params);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
843
const struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_abm.c
850
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
852
if (link->ctx->dc->config.dp_connector_no_native_i2c && link->no_ddc_pin) {
drivers/gpu/drm/amd/display/modules/power/power_abm.c
853
aux_inst = (uint8_t)link->aux_hw_inst;
drivers/gpu/drm/amd/display/modules/power/power_abm.c
855
ASSERT(link->ddc->ddc_pin->hw_info.ddc_channel <= 0xFF);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
856
aux_inst = (uint8_t)link->ddc->ddc_pin->hw_info.ddc_channel;
drivers/gpu/drm/amd/display/modules/power/power_abm.c
859
if (!dc_get_edp_link_panel_inst(core_power->dc, stream->link, &panel_inst))
drivers/gpu/drm/amd/display/modules/power/power_abm.c
878
link->backlight_control_type, backlight_millinit, transition_time_millisec, is_hdr);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
897
if (!dc_get_edp_link_panel_inst(core_power->dc, stream->link, &inst))
drivers/gpu/drm/amd/display/modules/power/power_abm.c
918
if (!dc_get_edp_link_panel_inst(core_power->dc, stream->link, &inst))
drivers/gpu/drm/amd/display/modules/power/power_abm.c
934
const struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_abm.c
943
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
944
if (link->ctx->dc->config.dp_connector_no_native_i2c && link->no_ddc_pin) {
drivers/gpu/drm/amd/display/modules/power/power_abm.c
945
aux_inst = (uint8_t)link->aux_hw_inst;
drivers/gpu/drm/amd/display/modules/power/power_abm.c
947
ASSERT(link->ddc->ddc_pin->hw_info.ddc_channel <= 0xFF);
drivers/gpu/drm/amd/display/modules/power/power_abm.c
948
aux_inst = (uint8_t)link->ddc->ddc_pin->hw_info.ddc_channel;
drivers/gpu/drm/amd/display/modules/power/power_abm.c
951
if (!dc_get_edp_link_panel_inst(core_power->dc, stream->link, &panel_inst))
drivers/gpu/drm/amd/display/modules/power/power_abm.c
963
aux_inst, backlight_pwm, link->backlight_control_type,
drivers/gpu/drm/amd/display/modules/power/power_abm.c
982
if (!dc_get_edp_link_panel_inst(core_power->dc, stream->link, &inst))
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
149
void init_replay_config(struct dc_link *link, struct replay_config *pr_config);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
150
void set_replay_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
153
void set_replay_defer_update_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
156
void set_replay_frame_skip_number(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
161
void update_replay_coasting_vtotal_from_defer(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
163
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
164
void calculate_replay_link_off_frame_count(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
167
bool is_psr_su_specific_panel(struct dc_link *link);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
169
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
173
bool psr_su_set_dsc_slice_height(struct dc *dc, struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
179
void reset_replay_dsync_error_count(struct dc_link *link);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
180
void change_replay_to_psr(struct dc_link *link);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
181
void change_psr_to_replay(struct dc_link *link);
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
196
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
204
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
208
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_psr.c
106
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
118
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
138
dc_link_set_psr_allow_active(link, NULL, false, false, &power_opt);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
153
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
197
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
199
if (!dc_link_set_psr_allow_active(link, &psr_enable, false, force_static, NULL)) {
drivers/gpu/drm/amd/display/modules/power/power_psr.c
204
link,
drivers/gpu/drm/amd/display/modules/power/power_psr.c
217
dc_link_get_psr_state(link, &state);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
387
const struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
400
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
401
return dc_link_get_psr_state(link, state);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
42
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_psr.c
435
const struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
448
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
450
if (link != NULL)
drivers/gpu/drm/amd/display/modules/power/power_psr.c
451
link->dc->link_srv->edp_get_psr_residency(link, residency, mode);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
486
const struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
504
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
506
return link->dc->link_srv->edp_set_sink_vtotal_in_psr_active(
drivers/gpu/drm/amd/display/modules/power/power_psr.c
507
link, psr_vtotal_idle, psr_vtotal_su);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
51
if ((mod_power == NULL) || (stream == NULL) || (link == NULL))
drivers/gpu/drm/amd/display/modules/power/power_psr.c
517
bool is_psr_su_specific_panel(struct dc_link *link)
drivers/gpu/drm/amd/display/modules/power/power_psr.c
520
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
577
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_psr.c
584
struct dpcd_caps *dpcd_caps = &link->dpcd_caps;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
613
link->psr_settings.psr_frame_capture_indication_req = true;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
614
link->psr_settings.psr_sdp_transmit_line_num_deadline = num_vblank_lines;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
619
link->psr_settings.psr_frame_capture_indication_req = false;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
62
mod_power_calc_psr_configs(&psr_config, link, stream);
drivers/gpu/drm/amd/display/modules/power/power_psr.c
620
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_psr.c
623
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_psr.c
627
psr_config->psr_frame_capture_indication_req = link->psr_settings.psr_frame_capture_indication_req;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
629
!link->dpcd_caps.psr_info.psr_dpcd_caps.bits.LINK_TRAINING_ON_EXIT_NOT_REQUIRED;
drivers/gpu/drm/amd/display/modules/power/power_psr.c
632
bool psr_su_set_dsc_slice_height(struct dc *dc, struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_psr.c
640
if (!(link->connector_signal & SIGNAL_TYPE_EDP) ||
drivers/gpu/drm/amd/display/modules/power/power_psr.c
642
link->panel_config.dsc.disable_dsc_edp ||
drivers/gpu/drm/amd/display/modules/power/power_psr.c
643
!link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT ||
drivers/gpu/drm/amd/display/modules/power/power_psr.c
90
psr_su_set_dsc_slice_height(dc, link,
drivers/gpu/drm/amd/display/modules/power/power_psr.c
94
dc_link_setup_psr(link, stream, &psr_config, &psr_context);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
103
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
109
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
111
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
114
power_opt = mod_power_replay_setup_power_opt(link, active_replay_events, is_ultra_sleep_mode);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
116
if (!dc_link_set_replay_allow_active(link, NULL, false, false, &power_opt))
drivers/gpu/drm/amd/display/modules/power/power_replay.c
145
struct dc_link *link, uint32_t *coasting_vtotal, bool *is_full_screen_video,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
148
if (!link || !coasting_vtotal || !is_full_screen_video || !is_video_playback)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
152
if (!link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_STATIC]
drivers/gpu/drm/amd/display/modules/power/power_replay.c
153
|| !link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_NOM])
drivers/gpu/drm/amd/display/modules/power/power_replay.c
157
link->replay_settings.config.replay_enable_option;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
161
*coasting_vtotal = link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_NOM];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
162
ASSERT(link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_NOM] <= 0xFFFF);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
163
*frame_skip_number = (uint16_t)link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_NOM];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
165
link->replay_settings.config.replay_timing_sync_supported = false;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
175
if (link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_TEST_HARNESS])
drivers/gpu/drm/amd/display/modules/power/power_replay.c
177
link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_TEST_HARNESS];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
178
if (link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_TEST_HARNESS]) {
drivers/gpu/drm/amd/display/modules/power/power_replay.c
179
ASSERT(link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_TEST_HARNESS] <= 0xFFFF);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
181
(uint16_t)link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_TEST_HARNESS];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
187
!link->replay_settings.config.replay_support_fast_resync_in_ultra_sleep_mode)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
188
link->replay_settings.config.replay_timing_sync_supported = false;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
193
if (link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_TEST_HARNESS])
drivers/gpu/drm/amd/display/modules/power/power_replay.c
194
*coasting_vtotal = link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_TEST_HARNESS];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
195
if (link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_TEST_HARNESS]) {
drivers/gpu/drm/amd/display/modules/power/power_replay.c
197
link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_TEST_HARNESS];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
205
!link->replay_settings.config.replay_support_fast_resync_in_ultra_sleep_mode) {
drivers/gpu/drm/amd/display/modules/power/power_replay.c
206
link->replay_settings.config.replay_timing_sync_supported = false;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
212
if (link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_TEST_HARNESS])
drivers/gpu/drm/amd/display/modules/power/power_replay.c
213
*coasting_vtotal = link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_TEST_HARNESS];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
214
if (link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_TEST_HARNESS]) {
drivers/gpu/drm/amd/display/modules/power/power_replay.c
216
link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_TEST_HARNESS];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
249
link->replay_settings.config.replay_timing_sync_supported = false;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
253
link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_FULL_SCREEN_VIDEO];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
256
link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_FULL_SCREEN_VIDEO];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
278
link->replay_settings.config.replay_timing_sync_supported = false;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
281
*coasting_vtotal = link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_NOM];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
284
link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_NOM];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
304
if ((!(link->replay_settings.config.replay_power_opt_supported &
drivers/gpu/drm/amd/display/modules/power/power_replay.c
309
link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_NOM];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
312
link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_NOM];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
320
link->replay_settings.coasting_vtotal_table[PR_COASTING_TYPE_STATIC];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
323
link->replay_settings.frame_skip_number_table[PR_COASTING_TYPE_STATIC];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
333
if (!link->replay_settings.config.replay_support_fast_resync_in_ultra_sleep_mode)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
334
link->replay_settings.config.replay_timing_sync_supported = false;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
357
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
362
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
363
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
374
return link->dc->link_srv->edp_set_coasting_vtotal(link, coasting_vtotal, frame_skip_number);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
381
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
39
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
396
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
397
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
400
cmd_data.sync_data.timing_sync_supported = link->replay_settings.config.replay_timing_sync_supported;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
402
link->dc->link_srv->edp_send_replay_cmd(link, Replay_Set_Timing_Sync_Supported,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
410
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
425
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
426
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
431
link->dc->link_srv->edp_send_replay_cmd(link, Replay_Disabled_Adaptive_Sync_SDP,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
44
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
441
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
456
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
457
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
46
if (!link)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
463
link->dc->link_srv->edp_send_replay_cmd(link, Replay_Set_General_Cmd,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
479
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
49
if (!dc_link_set_replay_allow_active(link, &replay_active, false, force_static, NULL))
drivers/gpu/drm/amd/display/modules/power/power_replay.c
494
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
495
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
500
if (link->replay_settings.last_pseudo_vtotal != vtotal) {
drivers/gpu/drm/amd/display/modules/power/power_replay.c
501
link->replay_settings.last_pseudo_vtotal = vtotal;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
502
link->dc->link_srv->edp_send_replay_cmd(link, Replay_Set_Pseudo_VTotal, &cmd_data);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
509
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
515
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
517
if (!link)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
520
pDebug = (union replay_debug_flags *)&link->replay_settings.config.debug_flags;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
527
link->replay_settings.config.replay_error_status.raw, 0);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
533
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
538
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
540
if (!link)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
55
dc_link_get_replay_state(link, &state);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
551
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
556
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
557
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
568
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
573
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
574
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
585
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
590
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
591
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
602
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
607
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
608
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
612
if (!link->replay_settings.config.replay_optimization.bits.LIVE_CAPTURE_WITH_CVT)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
615
if (link->replay_settings.config.live_capture_with_cvt_activated != live_capture_with_cvt_activate) {
drivers/gpu/drm/amd/display/modules/power/power_replay.c
616
link->replay_settings.config.live_capture_with_cvt_activated = live_capture_with_cvt_activate;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
628
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
660
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
661
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
673
link->replay_settings.config.replay_timing_sync_supported;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
676
link, &coasting_vtotal, &is_full_screen_video, &is_ultra_sleep_mode, &frame_skip_number, &is_video_playback);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
680
link->replay_settings.low_rr_full_screen_video_pseudo_vtotal);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
685
if (current_timing_sync_status != link->replay_settings.config.replay_timing_sync_supported)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
688
if (link->replay_settings.config.low_rr_supported) {
drivers/gpu/drm/amd/display/modules/power/power_replay.c
694
if (low_rr_active != link->replay_settings.config.low_rr_activated) {
drivers/gpu/drm/amd/display/modules/power/power_replay.c
696
link->replay_settings.config.low_rr_activated = low_rr_active;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
734
const struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
739
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
740
*replay_active = link->replay_settings.replay_allow_active;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
748
const struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
754
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
761
if (link && link->dc && link->dc->link_srv)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
762
link->dc->link_srv->edp_replay_residency(link, residency, is_start, mode);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
77
static unsigned int mod_power_replay_setup_power_opt(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
770
struct dc_link *link = NULL;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
784
link = dc_stream_get_link(stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
786
if (!link || !link->replay_settings.replay_feature_enabled)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
789
power_opt = mod_power_replay_setup_power_opt(link, active_replay_events, is_ultra_sleep_mode);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
791
return link->dc->link_srv->edp_set_replay_power_opt_and_coasting_vtotal(link, &power_opt, coasting_vtotal, frame_skip_number);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
796
struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
803
if (!mod_power || !dc || !link || !stream)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
809
link->replay_settings.replay_smu_opt_enable =
drivers/gpu/drm/amd/display/modules/power/power_replay.c
810
(link->replay_settings.config.replay_smu_opt_supported &&
drivers/gpu/drm/amd/display/modules/power/power_replay.c
814
link->replay_settings.config.os_request_force_ffu = true;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
818
dc->link_srv->dp_setup_replay(link, stream);
drivers/gpu/drm/amd/display/modules/power/power_replay.c
821
void init_replay_config(struct dc_link *link, struct replay_config *pr_config)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
823
link->replay_settings.config = *pr_config;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
826
void set_replay_frame_skip_number(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
835
if (link == NULL)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
838
if (link->replay_settings.config.frame_skip_supported == false)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
845
frame_skip_number_array = link->replay_settings.defer_frame_skip_number_table;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
847
frame_skip_number_array = link->replay_settings.frame_skip_number_table;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
860
void set_replay_defer_update_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
864
link->replay_settings.defer_update_coasting_vtotal_table[type] = vtotal;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
867
void update_replay_coasting_vtotal_from_defer(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
870
link->replay_settings.coasting_vtotal_table[type] =
drivers/gpu/drm/amd/display/modules/power/power_replay.c
871
link->replay_settings.defer_update_coasting_vtotal_table[type];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
872
link->replay_settings.frame_skip_number_table[type] =
drivers/gpu/drm/amd/display/modules/power/power_replay.c
873
link->replay_settings.defer_frame_skip_number_table[type];
drivers/gpu/drm/amd/display/modules/power/power_replay.c
876
void set_replay_coasting_vtotal(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
880
link->replay_settings.coasting_vtotal_table[type] = vtotal;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
883
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_replay.c
885
link->replay_settings.low_rr_full_screen_video_pseudo_vtotal = vtotal;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
888
void calculate_replay_link_off_frame_count(struct dc_link *link,
drivers/gpu/drm/amd/display/modules/power/power_replay.c
894
if (!link || link->replay_settings.config.replay_version != DC_FREESYNC_REPLAY)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
897
max_deviation_line = link->dpcd_caps.pr_info.max_deviation_line;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
898
pixel_deviation_per_line = link->dpcd_caps.pr_info.pixel_deviation_per_line;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
905
link->replay_settings.link_off_frame_count = max_link_off_frame_count;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
908
void reset_replay_dsync_error_count(struct dc_link *link)
drivers/gpu/drm/amd/display/modules/power/power_replay.c
910
link->replay_settings.replay_desync_error_fail_count = 0;
drivers/gpu/drm/amd/display/modules/power/power_replay.c
92
power_opt &= link->replay_settings.config.replay_power_opt_supported;
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
1713
struct device_link *link;
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
1732
link = device_link_add(&usb_pdev->dev, &gpu_pdev->dev,
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
1734
if (link) {
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
1735
smu->usb_power_link = link;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1010
cdns_mhdp_adjust_lt(mhdp, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1013
r = drm_dp_clock_recovery_ok(link_status, mhdp->link.num_lanes);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1017
if (drm_dp_channel_eq_ok(link_status, mhdp->link.num_lanes)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1042
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1070
*cr_done = drm_dp_clock_recovery_ok(after_cr, mhdp->link.num_lanes);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1072
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1119
phy_cfg.dp.lanes = mhdp->link.num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1131
cdns_mhdp_adjust_lt(mhdp, mhdp->link.num_lanes, 100,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1175
static void cdns_mhdp_lower_link_rate(struct cdns_mhdp_link *link)
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1177
switch (drm_dp_link_rate_to_bw_code(link->rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1179
link->rate = drm_dp_bw_code_to_link_rate(DP_LINK_BW_1_62);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1182
link->rate = drm_dp_bw_code_to_link_rate(DP_LINK_BW_2_7);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1185
link->rate = drm_dp_bw_code_to_link_rate(DP_LINK_BW_5_4);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1199
if (drm_dp_link_rate_to_bw_code(mhdp->link.rate) !=
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1203
cdns_mhdp_lower_link_rate(&mhdp->link);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1206
} else if (mhdp->link.num_lanes > 1) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1209
mhdp->link.num_lanes >>= 1;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1210
mhdp->link.rate = cdns_mhdp_max_link_rate(mhdp);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1224
if (mhdp->link.num_lanes > 1) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1227
mhdp->link.num_lanes >>= 1;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1230
} else if (drm_dp_link_rate_to_bw_code(mhdp->link.rate) !=
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1234
cdns_mhdp_lower_link_rate(&mhdp->link);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1235
mhdp->link.num_lanes = cdns_mhdp_max_num_lanes(mhdp);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1245
mhdp->link.num_lanes, mhdp->link.rate / 100);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1259
reg32 |= CDNS_DP_NUM_LANES(mhdp->link.num_lanes);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1329
mhdp->sink.link_rate = mhdp->link.rate;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1330
mhdp->sink.lanes_cnt = mhdp->link.num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1331
mhdp->sink.enhanced = !!(mhdp->link.capabilities &
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1374
mhdp->link.revision = dpcd[0];
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1375
mhdp->link.rate = drm_dp_bw_code_to_link_rate(dpcd[1]);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1376
mhdp->link.num_lanes = dpcd[2] & DP_MAX_LANE_COUNT_MASK;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1379
mhdp->link.capabilities |= DP_LINK_CAP_ENHANCED_FRAMING;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1382
drm_dp_link_power_up(&mhdp->aux, mhdp->link.revision);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1386
mhdp->link.rate = cdns_mhdp_max_link_rate(mhdp);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1387
mhdp->link.num_lanes = cdns_mhdp_max_num_lanes(mhdp);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1429
drm_dp_link_power_down(&mhdp->aux, mhdp->link.revision);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1717
rate = mhdp->link.rate / 1000;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1722
available_bandwidth = mhdp->link.num_lanes * rate;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1732
line_thresh = line_thresh1 - line_thresh2 / (s32)mhdp->link.num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1815
if (!cdns_mhdp_bandwidth_ok(mhdp, mode, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1816
mhdp->link.rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1972
if (!cdns_mhdp_bandwidth_ok(mhdp, mode, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1973
mhdp->link.rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1975
__func__, mode->name, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1976
mhdp->link.rate / 100);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2036
if (!cdns_mhdp_bandwidth_ok(mhdp, mode, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2037
mhdp->link.rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2107
mhdp->link.rate = mhdp->host.link_rate;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2108
mhdp->link.num_lanes = mhdp->host.lanes_cnt;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2126
drm_dp_channel_eq_ok(status, mhdp->link.num_lanes) &&
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2127
drm_dp_clock_recovery_ok(status, mhdp->link.num_lanes))
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2159
if (!cdns_mhdp_bandwidth_ok(mhdp, current_mode, mhdp->link.num_lanes,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2160
mhdp->link.rate)) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2354
mhdp->link.rate = mhdp->host.link_rate;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2355
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
822
CDNS_DP_LANE_EN_LANES(mhdp->link.num_lanes));
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
824
cdns_mhdp_link_configure(&mhdp->aux, &mhdp->link);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
825
phy_cfg.dp.link_rate = mhdp->link.rate / 100;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
826
phy_cfg.dp.lanes = mhdp->link.num_lanes;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
867
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
932
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
955
for (i = 0; i < mhdp->link.num_lanes; i++) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
965
mhdp->link.num_lanes, mhdp->link.rate / 100,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
998
phy_cfg.dp.lanes = mhdp->link.num_lanes;
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_channel_eq_ok(status, link->lanes)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1017
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1020
if (link->caps.fast_training) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1021
if (dw_dp_link_train_valid(&link->train)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1141
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1148
if (!link->vsc_sdp_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1218
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1301
link_bandwidth = (link->rate / 1000) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1319
t1 = (4 * 1000 / 9) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1323
t1 = (1000 / 2) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1326
t1 = (1000 / 3) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1328
t1 = (3000 / 16) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1333
t1 = (2000 / 5) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1335
t1 = (4000 / 15) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1340
t1 = (1000 / 6) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1342
t1 = (1000 / 3) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1344
t1 = (2000 / 9) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1350
t1 = (1000 / 6) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1352
t1 = (1000 / 4) * link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1359
t2 = (link->rate / 4) * 1000 / (mode->clock / 2);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1361
t2 = (link->rate / 4) * 1000 / mode->clock;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1379
hblank_interval = hblank * (link->rate / 4) / mode->clock;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1575
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1579
link->vsc_sdp_supported &&
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1589
if (!link->vsc_sdp_supported &&
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1593
if (!dw_dp_bandwidth_ok(dp, mode, min_bpp, link->lanes, link->rate))
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1601
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1604
if (!dw_dp_link_train_valid(&link->train))
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1611
return !drm_dp_channel_eq_ok(link_status, dp->link.lanes);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1616
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1619
drm_dp_link_power_down(&dp->aux, dp->link.revision);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1625
link->train.clock_recovered = false;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1626
link->train.channel_equalized = false;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1637
ret = drm_dp_link_power_up(&dp->aux, dp->link.revision);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1762
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1785
!link->vsc_sdp_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
1792
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
492
static void dw_dp_link_reset(struct dw_dp_link *link)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
494
link->vsc_sdp_supported = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
495
link->sink_count = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
496
link->revision = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
497
link->rate = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
498
link->lanes = 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
500
dw_dp_link_caps_reset(&link->caps);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
501
memset(link->dpcd, 0, sizeof(link->dpcd));
drivers/gpu/drm/bridge/synopsys/dw-dp.c
506
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
509
dw_dp_link_reset(link);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
511
ret = drm_dp_read_dpcd_caps(&dp->aux, link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
515
drm_dp_read_desc(&dp->aux, &link->desc, drm_dp_is_branch(link->dpcd));
drivers/gpu/drm/bridge/synopsys/dw-dp.c
517
if (drm_dp_read_sink_count_cap(connector, link->dpcd, &link->desc)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
522
link->sink_count = ret;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
525
if (!link->sink_count)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
529
link->vsc_sdp_supported = drm_dp_vsc_sdp_supported(&dp->aux, link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
531
link->revision = link->dpcd[DP_DPCD_REV];
drivers/gpu/drm/bridge/synopsys/dw-dp.c
532
link->rate = min_t(u32, min(dp->plat_data.max_link_rate,
drivers/gpu/drm/bridge/synopsys/dw-dp.c
534
drm_dp_max_link_rate(link->dpcd));
drivers/gpu/drm/bridge/synopsys/dw-dp.c
535
link->lanes = min_t(u8, phy_get_bus_width(dp->phy),
drivers/gpu/drm/bridge/synopsys/dw-dp.c
536
drm_dp_max_lane_count(link->dpcd));
drivers/gpu/drm/bridge/synopsys/dw-dp.c
538
link->caps.enhanced_framing = drm_dp_enhanced_frame_cap(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
539
link->caps.tps3_supported = drm_dp_tps3_supported(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
540
link->caps.tps4_supported = drm_dp_tps4_supported(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
541
link->caps.fast_training = drm_dp_fast_training_cap(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
542
link->caps.channel_coding = drm_dp_channel_coding_supported(link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
543
link->caps.ssc = !!(link->dpcd[DP_MAX_DOWNSPREAD] & DP_MAX_DOWNSPREAD_0_5);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
550
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
551
struct dw_dp_link_train_set *train_set = &link->train.adjust;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
552
unsigned int lanes = dp->link.lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
624
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
628
ret = dw_dp_phy_configure(dp, link->rate, link->lanes, link->caps.ssc);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
632
buf[0] = drm_dp_link_rate_to_bw_code(link->rate);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
633
buf[1] = link->lanes;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
635
if (link->caps.enhanced_framing) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
648
buf[0] = link->caps.ssc ? DP_SPREAD_AMP_0_5 : 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
649
buf[1] = link->caps.channel_coding ? DP_SET_ANSI_8B10B : 0;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
737
static bool dw_dp_link_get_adjustments(struct dw_dp_link *link,
drivers/gpu/drm/bridge/synopsys/dw-dp.c
740
struct dw_dp_link_train_set *adj = &link->train.adjust;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
746
for (i = 0; i < link->lanes; i++) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
780
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
795
drm_dp_link_train_clock_recovery_delay(&dp->aux, link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
803
if (drm_dp_clock_recovery_ok(status, link->lanes)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
804
link->train.clock_recovered = true;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
812
adj_changed = dw_dp_link_get_adjustments(link, status);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
827
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
832
if (link->caps.tps4_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
834
else if (link->caps.tps3_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
847
drm_dp_link_train_channel_eq_delay(&dp->aux, link->dpcd);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
853
if (!drm_dp_clock_recovery_ok(status, link->lanes)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
855
link->train.clock_recovered = false;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
859
if (drm_dp_channel_eq_ok(status, link->lanes)) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
860
link->train.channel_equalized = true;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
864
dw_dp_link_get_adjustments(link, status);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
872
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
877
switch (link->rate) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
881
link->rate = 162000;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
884
link->rate = 270000;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
887
link->rate = 540000;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
891
if (!dw_dp_bandwidth_ok(dp, &state->mode, state->bpp, link->lanes,
drivers/gpu/drm/bridge/synopsys/dw-dp.c
892
link->rate))
drivers/gpu/drm/bridge/synopsys/dw-dp.c
900
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
904
dw_dp_link_train_init(&link->train);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
907
link->lanes, (link->lanes > 1) ? "s" : "", link->rate / 100);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
921
if (!link->train.clock_recovered) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
939
if (!link->train.channel_equalized) {
drivers/gpu/drm/bridge/synopsys/dw-dp.c
958
struct dw_dp_link *link = &dp->link;
drivers/gpu/drm/bridge/synopsys/dw-dp.c
963
dw_dp_link_train_init(&link->train);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
966
link->lanes, (link->lanes > 1) ? "s" : "", link->rate / 100);
drivers/gpu/drm/bridge/synopsys/dw-dp.c
980
if (link->caps.tps4_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
982
else if (link->caps.tps3_supported)
drivers/gpu/drm/bridge/synopsys/dw-dp.c
998
if (!drm_dp_clock_recovery_ok(status, link->lanes)) {
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_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
1008
llist_for_each_entry_safe(dev_hold, next, node, link) {
drivers/gpu/drm/drm_pagemap.c
1029
init_llist_node(&dev_hold->link);
drivers/gpu/drm/drm_pagemap.c
972
struct llist_node link;
drivers/gpu/drm/drm_pagemap.c
988
llist_add(&dev_hold->link, &drm_pagemap_unhold_list);
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
1132
list_add_tail(&e->base.link, &dev->vblank_event_list);
drivers/gpu/drm/drm_vblank.c
1390
list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) {
drivers/gpu/drm/drm_vblank.c
1396
list_del(&e->base.link);
drivers/gpu/drm/drm_vblank.c
1675
list_add_tail(&e->base.link, &dev->vblank_event_list);
drivers/gpu/drm/drm_vblank.c
1894
list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) {
drivers/gpu/drm/drm_vblank.c
1903
list_del(&e->base.link);
drivers/gpu/drm/drm_vblank.c
2156
list_add_tail(&e->base.link, &dev->vblank_event_list);
drivers/gpu/drm/exynos/exynos_drm_g2d.c
377
list_add_tail(&node->event->base.link, &file_priv->event_list);
drivers/gpu/drm/exynos/exynos_drm_g2d.c
924
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
506
intel_dp->link.active = false;
drivers/gpu/drm/i915/display/intel_ddi.c
3573
intel_dp->link.active = false;
drivers/gpu/drm/i915/display/intel_display_types.h
1861
} link;
drivers/gpu/drm/i915/display/intel_display_types.h
606
} link;
drivers/gpu/drm/i915/display/intel_dp.c
1703
int len = intel_dp_common_len_rate_limit(intel_dp, intel_dp->link.force_rate);
drivers/gpu/drm/i915/display/intel_dp.c
1716
if (intel_dp->link.force_rate)
drivers/gpu/drm/i915/display/intel_dp.c
1719
len = intel_dp_common_len_rate_limit(intel_dp, intel_dp->link.max_rate);
drivers/gpu/drm/i915/display/intel_dp.c
1727
if (intel_dp->link.force_rate)
drivers/gpu/drm/i915/display/intel_dp.c
1917
for (bpp = fxp_q4_to_int(limits->link.max_bpp_x16);
drivers/gpu/drm/i915/display/intel_dp.c
1918
bpp >= fxp_q4_to_int(limits->link.min_bpp_x16);
drivers/gpu/drm/i915/display/intel_dp.c
2299
!connector->link.force_bpp_x16 && !connector->mst.dp->force_dsc_fractional_bpp_en)
drivers/gpu/drm/i915/display/intel_dp.c
2377
min_bpp_x16 = limits->link.min_bpp_x16;
drivers/gpu/drm/i915/display/intel_dp.c
2378
max_bpp_x16 = limits->link.max_bpp_x16;
drivers/gpu/drm/i915/display/intel_dp.c
2725
limits->link.min_bpp_x16 = fxp_q4_from_int(limits->pipe.min_bpp);
drivers/gpu/drm/i915/display/intel_dp.c
2727
limits->link.min_bpp_x16 =
drivers/gpu/drm/i915/display/intel_dp.c
2741
limits->link.max_bpp_x16 = max_link_bpp_x16;
drivers/gpu/drm/i915/display/intel_dp.c
2752
FXP_Q4_ARGS(limits->link.min_bpp_x16),
drivers/gpu/drm/i915/display/intel_dp.c
2753
FXP_Q4_ARGS(limits->link.max_bpp_x16));
drivers/gpu/drm/i915/display/intel_dp.c
2755
if (limits->link.min_bpp_x16 <= 0 ||
drivers/gpu/drm/i915/display/intel_dp.c
2756
limits->link.min_bpp_x16 > limits->link.max_bpp_x16)
drivers/gpu/drm/i915/display/intel_dp.c
3766
intel_dp->link.active = false;
drivers/gpu/drm/i915/display/intel_dp.c
3774
intel_dp->link.max_lane_count = intel_dp_max_common_lane_count(intel_dp);
drivers/gpu/drm/i915/display/intel_dp.c
3775
intel_dp->link.max_rate = intel_dp_max_common_rate(intel_dp);
drivers/gpu/drm/i915/display/intel_dp.c
3776
intel_dp->link.mst_probed_lane_count = 0;
drivers/gpu/drm/i915/display/intel_dp.c
3777
intel_dp->link.mst_probed_rate = 0;
drivers/gpu/drm/i915/display/intel_dp.c
3778
intel_dp->link.retrain_disabled = false;
drivers/gpu/drm/i915/display/intel_dp.c
3779
intel_dp->link.seq_train_failures = 0;
drivers/gpu/drm/i915/display/intel_dp.c
393
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
400
if (intel_dp->link.force_lane_count)
drivers/gpu/drm/i915/display/intel_dp.c
403
lane_count = intel_dp->link.max_lane_count;
drivers/gpu/drm/i915/display/intel_dp.c
4130
intel_dp->link.active = true;
drivers/gpu/drm/i915/display/intel_dp.c
418
if (intel_dp->link.force_lane_count)
drivers/gpu/drm/i915/display/intel_dp.c
5738
bool force_retrain = intel_dp->link.force_retrain;
drivers/gpu/drm/i915/display/intel_dp.c
5846
if (!intel_dp->link.active)
drivers/gpu/drm/i915/display/intel_dp.c
5860
if (intel_dp->link.force_retrain)
drivers/gpu/drm/i915/display/intel_dp.c
5878
if (intel_dp->link.retrain_disabled)
drivers/gpu/drm/i915/display/intel_dp.c
5881
if (intel_dp->link.seq_train_failures)
drivers/gpu/drm/i915/display/intel_dp.c
6020
str_yes_no(intel_dp->link.force_retrain));
drivers/gpu/drm/i915/display/intel_dp.c
6026
intel_dp->link.force_retrain = false;
drivers/gpu/drm/i915/display/intel_dp.c
748
ARRAY_SIZE(intel_dp->link.configs)))
drivers/gpu/drm/i915/display/intel_dp.c
751
intel_dp->link.num_configs = intel_dp->num_common_rates * num_common_lane_configs;
drivers/gpu/drm/i915/display/intel_dp.c
753
lc = &intel_dp->link.configs[0];
drivers/gpu/drm/i915/display/intel_dp.c
763
sort_r(intel_dp->link.configs, intel_dp->link.num_configs,
drivers/gpu/drm/i915/display/intel_dp.c
764
sizeof(intel_dp->link.configs[0]),
drivers/gpu/drm/i915/display/intel_dp.c
774
if (drm_WARN_ON(display->drm, idx < 0 || idx >= intel_dp->link.num_configs))
drivers/gpu/drm/i915/display/intel_dp.c
777
lc = &intel_dp->link.configs[idx];
drivers/gpu/drm/i915/display/intel_dp.c
790
for (i = 0; i < intel_dp->link.num_configs; i++) {
drivers/gpu/drm/i915/display/intel_dp.c
791
const struct intel_dp_link_config *lc = &intel_dp->link.configs[i];
drivers/gpu/drm/i915/display/intel_dp.c
859
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
1273
intel_dp->link.active = true;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1289
intel_dp->link.seq_train_failures < MAX_SEQ_TRAIN_FAILURES) {
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1290
int delay_ms = intel_dp->link.seq_train_failures ? 0 : 2000;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1351
if ((intel_dp->link.force_rate &&
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1352
intel_dp->link.force_rate != link_rate) ||
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1353
(intel_dp->link.force_lane_count &&
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1354
intel_dp->link.force_lane_count != lane_count))
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1374
if (intel_dp->link.force_rate)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1395
if (intel_dp->link.force_lane_count)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1467
intel_dp->link.max_rate = new_link_rate;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1468
intel_dp->link.max_lane_count = new_lane_count;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
173
if (intel_dp->link.active) {
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1806
if (intel_dp->link.force_train_failure) {
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1807
intel_dp->link.force_train_failure--;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1810
intel_dp->link.seq_train_failures = 0;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1814
intel_dp->link.seq_train_failures++;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1833
if (intel_dp->link.seq_train_failures < MAX_SEQ_TRAIN_FAILURES)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1839
intel_dp->link.retrain_disabled = true;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1881
if (intel_dp->link.active)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1883
force_rate = intel_dp->link.force_rate;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1955
intel_dp->link.force_rate = rate;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1979
if (intel_dp->link.active)
drivers/gpu/drm/i915/display/intel_dp_link_training.c
1981
force_lane_count = intel_dp->link.force_lane_count;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2057
intel_dp->link.force_lane_count = lane_count;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2078
*val = intel_dp->link.max_rate;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2097
*val = intel_dp->link.max_lane_count;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2116
*val = intel_dp->link.force_train_failure;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2137
intel_dp->link.force_train_failure = val;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2158
*val = intel_dp->link.force_retrain;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2176
intel_dp->link.force_retrain = val;
drivers/gpu/drm/i915/display/intel_dp_link_training.c
2199
seq_printf(m, "%s\n", str_yes_no(intel_dp->link.retrain_disabled));
drivers/gpu/drm/i915/display/intel_dp_mst.c
1044
intel_dp->link.active = false;
drivers/gpu/drm/i915/display/intel_dp_mst.c
1183
return intel_dp->link.mst_probed_rate == link_rate &&
drivers/gpu/drm/i915/display/intel_dp_mst.c
1184
intel_dp->link.mst_probed_lane_count == lane_count;
drivers/gpu/drm/i915/display/intel_dp_mst.c
1190
intel_dp->link.mst_probed_rate = link_rate;
drivers/gpu/drm/i915/display/intel_dp_mst.c
1191
intel_dp->link.mst_probed_lane_count = lane_count;
drivers/gpu/drm/i915/display/intel_dp_mst.c
2143
if (intel_dp->link.active)
drivers/gpu/drm/i915/display/intel_dp_mst.c
455
limits->link.min_bpp_x16,
drivers/gpu/drm/i915/display/intel_dp_mst.c
456
limits->link.max_bpp_x16,
drivers/gpu/drm/i915/display/intel_dp_mst.c
472
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
478
limits->link.min_bpp_x16,
drivers/gpu/drm/i915/display/intel_dp_mst.c
479
limits->link.max_bpp_x16,
drivers/gpu/drm/i915/display/intel_dp_mst.c
526
int min_bpp_x16 = limits->link.min_bpp_x16;
drivers/gpu/drm/i915/display/intel_dp_mst.c
545
if (limits->link.max_bpp_x16 < fxp_q4_from_int(24))
drivers/gpu/drm/i915/display/intel_dp_mst.c
548
limits->link.min_bpp_x16 = fxp_q4_from_int(24);
drivers/gpu/drm/i915/display/intel_dp_mst.c
560
if (limits->link.min_bpp_x16 >= min_bpp_x16)
drivers/gpu/drm/i915/display/intel_dp_mst.c
569
if (limits->link.max_bpp_x16 < min_bpp_x16)
drivers/gpu/drm/i915/display/intel_dp_mst.c
572
limits->link.min_bpp_x16 = min_bpp_x16;
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
1088
if (!list_empty(&engines->link)) {
drivers/gpu/drm/i915/gem/i915_gem_context.c
1092
list_del(&engines->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1297
list_del(&ctx->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1378
list_for_each_entry_reverse(rq, &ce->timeline->requests, link) {
drivers/gpu/drm/i915/gem/i915_gem_context.c
1444
list_for_each_entry_safe(pos, next, &ctx->stale.engines, link) {
drivers/gpu/drm/i915/gem/i915_gem_context.c
1446
list_del_init(&pos->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1457
list_safe_reset_next(pos, next, link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1458
list_del_init(&pos->link); /* decouple from FENCE_COMPLETE */
drivers/gpu/drm/i915/gem/i915_gem_context.c
1471
INIT_LIST_HEAD(&engines->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1494
list_add_tail(&engines->link, &ctx->stale.engines);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1498
if (list_empty(&engines->link)) /* raced, already closed */
drivers/gpu/drm/i915/gem/i915_gem_context.c
1627
INIT_LIST_HEAD(&ctx->link);
drivers/gpu/drm/i915/gem/i915_gem_context.c
1741
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
2485
list_for_each_entry(rq, &tl->requests, link) {
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
2493
if (&rq->link == &tl->requests)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
3063
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
4093
list_for_each_entry(rq, &sched_engine->requests, sched.link) {
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
256
list_move(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
280
list_move_tail(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
338
list_for_each_entry_safe(fence, fn, &ggtt->fence_list, link) {
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
349
list_move_tail(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
381
list_move_tail(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
468
list_for_each_entry(fence, &ggtt->fence_list, link)
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
484
list_del(&fence->link);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
501
list_add(&fence->link, &ggtt->fence_list);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
880
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
1083
list_for_each_entry(tl, &timelines->active_list, link) {
drivers/gpu/drm/i915/gt/intel_reset.c
1104
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
1138
list_move_tail(&rq->sched.link, &rq->engine->sched_engine->requests);
drivers/gpu/drm/i915/gt/intel_ring_submission.c
1144
list_del_init(&rq->sched.link);
drivers/gpu/drm/i915/gt/intel_ring_submission.c
398
list_for_each_entry(pos, &engine->sched_engine->requests, sched.link) {
drivers/gpu/drm/i915/gt/intel_ring_submission.c
468
list_for_each_entry(request, &engine->sched_engine->requests, sched.link)
drivers/gpu/drm/i915/gt/intel_ring_submission.c
655
sched.link)
drivers/gpu/drm/i915/gt/intel_rps.c
2743
void (*link)(void);
drivers/gpu/drm/i915/gt/intel_rps.c
2745
link = symbol_get(ips_link_to_i915_driver);
drivers/gpu/drm/i915/gt/intel_rps.c
2746
if (link) {
drivers/gpu/drm/i915/gt/intel_rps.c
2747
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
884
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
2715
list_for_each_entry_safe(ctx, cn, &i915->gem.contexts.list, link) {
drivers/gpu/drm/i915/i915_perf.c
2728
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, >->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
107
list_for_each_entry(block, &bman_res->blocks, link) {
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
178
list_for_each_entry(block, &bman_res->blocks, link) {
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
211
list_for_each_entry(block, &bman_res->blocks, link) {
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
243
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
674
struct device_link *link;
drivers/gpu/drm/imagination/pvr_power.c
676
link = device_link_add(domains->pd_devs[i + 1],
drivers/gpu/drm/imagination/pvr_power.c
679
if (!link) {
drivers/gpu/drm/imagination/pvr_power.c
684
domain_links[i] = link;
drivers/gpu/drm/imx/dc/dc-cf.c
116
cf->link = LINK_ID_CONSTFRAME0;
drivers/gpu/drm/imx/dc/dc-cf.c
120
cf->link = LINK_ID_CONSTFRAME1;
drivers/gpu/drm/imx/dc/dc-cf.c
124
cf->link = LINK_ID_CONSTFRAME4;
drivers/gpu/drm/imx/dc/dc-cf.c
128
cf->link = LINK_ID_CONSTFRAME5;
drivers/gpu/drm/imx/dc/dc-cf.c
60
return cf->link;
drivers/gpu/drm/imx/dc/dc-lb.c
148
return lb->link;
drivers/gpu/drm/imx/dc/dc-lb.c
282
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
2280
struct device_link *link;
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
2427
link = device_link_add(gmu->dev, gmu->cxpd, DL_FLAG_PM_RUNTIME);
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
2428
if (!link) {
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
2474
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
1951
ctrl->phy_opts.dp.lanes = ctrl->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2004
ctrl->link->phy_params.p_level = 0;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2005
ctrl->link->phy_params.v_level = 0;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2107
u32 pattern_requested = ctrl->link->phy_params.phy_test_pattern_sel;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2112
ctrl->link->phy_params.v_level,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2113
ctrl->link->phy_params.p_level)) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2119
msm_dp_link_send_test_response(ctrl->link);
drivers/gpu/drm/msm/dp/dp_ctrl.c
2160
if (!ctrl->link->phy_params.phy_test_pattern_sel) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2213
sink_request = ctrl->link->sink_request;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2231
msm_dp_link_send_test_response(ctrl->link);
drivers/gpu/drm/msm/dp/dp_ctrl.c
2261
int num_lanes = ctrl->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2289
if (ctrl->link->sink_request & DP_TEST_LINK_PHY_TEST_PATTERN) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2295
ctrl->link->link_params.rate = rate;
drivers/gpu/drm/msm/dp/dp_ctrl.c
2296
ctrl->link->link_params.num_lanes =
drivers/gpu/drm/msm/dp/dp_ctrl.c
2303
ctrl->link->link_params.rate, ctrl->link->link_params.num_lanes,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2326
ctrl->link->link_params.num_lanes)) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2349
ctrl->link->link_params.num_lanes))
drivers/gpu/drm/msm/dp/dp_ctrl.c
2370
if (ctrl->link->sink_request & DP_TEST_LINK_PHY_TEST_PATTERN)
drivers/gpu/drm/msm/dp/dp_ctrl.c
2487
ctrl->link->link_params.rate,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2488
ctrl->link->link_params.num_lanes, pixel_rate);
drivers/gpu/drm/msm/dp/dp_ctrl.c
2534
ctrl->link->link_params.rate,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2567
msm_dp_link_psm_config(ctrl->link, &ctrl->panel->link_info, true);
drivers/gpu/drm/msm/dp/dp_ctrl.c
2710
struct msm_dp_ctrl *msm_dp_ctrl_get(struct device *dev, struct msm_dp_link *link,
drivers/gpu/drm/msm/dp/dp_ctrl.c
2719
if (!dev || !panel || !aux || !link) {
drivers/gpu/drm/msm/dp/dp_ctrl.c
2749
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
27
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
1319
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
1378
if (msm_dp_display->link->sink_count == 0)
drivers/gpu/drm/msm/dp/dp_display.c
253
if (drm_dp_read_lttpr_common_caps(dp->aux, dpcd, dp->link->lttpr_common_caps))
drivers/gpu/drm/msm/dp/dp_display.c
256
lttpr_count = drm_dp_lttpr_count(dp->link->lttpr_common_caps);
drivers/gpu/drm/msm/dp/dp_display.c
277
dp->link->lttpr_count = msm_dp_display_lttpr_init(dp, dpcd);
drivers/gpu/drm/msm/dp/dp_display.c
283
msm_dp_link_process_request(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
300
msm_dp_link_psm_config(dp->link, &dp->panel->link_info, false);
drivers/gpu/drm/msm/dp/dp_display.c
302
msm_dp_link_reset_phy_params_vx_px(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
372
if (dp->link->sink_request & DP_TEST_LINK_VIDEO_PATTERN) {
drivers/gpu/drm/msm/dp/dp_display.c
374
msm_dp_link_send_test_response(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
380
u32 sink_request = dp->link->sink_request;
drivers/gpu/drm/msm/dp/dp_display.c
399
dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_display.c
417
dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_display.c
448
dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_display.c
459
if (dp->link->sink_count == 0)
drivers/gpu/drm/msm/dp/dp_display.c
477
dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_display.c
495
dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_display.c
498
rc = msm_dp_link_process_request(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
500
sink_request = dp->link->sink_request;
drivers/gpu/drm/msm/dp/dp_display.c
510
dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_display.c
547
dp->link = msm_dp_link_get(dev, dp->aux);
drivers/gpu/drm/msm/dp/dp_display.c
548
if (IS_ERR(dp->link)) {
drivers/gpu/drm/msm/dp/dp_display.c
549
rc = PTR_ERR(dp->link);
drivers/gpu/drm/msm/dp/dp_display.c
551
dp->link = NULL;
drivers/gpu/drm/msm/dp/dp_display.c
555
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
563
dp->ctrl = msm_dp_ctrl_get(dev, dp->link, dp->panel, dp->aux,
drivers/gpu/drm/msm/dp/dp_display.c
609
drm_dbg_dp(dp->drm_dev, "sink_count=%d\n", dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_display.c
62
struct msm_dp_link *link;
drivers/gpu/drm/msm/dp/dp_display.c
629
rate = dp->link->link_params.rate;
drivers/gpu/drm/msm/dp/dp_display.c
633
dp->audio->lane_count = dp->link->link_params.num_lanes;
drivers/gpu/drm/msm/dp/dp_display.c
663
if (dp->link->sink_count == 0) {
drivers/gpu/drm/msm/dp/dp_display.c
680
drm_dbg_dp(dp->drm_dev, "sink count: %d\n", dp->link->sink_count);
drivers/gpu/drm/msm/dp/dp_display.c
772
msm_dp_display->link->test_video.test_bit_depth);
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
319
panel->link->test_video.test_bit_depth);
drivers/gpu/drm/msm/dp/dp_panel.c
359
if (panel->link->sink_request & DP_TEST_LINK_EDID_READ) {
drivers/gpu/drm/msm/dp/dp_panel.c
369
msm_dp_link_send_edid_checksum(panel->link, checksum);
drivers/gpu/drm/msm/dp/dp_panel.c
370
msm_dp_link_send_test_response(panel->link);
drivers/gpu/drm/msm/dp/dp_panel.c
730
struct msm_dp_link *link,
drivers/gpu/drm/msm/dp/dp_panel.c
737
if (!dev || !aux || !link) {
drivers/gpu/drm/msm/dp/dp_panel.c
748
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
94
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
110
struct mipi_dsi_multi_context dsi_ctx = { .dsi = pinfo->link };
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
160
struct mipi_dsi_multi_context dsi_ctx = { .dsi = pinfo->link };
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
559
struct device *dev = &pinfo->link->dev;
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
603
pinfo->link = dsi;
drivers/gpu/drm/panel/panel-novatek-nt36672a.c
69
struct mipi_dsi_device *link;
drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c
150
struct device *dev = &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_drv.h
94
struct device_link *link;
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
810
cmm->link = device_link_add(rcdu->dev, cmm->dev,
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
812
if (!cmm->link) {
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
830
if (cmm->link)
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
831
device_link_del(cmm->link);
drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c
462
if (vsp->link)
drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c
463
device_link_del(vsp->link);
drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c
494
vsp->link = device_link_add(rcdu->dev, vsp->vsp, DL_FLAG_STATELESS);
drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c
495
if (!vsp->link) {
drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.h
30
struct device_link *link;
drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
297
if (vsp->link)
drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
298
device_link_del(vsp->link);
drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
329
vsp->link = device_link_add(rcdu->dev, vsp->vsp, DL_FLAG_STATELESS);
drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
330
if (!vsp->link) {
drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h
33
struct device_link *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
355
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
113
int drm_dp_link_remove_rate(struct drm_dp_link *link, unsigned long rate)
drivers/gpu/drm/tegra/dp.c
117
for (i = 0; i < link->num_rates; i++)
drivers/gpu/drm/tegra/dp.c
118
if (rate == link->rates[i])
drivers/gpu/drm/tegra/dp.c
121
if (i == link->num_rates)
drivers/gpu/drm/tegra/dp.c
124
link->num_rates--;
drivers/gpu/drm/tegra/dp.c
126
while (i < link->num_rates) {
drivers/gpu/drm/tegra/dp.c
127
link->rates[i] = link->rates[i + 1];
drivers/gpu/drm/tegra/dp.c
146
void drm_dp_link_update_rates(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
150
for (i = 0; i < link->num_rates; i++) {
drivers/gpu/drm/tegra/dp.c
151
if (link->rates[i] != 0)
drivers/gpu/drm/tegra/dp.c
152
link->rates[count++] = link->rates[i];
drivers/gpu/drm/tegra/dp.c
155
for (i = count; i < link->num_rates; i++)
drivers/gpu/drm/tegra/dp.c
156
link->rates[i] = 0;
drivers/gpu/drm/tegra/dp.c
158
link->num_rates = count;
drivers/gpu/drm/tegra/dp.c
172
int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
178
drm_dp_link_reset(link);
drivers/gpu/drm/tegra/dp.c
184
link->revision = dpcd[DP_DPCD_REV];
drivers/gpu/drm/tegra/dp.c
185
link->max_rate = drm_dp_max_link_rate(dpcd);
drivers/gpu/drm/tegra/dp.c
186
link->max_lanes = drm_dp_max_lane_count(dpcd);
drivers/gpu/drm/tegra/dp.c
188
link->caps.enhanced_framing = drm_dp_enhanced_frame_cap(dpcd);
drivers/gpu/drm/tegra/dp.c
189
link->caps.tps3_supported = drm_dp_tps3_supported(dpcd);
drivers/gpu/drm/tegra/dp.c
190
link->caps.fast_training = drm_dp_fast_training_cap(dpcd);
drivers/gpu/drm/tegra/dp.c
191
link->caps.channel_coding = drm_dp_channel_coding_supported(dpcd);
drivers/gpu/drm/tegra/dp.c
194
link->caps.alternate_scrambler_reset = true;
drivers/gpu/drm/tegra/dp.c
203
link->edp = drm_dp_edp_revisions[value];
drivers/gpu/drm/tegra/dp.c
228
if (rd_interval == 0 || link->revision >= DP_DPCD_REV_14)
drivers/gpu/drm/tegra/dp.c
229
link->aux_rd_interval.cr = 100;
drivers/gpu/drm/tegra/dp.c
232
link->aux_rd_interval.ce = 400;
drivers/gpu/drm/tegra/dp.c
234
link->rate = link->max_rate;
drivers/gpu/drm/tegra/dp.c
235
link->lanes = link->max_lanes;
drivers/gpu/drm/tegra/dp.c
238
if (link->edp >= 0x14) {
drivers/gpu/drm/tegra/dp.c
253
drm_dp_link_add_rate(link, rate * 200);
drivers/gpu/drm/tegra/dp.c
267
int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
272
if (link->ops && link->ops->configure) {
drivers/gpu/drm/tegra/dp.c
273
err = link->ops->configure(link);
drivers/gpu/drm/tegra/dp.c
280
values[0] = drm_dp_link_rate_to_bw_code(link->rate);
drivers/gpu/drm/tegra/dp.c
281
values[1] = link->lanes;
drivers/gpu/drm/tegra/dp.c
283
if (link->caps.enhanced_framing)
drivers/gpu/drm/tegra/dp.c
290
if (link->caps.channel_coding)
drivers/gpu/drm/tegra/dp.c
299
if (link->caps.alternate_scrambler_reset) {
drivers/gpu/drm/tegra/dp.c
322
int drm_dp_link_choose(struct drm_dp_link *link,
drivers/gpu/drm/tegra/dp.c
331
unsigned int rate = link->max_rate;
drivers/gpu/drm/tegra/dp.c
337
for (i = 0; i < ARRAY_SIZE(lanes) && lanes[i] <= link->max_lanes; i++) {
drivers/gpu/drm/tegra/dp.c
353
link->lanes = lanes[i];
drivers/gpu/drm/tegra/dp.c
354
link->rate = rates[j];
drivers/gpu/drm/tegra/dp.c
36
static void drm_dp_link_reset(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
40
if (!link)
drivers/gpu/drm/tegra/dp.c
401
static int drm_dp_link_apply_training(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
403
struct drm_dp_link_train_set *request = &link->train.request;
drivers/gpu/drm/tegra/dp.c
404
unsigned int lanes = link->lanes, *vs, *pe, *pc, i;
drivers/gpu/drm/tegra/dp.c
405
struct drm_dp_aux *aux = link->aux;
drivers/gpu/drm/tegra/dp.c
409
err = link->ops->apply_training(link);
drivers/gpu/drm/tegra/dp.c
43
link->revision = 0;
drivers/gpu/drm/tegra/dp.c
431
if (link->revision >= 0x12 && link->rate == 540000) {
drivers/gpu/drm/tegra/dp.c
44
link->max_rate = 0;
drivers/gpu/drm/tegra/dp.c
446
if (link->train.pattern != DP_TRAINING_PATTERN_DISABLE)
drivers/gpu/drm/tegra/dp.c
449
pattern |= link->train.pattern;
drivers/gpu/drm/tegra/dp.c
45
link->max_lanes = 0;
drivers/gpu/drm/tegra/dp.c
460
static void drm_dp_link_train_wait(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
464
switch (link->train.pattern) {
drivers/gpu/drm/tegra/dp.c
466
min = link->aux_rd_interval.cr;
drivers/gpu/drm/tegra/dp.c
47
drm_dp_link_caps_reset(&link->caps);
drivers/gpu/drm/tegra/dp.c
471
min = link->aux_rd_interval.ce;
drivers/gpu/drm/tegra/dp.c
48
link->aux_rd_interval.cr = 0;
drivers/gpu/drm/tegra/dp.c
482
static void drm_dp_link_get_adjustments(struct drm_dp_link *link,
drivers/gpu/drm/tegra/dp.c
485
struct drm_dp_link_train_set *adjust = &link->train.adjust;
drivers/gpu/drm/tegra/dp.c
49
link->aux_rd_interval.ce = 0;
drivers/gpu/drm/tegra/dp.c
490
err = drm_dp_dpcd_read(link->aux, DP_ADJUST_REQUEST_POST_CURSOR2,
drivers/gpu/drm/tegra/dp.c
497
for (i = 0; i < link->lanes; i++) {
drivers/gpu/drm/tegra/dp.c
50
link->edp = 0;
drivers/gpu/drm/tegra/dp.c
52
link->rate = 0;
drivers/gpu/drm/tegra/dp.c
53
link->lanes = 0;
drivers/gpu/drm/tegra/dp.c
530
static int drm_dp_link_recover_clock(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
535
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
539
drm_dp_link_train_wait(link);
drivers/gpu/drm/tegra/dp.c
541
err = drm_dp_dpcd_read_link_status(link->aux, status);
drivers/gpu/drm/tegra/dp.c
547
if (!drm_dp_clock_recovery_ok(status, link->lanes))
drivers/gpu/drm/tegra/dp.c
548
drm_dp_link_get_adjustments(link, status);
drivers/gpu/drm/tegra/dp.c
550
link->train.clock_recovered = true;
drivers/gpu/drm/tegra/dp.c
555
static int drm_dp_link_clock_recovery(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
56
link->rates[i] = 0;
drivers/gpu/drm/tegra/dp.c
561
link->train.pattern = DP_TRAINING_PATTERN_1;
drivers/gpu/drm/tegra/dp.c
564
err = drm_dp_link_recover_clock(link);
drivers/gpu/drm/tegra/dp.c
570
if (link->train.clock_recovered)
drivers/gpu/drm/tegra/dp.c
573
drm_dp_link_train_adjust(&link->train);
drivers/gpu/drm/tegra/dp.c
579
static int drm_dp_link_equalize_channel(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
58
link->num_rates = 0;
drivers/gpu/drm/tegra/dp.c
581
struct drm_dp_aux *aux = link->aux;
drivers/gpu/drm/tegra/dp.c
585
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
589
drm_dp_link_train_wait(link);
drivers/gpu/drm/tegra/dp.c
597
if (!drm_dp_clock_recovery_ok(status, link->lanes)) {
drivers/gpu/drm/tegra/dp.c
599
link->train.clock_recovered = false;
drivers/gpu/drm/tegra/dp.c
603
if (!drm_dp_channel_eq_ok(status, link->lanes))
drivers/gpu/drm/tegra/dp.c
604
drm_dp_link_get_adjustments(link, status);
drivers/gpu/drm/tegra/dp.c
606
link->train.channel_equalized = true;
drivers/gpu/drm/tegra/dp.c
611
static int drm_dp_link_channel_equalization(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
617
if (link->caps.tps3_supported)
drivers/gpu/drm/tegra/dp.c
618
link->train.pattern = DP_TRAINING_PATTERN_3;
drivers/gpu/drm/tegra/dp.c
620
link->train.pattern = DP_TRAINING_PATTERN_2;
drivers/gpu/drm/tegra/dp.c
623
err = drm_dp_link_equalize_channel(link);
drivers/gpu/drm/tegra/dp.c
629
if (link->train.channel_equalized)
drivers/gpu/drm/tegra/dp.c
632
drm_dp_link_train_adjust(&link->train);
drivers/gpu/drm/tegra/dp.c
638
static int drm_dp_link_downgrade(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
640
switch (link->rate) {
drivers/gpu/drm/tegra/dp.c
645
link->rate = 162000;
drivers/gpu/drm/tegra/dp.c
649
link->rate = 270000;
drivers/gpu/drm/tegra/dp.c
656
static void drm_dp_link_train_disable(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
660
link->train.pattern = DP_TRAINING_PATTERN_DISABLE;
drivers/gpu/drm/tegra/dp.c
662
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
667
static int drm_dp_link_train_full(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
673
link->lanes, str_plural(link->lanes),
drivers/gpu/drm/tegra/dp.c
674
link->rate / 100);
drivers/gpu/drm/tegra/dp.c
676
err = drm_dp_link_configure(link->aux, link);
drivers/gpu/drm/tegra/dp.c
682
err = drm_dp_link_clock_recovery(link);
drivers/gpu/drm/tegra/dp.c
688
if (!link->train.clock_recovered) {
drivers/gpu/drm/tegra/dp.c
691
err = drm_dp_link_downgrade(link);
drivers/gpu/drm/tegra/dp.c
700
err = drm_dp_link_channel_equalization(link);
drivers/gpu/drm/tegra/dp.c
706
if (!link->train.channel_equalized) {
drivers/gpu/drm/tegra/dp.c
709
err = drm_dp_link_downgrade(link);
drivers/gpu/drm/tegra/dp.c
719
drm_dp_link_train_disable(link);
drivers/gpu/drm/tegra/dp.c
723
static int drm_dp_link_train_fast(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
729
link->lanes, str_plural(link->lanes),
drivers/gpu/drm/tegra/dp.c
730
link->rate / 100);
drivers/gpu/drm/tegra/dp.c
732
err = drm_dp_link_configure(link->aux, link);
drivers/gpu/drm/tegra/dp.c
739
link->train.pattern = DP_TRAINING_PATTERN_1;
drivers/gpu/drm/tegra/dp.c
741
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
748
if (link->caps.tps3_supported)
drivers/gpu/drm/tegra/dp.c
749
link->train.pattern = DP_TRAINING_PATTERN_3;
drivers/gpu/drm/tegra/dp.c
751
link->train.pattern = DP_TRAINING_PATTERN_2;
drivers/gpu/drm/tegra/dp.c
753
err = drm_dp_link_apply_training(link);
drivers/gpu/drm/tegra/dp.c
759
err = drm_dp_dpcd_read_link_status(link->aux, status);
drivers/gpu/drm/tegra/dp.c
76
int drm_dp_link_add_rate(struct drm_dp_link *link, unsigned long rate)
drivers/gpu/drm/tegra/dp.c
765
if (!drm_dp_clock_recovery_ok(status, link->lanes)) {
drivers/gpu/drm/tegra/dp.c
770
if (!drm_dp_channel_eq_ok(status, link->lanes)) {
drivers/gpu/drm/tegra/dp.c
776
drm_dp_link_train_disable(link);
drivers/gpu/drm/tegra/dp.c
794
int drm_dp_link_train(struct drm_dp_link *link)
drivers/gpu/drm/tegra/dp.c
798
drm_dp_link_train_init(&link->train);
drivers/gpu/drm/tegra/dp.c
80
if (link->num_rates == DP_MAX_SUPPORTED_RATES)
drivers/gpu/drm/tegra/dp.c
800
if (link->caps.fast_training) {
drivers/gpu/drm/tegra/dp.c
801
if (drm_dp_link_train_valid(&link->train)) {
drivers/gpu/drm/tegra/dp.c
802
err = drm_dp_link_train_fast(link);
drivers/gpu/drm/tegra/dp.c
815
err = drm_dp_link_train_full(link);
drivers/gpu/drm/tegra/dp.c
83
for (pivot = 0; pivot < link->num_rates; pivot++)
drivers/gpu/drm/tegra/dp.c
84
if (rate <= link->rates[pivot])
drivers/gpu/drm/tegra/dp.c
87
if (pivot != link->num_rates && rate == link->rates[pivot])
drivers/gpu/drm/tegra/dp.c
90
for (i = link->num_rates; i > pivot; i--)
drivers/gpu/drm/tegra/dp.c
91
link->rates[i] = link->rates[i - 1];
drivers/gpu/drm/tegra/dp.c
93
link->rates[pivot] = rate;
drivers/gpu/drm/tegra/dp.c
94
link->num_rates++;
drivers/gpu/drm/tegra/dp.h
160
int drm_dp_link_add_rate(struct drm_dp_link *link, unsigned long rate);
drivers/gpu/drm/tegra/dp.h
161
int drm_dp_link_remove_rate(struct drm_dp_link *link, unsigned long rate);
drivers/gpu/drm/tegra/dp.h
162
void drm_dp_link_update_rates(struct drm_dp_link *link);
drivers/gpu/drm/tegra/dp.h
164
int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link);
drivers/gpu/drm/tegra/dp.h
165
int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link);
drivers/gpu/drm/tegra/dp.h
166
int drm_dp_link_choose(struct drm_dp_link *link,
drivers/gpu/drm/tegra/dp.h
171
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
1160
struct drm_dp_link *link)
drivers/gpu/drm/tegra/sor.c
1162
const u64 f = 100000, link_rate = link->rate * 1000;
drivers/gpu/drm/tegra/sor.c
1169
if (!link_rate || !link->lanes || !pclk || !config->bits_per_pixel)
drivers/gpu/drm/tegra/sor.c
1173
output = link_rate * 8 * link->lanes;
drivers/gpu/drm/tegra/sor.c
1216
(link->lanes * 8);
drivers/gpu/drm/tegra/sor.c
1233
if (link->caps.enhanced_framing)
drivers/gpu/drm/tegra/sor.c
1236
config->hblank_symbols -= 12 / link->lanes;
drivers/gpu/drm/tegra/sor.c
1241
config->vblank_symbols -= 36 / link->lanes + 4;
drivers/gpu/drm/tegra/sor.c
2684
err = drm_dp_link_power_down(sor->aux, sor->link.revision);
drivers/gpu/drm/tegra/sor.c
2770
err = drm_dp_link_probe(sor->aux, &sor->link);
drivers/gpu/drm/tegra/sor.c
2776
err = drm_dp_link_choose(&sor->link, mode, info);
drivers/gpu/drm/tegra/sor.c
2894
err = drm_dp_link_train(&sor->link);
drivers/gpu/drm/tegra/sor.c
2900
err = drm_dp_link_power_up(sor->aux, sor->link.revision);
drivers/gpu/drm/tegra/sor.c
2908
err = tegra_sor_compute_config(sor, mode, &config, &sor->link);
drivers/gpu/drm/tegra/sor.c
3102
sor->link.ops = &tegra_sor_dp_link_ops;
drivers/gpu/drm/tegra/sor.c
3103
sor->link.aux = sor->aux;
drivers/gpu/drm/tegra/sor.c
430
struct drm_dp_link link;
drivers/gpu/drm/tegra/sor.c
628
struct drm_dp_link *link = &sor->link;
drivers/gpu/drm/tegra/sor.c
632
for (i = 0; i < link->num_rates; i++) {
drivers/gpu/drm/tegra/sor.c
633
switch (link->rates[i]) {
drivers/gpu/drm/tegra/sor.c
641
link->rates[i]);
drivers/gpu/drm/tegra/sor.c
642
link->rates[i] = 0;
drivers/gpu/drm/tegra/sor.c
647
drm_dp_link_update_rates(link);
drivers/gpu/drm/tegra/sor.c
808
static int tegra_sor_dp_link_apply_training(struct drm_dp_link *link)
drivers/gpu/drm/tegra/sor.c
810
struct tegra_sor *sor = container_of(link, struct tegra_sor, link);
drivers/gpu/drm/tegra/sor.c
816
for (value = 0, i = 0; i < link->lanes; i++) {
drivers/gpu/drm/tegra/sor.c
817
u8 vs = link->train.request.voltage_swing[i];
drivers/gpu/drm/tegra/sor.c
818
u8 pe = link->train.request.pre_emphasis[i];
drivers/gpu/drm/tegra/sor.c
819
u8 pc = link->train.request.post_cursor[i];
drivers/gpu/drm/tegra/sor.c
829
switch (link->train.pattern) {
drivers/gpu/drm/tegra/sor.c
854
if (link->caps.channel_coding)
drivers/gpu/drm/tegra/sor.c
863
if (link->caps.tps3_supported)
drivers/gpu/drm/tegra/sor.c
879
static int tegra_sor_dp_link_configure(struct drm_dp_link *link)
drivers/gpu/drm/tegra/sor.c
881
struct tegra_sor *sor = container_of(link, struct tegra_sor, link);
drivers/gpu/drm/tegra/sor.c
886
rate = drm_dp_link_rate_to_bw_code(link->rate);
drivers/gpu/drm/tegra/sor.c
887
lanes = link->lanes;
drivers/gpu/drm/tegra/sor.c
899
if (link->caps.enhanced_framing)
drivers/gpu/drm/tegra/sor.c
929
if (link->edp == 0)
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
317
list_move_tail(&res->lru.link, &bdev->unevictable);
drivers/gpu/drm/ttm/ttm_resource.c
328
list_move_tail(&res->lru.link, &man->lru[bo->priority]);
drivers/gpu/drm/ttm/ttm_resource.c
359
list_add_tail(&res->lru.link, &bo->bdev->unevictable);
drivers/gpu/drm/ttm/ttm_resource.c
361
list_add_tail(&res->lru.link, &man->lru[bo->priority]);
drivers/gpu/drm/ttm/ttm_resource.c
383
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
678
list_move(&cursor->hitch.link, &man->lru[cursor->priority]);
drivers/gpu/drm/ttm/ttm_resource.c
699
list_for_each_entry_continue(lru, &man->lru[cursor->priority], link) {
drivers/gpu/drm/ttm/ttm_resource.c
702
list_move(&cursor->hitch.link, &lru->link);
drivers/gpu/drm/ttm/ttm_resource.c
710
list_move(&cursor->hitch.link, &man->lru[cursor->priority]);
drivers/gpu/drm/ttm/ttm_resource.c
728
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
228
INIT_LIST_HEAD(&q->lr.link);
drivers/gpu/drm/xe/xe_exec_queue.c
232
INIT_LIST_HEAD(&q->pxp.link);
drivers/gpu/drm/xe/xe_exec_queue_types.h
165
struct list_head link;
drivers/gpu/drm/xe/xe_exec_queue_types.h
202
struct list_head link;
drivers/gpu/drm/xe/xe_exec_queue_types.h
231
struct list_head link;
drivers/gpu/drm/xe/xe_gpu_scheduler.c
122
list_add_tail(&msg->link, &sched->msgs);
drivers/gpu/drm/xe/xe_gpu_scheduler.c
136
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
2111
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
2113
list_del_init(&cs->link);
drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c
2172
INIT_LIST_HEAD(&cs->link);
drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c
373
list_move_tail(>->sriov.pf.vfs[vfid].control.link, &pfc->list);
drivers/gpu/drm/xe/xe_gt_sriov_pf_control_types.h
120
struct list_head link;
drivers/gpu/drm/xe/xe_guc_capture.c
1110
list_for_each_entry_safe(n, ntmp, &guc->capture->cachelist, link) {
drivers/gpu/drm/xe/xe_guc_capture.c
1121
list_for_each_entry_safe_reverse(n, ntmp, &guc->capture->outlist, link) {
drivers/gpu/drm/xe/xe_guc_capture.c
1127
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
878
list_add(&node->link, list);
drivers/gpu/drm/xe/xe_guc_capture.c
902
list_del(&n->link);
drivers/gpu/drm/xe/xe_guc_capture.c
915
list_for_each_entry_safe(n, ntmp, &gc->outlist, link) {
drivers/gpu/drm/xe/xe_guc_capture.c
936
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
714
txn = list_first_entry_or_null(&relay->incoming_actions, struct relay_transaction, link);
drivers/gpu/drm/xe/xe_guc_relay.c
716
list_del_init(&txn->link);
drivers/gpu/drm/xe/xe_guc_relay.c
768
list_add(&txn->link, &relay->incoming_actions);
drivers/gpu/drm/xe/xe_guc_relay.c
819
list_add_tail(&txn->link, &relay->incoming_actions);
drivers/gpu/drm/xe/xe_guc_submit.c
1683
list_del(&q->multi_queue.link);
drivers/gpu/drm/xe/xe_guc_submit.c
1956
INIT_LIST_HEAD(&ge->static_msgs[i].link);
drivers/gpu/drm/xe/xe_guc_submit.c
2007
INIT_LIST_HEAD(&q->multi_queue.link);
drivers/gpu/drm/xe/xe_guc_submit.c
2011
list_add_tail(&q->multi_queue.link, &group->list);
drivers/gpu/drm/xe/xe_guc_submit.c
2046
INIT_LIST_HEAD(&msg->link);
drivers/gpu/drm/xe/xe_guc_submit.c
2063
if (!list_empty(&msg->link))
drivers/gpu/drm/xe/xe_guc_submit.c
2073
if (!list_empty(&msg->link))
drivers/gpu/drm/xe/xe_guc_submit.c
578
list_for_each_entry_safe(eq, next, &group->list, multi_queue.link)
drivers/gpu/drm/xe/xe_guc_submit.c
585
list_move_tail(&eq->multi_queue.link, &tmp);
drivers/gpu/drm/xe/xe_guc_submit.c
591
list_for_each_entry(eq, &tmp, multi_queue.link)
drivers/gpu/drm/xe/xe_guc_submit.c
595
list_for_each_entry_safe(eq, next, &tmp, multi_queue.link) {
drivers/gpu/drm/xe/xe_guc_submit.c
603
list_move_tail(&eq->multi_queue.link, &group->list);
drivers/gpu/drm/xe/xe_guc_submit.c
622
list_for_each_entry(eq, &group->list, multi_queue.link)
drivers/gpu/drm/xe/xe_guc_submit.c
641
list_for_each_entry(eq, &group->list, multi_queue.link)
drivers/gpu/drm/xe/xe_guc_submit.c
661
list_for_each_entry(eq, &group->list, multi_queue.link) {
drivers/gpu/drm/xe/xe_guc_submit.c
686
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
1382
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_pt.c
1588
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_pt.c
2405
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_pt.c
2738
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_pt.c
2746
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_pt.c
2759
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_pxp.c
513
list_add_tail(&q->pxp.link, &pxp->queues.list);
drivers/gpu/drm/xe/xe_pxp.c
700
if (!list_empty(&q->pxp.link)) {
drivers/gpu/drm/xe/xe_pxp.c
701
list_del_init(&q->pxp.link);
drivers/gpu/drm/xe/xe_pxp.c
735
list_for_each_entry_safe(q, tmp, &pxp->queues.list, pxp.link) {
drivers/gpu/drm/xe/xe_pxp.c
740
list_move_tail(&q->pxp.link, &to_clean);
drivers/gpu/drm/xe/xe_pxp.c
744
list_for_each_entry_safe(q, tmp, &to_clean, pxp.link) {
drivers/gpu/drm/xe/xe_range_fence.c
100
llist_add(&rfence->link, &tree->list);
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.h
43
struct llist_node link;
drivers/gpu/drm/xe/xe_res_cursor.h
123
link);
drivers/gpu/drm/xe/xe_res_cursor.h
130
next = block->link.next;
drivers/gpu/drm/xe/xe_res_cursor.h
133
link);
drivers/gpu/drm/xe/xe_res_cursor.h
309
next = block->link.next;
drivers/gpu/drm/xe/xe_res_cursor.h
310
block = list_entry(next, struct gpu_buddy_block, link);
drivers/gpu/drm/xe/xe_res_cursor.h
316
next = block->link.next;
drivers/gpu/drm/xe/xe_res_cursor.h
317
block = list_entry(next, struct gpu_buddy_block, link);
drivers/gpu/drm/xe/xe_svm.c
794
list_for_each_entry(block, blocks, link) {
drivers/gpu/drm/xe/xe_tlb_inval.c
212
&tlb_inval->pending_fences, link)
drivers/gpu/drm/xe/xe_tlb_inval.c
256
list_add_tail(&fence->link, &tlb_inval->pending_fences);
drivers/gpu/drm/xe/xe_tlb_inval.c
408
&tlb_inval->pending_fences, link) {
drivers/gpu/drm/xe/xe_tlb_inval.c
464
INIT_LIST_HEAD(&fence->link);
drivers/gpu/drm/xe/xe_tlb_inval.c
49
list_del(&fence->link);
drivers/gpu/drm/xe/xe_tlb_inval.c
81
&tlb_inval->pending_fences, link) {
drivers/gpu/drm/xe/xe_tlb_inval_types.h
130
struct list_head link;
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
128
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
154
link);
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
226
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
23
return list_first_entry_or_null(list, struct gpu_buddy_block, link);
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
256
list_for_each_entry(block, &vres->blocks, link) {
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
36
while (head != block->link.next) {
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
40
block = list_entry(block->link.next, struct gpu_buddy_block,
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
41
link);
drivers/gpu/drm/xe/xe_vm.c
1026
list_for_each_entry_safe(op, next_op, &vops.list, link) {
drivers/gpu/drm/xe/xe_vm.c
1027
list_del(&op->link);
drivers/gpu/drm/xe/xe_vm.c
121
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
149
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
159
struct list_head *link;
drivers/gpu/drm/xe/xe_vm.c
162
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
165
link = list->next;
drivers/gpu/drm/xe/xe_vm.c
166
xe_assert(vm->xe, link != list);
drivers/gpu/drm/xe/xe_vm.c
168
fence = xe_preempt_fence_arm(to_preempt_fence_from_link(link),
drivers/gpu/drm/xe/xe_vm.c
190
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link)
drivers/gpu/drm/xe/xe_vm.c
208
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
243
list_add(&q->lr.link, &vm->preempt.exec_queues);
drivers/gpu/drm/xe/xe_vm.c
2784
INIT_LIST_HEAD(&op->link);
drivers/gpu/drm/xe/xe_vm.c
2785
list_add_tail(&op->link, &vops->list);
drivers/gpu/drm/xe/xe_vm.c
285
if (!list_empty(&q->lr.link)) {
drivers/gpu/drm/xe/xe_vm.c
286
list_del_init(&q->lr.link);
drivers/gpu/drm/xe/xe_vm.c
319
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link)
drivers/gpu/drm/xe/xe_vm.c
3295
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_vm.c
3317
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_vm.c
3362
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_vm.c
3532
list_for_each_entry(op, &vops->list, link) {
drivers/gpu/drm/xe/xe_vm.c
693
list_for_each_entry(op, &vops->list, link)
drivers/gpu/drm/xe/xe_vm.c
72
list_for_each_entry(q, &vm->preempt.exec_queues, lr.link) {
drivers/gpu/drm/xe/xe_vm.c
729
INIT_LIST_HEAD(&op->link);
drivers/gpu/drm/xe/xe_vm.c
751
list_add_tail(&op->link, &vops->list);
drivers/gpu/drm/xe/xe_vm.c
809
list_for_each_entry_safe(op, next_op, &vops.list, link) {
drivers/gpu/drm/xe/xe_vm.c
810
list_del(&op->link);
drivers/gpu/drm/xe/xe_vm.c
85
struct list_head *link, *next;
drivers/gpu/drm/xe/xe_vm.c
852
list_for_each_entry_safe(op, next_op, &vops.list, link) {
drivers/gpu/drm/xe/xe_vm.c
853
list_del(&op->link);
drivers/gpu/drm/xe/xe_vm.c
866
INIT_LIST_HEAD(&op->link);
drivers/gpu/drm/xe/xe_vm.c
87
list_for_each_safe(link, next, list)
drivers/gpu/drm/xe/xe_vm.c
88
xe_preempt_fence_free(to_preempt_fence_from_link(link));
drivers/gpu/drm/xe/xe_vm.c
887
list_add_tail(&op->link, &vops->list);
drivers/gpu/drm/xe/xe_vm.c
943
list_for_each_entry_safe(op, next_op, &vops.list, link) {
drivers/gpu/drm/xe/xe_vm.c
944
list_del(&op->link);
drivers/gpu/drm/xe/xe_vm.c
955
INIT_LIST_HEAD(&op->link);
drivers/gpu/drm/xe/xe_vm.c
973
list_add_tail(&op->link, &vops->list);
drivers/gpu/drm/xe/xe_vm_types.h
505
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/gpu/tests/gpu_buddy_test.c
1084
list_for_each_entry(block, &allocated, link)
drivers/gpu/tests/gpu_buddy_test.c
1120
block = list_first_entry_or_null(&blocks, typeof(*block), link);
drivers/gpu/tests/gpu_buddy_test.c
1122
list_del(&block->link);
drivers/gpu/tests/gpu_buddy_test.c
1134
block = list_first_entry_or_null(&tmp, struct gpu_buddy_block, link);
drivers/gpu/tests/gpu_buddy_test.c
1137
list_move_tail(&block->link, &blocks);
drivers/gpu/tests/gpu_buddy_test.c
1146
block = list_first_entry_or_null(&tmp, struct gpu_buddy_block, link);
drivers/gpu/tests/gpu_buddy_test.c
1149
list_move_tail(&block->link, &holes);
drivers/gpu/tests/gpu_buddy_test.c
1204
block = list_first_entry_or_null(&tmp, struct gpu_buddy_block, link);
drivers/gpu/tests/gpu_buddy_test.c
1207
list_move_tail(&block->link, &blocks);
drivers/gpu/tests/gpu_buddy_test.c
1216
block = list_first_entry_or_null(&tmp, struct gpu_buddy_block, link);
drivers/gpu/tests/gpu_buddy_test.c
1219
list_move_tail(&block->link, &blocks);
drivers/gpu/tests/gpu_buddy_test.c
1229
block = list_last_entry(&blocks, typeof(*block), link);
drivers/gpu/tests/gpu_buddy_test.c
1230
list_del(&block->link);
drivers/gpu/tests/gpu_buddy_test.c
1235
list_for_each_entry_safe(block, bn, &blocks, link) {
drivers/gpu/tests/gpu_buddy_test.c
1236
list_del(&block->link);
drivers/gpu/tests/gpu_buddy_test.c
1245
block = list_first_entry_or_null(&tmp, struct gpu_buddy_block, link);
drivers/gpu/tests/gpu_buddy_test.c
1248
list_del(&block->link);
drivers/gpu/tests/gpu_buddy_test.c
1260
block = list_first_entry_or_null(&tmp, struct gpu_buddy_block, link);
drivers/gpu/tests/gpu_buddy_test.c
1263
list_del(&block->link);
drivers/gpu/tests/gpu_buddy_test.c
1299
block = list_first_entry_or_null(&tmp, struct gpu_buddy_block, link);
drivers/gpu/tests/gpu_buddy_test.c
1302
list_move_tail(&block->link, &blocks);
drivers/gpu/tests/gpu_buddy_test.c
1333
block = list_first_entry_or_null(&allocated, struct gpu_buddy_block, link);
drivers/gpu/tests/gpu_buddy_test.c
140
list_for_each_entry(block, &allocated, link) {
drivers/gpu/tests/gpu_buddy_test.c
153
list_for_each_entry(block, &allocated, link) {
drivers/gpu/tests/gpu_buddy_test.c
165
list_for_each_entry_safe(block, tmp, &allocated, link) {
drivers/gpu/tests/gpu_buddy_test.c
167
list_move_tail(&block->link, &freed);
drivers/gpu/tests/gpu_buddy_test.c
226
list_for_each_entry_safe(block, tmp, &allocated_blocks, link) {
drivers/gpu/tests/gpu_buddy_test.c
228
list_move_tail(&block->link, &clear_list);
drivers/gpu/tests/gpu_buddy_test.c
230
list_move_tail(&block->link, &dirty_list);
drivers/gpu/tests/gpu_buddy_test.c
273
list_for_each_entry_safe(block, tmp, &allocated_blocks, link) {
drivers/gpu/tests/gpu_buddy_test.c
275
list_move_tail(&block->link, &free_list);
drivers/gpu/tests/gpu_buddy_test.c
280
list_for_each_entry_safe_reverse(block, tmp, &allocated_blocks, link)
drivers/gpu/tests/gpu_buddy_test.c
281
list_move(&block->link, &reverse_list);
drivers/gpu/tests/gpu_buddy_test.c
522
list_for_each_entry(block, &allocated, link)
drivers/gpu/tests/gpu_buddy_test.c
555
list_for_each_entry(block, &blocks, link) {
drivers/gpu/tests/gpu_buddy_test.c
616
list_for_each_entry(block, &blocks, link)
drivers/gpu/tests/gpu_buddy_test.c
76
link);
drivers/gpu/tests/gpu_buddy_test.c
804
list_for_each_entry(block, &blocks, link) {
drivers/gpu/tests/gpu_buddy_test.c
847
list_for_each_entry(block, &blocks, link)
drivers/gpu/tests/gpu_buddy_test.c
908
list_for_each_entry(block, &clean, link)
drivers/gpu/tests/gpu_buddy_test.c
911
list_for_each_entry(block, &dirty, link)
drivers/gpu/tests/gpu_buddy_test.c
968
list_for_each_entry(block, &allocated, link) {
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
176
msg = list_entry(head, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
320
msg = list_first_entry(queue, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
360
list_add_tail(&msg->link, &omap_port->brkqueue);
drivers/hsi/controllers/omap_ssi_port.c
395
list_add_tail(&msg->link, queue);
drivers/hsi/controllers/omap_ssi_port.c
398
list_del(&msg->link);
drivers/hsi/controllers/omap_ssi_port.c
431
msg = list_entry(node, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
639
msg = list_first_entry(queue, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
642
list_del(&msg->link);
drivers/hsi/controllers/omap_ssi_port.c
673
link);
drivers/hsi/controllers/omap_ssi_port.c
686
link);
drivers/hsi/controllers/omap_ssi_port.c
835
link);
drivers/hsi/controllers/omap_ssi_port.c
836
list_del(&msg->link);
drivers/hsi/controllers/omap_ssi_port.c
867
list_for_each_entry_safe(msg, tmp, &omap_port->brkqueue, link) {
drivers/hsi/controllers/omap_ssi_port.c
870
list_del(&msg->link);
drivers/hsi/controllers/omap_ssi_port.c
888
msg = list_first_entry(queue, struct hsi_msg, link);
drivers/hsi/controllers/omap_ssi_port.c
934
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
99
struct hlist_node link;
drivers/hwtracing/coresight/coresight-core.c
1038
list_add(&node->link, &path->path_list);
drivers/hwtracing/coresight/coresight-core.c
1079
list_for_each_entry_safe(nd, next, &path->path_list, link) {
drivers/hwtracing/coresight/coresight-core.c
1083
list_del(&nd->link);
drivers/hwtracing/coresight/coresight-core.c
1939
to = list_prev_entry(coresight_path_last_node(path), link);
drivers/hwtracing/coresight/coresight-core.c
1962
to = list_prev_entry(coresight_path_last_node(path), link);
drivers/hwtracing/coresight/coresight-core.c
50
struct list_head link;
drivers/hwtracing/coresight/coresight-core.c
568
list_for_each_entry_from(nd, &path->path_list, link) {
drivers/hwtracing/coresight/coresight-core.c
588
list_for_each_entry_from(nd, &path->path_list, link) {
drivers/hwtracing/coresight/coresight-core.c
610
parent = list_prev_entry(nd, link)->csdev;
drivers/hwtracing/coresight/coresight-core.c
611
child = list_next_entry(nd, link)->csdev;
drivers/hwtracing/coresight/coresight-core.c
679
list_for_each_entry_from_reverse(nd, &path->path_list, link) {
drivers/hwtracing/coresight/coresight-core.c
716
parent = list_prev_entry(nd, link)->csdev;
drivers/hwtracing/coresight/coresight-core.c
717
child = list_next_entry(nd, link)->csdev;
drivers/hwtracing/coresight/coresight-core.c
72
return list_first_entry(&path->path_list, struct coresight_node, link);
drivers/hwtracing/coresight/coresight-core.c
743
nd = list_next_entry(nd, link);
drivers/hwtracing/coresight/coresight-core.c
81
return list_last_entry(&path->path_list, struct coresight_node, link);
drivers/hwtracing/coresight/coresight-core.c
952
list_for_each_entry(nd, &path->path_list, link) {
drivers/hwtracing/coresight/coresight-etm-perf.c
878
int etm_perf_symlink(struct coresight_device *csdev, bool link)
drivers/hwtracing/coresight/coresight-etm-perf.c
890
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
624
const union acpi_object *link,
drivers/hwtracing/coresight/coresight-platform.c
632
if (link->type != ACPI_TYPE_PACKAGE ||
drivers/hwtracing/coresight/coresight-platform.c
633
link->package.count != 4)
drivers/hwtracing/coresight/coresight-platform.c
636
fields = link->package.elements;
drivers/hwtracing/coresight/coresight-platform.c
708
const union acpi_object *link = &graph->package.elements[3 + i];
drivers/hwtracing/coresight/coresight-platform.c
712
dir = acpi_coresight_parse_link(adev, link, &conn);
drivers/hwtracing/coresight/coresight-stm.c
811
drvdata->stm.link = stm_generic_link;
drivers/hwtracing/coresight/coresight-sysfs.c
572
struct coresight_sysfs_link *link = NULL;
drivers/hwtracing/coresight/coresight-sysfs.c
587
link = devm_kzalloc(&orig->dev,
drivers/hwtracing/coresight/coresight-sysfs.c
590
if (!link)
drivers/hwtracing/coresight/coresight-sysfs.c
593
link->orig = orig;
drivers/hwtracing/coresight/coresight-sysfs.c
594
link->target = target;
drivers/hwtracing/coresight/coresight-sysfs.c
595
link->orig_name = outs;
drivers/hwtracing/coresight/coresight-sysfs.c
596
link->target_name = ins;
drivers/hwtracing/coresight/coresight-sysfs.c
598
ret = coresight_add_sysfs_link(link);
drivers/hwtracing/coresight/coresight-sysfs.c
602
conn->link = link;
drivers/hwtracing/coresight/coresight-sysfs.c
617
if (!orig || !conn->link)
drivers/hwtracing/coresight/coresight-sysfs.c
620
coresight_remove_sysfs_link(conn->link);
drivers/hwtracing/coresight/coresight-sysfs.c
622
devm_kfree(&conn->dest_dev->dev, conn->link->target_name);
drivers/hwtracing/coresight/coresight-sysfs.c
623
devm_kfree(&orig->dev, conn->link->orig_name);
drivers/hwtracing/coresight/coresight-sysfs.c
624
devm_kfree(&orig->dev, conn->link);
drivers/hwtracing/coresight/coresight-sysfs.c
625
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
1011
rcu_assign_pointer(src->link, stm);
drivers/hwtracing/stm/core.c
1030
if (stm->data->link)
drivers/hwtracing/stm/core.c
1031
err = stm->data->link(stm->data, src->output.master,
drivers/hwtracing/stm/core.c
1038
if (src->data->link)
drivers/hwtracing/stm/core.c
1039
src->data->link(src->data);
drivers/hwtracing/stm/core.c
1051
rcu_assign_pointer(src->link, NULL);
drivers/hwtracing/stm/core.c
1074
struct stm_device *link;
drivers/hwtracing/stm/core.c
1082
link = srcu_dereference_check(src->link, &stm_source_srcu, 1);
drivers/hwtracing/stm/core.c
1089
if (link != stm) {
drivers/hwtracing/stm/core.c
1094
stm_output_free(link, &src->output);
drivers/hwtracing/stm/core.c
1096
pm_runtime_mark_last_busy(&link->dev);
drivers/hwtracing/stm/core.c
1097
pm_runtime_put_autosuspend(&link->dev);
drivers/hwtracing/stm/core.c
1099
stm_put_device(link);
drivers/hwtracing/stm/core.c
1100
rcu_assign_pointer(src->link, NULL);
drivers/hwtracing/stm/core.c
1144
stm = srcu_dereference(src->link, &stm_source_srcu);
drivers/hwtracing/stm/core.c
1169
stm = srcu_dereference(src->link, &stm_source_srcu);
drivers/hwtracing/stm/core.c
1182
struct stm_device *link;
drivers/hwtracing/stm/core.c
1187
link = stm_find_device(buf);
drivers/hwtracing/stm/core.c
1188
if (!link)
drivers/hwtracing/stm/core.c
1191
pm_runtime_get(&link->dev);
drivers/hwtracing/stm/core.c
1193
err = stm_source_link_add(src, link);
drivers/hwtracing/stm/core.c
1195
pm_runtime_put_autosuspend(&link->dev);
drivers/hwtracing/stm/core.c
1197
stm_put_device(link);
drivers/hwtracing/stm/core.c
1310
stm = srcu_dereference(src->link, &stm_source_srcu);
drivers/hwtracing/stm/core.c
781
if (stm->data->link)
drivers/hwtracing/stm/core.c
782
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
801
struct device_link *link;
drivers/iio/industrialio-backend.c
818
link = device_link_add(dev, back->dev, DL_FLAG_AUTOREMOVE_CONSUMER);
drivers/iio/industrialio-backend.c
819
if (!link)
drivers/infiniband/core/cm.c
635
struct rb_node **link = &cm.listen_service_table.rb_node;
drivers/infiniband/core/cm.c
642
while (*link) {
drivers/infiniband/core/cm.c
643
parent = *link;
drivers/infiniband/core/cm.c
648
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
650
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
652
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
654
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
673
rb_link_node(&cm_id_priv->service_node, parent, link);
drivers/infiniband/core/cm.c
707
struct rb_node **link = &cm.remote_id_table.rb_node;
drivers/infiniband/core/cm.c
713
while (*link) {
drivers/infiniband/core/cm.c
714
parent = *link;
drivers/infiniband/core/cm.c
718
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
720
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
722
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
724
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
729
rb_link_node(&timewait_info->remote_id_node, parent, link);
drivers/infiniband/core/cm.c
766
struct rb_node **link = &cm.remote_qp_table.rb_node;
drivers/infiniband/core/cm.c
772
while (*link) {
drivers/infiniband/core/cm.c
773
parent = *link;
drivers/infiniband/core/cm.c
777
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
779
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
781
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
783
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
788
rb_link_node(&timewait_info->remote_qp_node, parent, link);
drivers/infiniband/core/cm.c
796
struct rb_node **link = &cm.remote_sidr_table.rb_node;
drivers/infiniband/core/cm.c
801
while (*link) {
drivers/infiniband/core/cm.c
802
parent = *link;
drivers/infiniband/core/cm.c
806
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
808
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
811
link = &(*link)->rb_left;
drivers/infiniband/core/cm.c
813
link = &(*link)->rb_right;
drivers/infiniband/core/cm.c
818
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
153
struct usnic_ib_qp_grp_flow, link);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
214
list_for_each_entry(vf, &us_ibdev->vf_dev_list, link) {
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
510
list_add_tail(&qp_grp->link, &ucontext->qp_grp_list);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
537
list_del(&qp_grp->link);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
641
list_add_tail(&context->link, &us_ibdev->ctx_list);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
655
list_del(&context->link);
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
681
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
139
u16 link;
drivers/input/misc/iqs7222.c
202
.link = BIT(7),
drivers/input/misc/iqs7222.c
206
.link = BIT(0),
drivers/input/misc/iqs7222.c
214
.link = BIT(2),
drivers/input/misc/iqs7222.c
223
.link = BIT(3),
drivers/input/misc/iqs7222.c
232
.link = BIT(4),
drivers/input/misc/iqs7222.c
241
.link = BIT(5),
drivers/input/misc/iqs7222.c
250
.link = BIT(2),
drivers/input/misc/iqs7222.c
259
.link = BIT(3),
drivers/input/misc/iqs7222.c
268
.link = BIT(4),
drivers/input/misc/iqs7222.c
2755
iqs7222_tp_events[i].link, 1566,
drivers/input/misc/iqs7222.c
277
.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
1327
list_add(&info->link, &domain->devices);
drivers/iommu/intel/iommu.c
2751
list_del(&info->link);
drivers/iommu/intel/iommu.c
3164
list_for_each_entry(info, &domain->devices, link) {
drivers/iommu/intel/iommu.c
3188
list_for_each_entry(info, &dmar_domain->devices, link)
drivers/iommu/intel/iommu.c
3699
list_for_each_entry(info, &domain->devices, link) {
drivers/iommu/intel/iommu.c
838
list_for_each_entry(info, &domain->devices, link) {
drivers/iommu/intel/iommu.h
741
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
1154
data->link = device_link_add(dev, iommu->dev,
drivers/iommu/rockchip-iommu.c
1164
device_link_del(data->link);
drivers/iommu/rockchip-iommu.c
125
struct device_link *link; /* runtime PM link from IOMMU to master */
drivers/iommu/vsi-iommu.c
620
struct device_link *link;
drivers/iommu/vsi-iommu.c
622
link = device_link_add(dev, iommu->dev,
drivers/iommu/vsi-iommu.c
624
if (!link)
drivers/leds/trigger/ledtrig-netdev.c
434
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
371
sensor->link = ssdb.link;
drivers/media/pci/intel/ipu-bridge.c
476
SWNODE_GRAPH_PORT_NAME_FMT, sensor->link);
drivers/media/pci/intel/ipu-bridge.c
486
"%s-%u", sensor->vcm_type, sensor->link);
drivers/media/pci/intel/ipu-bridge.c
560
device_hid, sensor->link);
drivers/media/pci/intel/ipu-bridge.c
745
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/amd/isp4/isp4_video.c
108
static int isp4vid_vdev_link_validate(struct media_link *link)
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
498
static int mali_c55_subdev_link_validate(struct media_link *link)
drivers/media/platform/arm/mali-c55/mali-c55-isp.c
504
if (link->sink->index == MALI_C55_ISP_PAD_SINK_PARAMS)
drivers/media/platform/arm/mali-c55/mali-c55-isp.c
507
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
2122
static int unicam_video_link_validate(struct media_link *link)
drivers/media/platform/broadcom/bcm2835-unicam.c
2125
media_entity_to_video_device(link->sink->entity);
drivers/media/platform/broadcom/bcm2835-unicam.c
2127
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
736
struct media_link *link;
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
814
link = media_create_intf_link(&vdev->entity, &m2m->intf->intf,
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
817
if (!link) {
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
822
link = media_create_intf_link(&m2m->pipe->video.vdev.entity,
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
826
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
1034
static int rzg2l_cru_video_link_validate(struct media_link *link)
drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
1044
subdev = media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
1045
fmt.pad = link->source->index;
drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
1050
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
496
struct media_link *link;
drivers/media/platform/renesas/vsp1/vsp1_entity.c
498
list_for_each_entry(link, &pad->entity->links, list) {
drivers/media/platform/renesas/vsp1/vsp1_entity.c
501
if (!(link->flags & MEDIA_LNK_FL_ENABLED))
drivers/media/platform/renesas/vsp1/vsp1_entity.c
505
if (link->sink == pad)
drivers/media/platform/renesas/vsp1/vsp1_entity.c
506
return link->source;
drivers/media/platform/renesas/vsp1/vsp1_entity.c
508
if (link->source != pad)
drivers/media/platform/renesas/vsp1/vsp1_entity.c
512
if (!is_media_entity_v4l2_subdev(link->sink->entity))
drivers/media/platform/renesas/vsp1/vsp1_entity.c
513
return link->sink;
drivers/media/platform/renesas/vsp1/vsp1_entity.c
515
entity = media_entity_to_vsp1_entity(link->sink->entity);
drivers/media/platform/renesas/vsp1/vsp1_entity.c
518
return link->sink;
drivers/media/platform/renesas/vsp1/vsp1_video.c
1096
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
1457
static int rkisp1_capture_link_validate(struct media_link *link)
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1460
media_entity_to_video_device(link->sink->entity);
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1462
media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1468
.pad = link->source->index,
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1481
link->source->entity->name, link->source->index,
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
1482
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
445
writel(timeout_threshold, rkvdec->link + VDPU383_LINK_TIMEOUT_THRESHOLD);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-h264.c
446
writel(0, rkvdec->link + VDPU383_LINK_IP_ENABLE);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-h264.c
447
writel(VDPU383_DEC_E_BIT, rkvdec->link + VDPU383_LINK_DEC_ENABLE);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c
572
writel(timeout_threshold, rkvdec->link + VDPU383_LINK_TIMEOUT_THRESHOLD);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c
573
writel(VDPU383_IP_CRU_MODE, rkvdec->link + VDPU383_LINK_IP_ENABLE);
drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c
574
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
813
static int dcmipp_bytecap_link_validate(struct media_link *link)
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
815
struct media_entity *entity = link->sink->entity;
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
820
media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
823
.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
1304
static int ti_csi2rx_link_validate(struct media_link *link)
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1306
struct media_entity *entity = link->sink->entity;
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1316
format = v4l2_subdev_state_get_format(state, link->source->index, 0);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1322
link->source->entity->name, link->source->index);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1355
link->source->entity->name, 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
282
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
1023
struct media_link *link, *found_link = NULL;
drivers/media/usb/em28xx/em28xx-video.c
1036
list_for_each_entry(link, &v4l2->decoder->links, list) {
drivers/media/usb/em28xx/em28xx-video.c
1037
if (link->sink->entity == v4l2->decoder) {
drivers/media/usb/em28xx/em28xx-video.c
1038
found_link = link;
drivers/media/usb/em28xx/em28xx-video.c
1039
if (link->flags & MEDIA_LNK_FL_ENABLED)
drivers/media/usb/em28xx/em28xx-video.c
1049
list_for_each_entry(link, &source->links, list) {
drivers/media/usb/em28xx/em28xx-video.c
1053
sink = link->sink->entity;
drivers/media/usb/em28xx/em28xx-video.c
1058
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
612
struct v4l2_fwnode_link *link)
drivers/media/v4l2-core/v4l2-fwnode.c
616
memset(link, 0, sizeof(*link));
drivers/media/v4l2-core/v4l2-fwnode.c
619
link->local_id = fwep.id;
drivers/media/v4l2-core/v4l2-fwnode.c
620
link->local_port = fwep.port;
drivers/media/v4l2-core/v4l2-fwnode.c
621
link->local_node = fwnode_graph_get_port_parent(fwnode);
drivers/media/v4l2-core/v4l2-fwnode.c
622
if (!link->local_node)
drivers/media/v4l2-core/v4l2-fwnode.c
630
link->remote_id = fwep.id;
drivers/media/v4l2-core/v4l2-fwnode.c
631
link->remote_port = fwep.port;
drivers/media/v4l2-core/v4l2-fwnode.c
632
link->remote_node = fwnode_graph_get_port_parent(fwnode);
drivers/media/v4l2-core/v4l2-fwnode.c
633
if (!link->remote_node)
drivers/media/v4l2-core/v4l2-fwnode.c
642
fwnode_handle_put(link->local_node);
drivers/media/v4l2-core/v4l2-fwnode.c
648
void v4l2_fwnode_put_link(struct v4l2_fwnode_link *link)
drivers/media/v4l2-core/v4l2-fwnode.c
650
fwnode_handle_put(link->local_node);
drivers/media/v4l2-core/v4l2-fwnode.c
651
fwnode_handle_put(link->remote_node);
drivers/media/v4l2-core/v4l2-fwnode.c
695
struct v4l2_connector_link *link, *tmp;
drivers/media/v4l2-core/v4l2-fwnode.c
700
list_for_each_entry_safe(link, tmp, &connector->links, head) {
drivers/media/v4l2-core/v4l2-fwnode.c
701
v4l2_fwnode_put_link(&link->fwnode_link);
drivers/media/v4l2-core/v4l2-fwnode.c
702
list_del(&link->head);
drivers/media/v4l2-core/v4l2-fwnode.c
703
kfree(link);
drivers/media/v4l2-core/v4l2-fwnode.c
785
struct v4l2_connector_link *link;
drivers/media/v4l2-core/v4l2-fwnode.c
795
link = kzalloc_obj(*link);
drivers/media/v4l2-core/v4l2-fwnode.c
796
if (!link) {
drivers/media/v4l2-core/v4l2-fwnode.c
801
err = v4l2_fwnode_parse_link(connector_ep, &link->fwnode_link);
drivers/media/v4l2-core/v4l2-fwnode.c
807
list_add(&link->head, &connector->links);
drivers/media/v4l2-core/v4l2-fwnode.c
813
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
1268
struct media_link *link,
drivers/media/v4l2-core/v4l2-subdev.c
1317
link->source->entity->name, link->source->index,
drivers/media/v4l2-core/v4l2-subdev.c
1318
link->sink->entity->name, link->sink->index);
drivers/media/v4l2-core/v4l2-subdev.c
1418
static int v4l2_subdev_link_validate_locked(struct media_link *link, bool states_locked)
drivers/media/v4l2-core/v4l2-subdev.c
1421
media_entity_to_v4l2_subdev(link->sink->entity);
drivers/media/v4l2-core/v4l2-subdev.c
1430
link->source->entity->name, link->source->index,
drivers/media/v4l2-core/v4l2-subdev.c
1431
link->sink->entity->name, link->sink->index);
drivers/media/v4l2-core/v4l2-subdev.c
1433
v4l2_link_validate_get_streams(link->source, &source_streams_mask, states_locked);
drivers/media/v4l2-core/v4l2-subdev.c
1434
v4l2_link_validate_get_streams(link->sink, &sink_streams_mask, states_locked);
drivers/media/v4l2-core/v4l2-subdev.c
1458
link->source->entity->name, link->source->index, stream,
drivers/media/v4l2-core/v4l2-subdev.c
1459
link->sink->entity->name, link->sink->index, stream);
drivers/media/v4l2-core/v4l2-subdev.c
1461
ret = v4l2_subdev_link_validate_get_format(link->source, stream,
drivers/media/v4l2-core/v4l2-subdev.c
1466
link->source->entity->name, link->source->index,
drivers/media/v4l2-core/v4l2-subdev.c
1471
ret = v4l2_subdev_link_validate_get_format(link->sink, stream,
drivers/media/v4l2-core/v4l2-subdev.c
1476
link->sink->entity->name, link->sink->index,
drivers/media/v4l2-core/v4l2-subdev.c
1482
ret = v4l2_subdev_call(sink_subdev, pad, link_validate, link,
drivers/media/v4l2-core/v4l2-subdev.c
1490
ret = v4l2_subdev_link_validate_default(sink_subdev, link,
drivers/media/v4l2-core/v4l2-subdev.c
1500
int v4l2_subdev_link_validate(struct media_link *link)
drivers/media/v4l2-core/v4l2-subdev.c
1511
if (WARN_ON_ONCE(!is_media_entity_v4l2_subdev(link->sink->entity)))
drivers/media/v4l2-core/v4l2-subdev.c
1520
if (is_media_entity_v4l2_video_device(link->source->entity)) {
drivers/media/v4l2-core/v4l2-subdev.c
1521
struct media_entity *source = link->source->entity;
drivers/media/v4l2-core/v4l2-subdev.c
1544
return source->ops->link_validate(link);
drivers/media/v4l2-core/v4l2-subdev.c
1551
if (WARN_ON(!is_media_entity_v4l2_subdev(link->source->entity)))
drivers/media/v4l2-core/v4l2-subdev.c
1554
sink_sd = media_entity_to_v4l2_subdev(link->sink->entity);
drivers/media/v4l2-core/v4l2-subdev.c
1555
source_sd = media_entity_to_v4l2_subdev(link->source->entity);
drivers/media/v4l2-core/v4l2-subdev.c
1565
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
1340
list_for_each_entry(cl, &bus->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
561
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
2968
list_add_tail(&gr->link, &mmc_test_result);
drivers/mmc/core/mmc_test.c
3026
list_for_each_entry_safe(gr, grs, &mmc_test_result, link) {
drivers/mmc/core/mmc_test.c
3032
list_for_each_entry_safe(tr, trs, &gr->tr_lst, link) {
drivers/mmc/core/mmc_test.c
3033
list_del(&tr->link);
drivers/mmc/core/mmc_test.c
3037
list_del(&gr->link);
drivers/mmc/core/mmc_test.c
3053
list_for_each_entry(gr, &mmc_test_result, link) {
drivers/mmc/core/mmc_test.c
3061
list_for_each_entry(tr, &gr->tr_lst, link) {
drivers/mmc/core/mmc_test.c
3155
list_for_each_entry_safe(df, dfs, &mmc_test_file_test, link) {
drivers/mmc/core/mmc_test.c
3159
list_del(&df->link);
drivers/mmc/core/mmc_test.c
3185
list_add(&df->link, &mmc_test_file_test);
drivers/mmc/core/mmc_test.c
551
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/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
2781
void bond_3ad_handle_link_change(struct slave *slave, char link)
drivers/net/bonding/bond_3ad.c
2803
if (link == BOND_LINK_UP) {
drivers/net/bonding/bond_3ad.c
2818
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
1101
if (!prim || prim->link != BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
1103
if (slave->link == BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
1115
if (!curr || curr->link != BOND_LINK_UP)
drivers/net/bonding/bond_main.c
1126
if (!curr || curr->link != BOND_LINK_UP)
drivers/net/bonding/bond_main.c
1163
if (slave->link == BOND_LINK_UP)
drivers/net/bonding/bond_main.c
1165
if (slave->link == BOND_LINK_BACK && bond_slave_is_up(slave) &&
drivers/net/bonding/bond_main.c
1284
if (new_active->link == BOND_LINK_BACK) {
drivers/net/bonding/bond_main.c
1800
info->link = slave->link;
drivers/net/bonding/bond_main.c
1831
info.link_up = slave->link == BOND_LINK_UP ||
drivers/net/bonding/bond_main.c
1832
slave->link == BOND_LINK_FAIL;
drivers/net/bonding/bond_main.c
2123
new_slave->link = BOND_LINK_DOWN;
drivers/net/bonding/bond_main.c
2133
new_slave->link = BOND_LINK_NOCHANGE;
drivers/net/bonding/bond_main.c
2160
if (new_slave->link != BOND_LINK_DOWN)
drivers/net/bonding/bond_main.c
2163
new_slave->link == BOND_LINK_DOWN ? "DOWN" :
drivers/net/bonding/bond_main.c
2164
(new_slave->link == BOND_LINK_UP ? "UP" : "BACK"));
drivers/net/bonding/bond_main.c
2215
new_slave->link == BOND_LINK_UP)
drivers/net/bonding/bond_main.c
2344
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
drivers/net/bonding/bond_main.c
2683
switch (slave->link) {
drivers/net/bonding/bond_main.c
2768
char link)
drivers/net/bonding/bond_main.c
2772
bond_3ad_handle_link_change(slave, link);
drivers/net/bonding/bond_main.c
2776
bond_alb_handle_link_change(bond, slave, link);
drivers/net/bonding/bond_main.c
2803
slave->link == BOND_LINK_UP)
drivers/net/bonding/bond_main.c
2812
slave->link = BOND_LINK_DOWN;
drivers/net/bonding/bond_main.c
3508
if (slave->link != BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
3571
slave->link = slave->link_new_state;
drivers/net/bonding/bond_main.c
3611
if (slave->link != BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
3615
} else if (slave->link == BOND_LINK_BACK) {
drivers/net/bonding/bond_main.c
3805
if (!bond_slave_is_up(slave) && slave->link == BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
3986
slave->link = BOND_LINK_FAIL;
drivers/net/bonding/bond_main.c
3988
slave->link = BOND_LINK_DOWN;
drivers/net/bonding/bond_main.c
5342
if (!(bond_slave_is_up(slave) && slave->link == BOND_LINK_UP))
drivers/net/bonding/bond_main.c
5387
slave->link == BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
768
if (slave->link == BOND_LINK_UP) {
drivers/net/bonding/bond_main.c
826
const char *bond_slave_link_status(s8 link)
drivers/net/bonding/bond_main.c
828
switch (link) {
drivers/net/bonding/bond_netlink.c
46
if (nla_put_u8(skb, IFLA_BOND_SLAVE_MII_STATUS, slave->link))
drivers/net/bonding/bond_options.c
1004
if (old_active && (new_active->link == BOND_LINK_UP) &&
drivers/net/bonding/bond_procfs.c
204
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/dsa/b53/b53_common.c
1345
static void b53_force_link(struct b53_device *dev, int port, int link)
drivers/net/dsa/b53/b53_common.c
1362
if (link)
drivers/net/dsa/b53/b53_common.c
1528
bool link;
drivers/net/dsa/b53/b53_common.c
1532
link = !!(sts & BIT(port));
drivers/net/dsa/b53/b53_common.c
1533
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
1006
if (link & PORT_AUTO_NEG_COMPLETE)
drivers/net/dsa/microchip/ksz8.c
1008
if (link & PORT_STAT_LINK_GOOD)
drivers/net/dsa/microchip/ksz8.c
1038
ret = ksz_pread8(dev, p, regs[P_REMOTE_STATUS], &link);
drivers/net/dsa/microchip/ksz8.c
1043
if (link & PORT_REMOTE_SYM_PAUSE)
drivers/net/dsa/microchip/ksz8.c
1045
if (link & PORT_REMOTE_100BTX_FD)
drivers/net/dsa/microchip/ksz8.c
1047
if (link & PORT_REMOTE_100BTX)
drivers/net/dsa/microchip/ksz8.c
1049
if (link & PORT_REMOTE_10BT_FD)
drivers/net/dsa/microchip/ksz8.c
1051
if (link & PORT_REMOTE_10BT)
drivers/net/dsa/microchip/ksz8.c
981
u8 ctrl, link, val1, val2;
drivers/net/dsa/microchip/ksz8.c
997
ret = ksz_pread8(dev, p, regs[P_LINK_STATUS], &link);
drivers/net/dsa/microchip/ksz9477.c
231
if (!p->link || p->speed != speed ||
drivers/net/dsa/microchip/ksz9477.c
235
p->link = true;
drivers/net/dsa/microchip/ksz9477.c
247
p->link = false;
drivers/net/dsa/microchip/ksz9477.c
250
p->link = !!(val & BMSR_LSTATUS);
drivers/net/dsa/microchip/ksz_common.h
135
bool link;
drivers/net/dsa/mt7530.c
3140
state->link = (pmsr & PMSR_LINK);
drivers/net/dsa/mt7530.c
3141
state->an_complete = state->link;
drivers/net/dsa/mv88e6xxx/chip.c
442
int link, int speed, int duplex, int pause,
drivers/net/dsa/mv88e6xxx/chip.c
470
if (chip->info->ops->port_set_link(chip, port, link))
drivers/net/dsa/mv88e6xxx/chip.h
564
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
487
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/mxl862xx/mxl862xx-phylink.c
226
state->link = false;
drivers/net/dsa/mxl862xx/mxl862xx-phylink.c
242
state->link = false;
drivers/net/dsa/mxl862xx/mxl862xx-phylink.c
247
state->link = FIELD_GET(MXL862XX_XPCS_ST_LINK, mode) &&
drivers/net/dsa/mxl862xx/mxl862xx-phylink.c
256
bmsr = (state->link ? BMSR_LSTATUS : 0) |
drivers/net/dsa/mxl862xx/mxl862xx-phylink.c
264
if (state->link)
drivers/net/dsa/mxl862xx/mxl862xx-phylink.c
271
if (state->link) {
drivers/net/dsa/mxl862xx/mxl862xx-phylink.c
278
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_main.c
1046
bool link, int speed, int duplex,
drivers/net/dsa/realtek/rtl8365mb_main.c
1062
if (link) {
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/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/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/pcnet32.c
2163
netif_printk(lp, link, KERN_DEBUG, dev,
drivers/net/ethernet/amd/pcnet32.c
2252
netif_info(lp, link, dev, "Using PHY number %d\n", first_phy);
drivers/net/ethernet/amd/pcnet32.c
2814
netif_info(lp, link, dev, "Using PHY number %d\n",
drivers/net/ethernet/amd/pcnet32.c
2868
netif_info(lp, link, dev, "link down\n");
drivers/net/ethernet/amd/pcnet32.c
2894
netif_info(lp, link, dev, "link up\n");
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
3196
if (!pdata->phy.link)
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
3298
if (!pdata->phy.link)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
2200
force_cleanup = !pdata->phy.link;
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
1016
if (pdata->phy.link)
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1030
if (pdata->phy.link) {
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1052
if (pdata->phy_link != pdata->phy.link) {
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1054
pdata->phy_link = pdata->phy.link;
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1093
netif_dbg(pdata, link, pdata->netdev, "fixed PHY configuration\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1154
netif_dbg(pdata, link, pdata->netdev, "AN redriver support\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1156
netif_dbg(pdata, link, pdata->netdev, "AN PHY configuration\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1257
netif_dbg(pdata, link, pdata->netdev, "AN link timeout\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1322
pdata->phy.link = 0;
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1328
pdata->phy.link = pdata->phy_if.phy_impl.link_status(pdata,
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1331
if (pdata->phy.link < 0)
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1339
if (pdata->phy.link) {
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1371
netif_dbg(pdata, link, pdata->netdev, "stopping PHY\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1389
pdata->phy.link = 0;
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1399
netif_dbg(pdata, link, pdata->netdev, "starting PHY\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
1582
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
285
netif_dbg(pdata, link, pdata->netdev, "CL37 AN enabled/restarted\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
293
netif_dbg(pdata, link, pdata->netdev, "CL37 AN disabled\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
324
netif_dbg(pdata, link, pdata->netdev, "CL73 AN enabled/restarted\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
334
netif_dbg(pdata, link, pdata->netdev, "CL73 AN disabled\n");
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
413
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
496
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
695
netif_dbg(pdata, link, pdata->netdev, "CL37 AN %s\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
705
netif_dbg(pdata, link, pdata->netdev,
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
732
netif_dbg(pdata, link, pdata->netdev, "CL37 AN result: %s\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
761
netif_dbg(pdata, link, pdata->netdev, "CL73 AN %s\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
784
netif_dbg(pdata, link, pdata->netdev, "%s successful\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
818
netif_dbg(pdata, link, pdata->netdev, "CL73 AN result: %s\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
904
netif_dbg(pdata, link, pdata->netdev, "CL37 AN (%s) initialized\n",
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
961
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
2236
netif_dbg(pdata, link, pdata->netdev, "10GbE SFI mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2250
netif_dbg(pdata, link, pdata->netdev, "1GbE X mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2264
netif_dbg(pdata, link, pdata->netdev, "1GbE SGMII mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2278
netif_dbg(pdata, link, pdata->netdev, "100MbE SGMII mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2292
netif_dbg(pdata, link, pdata->netdev, "10MbE SGMII mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2311
netif_dbg(pdata, link, pdata->netdev, "10GbE KR mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2337
netif_dbg(pdata, link, pdata->netdev, "2.5GbE KX mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2351
netif_dbg(pdata, link, pdata->netdev, "1GbE KX mode set\n");
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2849
if (!phy_data->phydev->link)
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
2862
if (!pdata->phy.link && !(reg & MDIO_STAT1_LSTATUS)) {
drivers/net/ethernet/amd/xgbe/xgbe.h
591
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
442
} 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
1480
dev->phydev->state = dev->phydev->link ? PHY_RUNNING : PHY_NOLINK;
drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
601
if (intf->old_link != phydev->link) {
drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
603
intf->old_link = phydev->link;
drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
643
if (phydev->link) {
drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
667
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/bnge/bnge_hwrm_lib.c
1112
link_info->phy_link_status = resp->link;
drivers/net/ethernet/broadcom/bnge/bnge_link.c
191
netif_info(bn, link, bn->netdev,
drivers/net/ethernet/broadcom/bnx2.c
1905
u32 link;
drivers/net/ethernet/broadcom/bnx2.c
1908
link = bnx2_shmem_rd(bp, BNX2_RPHY_COPPER_LINK);
drivers/net/ethernet/broadcom/bnx2.c
1910
link = bnx2_shmem_rd(bp, BNX2_RPHY_SERDES_LINK);
drivers/net/ethernet/broadcom/bnx2.c
1912
if (link & BNX2_NETLINK_SET_LINK_ENABLE_AUTONEG) {
drivers/net/ethernet/broadcom/bnx2.c
1916
if (link & BNX2_NETLINK_SET_LINK_SPEED_10HALF)
drivers/net/ethernet/broadcom/bnx2.c
1918
if (link & BNX2_NETLINK_SET_LINK_SPEED_10FULL)
drivers/net/ethernet/broadcom/bnx2.c
1920
if (link & BNX2_NETLINK_SET_LINK_SPEED_100HALF)
drivers/net/ethernet/broadcom/bnx2.c
1922
if (link & BNX2_NETLINK_SET_LINK_SPEED_100FULL)
drivers/net/ethernet/broadcom/bnx2.c
1924
if (link & BNX2_NETLINK_SET_LINK_SPEED_1GFULL)
drivers/net/ethernet/broadcom/bnx2.c
1926
if (link & BNX2_NETLINK_SET_LINK_SPEED_2G5FULL)
drivers/net/ethernet/broadcom/bnx2.c
1932
if (link & BNX2_NETLINK_SET_LINK_SPEED_10) {
drivers/net/ethernet/broadcom/bnx2.c
1934
if (link & BNX2_NETLINK_SET_LINK_SPEED_10HALF)
drivers/net/ethernet/broadcom/bnx2.c
1937
if (link & BNX2_NETLINK_SET_LINK_SPEED_100) {
drivers/net/ethernet/broadcom/bnx2.c
1939
if (link & BNX2_NETLINK_SET_LINK_SPEED_100HALF)
drivers/net/ethernet/broadcom/bnx2.c
1942
if (link & BNX2_NETLINK_SET_LINK_SPEED_1GFULL)
drivers/net/ethernet/broadcom/bnx2.c
1944
if (link & BNX2_NETLINK_SET_LINK_SPEED_2G5FULL)
drivers/net/ethernet/broadcom/bnx2.c
4728
u32 link;
drivers/net/ethernet/broadcom/bnx2.c
4732
link = bnx2_shmem_rd(bp, BNX2_LINK_STATUS);
drivers/net/ethernet/broadcom/bnx2.c
4733
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(®_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(®_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(®_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
12341
link_info->phy_link_status = resp->link;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
12528
netif_info(bp, link, bp->dev, "Forcing FW speed2: %d\n",
drivers/net/ethernet/broadcom/bnxt/bnxt.h
1519
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
1019
state->link = (macb_readl(bp, NSR) & MACB_BIT(NSR_LINK)) != 0;
drivers/net/ethernet/cadence/macb_main.c
547
state->link = !!(val & GEM_BIT(USX_BLOCK_LOCK));
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
1863
lio->linfo.link.s.link_up = 0;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2314
(!lio->linfo.link.s.link_up) ||
drivers/net/ethernet/cavium/liquidio/lio_main.c
2318
lio->linfo.link.s.link_up);
drivers/net/ethernet/cavium/liquidio/lio_main.c
2983
ivi->max_tx_rate = lio->linfo.link.s.speed;
drivers/net/ethernet/cavium/liquidio/lio_main.c
3551
lio->linfo.link.u64 = resp->cfg_info.linfo.link.u64;
drivers/net/ethernet/cavium/liquidio/lio_main.c
489
if (linfo->link.s.link_up) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
490
netif_info(lio, link, lio->netdev, "%d Mbps %s Duplex UP\n",
drivers/net/ethernet/cavium/liquidio/lio_main.c
491
linfo->link.s.speed,
drivers/net/ethernet/cavium/liquidio/lio_main.c
492
(linfo->link.s.duplex) ? "Full" : "Half");
drivers/net/ethernet/cavium/liquidio/lio_main.c
494
netif_info(lio, link, lio->netdev, "Link Down\n");
drivers/net/ethernet/cavium/liquidio/lio_main.c
513
dev_set_mtu(lio->netdev, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_main.c
562
int changed = (lio->linfo.link.u64 != ls->u64);
drivers/net/ethernet/cavium/liquidio/lio_main.c
563
int current_max_mtu = lio->linfo.link.s.mtu;
drivers/net/ethernet/cavium/liquidio/lio_main.c
567
__func__, lio->linfo.link.u64, ls->u64);
drivers/net/ethernet/cavium/liquidio/lio_main.c
568
lio->linfo.link.u64 = ls->u64;
drivers/net/ethernet/cavium/liquidio/lio_main.c
574
if (lio->linfo.link.s.link_up) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
583
if (lio->linfo.link.s.mtu != current_max_mtu) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
585
current_max_mtu, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_main.c
586
netdev->max_mtu = lio->linfo.link.s.mtu;
drivers/net/ethernet/cavium/liquidio/lio_main.c
588
if (lio->linfo.link.s.mtu < netdev->mtu) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
591
netdev->mtu, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1423
(!lio->linfo.link.s.link_up) || (skb->len <= 0)) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1425
lio->linfo.link.s.link_up);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
2065
lio->linfo.link.u64 = resp->cfg_info.linfo.link.u64;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
266
if (linfo->link.s.link_up) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
267
netif_info(lio, link, lio->netdev, "%d Mbps %s Duplex UP\n",
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
268
linfo->link.s.speed,
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
269
(linfo->link.s.duplex) ? "Full" : "Half");
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
271
netif_info(lio, link, lio->netdev, "Link Down\n");
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
290
dev_set_mtu(lio->netdev, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
339
int current_max_mtu = lio->linfo.link.s.mtu;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
342
if ((lio->intf_open) && (lio->linfo.link.u64 != ls->u64)) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
343
lio->linfo.link.u64 = ls->u64;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
348
if (lio->linfo.link.s.link_up) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
356
if (lio->linfo.link.s.mtu != current_max_mtu) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
359
current_max_mtu, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
360
netdev->max_mtu = lio->linfo.link.s.mtu;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
363
if (lio->linfo.link.s.mtu < netdev->mtu) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
366
netdev->mtu, lio->linfo.link.s.mtu);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
965
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
305
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
1682
netif_info(de, link, dev, "link nway restart, status %x,%x\n",
drivers/net/ethernet/dec/tulip/de2104x.c
900
netif_info(de, link, de->dev, "link up, media %s\n",
drivers/net/ethernet/dec/tulip/de2104x.c
909
netif_info(de, link, de->dev, "link down\n");
drivers/net/ethernet/dec/tulip/de2104x.c
938
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
538
void enetc_mm_link_state_update(struct enetc_ndev_priv *priv, bool link);
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1504
void enetc_mm_link_state_update(struct enetc_ndev_priv *priv, bool link)
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1513
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
1489
if (phydev->link) {
drivers/net/ethernet/freescale/gianfar.c
1526
netif_warn(priv, link, priv->ndev,
drivers/net/ethernet/freescale/gianfar.c
1582
if (unlikely(phydev->link != priv->oldlink ||
drivers/net/ethernet/freescale/gianfar.c
1583
(phydev->link && (phydev->duplex != priv->oldduplex ||
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
2899
mac->link = 0;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2988
if (phydev && (phydev->state != PHY_RUNNING || !phydev->link))
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3035
if (state != hdev->hw.mac.link) {
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3036
hdev->hw.mac.link = state;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3449
return hdev->hw.mac.link;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
5278
if (phydev->link == link_ret)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
5660
hdev->hw.mac.link = 0;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
8590
if (!phydev->link)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
299
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
3218
return hdev->hw.mac.link;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
423
if (link_state != hdev->hw.mac.link) {
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
424
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
2524
return ndev->phydev->link;
drivers/net/ethernet/ibm/emac/core.c
571
int tx_size, rx_size, link = netif_carrier_ok(dev->ndev);
drivers/net/ethernet/ibm/emac/core.c
576
if (!link) {
drivers/net/ethernet/ibm/emac/core.c
587
link, dev->phy.duplex, dev->phy.pause, dev->phy.asym_pause);
drivers/net/ethernet/ibm/emac/core.c
594
if (!link)
drivers/net/ethernet/intel/e100.c
1893
cb->link = cpu_to_le32(nic->cbs_dma_addr +
drivers/net/ethernet/intel/e100.c
1941
put_unaligned_le32(rx->dma_addr, &prev_rfd->link);
drivers/net/ethernet/intel/e100.c
412
__le32 link;
drivers/net/ethernet/intel/e100.c
479
__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
1444
int link;
drivers/net/ethernet/intel/e1000e/ethtool.c
1459
link = (er32(STATUS) & E1000_STATUS_LU);
drivers/net/ethernet/intel/e1000e/ethtool.c
1461
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
1683
ret_val = e1000_k1_workaround_lpt_lp(hw, link);
drivers/net/ethernet/intel/e1000e/ich8lan.c
1691
ret_val = e1000_platform_pm_pch_lpt(hw, link);
drivers/net/ethernet/intel/e1000e/ich8lan.c
1715
if (!link)
drivers/net/ethernet/intel/e1000e/ich8lan.c
2369
static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link)
drivers/net/ethernet/intel/e1000e/ich8lan.c
2384
if (link) {
drivers/net/ethernet/intel/e1000e/ich8lan.c
5348
bool link;
drivers/net/ethernet/intel/e1000e/ich8lan.c
5357
ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link);
drivers/net/ethernet/intel/e1000e/ich8lan.c
5358
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
5231
u32 link, tctl, pcim_state;
drivers/net/ethernet/intel/e1000e/netdev.c
5236
link = e1000e_has_link(adapter);
drivers/net/ethernet/intel/e1000e/netdev.c
5237
if ((netif_carrier_ok(netdev)) && link) {
drivers/net/ethernet/intel/e1000e/netdev.c
5249
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
3260
enum ice_ptp_link_spd link;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3280
link = ICE_PTP_LNK_SPD_25G_RS;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3283
link = ICE_PTP_LNK_SPD_50G_RS;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3286
link = ICE_PTP_LNK_SPD_100G_RS;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3294
link = ICE_PTP_LNK_SPD_1G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3297
link = ICE_PTP_LNK_SPD_10G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3300
link = ICE_PTP_LNK_SPD_25G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3303
link = ICE_PTP_LNK_SPD_40G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3306
link = ICE_PTP_LNK_SPD_50G;
drivers/net/ethernet/intel/ice/ice_ptp_hw.c
3314
*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
5570
u32 link;
drivers/net/ethernet/intel/igb/igb_main.c
5575
link = igb_has_link(adapter);
drivers/net/ethernet/intel/igb/igb_main.c
5581
link = false;
drivers/net/ethernet/intel/igb/igb_main.c
5589
link = 0;
drivers/net/ethernet/intel/igb/igb_main.c
5592
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
1042
memcpy(hw->link.link_info.module_type, &pcaps->module_type,
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1043
sizeof(hw->link.link_info.module_type));
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1210
hw_link_info = &hw->link.link_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1292
li = &hw->link.link_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1333
if (hw->link.get_link_info) {
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1340
*link_up = hw->link.link_info.link_info & IXGBE_ACI_LINK_UP;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1358
struct ixgbe_link_status *link)
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1372
li_old = &hw->link.link_info_old;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1373
li = &hw->link.link_info;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1420
if (link)
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1421
*link = *li;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1424
hw->link.get_link_info = false;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1557
if (!(hw->link.link_info.link_info & IXGBE_ACI_LINK_UP) &&
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1558
(hw->link.link_info.link_info & IXGBE_ACI_MEDIA_AVAILABLE)) {
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1570
hw->link.link_info.phy_type_high =
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1572
hw->link.link_info.phy_type_low = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1576
hw->link.link_info.phy_type_low =
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1578
hw->link.link_info.phy_type_high = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1631
hw->link.get_link_info = true;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1642
hw->link.get_link_info = true;
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1657
switch (hw->link.link_info.link_speed) {
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1811
if (!(hw->link.link_info.link_info & IXGBE_ACI_LINK_UP))
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
1815
if (!(hw->link.link_info.an_info & IXGBE_ACI_AN_COMPLETED))
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
2068
(hw->link.link_info.link_info & IXGBE_ACI_MEDIA_AVAILABLE);
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
2076
module_type = hw->link.link_info.module_type[IXGBE_ACI_MOD_TYPE_IDENT];
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
2117
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_ethtool.c
3636
struct ixgbe_link_status link;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
3643
err = ixgbe_aci_get_link_info(hw, true, &link);
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
3652
kedata->eee_active = link.eee_status & IXGBE_ACI_LINK_EEE_ACTIVE;
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
3653
kedata->eee_enabled = link.eee_status & IXGBE_ACI_LINK_EEE_ENABLED;
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
10357
struct ixgbe_jump_table *link = adapter->jump_tables[i];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
10359
if (link && (test_bit(loc - 1, link->child_loc_map))) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
11641
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
5557
int link, tc, kb, marker;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5561
tc = link = dev->mtu + ETH_HLEN + ETH_FCS_LEN + IXGBE_ETH_FRAMING;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5577
dv_id = IXGBE_DV_X540(link, tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5580
dv_id = IXGBE_DV(link, tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6072
ixgbe_check_link_cfg_err(adapter, hw->link.link_info.link_cfg_err);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6074
if (hw->link.link_info.link_info & IXGBE_ACI_MEDIA_AVAILABLE) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
7473
adapter->hw.link.link_info.link_cfg_err);
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
3732
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
6266
state->link = !!(val & MVPP22_XLG_STATUS_LINK_UP);
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
6322
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
466
int link, nix_link = 0;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
476
for (link = 0; link < hw->cgx_links; link++, nix_link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
486
for (link = 0; link < hw->lbk_links; link++, nix_link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
496
for (link = 0; link < hw->sdp_links; link++, nix_link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
506
for (link = 0; link < hw->cpt_links; link++, nix_link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1761
int blkaddr, link, link_level;
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1850
for (link = 0; link < hw->cgx_links; link++)
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1853
schq, link,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1855
NIX_AF_TL3_TL2X_LINKX_CFG(schq, link)));
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1888
for (link = 0; link < hw->cgx_links; link++)
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1891
schq, link, rvu_read64(rvu, blkaddr,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
1892
NIX_AF_TL3_TL2X_LINKX_CFG(schq, link)));
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2036
int link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2051
for (link = 0; link < (hw->cgx_links + hw->lbk_links); link++)
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2053
NIX_AF_TL3_TL2X_LINKX_CFG(schq, link), 0x00);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2108
int link, int *start, int *end)
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2115
*start = hw->cap.nix_txsch_per_cgx_lmac * link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2118
*start = hw->cap.nix_txsch_per_cgx_lmac * link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2134
int link, start, end;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2142
link = nix_get_tx_link(rvu, pcifunc);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2153
nix_get_txschq_range(rvu, pcifunc, link, &start, &end);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2266
int link, blkaddr, rc = 0;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2304
link = nix_get_tx_link(rvu, pcifunc);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2307
start = link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2308
end = link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2310
nix_get_txschq_range(rvu, pcifunc, link, &start, &end);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2472
u8 link, link_level;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2505
link = smq_flush_ctx->smq_tree_ctx[NIX_TXSCH_LVL_TL1].schq;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2515
NIX_AF_TL3_TL2X_LINKX_CFG(tl2_tl3_link_schq, link));
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2521
NIX_AF_TL3_TL2X_LINKX_CFG(tl2_tl3_link_schq, link), cfg);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2542
NIX_AF_TL3_TL2X_LINKX_CFG(tl2_tl3_link_schq, link));
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
2545
NIX_AF_TL3_TL2X_LINKX_CFG(tl2_tl3_link_schq, link), cfg);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4650
int blkaddr, link = -1;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4680
link = hw->cgx_links + hw->lbk_links;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4688
link = (cgx * hw->lmac_per_cgx) + lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4692
link = hw->cgx_links + pfvf->lbkid;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4694
link = hw->cgx_links + 0;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4697
if (link < 0)
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4703
cfg = rvu_read64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link));
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4707
rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link), cfg);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4758
int cgx, lmac_cnt, slink, link;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4777
for (link = 0; link < hw->cgx_links; link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4778
rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link),
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4782
for (link = hw->cgx_links; link < hw->lbk_links; link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4783
rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link),
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4787
link = hw->cgx_links + hw->lbk_links;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4788
rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link),
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4823
link = iter + slink;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4824
nix_hw->tx_credits[link] = tx_credits;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4826
NIX_AF_TX_LINKX_NORM_CREDIT(link), cfg);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4832
for (link = slink; link < (slink + hw->lbk_links); link++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4834
nix_hw->tx_credits[link] = tx_credits;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4838
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
1027
mlxsw_sp_port->link.autoneg = autoneg;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1453
struct mlxsw_sp1_port_link_mode link;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1465
link = mlxsw_sp1_port_link_mode[i];
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1467
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
1979
struct mlxsw_sp2_port_link_mode link;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1991
link = mlxsw_sp2_port_link_mode[i];
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
1993
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
974
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
628
bool link;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
643
link = fbnic_mac_get_link_status(fbd, aui, fec);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
644
link = fbnic_pmd_update_state(fbd, link);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
651
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, ¶ms, &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, ¶ms, &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, ¶ms, &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
1456
if (phydev->link) {
drivers/net/ethernet/renesas/ravb_main.c
1468
if (!priv->link) {
drivers/net/ethernet/renesas/ravb_main.c
1471
priv->link = phydev->link;
drivers/net/ethernet/renesas/ravb_main.c
1473
} else if (priv->link) {
drivers/net/ethernet/renesas/ravb_main.c
1475
priv->link = 0;
drivers/net/ethernet/renesas/ravb_main.c
1482
if (priv->no_avb_link && phydev->link)
drivers/net/ethernet/renesas/ravb_main.c
1502
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
850
if (phydev->link) {
drivers/net/ethernet/renesas/rtsn.c
856
if (!priv->link) {
drivers/net/ethernet/renesas/rtsn.c
858
priv->link = phydev->link;
drivers/net/ethernet/renesas/rtsn.c
860
} else if (priv->link) {
drivers/net/ethernet/renesas/rtsn.c
862
priv->link = 0;
drivers/net/ethernet/renesas/rtsn.c
906
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/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
1533
if (phydev->link) {
drivers/net/ethernet/stmicro/stmmac/common.h
626
struct mac_link link;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
353
mac->link.caps = MAC_10 | MAC_100 | MAC_1000;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
356
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
359
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
363
mac->link.duplex = GMAC_CONTROL_DM;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
364
mac->link.speed10 = GMAC_CONTROL_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
365
mac->link.speed100 = GMAC_CONTROL_PS | GMAC_CONTROL_FES;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
366
mac->link.speed1000 = 0;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
367
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
338
static void dwmac1000_set_eee_pls(struct mac_device_info *hw, int link)
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
345
if (link)
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
495
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
497
mac->link.duplex = GMAC_CONTROL_DM;
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
498
mac->link.speed10 = GMAC_CONTROL_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
499
mac->link.speed100 = GMAC_CONTROL_PS | GMAC_CONTROL_FES;
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
500
mac->link.speed1000 = 0;
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
501
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
1029
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1031
mac->link.duplex = GMAC_CONFIG_DM;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1032
mac->link.speed10 = GMAC_CONFIG_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1033
mac->link.speed100 = GMAC_CONFIG_FES | GMAC_CONFIG_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1034
mac->link.speed1000 = 0;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1035
mac->link.speed2500 = GMAC_CONFIG_FES;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
1036
mac->link.speed_mask = GMAC_CONFIG_FES | GMAC_CONFIG_PS;
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
428
static void dwmac4_set_eee_pls(struct mac_device_info *hw, int link)
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
435
if (link)
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
79
priv->hw->link.caps &= ~(MAC_10HD | MAC_100HD | MAC_1000HD);
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
81
priv->hw->link.caps |= (MAC_10HD | MAC_100HD | MAC_1000HD);
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1541
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1544
mac->link.duplex = 0;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1545
mac->link.speed10 = XGMAC_CONFIG_SS_10_MII;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1546
mac->link.speed100 = XGMAC_CONFIG_SS_100_MII;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1547
mac->link.speed1000 = XGMAC_CONFIG_SS_1000_GMII;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1548
mac->link.speed2500 = XGMAC_CONFIG_SS_2500_GMII;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1549
mac->link.xgmii.speed2500 = XGMAC_CONFIG_SS_2500;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1550
mac->link.xgmii.speed5000 = XGMAC_CONFIG_SS_5000;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1551
mac->link.xgmii.speed10000 = XGMAC_CONFIG_SS_10000;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1552
mac->link.speed_mask = XGMAC_CONFIG_SS_MASK;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1579
mac->link.caps = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1584
mac->link.duplex = 0;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1585
mac->link.speed1000 = XLGMAC_CONFIG_SS_1000;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1586
mac->link.speed2500 = XLGMAC_CONFIG_SS_2500;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1587
mac->link.xgmii.speed10000 = XLGMAC_CONFIG_SS_10G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1588
mac->link.xlgmii.speed25000 = XLGMAC_CONFIG_SS_25G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1589
mac->link.xlgmii.speed40000 = XLGMAC_CONFIG_SS_40G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1590
mac->link.xlgmii.speed50000 = XLGMAC_CONFIG_SS_50G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1591
mac->link.xlgmii.speed100000 = XLGMAC_CONFIG_SS_100G;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
1592
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
372
void (*set_eee_pls)(struct mac_device_info *hw, int link);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1008
priv->hw->link.caps &= ~(MAC_1000HD | MAC_100HD | MAC_10HD);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1010
config->mac_capabilities = priv->hw->link.caps;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1084
ctrl = old_ctrl & ~priv->hw->link.speed_mask;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1088
ctrl |= priv->hw->link.xlgmii.speed100000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1091
ctrl |= priv->hw->link.xlgmii.speed50000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1094
ctrl |= priv->hw->link.xlgmii.speed40000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1097
ctrl |= priv->hw->link.xlgmii.speed25000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1100
ctrl |= priv->hw->link.xgmii.speed10000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1103
ctrl |= priv->hw->link.xgmii.speed5000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1107
ctrl |= priv->hw->link.xgmii.speed2500;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1109
ctrl |= priv->hw->link.speed2500;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1112
ctrl |= priv->hw->link.speed1000;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1115
ctrl |= priv->hw->link.speed100;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1118
ctrl |= priv->hw->link.speed10;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1132
ctrl &= ~priv->hw->link.duplex;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
1134
ctrl |= priv->hw->link.duplex;
drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
109
state->link = false;
drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
89
state->link = status & BMSR_LSTATUS &&
drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
92
if (state->link && neg_mode == PHYLINK_PCS_NEG_INBAND_ENABLED) {
drivers/net/ethernet/sun/cassini.c
1045
netif_info(cp, link, cp->dev, "PCS link down\n");
drivers/net/ethernet/sun/cassini.c
1544
netif_info(cp, link, cp->dev, "Autoneg failed again, keeping forced mode\n");
drivers/net/ethernet/sun/cassini.c
1614
netif_info(cp, link, cp->dev,
drivers/net/ethernet/sun/cassini.c
1643
netif_info(cp, link, cp->dev, "Link down\n");
drivers/net/ethernet/sun/cassini.c
3564
netif_info(cp, link, cp->dev, "Link up at %d Mbps, %s-duplex\n",
drivers/net/ethernet/sun/cassini.c
997
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
1344
netif_info(gp, link, gp->dev, "Link is up at %d Mbps, %s-duplex\n",
drivers/net/ethernet/sun/sungem.c
1434
netif_info(gp, link, gp->dev,
drivers/net/ethernet/sun/sungem.c
1448
netif_info(gp, link, gp->dev, "switching to forced 100bt\n");
drivers/net/ethernet/sun/sungem.c
1464
netif_info(gp, link, gp->dev,
drivers/net/ethernet/sun/sungem.c
1527
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
329
if (cpsw->slaves[i].phy && cpsw->slaves[i].phy->link)
drivers/net/ethernet/ti/cpsw_priv.c
964
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
1525
priv->link = 0;
drivers/net/ethernet/ti/davinci_emac.c
1535
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
288
emac->link = 0;
drivers/net/ethernet/ti/icssg/icssg_prueth.c
348
if (phydev->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth.c
358
if (!emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth.c
360
emac->link = 1;
drivers/net/ethernet/ti/icssg/icssg_prueth.c
362
} else if (emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth.c
364
emac->link = 0;
drivers/net/ethernet/ti/icssg/icssg_prueth.c
379
if (emac->link) {
drivers/net/ethernet/ti/icssg/icssg_prueth.c
397
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
1317
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
260
wx->link = false;
drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
392
if (wx->link) {
drivers/net/ethernet/wangxun/ngbe/ngbe_mdio.c
192
wx->link = 0;
drivers/net/ethernet/wangxun/txgbe/txgbe_aml.c
388
state->link = speed != SPEED_UNKNOWN;
drivers/net/ethernet/wangxun/txgbe/txgbe_aml.c
390
state->duplex = state->link ? DUPLEX_FULL : DUPLEX_UNKNOWN;
drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
561
wx->link = 0;
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
1025
ret = netkit_link_prog_attach(&nkl->link,
drivers/net/netkit.c
1053
if (tuple.link)
drivers/net/netkit.c
1054
netkit_link(tuple.link)->dev = NULL;
drivers/net/netkit.c
46
struct bpf_link link;
drivers/net/netkit.c
837
static struct netkit_link *netkit_link(const struct bpf_link *link)
drivers/net/netkit.c
839
return container_of(link, struct netkit_link, link);
drivers/net/netkit.c
842
static int netkit_link_prog_attach(struct bpf_link *link, u32 flags,
drivers/net/netkit.c
845
struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
852
ret = bpf_mprog_attach(entry, &entry_new, link->prog, link, NULL, flags,
drivers/net/netkit.c
864
static void netkit_link_release(struct bpf_link *link)
drivers/net/netkit.c
866
struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
880
ret = bpf_mprog_detach(entry, &entry_new, link->prog, link, 0, 0, 0);
drivers/net/netkit.c
894
static int netkit_link_update(struct bpf_link *link, struct bpf_prog *nprog,
drivers/net/netkit.c
897
struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
908
if (oprog && link->prog != oprog) {
drivers/net/netkit.c
912
oprog = link->prog;
drivers/net/netkit.c
922
ret = bpf_mprog_attach(entry, &entry_new, nprog, link, oprog,
drivers/net/netkit.c
924
link->prog->aux->id, 0);
drivers/net/netkit.c
927
oprog = xchg(&link->prog, nprog);
drivers/net/netkit.c
936
static void netkit_link_dealloc(struct bpf_link *link)
drivers/net/netkit.c
938
kfree(netkit_link(link));
drivers/net/netkit.c
941
static void netkit_link_fdinfo(const struct bpf_link *link, struct seq_file *seq)
drivers/net/netkit.c
943
const struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
953
link->attach_type,
drivers/net/netkit.c
954
link->attach_type == BPF_NETKIT_PRIMARY ? "primary" : "peer");
drivers/net/netkit.c
957
static int netkit_link_fill_info(const struct bpf_link *link,
drivers/net/netkit.c
960
const struct netkit_link *nkl = netkit_link(link);
drivers/net/netkit.c
969
info->netkit.attach_type = link->attach_type;
drivers/net/netkit.c
973
static int netkit_link_detach(struct bpf_link *link)
drivers/net/netkit.c
975
netkit_link_release(link);
drivers/net/netkit.c
994
bpf_link_init(&nkl->link, BPF_LINK_TYPE_NETKIT,
drivers/net/netkit.c
997
return bpf_link_prime(&nkl->link, link_primer);
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
1078
state->link = true;
drivers/net/pcs/pcs-xpcs.c
1112
state->link = false;
drivers/net/pcs/pcs-xpcs.c
1146
state->link = 0;
drivers/net/pcs/pcs-xpcs.c
1150
state->link = !!(ret & BMSR_LSTATUS);
drivers/net/pcs/pcs-xpcs.c
1151
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_an8801.c
1010
if (!phydev->link) {
drivers/net/phy/air_en8811h.c
1415
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
314
phydev->link = 0;
drivers/net/phy/bcm84881.c
328
phydev->link = !!(val & MDIO_STAT1_LSTATUS) &&
drivers/net/phy/bcm84881.c
331
phydev->link = false;
drivers/net/phy/bcm84881.c
340
if (!phydev->link)
drivers/net/phy/bcm84881.c
363
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
1386
if (!phy_polling_mode(phydev) || !phydev->link) {
drivers/net/phy/broadcom.c
1399
phydev->link = status & LRESR_LSTATUS ? 1 : 0;
drivers/net/phy/broadcom.c
1406
phydev->link = 0;
drivers/net/phy/broadcom.c
1416
int err, old_link = phydev->link;
drivers/net/phy/broadcom.c
1425
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
181
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
1696
phydev->link = 1;
drivers/net/phy/micrel.c
1744
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
1366
int link;
drivers/net/phy/motorcomm.c
1394
link = !!(status & YTPHY_SSR_LINK);
drivers/net/phy/motorcomm.c
1411
if (link && fiber_latch_val != fiber_curr_val) {
drivers/net/phy/motorcomm.c
1412
link = 0;
drivers/net/phy/motorcomm.c
1426
if (link) {
drivers/net/phy/motorcomm.c
1432
return phy_restore_page(phydev, old_page, link);
drivers/net/phy/motorcomm.c
1449
int link;
drivers/net/phy/motorcomm.c
1453
link = yt8521_read_status_paged(phydev, priv->reg_page);
drivers/net/phy/motorcomm.c
1454
if (link < 0)
drivers/net/phy/motorcomm.c
1455
return link;
drivers/net/phy/motorcomm.c
1473
link = link_utp || link_fiber;
drivers/net/phy/motorcomm.c
1476
if (link) {
drivers/net/phy/motorcomm.c
1477
if (phydev->link == 0) {
drivers/net/phy/motorcomm.c
1501
phydev->link = 1;
drivers/net/phy/motorcomm.c
1503
if (phydev->link == 1) {
drivers/net/phy/motorcomm.c
1517
phydev->link = 0;
drivers/net/phy/motorcomm.c
2338
int link;
drivers/net/phy/motorcomm.c
2348
link = !!(ret & YTPHY_SSR_LINK);
drivers/net/phy/motorcomm.c
2349
ret = link;
drivers/net/phy/motorcomm.c
2366
int link;
drivers/net/phy/motorcomm.c
2369
link = yt8521_aneg_done_paged(phydev, priv->reg_page);
drivers/net/phy/motorcomm.c
2382
link = link_fiber || link_utp;
drivers/net/phy/motorcomm.c
2387
return link;
drivers/net/phy/motorcomm.c
2906
if (!phydev->link)
drivers/net/phy/motorcomm.c
2932
int link;
drivers/net/phy/motorcomm.c
2958
link = val & YTPHY_SSR_LINK;
drivers/net/phy/motorcomm.c
2959
if (link)
drivers/net/phy/motorcomm.c
2962
if (link) {
drivers/net/phy/motorcomm.c
2963
if (phydev->link == 0)
drivers/net/phy/motorcomm.c
2967
phydev->link = 1;
drivers/net/phy/motorcomm.c
2969
if (phydev->link == 1)
drivers/net/phy/motorcomm.c
2973
phydev->link = 0;
drivers/net/phy/mscc/mscc_ptp.c
252
if (!phydev->link)
drivers/net/phy/mxl-gpy.c
650
phydev->link = (ret & PHY_MIISTAT_LS) ? 1 : 0;
drivers/net/phy/mxl-gpy.c
667
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
1580
if (phydev->link) {
drivers/net/phy/phy.c
1594
if (phydev->link) {
drivers/net/phy/phy.c
1595
phydev->link = 0;
drivers/net/phy/phy.c
1787
if (phydev->link && phydev->state == PHY_RUNNING) {
drivers/net/phy/phy.c
1791
phydev->link = false;
drivers/net/phy/phy.c
1824
phydev->link = true;
drivers/net/phy/phy.c
1973
if (!phydev->link)
drivers/net/phy/phy.c
1981
phydev->link = false;
drivers/net/phy/phy.c
1984
phydev->link = true;
drivers/net/phy/phy_device.c
2241
} else if (phydev->link) {
drivers/net/phy/phy_device.c
2448
if (!phy_polling_mode(phydev) || !phydev->link) {
drivers/net/phy/phy_device.c
2461
phydev->link = status & BMSR_LSTATUS ? 1 : 0;
drivers/net/phy/phy_device.c
2468
phydev->link = 0;
drivers/net/phy/phy_device.c
2562
int err, old_link = phydev->link;
drivers/net/phy/phy_device.c
2570
if (phydev->autoneg == AUTONEG_ENABLE && old_link && phydev->link)
drivers/net/phy/phy_device.c
2615
int lpa, err, old_link = phydev->link;
drivers/net/phy/phy_device.c
2623
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
1418
state->link = 1;
drivers/net/phy/phylink.c
1435
state->link = 0;
drivers/net/phy/phylink.c
1448
state->link = !!gpiod_get_value_cansleep(pl->link_gpio);
drivers/net/phy/phylink.c
1478
link_state.link = false;
drivers/net/phy/phylink.c
1633
link_state.link = false;
drivers/net/phy/phylink.c
1635
link_state.link = false;
drivers/net/phy/phylink.c
1639
mac_config = link_state.link;
drivers/net/phy/phylink.c
1642
mac_config = link_state.link;
drivers/net/phy/phylink.c
1651
if (!link_state.link) {
drivers/net/phy/phylink.c
1662
link_state.link &= pl->phy_state.link;
drivers/net/phy/phylink.c
1665
if (phy && pl->phy_state.link) {
drivers/net/phy/phylink.c
1671
link_state.link = false;
drivers/net/phy/phylink.c
1715
link_state.link = false;
drivers/net/phy/phylink.c
1717
if (link_state.link != cur_link_state) {
drivers/net/phy/phylink.c
1718
pl->old_link_state = link_state.link;
drivers/net/phy/phylink.c
1719
if (!link_state.link)
drivers/net/phy/phylink.c
1724
if (!link_state.link && retrigger) {
drivers/net/phy/phylink.c
1822
pl->link_config.link = 1;
drivers/net/phy/phylink.c
1993
pl->phy_state.link = up;
drivers/net/phy/phylink.c
3368
fs.link = state->link;
drivers/net/phy/phylink.c
4001
state->link = false;
drivers/net/phy/phylink.c
4026
state->link = false;
drivers/net/phy/phylink.c
4036
state->link = false;
drivers/net/phy/phylink.c
4051
state->link = false;
drivers/net/phy/phylink.c
4092
state->link = false;
drivers/net/phy/phylink.c
4128
state->link = false;
drivers/net/phy/phylink.c
4156
state->link = !!(bmsr & BMSR_LSTATUS);
drivers/net/phy/phylink.c
4160
if (!state->link)
drivers/net/phy/phylink.c
4196
state->link = false;
drivers/net/phy/phylink.c
4226
state->link = false;
drivers/net/phy/phylink.c
4350
state->link = false;
drivers/net/phy/phylink.c
4354
state->link = !!(stat & MDIO_STAT1_LSTATUS);
drivers/net/phy/phylink.c
4355
if (!state->link)
drivers/net/phy/phylink.c
768
pl->link_config.link = 1;
drivers/net/phy/qcom/at803x.c
1072
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
1324
if (!phydev->link)
drivers/net/phy/realtek/realtek_main.c
1818
if (!phydev->link)
drivers/net/phy/realtek/realtek_main.c
1927
if (!phydev->link) {
drivers/net/phy/realtek/realtek_main.c
2671
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
1667
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
3334
netif_notice(tp, link, netdev, "Promiscuous mode enabled\n");
drivers/net/usb/r8152.c
6997
netif_info(tp, link, netdev, "carrier on\n");
drivers/net/usb/r8152.c
7010
netif_info(tp, link, netdev, "carrier off\n");
drivers/net/usb/r8152.c
8661
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
1331
netif_dbg(dev, link, dev->net,
drivers/net/usb/usbnet.c
1633
netif_dbg(dev, link, dev->net,
drivers/net/usb/usbnet.c
2049
void usbnet_link_change(struct usbnet *dev, bool link, bool need_reset)
drivers/net/usb/usbnet.c
2052
if (link && !need_reset) {
drivers/net/usb/usbnet.c
2059
if (need_reset && link)
drivers/net/usb/usbnet.c
641
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
390
struct ath12k_link_vif __rcu *link[ATH12K_NUM_MAX_LINKS];
drivers/net/wireless/ath/ath12k/core.h
529
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
723
ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/dp_rx.c
755
ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
10173
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
10631
ahsta->link[arvif->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
10722
ahvif->link[scan_link_id]);
drivers/net/wireless/ath/ath12k/mac.c
10941
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11264
arvif_p = wiphy_dereference(ahvif->ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11462
arvif = wiphy_dereference(ahvif->ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11497
arvif = wiphy_dereference(ahvif->ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11601
ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
1203
arsta = rcu_dereference(ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
12342
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
12659
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
13184
ahsta->link[arvif->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
13207
ahsta->link[arvif->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
13260
link_sta = rcu_dereference(peer->sta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
13783
arsta = wiphy_dereference(hw->wiphy, ahsta->link[link_sta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
3565
arsta_p = rcu_dereference(ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
3566
arvif = rcu_dereference(ahsta->ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
3884
ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4174
rcu_assign_pointer(ahvif->link[arvif->link_id], arvif);
drivers/net/wireless/ath/ath12k/mac.c
4226
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4256
rcu_assign_pointer(ahvif->link[arvif->link_id], NULL);
drivers/net/wireless/ath/ath12k/mac.c
4286
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4299
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4405
ahvif->link[ahsta->assoc_link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4420
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5091
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5435
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5504
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5750
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5786
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6184
ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6186
ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6217
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6464
if (WARN_ON(!rcu_access_pointer(sta->link[link_id])))
drivers/net/wireless/ath/ath12k/mac.c
647
tx_ahvif->link[tx_bss_conf->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6592
arsta = wiphy_dereference(wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6867
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6874
rcu_assign_pointer(ahsta->link[link_id], NULL);
drivers/net/wireless/ath/ath12k/mac.c
710
sta->link[arsta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7199
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7205
link_sta = wiphy_dereference(ah->hw->wiphy, sta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7230
rcu_assign_pointer(ahsta->link[link_id], arsta);
drivers/net/wireless/ath/ath12k/mac.c
7253
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7254
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7541
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7635
assoc_arvif = wiphy_dereference(hw->wiphy, ahvif->link[ahsta->assoc_link_id]);
drivers/net/wireless/ath/ath12k/mac.c
772
arvif = rcu_dereference(ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7820
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7821
arsta = wiphy_dereference(hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7912
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7913
arsta = wiphy_dereference(hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7984
arvif = rcu_dereference(ahvif->link[link_sta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7995
arsta = rcu_dereference(ahsta->link[link_sta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
8021
link_sta = rcu_dereference(sta->link[arsta->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
8092
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
8150
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
8310
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
934
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
9421
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[skb_cb->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
9528
u8 link, struct sk_buff *skb, u32 info_flags)
drivers/net/wireless/ath/ath12k/mac.c
9538
if (link != IEEE80211_LINK_UNSPECIFIED)
drivers/net/wireless/ath/ath12k/mac.c
9539
return link;
drivers/net/wireless/ath/ath12k/mac.c
9550
link = ahsta->deflink.link_id;
drivers/net/wireless/ath/ath12k/mac.c
9553
return link;
drivers/net/wireless/ath/ath12k/mac.c
9555
bss_conf = rcu_dereference(vif->link_conf[link]);
drivers/net/wireless/ath/ath12k/mac.c
9563
return link;
drivers/net/wireless/ath/ath12k/mac.c
9574
if (link == IEEE80211_LINK_UNSPECIFIED)
drivers/net/wireless/ath/ath12k/mac.c
9575
link = ahsta->deflink.link_id;
drivers/net/wireless/ath/ath12k/mac.c
9578
return link;
drivers/net/wireless/ath/ath12k/mac.c
9581
bss_conf = rcu_dereference(vif->link_conf[link]);
drivers/net/wireless/ath/ath12k/mac.c
9582
link_sta = rcu_dereference(sta->link[link]);
drivers/net/wireless/ath/ath12k/mac.c
9593
return link;
drivers/net/wireless/ath/ath12k/mac.c
9621
return link;
drivers/net/wireless/ath/ath12k/mac.h
343
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
305
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
306
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
334
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
335
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
460
arvif = rcu_dereference(ahvif->link[skb_cb->link_id]);
drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c
724
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
837
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
1017
tmp_arvif = rcu_dereference(ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
1044
arsta = rcu_dereference(ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
941
arvif = rcu_dereference(ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
982
arsta = rcu_dereference(ahsta->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
110
ctx = wiphy_dereference(mld->wiphy, link->chanctx_conf);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
126
flags |= iwl_mld_get_rate_flags(mld, info, vif, link,
drivers/net/wireless/intel/iwlwifi/mld/ap.c
199
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
204
link = iwl_mld_link_dereference_check(mld_vif, key->link_id);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
205
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/ap.c
208
for (int i = 0; i < ARRAY_SIZE(link->ap_early_keys); i++) {
drivers/net/wireless/intel/iwlwifi/mld/ap.c
209
if (link->ap_early_keys[i] != key)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
214
link->ap_early_keys[i] = NULL;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
222
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
227
link = iwl_mld_link_dereference_check(mld_vif, key->link_id);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
228
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/ap.c
231
for (int i = 0; i < ARRAY_SIZE(link->ap_early_keys); i++) {
drivers/net/wireless/intel/iwlwifi/mld/ap.c
232
if (!link->ap_early_keys[i]) {
drivers/net/wireless/intel/iwlwifi/mld/ap.c
233
link->ap_early_keys[i] = key;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
242
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
244
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
263
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/ap.c
281
iwl_mld_change_link_in_fw(mld, link, link_changes);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
284
WARN_ON(!link->enable_beacon);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
285
iwl_mld_update_beacon_template(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
289
if ((changes & BSS_CHANGED_BEACON_ENABLED) && !link->enable_beacon)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
290
iwl_mld_stop_beacon(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
295
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
297
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
300
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/ap.c
320
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
330
ret = iwl_mld_change_link_in_fw(mld, link,
drivers/net/wireless/intel/iwlwifi/mld/ap.c
337
ret = iwl_mld_add_mcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
352
ret = iwl_mld_add_bcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
360
ret = iwl_mld_send_ap_early_keys(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
372
ctx = wiphy_dereference(mld->wiphy, link->chanctx_conf);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
377
iwl_mld_remove_bcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
384
iwl_mld_remove_mcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
389
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
404
iwl_mld_remove_bcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
406
iwl_mld_remove_mcast_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/ap.c
44
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/ap.c
47
u32 legacy = link->beacon_tx_rate.control[band].legacy;
drivers/net/wireless/intel/iwlwifi/mld/ap.c
95
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/ap.c
97
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/ap.h
20
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/ap.h
25
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/ap.h
28
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/ap.h
41
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/d3.c
1815
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/d3.c
1825
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
24
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
244
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
287
for_each_vif_active_link(vif, link, link_id) {
drivers/net/wireless/intel/iwlwifi/mld/iface.c
288
if (!link->he_support)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
291
if (link->twt_requester)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
293
if (link->twt_protected)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
295
if (link->twt_broadcast)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
39
for_each_mld_vif_valid_link(mld_vif, link) {
drivers/net/wireless/intel/iwlwifi/mld/iface.c
40
iwl_mld_cleanup_link(mld_vif->mld, link);
drivers/net/wireless/intel/iwlwifi/mld/iface.c
44
link_id == 0 && link == &mld_vif->deflink)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
52
if (link != &mld_vif->deflink)
drivers/net/wireless/intel/iwlwifi/mld/iface.c
53
kfree_rcu(link, rcu_head);
drivers/net/wireless/intel/iwlwifi/mld/iface.c
54
RCU_INIT_POINTER(mld_vif->link[link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/iface.c
649
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
652
for_each_vif_active_link(vif, link, link_id) {
drivers/net/wireless/intel/iwlwifi/mld/iface.c
653
if (iwl_mld_link_set_associated(mld, vif, link))
drivers/net/wireless/intel/iwlwifi/mld/iface.c
762
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
771
link = iwl_mld_fw_id_to_link_conf(mld, notif->link_id);
drivers/net/wireless/intel/iwlwifi/mld/iface.c
772
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/iface.c
775
vif = link->vif;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
780
if (!link->chanreq.oper.chan ||
drivers/net/wireless/intel/iwlwifi/mld/iface.c
781
link->chanreq.oper.chan->band != NL80211_BAND_2GHZ ||
drivers/net/wireless/intel/iwlwifi/mld/iface.c
782
link->chanreq.oper.width < NL80211_CHAN_WIDTH_40)
drivers/net/wireless/intel/iwlwifi/mld/iface.h
185
struct iwl_mld_link __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/intel/iwlwifi/mld/iface.h
249
rcu_dereference_check((mld_vif)->link[link_id], \
drivers/net/wireless/intel/iwlwifi/mld/iface.h
253
for (int link_id = 0; link_id < ARRAY_SIZE((mld_vif)->link); \
drivers/net/wireless/intel/iwlwifi/mld/key.c
109
struct iwl_mld_link *link = NULL;
drivers/net/wireless/intel/iwlwifi/mld/key.c
112
link = iwl_mld_link_dereference_check(mld_vif,
drivers/net/wireless/intel/iwlwifi/mld/key.c
115
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/key.c
119
if (WARN_ON(link->bcast_sta.sta_id == IWL_INVALID_STA ||
drivers/net/wireless/intel/iwlwifi/mld/key.c
120
link->mcast_sta.sta_id == IWL_INVALID_STA))
drivers/net/wireless/intel/iwlwifi/mld/key.c
125
return BIT(link->bcast_sta.sta_id);
drivers/net/wireless/intel/iwlwifi/mld/key.c
128
return BIT(link->mcast_sta.sta_id);
drivers/net/wireless/intel/iwlwifi/mld/key.c
441
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/key.c
452
link = iwl_mld_link_dereference_check(mld_vif, key->link_id);
drivers/net/wireless/intel/iwlwifi/mld/key.c
453
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/key.c
457
rcu_assign_pointer(link->bigtks[key->keyidx - 6], key);
drivers/net/wireless/intel/iwlwifi/mld/key.c
459
RCU_INIT_POINTER(link->bigtks[key->keyidx - 6], NULL);
drivers/net/wireless/intel/iwlwifi/mld/key.c
463
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/key.c
465
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/key.h
44
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
173
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
176
u8 protection_mode = link->ht_operation_mode &
drivers/net/wireless/intel/iwlwifi/mld/link.c
182
if (link->use_cts_prot)
drivers/net/wireless/intel/iwlwifi/mld/link.c
197
if (link->chanreq.oper.width > NL80211_CHAN_WIDTH_20)
drivers/net/wireless/intel/iwlwifi/mld/link.c
215
static void iwl_mld_fill_qos_params(struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
218
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
236
if (link->qos)
drivers/net/wireless/intel/iwlwifi/mld/link.c
239
if (link->chanreq.oper.width != NL80211_CHAN_WIDTH_20_NOHT)
drivers/net/wireless/intel/iwlwifi/mld/link.c
268
iwl_mld_change_link_in_fw(struct iwl_mld *mld, struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
271
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
272
struct ieee80211_vif *vif = link->vif;
drivers/net/wireless/intel/iwlwifi/mld/link.c
284
cmd.spec_link_id = link->link_id;
drivers/net/wireless/intel/iwlwifi/mld/link.c
293
ether_addr_copy(cmd.local_link_addr, link->addr);
drivers/net/wireless/intel/iwlwifi/mld/link.c
307
if (vif->type == NL80211_IFTYPE_ADHOC && link->bssid)
drivers/net/wireless/intel/iwlwifi/mld/link.c
308
ether_addr_copy(cmd.ibss_bssid_addr, link->bssid);
drivers/net/wireless/intel/iwlwifi/mld/link.c
312
iwl_mld_fill_rates(mld, link, chan_ctx, &cmd.cck_rates,
drivers/net/wireless/intel/iwlwifi/mld/link.c
315
cmd.cck_short_preamble = cpu_to_le32(link->use_short_preamble);
drivers/net/wireless/intel/iwlwifi/mld/link.c
316
cmd.short_slot = cpu_to_le32(link->use_short_slot);
drivers/net/wireless/intel/iwlwifi/mld/link.c
318
iwl_mld_fill_protection_flags(mld, link, &cmd.protection_flags);
drivers/net/wireless/intel/iwlwifi/mld/link.c
320
iwl_mld_fill_qos_params(link, cmd.ac, &cmd.qos_flags);
drivers/net/wireless/intel/iwlwifi/mld/link.c
322
cmd.bi = cpu_to_le32(link->beacon_int);
drivers/net/wireless/intel/iwlwifi/mld/link.c
323
cmd.dtim_interval = cpu_to_le32(link->beacon_int * link->dtim_period);
drivers/net/wireless/intel/iwlwifi/mld/link.c
328
if (!link->he_support || iwlwifi_mod_params.disable_11ax ||
drivers/net/wireless/intel/iwlwifi/mld/link.c
338
link->link_id);
drivers/net/wireless/intel/iwlwifi/mld/link.c
364
cmd.htc_trig_based_pkt_ext = link->htc_trig_based_pkt_ext;
drivers/net/wireless/intel/iwlwifi/mld/link.c
366
if (link->uora_exists) {
drivers/net/wireless/intel/iwlwifi/mld/link.c
367
cmd.rand_alloc_ecwmin = link->uora_ocw_range & 0x7;
drivers/net/wireless/intel/iwlwifi/mld/link.c
368
cmd.rand_alloc_ecwmax = (link->uora_ocw_range >> 3) & 0x7;
drivers/net/wireless/intel/iwlwifi/mld/link.c
374
cmd.bss_color = link->he_bss_color.color;
drivers/net/wireless/intel/iwlwifi/mld/link.c
376
if (!link->he_bss_color.enabled)
drivers/net/wireless/intel/iwlwifi/mld/link.c
379
cmd.frame_time_rts_th = cpu_to_le16(link->frame_time_rts_th);
drivers/net/wireless/intel/iwlwifi/mld/link.c
385
if (link->nontransmitted) {
drivers/net/wireless/intel/iwlwifi/mld/link.c
386
ether_addr_copy(cmd.ref_bssid_addr, link->transmitter_bssid);
drivers/net/wireless/intel/iwlwifi/mld/link.c
387
cmd.bssid_index = link->bssid_index;
drivers/net/wireless/intel/iwlwifi/mld/link.c
397
if (link->uhr_support && link->npca.enabled) {
drivers/net/wireless/intel/iwlwifi/mld/link.c
399
if (link->npca.moplen)
drivers/net/wireless/intel/iwlwifi/mld/link.c
402
cpu_to_le16(link->chanreq.oper.npca_punctured);
drivers/net/wireless/intel/iwlwifi/mld/link.c
403
cmd.npca_params.initial_qsrc = link->npca.init_qsrc;
drivers/net/wireless/intel/iwlwifi/mld/link.c
404
cmd.npca_params.min_dur_threshold = link->npca.min_dur_thresh;
drivers/net/wireless/intel/iwlwifi/mld/link.c
407
4 * link->npca.switch_delay;
drivers/net/wireless/intel/iwlwifi/mld/link.c
409
4 * link->npca.switch_back_delay;
drivers/net/wireless/intel/iwlwifi/mld/link.c
420
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
422
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
423
struct iwl_mld_vif *mld_vif = iwl_mld_vif_from_mac80211(link->vif);
drivers/net/wireless/intel/iwlwifi/mld/link.c
433
ret = iwl_mld_change_link_in_fw(mld, link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
445
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
447
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
455
iwl_mld_cancel_session_protection(mld, link->vif, link->link_id);
drivers/net/wireless/intel/iwlwifi/mld/link.c
468
iwl_mld_change_link_in_fw(mld, link, LINK_CONTEXT_MODIFY_ACTIVE);
drivers/net/wireless/intel/iwlwifi/mld/link.c
478
iwl_mld_rm_link_from_fw(struct iwl_mld *mld, struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
480
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
489
cmd.spec_link_id = link->link_id;
drivers/net/wireless/intel/iwlwifi/mld/link.c
495
IWL_MLD_ALLOC_FN(link, bss_conf)
drivers/net/wireless/intel/iwlwifi/mld/link.c
500
iwl_mld_init_link(struct iwl_mld *mld, struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
509
return iwl_mld_allocate_link_fw_id(mld, &mld_link->fw_id, link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
519
struct iwl_mld_link *link = iwl_mld_link_from_mac80211(bss_conf);
drivers/net/wireless/intel/iwlwifi/mld/link.c
523
if (!link) {
drivers/net/wireless/intel/iwlwifi/mld/link.c
525
link = &mld_vif->deflink;
drivers/net/wireless/intel/iwlwifi/mld/link.c
527
link = kzalloc_obj(*link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
528
if (!link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
535
ret = iwl_mld_init_link(mld, bss_conf, link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
539
rcu_assign_pointer(mld_vif->link[bss_conf->link_id], link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
543
RCU_INIT_POINTER(mld->fw_id_to_bss_conf[link->fw_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/link.c
544
RCU_INIT_POINTER(mld_vif->link[bss_conf->link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/link.c
552
kfree(link);
drivers/net/wireless/intel/iwlwifi/mld/link.c
561
struct iwl_mld_link *link = iwl_mld_link_from_mac80211(bss_conf);
drivers/net/wireless/intel/iwlwifi/mld/link.c
562
bool is_deflink = link == &mld_vif->deflink;
drivers/net/wireless/intel/iwlwifi/mld/link.c
564
if (WARN_ON(!link || link->active))
drivers/net/wireless/intel/iwlwifi/mld/link.c
570
RCU_INIT_POINTER(mld_vif->link[bss_conf->link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/link.c
572
if (WARN_ON(link->fw_id >= mld->fw->ucode_capa.num_links))
drivers/net/wireless/intel/iwlwifi/mld/link.c
575
RCU_INIT_POINTER(mld->fw_id_to_bss_conf[link->fw_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/link.c
578
kfree_rcu(link, rcu_head);
drivers/net/wireless/intel/iwlwifi/mld/link.c
64
struct iwl_mld_link *link = iwl_mld_link_from_mac80211(link_conf);
drivers/net/wireless/intel/iwlwifi/mld/link.c
69
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/link.c
703
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/link.c
705
return iwl_mld_change_link_in_fw(mld, link, LINK_CONTEXT_MODIFY_ALL &
drivers/net/wireless/intel/iwlwifi/mld/link.c
72
cmd.link_id = cpu_to_le32(link->fw_id);
drivers/net/wireless/intel/iwlwifi/mld/link.c
87
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/link.c
95
unsigned long basic = link->basic_rates;
drivers/net/wireless/intel/iwlwifi/mld/link.h
100
probe_data = wiphy_dereference(mld->wiphy, link->probe_resp_data);
drivers/net/wireless/intel/iwlwifi/mld/link.h
101
RCU_INIT_POINTER(link->probe_resp_data, NULL);
drivers/net/wireless/intel/iwlwifi/mld/link.h
105
CLEANUP_STRUCT(link);
drivers/net/wireless/intel/iwlwifi/mld/link.h
106
if (link->bcast_sta.sta_id != IWL_INVALID_STA)
drivers/net/wireless/intel/iwlwifi/mld/link.h
107
iwl_mld_free_internal_sta(mld, &link->bcast_sta);
drivers/net/wireless/intel/iwlwifi/mld/link.h
108
if (link->mcast_sta.sta_id != IWL_INVALID_STA)
drivers/net/wireless/intel/iwlwifi/mld/link.h
109
iwl_mld_free_internal_sta(mld, &link->mcast_sta);
drivers/net/wireless/intel/iwlwifi/mld/link.h
110
if (link->mon_sta.sta_id != IWL_INVALID_STA)
drivers/net/wireless/intel/iwlwifi/mld/link.h
111
iwl_mld_free_internal_sta(mld, &link->mon_sta);
drivers/net/wireless/intel/iwlwifi/mld/link.h
129
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/link.h
131
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/link.h
133
struct ieee80211_bss_conf *link, u32 changes);
drivers/net/wireless/intel/iwlwifi/mld/link.h
140
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/link.h
96
iwl_mld_cleanup_link(struct iwl_mld *mld, struct iwl_mld_link *link)
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1025
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1028
for_each_vif_active_link(vif, link, link_id) {
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1029
if (rcu_access_pointer(link->chanctx_conf) != ctx)
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1032
if (!link->npca.enabled)
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1035
iwl_mld_change_link_in_fw(mld, link,
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1109
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1125
link_sta = wiphy_dereference(mld->wiphy, mld_sta->link[link->link_id]);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1134
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1138
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1197
ret = iwl_mld_change_link_in_fw(mld, link,
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1210
if (iwl_mld_can_activate_link(mld, vif, link)) {
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1211
iwl_mld_tlc_update_phy(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1218
iwl_mld_send_ap_tx_power_constraint_cmd(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1220
ret = iwl_mld_activate_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1226
iwl_mld_send_ap_tx_power_constraint_cmd(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1229
ret = iwl_mld_add_mon_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1241
iwl_mld_deactivate_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1250
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1255
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1265
iwl_mld_deactivate_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1268
iwl_mld_remove_mon_sta(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1281
iwl_mld_tlc_update_phy(mld, vif, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1289
iwl_mld_remove_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1290
iwl_mld_add_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1636
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1643
link = iwl_mld_link_dereference_check(mld_vif, link_id);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1644
if (!link)
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1647
link->queue_params[ac] = *params;
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
2111
struct ieee80211_bss_conf *link =
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
2114
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
2117
iwl_mld_config_tlc_link(mld, vif, link, link_sta);
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
527
rcu_dereference(sta->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mld/mld.h
561
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/mld.h
567
link = wiphy_dereference(mld->wiphy,
drivers/net/wireless/intel/iwlwifi/mld/mld.h
569
if (IS_ERR(link))
drivers/net/wireless/intel/iwlwifi/mld/mld.h
572
return link;
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/nan.c
760
struct iwl_mld_nan_link *link;
drivers/net/wireless/intel/iwlwifi/mld/nan.c
767
link = iwl_mld_nan_find_link(mld_vif, chanctx);
drivers/net/wireless/intel/iwlwifi/mld/nan.c
768
links[i] = link;
drivers/net/wireless/intel/iwlwifi/mld/nan.c
769
if (link)
drivers/net/wireless/intel/iwlwifi/mld/nan.c
770
link_used[link->fw_id] = true;
drivers/net/wireless/intel/iwlwifi/mld/power.c
112
if (!link->queue_params[ac].uapsd)
drivers/net/wireless/intel/iwlwifi/mld/power.c
122
if (!tid_found && !link->queue_params[ac].acm) {
drivers/net/wireless/intel/iwlwifi/mld/power.c
154
struct iwl_mld_link *link,
drivers/net/wireless/intel/iwlwifi/mld/power.c
169
if (!link->queue_params[ac].uapsd)
drivers/net/wireless/intel/iwlwifi/mld/power.c
177
if (!tid_found && !link->queue_params[ac].acm) {
drivers/net/wireless/intel/iwlwifi/mld/power.c
232
struct iwl_mld_link *link = &mld_vif->deflink;
drivers/net/wireless/intel/iwlwifi/mld/power.c
249
link = iwl_mld_link_dereference_check(mld_vif, link_id);
drivers/net/wireless/intel/iwlwifi/mld/power.c
251
if (WARN_ON(!link_conf || !link))
drivers/net/wireless/intel/iwlwifi/mld/power.c
311
iwl_mld_power_configure_uapsd_v2(mld, link, cmd, ps_poll);
drivers/net/wireless/intel/iwlwifi/mld/power.c
323
struct iwl_mld_link *link = &mld_vif->deflink;
drivers/net/wireless/intel/iwlwifi/mld/power.c
339
link = iwl_mld_link_dereference_check(mld_vif, link_id);
drivers/net/wireless/intel/iwlwifi/mld/power.c
341
if (WARN_ON(!link_conf || !link))
drivers/net/wireless/intel/iwlwifi/mld/power.c
400
iwl_mld_power_configure_uapsd(mld, link, cmd, ps_poll);
drivers/net/wireless/intel/iwlwifi/mld/power.c
427
const struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/power.c
436
ARRAY_SIZE(link->tpe.psd_local[0].power));
drivers/net/wireless/intel/iwlwifi/mld/power.c
440
cmd->psd_pwr[i] = min(link->tpe.psd_local[0].power[i],
drivers/net/wireless/intel/iwlwifi/mld/power.c
441
link->tpe.psd_reg_client[0].power[i]);
drivers/net/wireless/intel/iwlwifi/mld/power.c
444
ARRAY_SIZE(link->tpe.max_local[0].power));
drivers/net/wireless/intel/iwlwifi/mld/power.c
447
cmd->eirp_pwr[i] = min(link->tpe.max_local[0].power[i],
drivers/net/wireless/intel/iwlwifi/mld/power.c
448
link->tpe.max_reg_client[0].power[i]);
drivers/net/wireless/intel/iwlwifi/mld/power.c
454
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/power.c
461
switch (link->power_type) {
drivers/net/wireless/intel/iwlwifi/mld/power.c
481
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/power.c
484
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/power.c
492
if (link->chanreq.oper.chan->band != NL80211_BAND_6GHZ)
drivers/net/wireless/intel/iwlwifi/mld/power.c
499
if (iwl_mld_set_ap_power_type(&cmd, vif, link))
drivers/net/wireless/intel/iwlwifi/mld/power.c
503
iwl_mld_tpe_sta_cmd_data(&cmd, link);
drivers/net/wireless/intel/iwlwifi/mld/power.c
92
struct iwl_mld_link *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
1529
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1538
link = iwl_mld_link_dereference_check(mld_vif, tsf_report_link_id);
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1539
if (!WARN_ON(!link)) {
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1540
params->fw_link_id = link->fw_id;
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1545
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
1161
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1163
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1174
addr = vif->type == NL80211_IFTYPE_ADHOC ? link->bssid : bcast_addr;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1184
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1186
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1212
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1214
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1251
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1253
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1268
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1270
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1298
struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1300
struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1385
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1398
link = link_conf_dereference_protected(mld_sta->vif,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1402
iwl_mld_config_tlc_link(mld, vif, link, link_sta);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1418
struct ieee80211_bss_conf *link =
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1421
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/sta.c
1424
iwl_mld_activate_link(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
487
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
490
link = link_conf_dereference_protected(mld_sta->vif,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
492
mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
494
if (WARN_ON(!link || !mld_link))
drivers/net/wireless/intel/iwlwifi/mld/sta.c
498
is_6ghz = link->chanreq.oper.chan->band == NL80211_BAND_6GHZ;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
499
uora_exists = link->uora_exists;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
642
rcu_assign_pointer(mld_sta->link[link_sta->link_id], mld_link_sta);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
648
RCU_INIT_POINTER(mld_sta->link[link_sta->link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
698
RCU_INIT_POINTER(mld_sta->link[link_sta->link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
143
struct iwl_mld_link_sta __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/intel/iwlwifi/mld/sta.h
178
RCU_INIT_POINTER(mld_sta->link[link_id], NULL);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
247
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
251
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
258
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
262
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
266
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
273
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mld/sta.h
54
rcu_dereference_check((mld_sta)->link[link_id], \
drivers/net/wireless/intel/iwlwifi/mld/sta.h
58
for (link_id = 0; link_id < ARRAY_SIZE((mld_sta)->link); \
drivers/net/wireless/intel/iwlwifi/mld/stats.c
318
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/stats.c
336
link = iwl_mld_link_from_mac80211(link_conf);
drivers/net/wireless/intel/iwlwifi/mld/stats.c
337
if (WARN_ONCE(!link,
drivers/net/wireless/intel/iwlwifi/mld/stats.c
341
if (!link->avg_signal)
drivers/net/wireless/intel/iwlwifi/mld/stats.c
344
sinfo->rx_beacon_signal_avg = link->avg_signal;
drivers/net/wireless/intel/iwlwifi/mld/stats.c
414
struct iwl_mld_link *link = iwl_mld_link_from_mac80211(bss_conf);
drivers/net/wireless/intel/iwlwifi/mld/stats.c
424
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/stats.c
432
last_event = link->last_cqm_rssi_event;
drivers/net/wireless/intel/iwlwifi/mld/stats.c
435
link->last_cqm_rssi_event = sig;
drivers/net/wireless/intel/iwlwifi/mld/stats.c
441
link->last_cqm_rssi_event = sig;
drivers/net/wireless/intel/iwlwifi/mld/stats.c
480
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/stats.c
495
link = iwl_mld_link_from_mac80211(bss_conf);
drivers/net/wireless/intel/iwlwifi/mld/stats.c
496
if (WARN_ON_ONCE(!link))
drivers/net/wireless/intel/iwlwifi/mld/stats.c
500
link->avg_signal = clamp_t(int, -(int)avg_raw, S8_MIN, 0);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
107
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
118
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
130
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
141
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
152
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
163
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
174
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
185
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
196
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
207
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
219
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
231
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
244
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
256
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
276
return params->link.dup_beacon_adj;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
284
return params->link.psd_eirp_adj;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
287
static void setup_link(struct ieee80211_bss_conf *link)
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
294
KUNIT_ALLOC_AND_ASSERT(test, link->bss);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
296
link->bss->signal = DBM_TO_MBM(test_param->link.signal);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
298
link->chanreq.oper = *test_param->link.chandef;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
300
if (test_param->link.has_chan_util_elem) {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
303
.channel_util = test_param->link.chan_util,
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
31
struct link_grading_input link;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
314
rcu_assign_pointer(link->bss->beacon_ies, ies);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
315
rcu_assign_pointer(link->bss->ies, ies);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
318
if (test_param->link.punctured)
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
319
link->chanreq.oper.punctured = test_param->link.punctured;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
321
if (test_param->link.active) {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
323
wiphy_dereference(mld->wiphy, link->chanctx_conf);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
330
phy->channel_load_by_us = test_param->link.chan_load_by_us;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
340
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
342
u8 link_id = test_param->link.link_id;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
343
bool active = test_param->link.active;
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
346
.chandef = test_param->link.chandef,
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
366
link = wiphy_dereference(mld->wiphy, vif->link_conf[link_id]);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
367
KUNIT_ASSERT_NOT_NULL(test, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
369
setup_link(link);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
37
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
371
actual_grade = iwl_mld_get_link_grade(mld, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
48
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
60
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
72
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
85
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link-selection.c
96
.link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link.c
574
static struct kunit_suite link = {
drivers/net/wireless/intel/iwlwifi/mld/tests/link.c
580
kunit_test_suite(link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
134
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
137
KUNIT_ALLOC_AND_ASSERT(test, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
140
iwlmld_kunit_init_link(vif, link, mld_link, link_id);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
143
return link;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
176
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
183
KUNIT_EXPECT_NULL(test, rcu_access_pointer(link->chanctx_conf));
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
184
rcu_assign_pointer(link->chanctx_conf, ctx);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
188
mld_link = iwl_mld_link_from_mac80211(link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
197
vif->active_links |= BIT(link->link_id);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
215
rcu_assign_pointer(sta->link[link_id], link_sta);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
224
rcu_assign_pointer(mld_sta->link[link_id], mld_link_sta);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
335
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
343
link = iwlmld_kunit_add_link(vif, assoc_link->id);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
345
link = &vif->bss_conf;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
350
iwlmld_kunit_assign_chanctx_to_link(vif, link, chan_ctx);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
411
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
425
link = wiphy_dereference(mld->wiphy, vif->link_conf[link2->id]);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
426
KUNIT_EXPECT_NOT_NULL(test, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
429
iwlmld_kunit_assign_chanctx_to_link(vif, link, chan_ctx);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
522
struct ieee80211_bss_conf *link =
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
525
KUNIT_EXPECT_NOT_NULL(test, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
527
chanctx = wiphy_dereference(mld->wiphy, link->chanctx_conf);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
72
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
81
rcu_assign_pointer(vif->link_conf[link_id], link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
82
link->link_id = link_id;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
83
link->vif = vif;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
84
link->beacon_int = 100;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
85
link->dtim_period = 3;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
86
link->qos = true;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
89
ret = iwl_mld_allocate_link_fw_id(mld, &mld_link->fw_id, link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
91
rcu_assign_pointer(mld_vif->link[link_id], mld_link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c
92
rcu_assign_pointer(vif->link_conf[link_id], link);
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.h
99
struct ieee80211_bss_conf *link,
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
771
struct ieee80211_bss_conf *link;
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
777
for_each_vif_active_link(vif, link, link_id) {
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
781
if (!link || !link_sta)
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
784
iwl_mld_config_tlc_link(mld, vif, link, link_sta);
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
830
struct ieee80211_bss_conf *link =
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
834
if (WARN_ON(!link || !link->chanreq.oper.chan))
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
837
band = link->chanreq.oper.chan->band;
drivers/net/wireless/intel/iwlwifi/mld/tx.c
609
return rcu_dereference(mld_vif->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mld/tx.c
620
struct iwl_mld_link *link;
drivers/net/wireless/intel/iwlwifi/mld/tx.c
631
link = iwl_mld_get_link_from_tx_info(info);
drivers/net/wireless/intel/iwlwifi/mld/tx.c
633
if (WARN_ON(!link))
drivers/net/wireless/intel/iwlwifi/mld/tx.c
643
return link->bcast_sta.queue_id;
drivers/net/wireless/intel/iwlwifi/mld/tx.c
647
return link->mcast_sta.queue_id;
drivers/net/wireless/intel/iwlwifi/mld/tx.c
651
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
455
*sta_id = mvmvif->link[link_id]->ap_sta_id;
drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c
136
.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
1122
if (WARN_ON(!mvmvif->link[link_conf->link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
1127
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
1114
mvmvif->link[link_id]->ap_sta_id = IWL_INVALID_STA;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1115
mvmvif->link[link_id]->fw_link_id = IWL_MVM_FW_LINK_ID_INVALID;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1116
mvmvif->link[link_id]->phy_ctxt = NULL;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1117
mvmvif->link[link_id]->active = 0;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1118
mvmvif->link[link_id]->igtk = NULL;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1119
memset(&mvmvif->link[link_id]->bf_data, 0,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1120
sizeof(mvmvif->link[link_id]->bf_data));
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1463
if (WARN_ON(!mvmvif->link[link_conf->link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1466
link_id = mvmvif->link[link_conf->link_id]->fw_link_id;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1527
u8 ap_sta_id = mvmvif->link[link_id]->ap_sta_id;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1703
mvmvif->link[0] = &mvmvif->deflink;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1718
mvmvif->link[i]->beacon_stats.accu_num_beacons +=
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1719
mvmvif->link[i]->beacon_stats.num_beacons;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2653
mvmvif->link[link_id]->bf_data.ave_beacon_signal = 0;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2695
mvmvif->link[link_conf->link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2775
memset(&mvmvif->link[i]->beacon_stats, 0,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2776
sizeof(mvmvif->link[i]->beacon_stats));
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3391
for (link_id = 0; link_id < ARRAY_SIZE(mvm_sta->link); link_id++) {
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3395
if (!mvm_sta->link[link_id])
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3398
link_sta = rcu_dereference_protected(mvm_sta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3510
!mvmvif->link[link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3514
mvmvif->link[link_id]->he_ru_2mhz_block = false;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3526
mvmvif->link[link_id]->he_ru_2mhz_block = !iter_data.tolerated;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3674
if (!conf || !link_sta || !mvmvif->link[link_id]->phy_ctxt)
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3678
mvmvif->link[link_id]->phy_ctxt->channel->band);
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3729
if (!link_conf || !mvmvif->link[link_id])
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3735
mvmvif->link[link_id]->he_ru_2mhz_block = false;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3843
if (!mvmvif->link[link_id])
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
4009
if (WARN_ON_ONCE(!mvmvif->link[link_id] ||
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
4010
!mvmvif->link[link_id]->phy_ctxt)) {
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
4666
.link = iwl_mvm_roc_link,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
4819
ret = ops->link(mvm, vif);
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
5757
mvm_link_sta = rcu_dereference_protected(mvmsta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
6061
sinfo->rx_beacon += mvmvif->link[i]->beacon_stats.num_beacons +
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
6062
mvmvif->link[i]->beacon_stats.accu_num_beacons;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
853
rcu_dereference(tmp_sta->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
216
mvm_link = mvmvif->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
272
mvm_link = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
346
struct iwl_mvm_vif_link_info *link,
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
353
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-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
1953
void iwl_mvm_init_link(struct iwl_mvm_vif_link_info *link);
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2002
int (*link)(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2452
struct iwl_mvm_vif_link_info *link,
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2502
struct ieee80211_bss_conf *link);
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
514
struct iwl_mvm_vif_link_info *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
519
link_id < ARRAY_SIZE((mvm_vif)->link); \
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
521
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
450
mvm_link_sta = rcu_dereference(mvmsta->link[link_sta->link_id]);
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
619
mvm_link_sta = rcu_dereference(mvmsta->link[link_id]);
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
731
for (link_id = 0; link_id < ARRAY_SIZE(mvmsta->link); link_id++) {
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
732
struct iwl_mvm_link_sta *link =
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
733
rcu_dereference_protected(mvmsta->link[link_id],
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
735
if (!link)
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
738
iwl_mvm_rs_add_sta_link(mvm, link);
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
879
if (link_id >= ARRAY_SIZE(mvmvif->link))
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
883
link_info = mvmvif->link[link_id];
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
902
mvmvif->link[link_id]->beacon_stats.accu_num_beacons +=
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
903
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
3250
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
1239
if (vif1->link[i]->phy_ctxt == vif2->link[j]->phy_ctxt)
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
1253
if (mvmvif->link[i]->phy_ctxt &&
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
1254
mvmvif->link[i]->phy_ctxt->id < NUM_PHY_CTX)
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
314
if (WARN_ON_ONCE(!mvmvif->link[link_id]))
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
317
mvmvif->link[link_id]->smps_requests[req_type] = smps_request;
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
319
if (mvmvif->link[link_id]->smps_requests[i] ==
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
324
if (mvmvif->link[link_id]->smps_requests[i] ==
drivers/net/wireless/intel/iwlwifi/mvm/utils.c
521
struct iwl_mvm_vif_link_info *link_info = mvmvif->link[link_id];
drivers/net/wireless/mediatek/mt76/channel.c
145
rcu_assign_pointer(mvif->link[link_id], mlink);
drivers/net/wireless/mediatek/mt76/channel.c
270
for (i = 0; i < ARRAY_SIZE(mvif->link); i++) {
drivers/net/wireless/mediatek/mt76/channel.c
271
mlink = mt76_dereference(mvif->link[i], dev);
drivers/net/wireless/mediatek/mt76/mac80211.c
2092
rcu_assign_pointer(mvif->link[0], NULL);
drivers/net/wireless/mediatek/mt76/mac80211.c
2225
mlink = rcu_dereference(mvif->link[link_id]);
drivers/net/wireless/mediatek/mt76/mac80211.c
2278
mlink = rcu_dereference(mvif->link[link_id]);
drivers/net/wireless/mediatek/mt76/mac80211.c
2337
mlink = rcu_dereference(mvif->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt76.h
2112
rcu_assign_pointer(mvif->link[0], mlink);
drivers/net/wireless/mediatek/mt76/mt76.h
2127
return mt76_dereference(mvif->link[link_id], dev);
drivers/net/wireless/mediatek/mt76/mt76.h
2140
return mt76_dereference(mvif->link[link_conf->link_id], dev);
drivers/net/wireless/mediatek/mt76/mt76.h
847
struct mt76_vif_link __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/mediatek/mt76/mt7925/mac.c
856
link_sta = rcu_dereference(sta->link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
1047
mlink = rcu_replace_pointer(msta->link[link_id], NULL,
drivers/net/wireless/mediatek/mt76/mt7925/main.c
1106
rcu_assign_pointer(msta->link[link_id], mlink);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
1332
mlink = rcu_replace_pointer(msta->link[link_id], NULL,
drivers/net/wireless/mediatek/mt76/mt7925/main.c
2160
rcu_assign_pointer(mvif->sta.link[link_id], NULL);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
2198
rcu_assign_pointer(mvif->sta.link[link_id], mlink);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
2221
rcu_assign_pointer(mvif->sta.link[link_id], NULL);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2007
mld->link[cnt].wlan_id = cpu_to_le16(msta->deflink.wcid.idx);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2008
mld->link[cnt++].bss_idx = mconf_pri->mt76.idx;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2013
mld->link[cnt].wlan_id = cpu_to_le16(mlink->wcid.idx);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2014
mld->link[cnt++].bss_idx = mconf->mt76.idx;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.h
461
} __packed link[2];
drivers/net/wireless/mediatek/mt76/mt792x.h
120
struct mt792x_link_sta __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/mediatek/mt76/mt792x.h
317
return rcu_dereference_protected(msta->link[link_id],
drivers/net/wireless/mediatek/mt76/mt792x_core.c
119
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
663
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1041
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1067
link_sta = rcu_dereference(sta->link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1157
mlink = rcu_dereference(mvif->mt76.link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1336
link_sta = rcu_dereference(sta->link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
171
mlink = rcu_dereference(msta->vif->mt76.link[wcid->link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2160
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2163
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2164
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2167
link_phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2364
for (i = 0; i < ARRAY_SIZE(msta->link); i++)
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2377
for (i = 0; i < ARRAY_SIZE(mvif->link); i++) {
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2379
mlink = mt76_dereference(mvif->link[i], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
2383
rcu_assign_pointer(mvif->link[i], NULL);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
3228
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
3243
if (mt7996_mcu_twt_agrt_update(dev, link, flow, MCU_TWT_AGRT_DELETE))
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
41
for (i = 0; i < ARRAY_SIZE(mvif->mt76.link); i++) {
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
44
mlink = rcu_dereference(mvif->mt76.link[i]);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
883
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1003
mt7996_mcu_add_obss_spr(phy, link, &info->he_obss_pd);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1007
link->mt76.omac_idx <= HW_BSSID_MAX) ||
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1009
mt7996_mcu_update_bss_color(dev, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1015
link->mt76.beacon_rates_idx =
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1023
mt7996_mcu_beacon_inband_discov(dev, info, link, changed);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1026
mt7996_update_mu_group(hw, link, info);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1051
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1054
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1055
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1058
link_phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1083
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1088
link = mt7996_vif_conf_link(dev, vif, link_conf);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1089
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1092
ret = mt7996_mcu_update_bss_rfch(phy, link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1096
ieee80211_iterate_stations_mtx(hw, mt7996_mcu_update_sta_rec_bw, link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1126
struct mt7996_vif_link *link, unsigned int link_id)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1130
struct mt7996_phy *phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1172
rcu_assign_pointer(msta->link[link_id], msta_link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1175
mt7996_mcu_add_sta(dev, link_conf, link_sta, link, msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1191
msta_link = mt76_dereference(msta->link[link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1224
msta->link[msta->seclink_id],
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1239
rcu_assign_pointer(msta->link[link_id], NULL);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1270
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1273
msta_link = mt76_dereference(msta->link[link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1285
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1286
if (!link) {
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1297
mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1303
err = mt7996_mac_sta_init_link(dev, link_conf, link_sta, link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1375
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1382
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1383
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1393
link, msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1407
link, msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1414
mt7996_mac_twt_teardown_flow(dev, link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1419
link, msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1422
mt7996_mcu_teardown_mld_sta(dev, link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1444
for (i = 0; i < ARRAY_SIZE(msta->link); i++)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1534
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1536
link_sta = rcu_dereference(sta->link[msta->deflink_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1556
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1695
u64 __mt7996_get_tsf(struct ieee80211_hw *hw, struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1697
struct mt7996_phy *phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1710
n = link->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1711
: link->mt76.omac_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1741
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1751
link = mt7996_vif_link(dev, vif, mvif->mt76.deflink_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1752
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1755
n = link->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1756
: link->mt76.omac_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1757
phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1777
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1787
link = mt7996_vif_link(dev, vif, mvif->mt76.deflink_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1788
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1791
phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1795
n = link->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1796
: link->mt76.omac_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
193
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
199
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
200
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2013
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2015
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2016
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
203
if (!mt7996_vif_link_phy(link))
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2031
mt7996_mcu_wtbl_update_hdr_trans(dev, vif, link, msta_link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2051
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2053
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2054
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2071
mt7996_mcu_wtbl_update_hdr_trans(dev, vif, link, msta_link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
217
msta_link = &link->msta_link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2316
struct mt7996_vif_link *link = &msta->vif->deflink;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2320
mt7996_mac_twt_teardown_flow(dev, link, msta_link, flowid);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2391
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2393
link = mt7996_vif_link(dev, vif, msta->deflink_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2394
if (!link)
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
struct mt7996_phy *phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2424
path->mtk_wdma.wdma_idx = link->mt76.band_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2425
path->mtk_wdma.bss = link->mt76.idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
243
link->mt76.cipher =
drivers/net/wireless/mediatek/mt76/mt7996/main.c
247
&link->mt76, msta_link, true);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
261
err = mt7996_mcu_add_key(&dev->mt76, link, key,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
296
struct mt7996_vif_link *link = container_of(mlink, struct mt7996_vif_link, mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
298
struct mt7996_sta_link *msta_link = &link->msta_link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
311
return mt7996_mcu_mld_link_oper(dev, link_conf, link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
328
link->mld_idx = mld_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
340
dev->mld_idx_mask |= BIT_ULL(link->mld_idx);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
364
mt7996_init_bitrate_mask(vif, link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
371
mt7996_mcu_add_sta(dev, link_conf, NULL, link, NULL,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
404
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
409
struct mt7996_sta_link *msta_link = &link->msta_link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
411
struct mt76_vif_link *mlink = &link->mt76;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
425
mt7996_mcu_add_sta(dev, link_conf, NULL, link, NULL,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
433
dev->mld_idx_mask &= ~BIT_ULL(link->mld_idx);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
447
rcu_assign_pointer(mlink->mvif->link[link_id], NULL);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
456
struct mt7996_vif_link *link = container_of(mlink, struct mt7996_vif_link, mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
458
struct mt7996_sta_link *msta_link = &link->msta_link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
466
mt7996_vif_link_destroy(phy, link, vif, link_conf);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
471
mt7996_mcu_mld_link_oper(phy->dev, link_conf, link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
486
link = mt7996_vif_link(phy->dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
487
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
490
mtxq->wcid = link->msta_link.wcid.idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
610
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
613
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
614
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
617
phy = __mt7996_phy(dev, link->msta_link.wcid.phy_idx);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
621
mt7996_vif_link_destroy(phy, link, vif, NULL);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
869
mt7996_update_mu_group(struct ieee80211_hw *hw, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
873
u8 band = link->mt76.band_idx;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
900
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
903
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
904
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
908
link->mt76.beacon_mon_interval =
drivers/net/wireless/mediatek/mt76/mt7996/main.c
911
WRITE_ONCE(link->mt76.beacon_mon_last, jiffies);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
914
phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
919
&link->mt76, &link->msta_link,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
921
mt7996_mcu_add_sta(dev, link_conf, NULL, link, NULL,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
933
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
935
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
936
if (link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
937
link->mt76.beacon_mon_interval = 0;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
949
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
955
link = mt7996_vif_conf_link(dev, vif, info);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
956
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/main.c
959
mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
970
mt7996_mcu_add_bss_info(phy, vif, info, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
971
&link->msta_link, true);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
972
mt7996_mcu_add_sta(dev, info, NULL, link, NULL,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
978
mt7996_mcu_set_protection(phy, link, info->ht_operation_mode,
drivers/net/wireless/mediatek/mt76/mt7996/main.c
991
link->mt76.mcast_rates_idx =
drivers/net/wireless/mediatek/mt76/mt7996/main.c
995
link->mt76.basic_rates_idx =
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1013
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1022
mld->own_mld_id = link->mld_idx;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1232
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1244
link = container_of(mlink, struct mt7996_vif_link, mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1245
mt7996_mcu_bss_mld_tlv(skb, link_conf, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1255
int mt7996_mcu_update_bss_rfch(struct mt7996_phy *phy, struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1260
skb = __mt7996_mcu_alloc_bss_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1271
int mt7996_mcu_set_protection(struct mt7996_phy *phy, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
128
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1290
skb = __mt7996_mcu_alloc_bss_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
131
struct mt76_phy *mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1329
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1333
msta_link = mt76_dereference(msta->link[eml_params->link_id],
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1338
link = mt7996_vif_link(dev, vif, eml_params->link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1339
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1342
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1360
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1361
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1364
mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
140
mask = link->bitrate_mask.control[band].he_mcs;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1436
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1442
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1443
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1449
ret = mt7996_mcu_sta_ba(dev, &link->mt76, params,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1470
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1476
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1477
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1480
ret = mt7996_mcu_sta_ba(dev, &link->mt76, params,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1492
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1517
mt7996_mcu_set_sta_he_mcs(link_sta, link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1521
mt7996_mcu_set_sta_he_mcs(link_sta, link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1526
mt7996_mcu_set_sta_he_mcs(link_sta, link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1985
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1990
struct mt7996_phy *phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2062
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2064
struct mt7996_phy *phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2215
mlink = rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2248
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2279
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2305
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2306
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2314
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2318
mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2324
mask = link->bitrate_mask;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2399
struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2402
struct mt76_phy *mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2403
struct cfg80211_bitrate_mask *mask = &link->bitrate_mask;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2516
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2523
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2524
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2532
link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2540
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2553
mt7996_mcu_sta_he_tlv(skb, link_sta, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2558
mt7996_mcu_sta_rate_ctrl_tlv(skb, dev, vif, link_conf, link_sta, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2576
mt7996_mcu_add_group(struct mt7996_dev *dev, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2594
.val = cpu_to_le32(link->mt76.idx % 16),
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2626
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2628
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2629
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2632
sl->bss_idx[link_id] = link->mt76.idx;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2641
struct mt7996_vif_link *link, bool add)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2649
skb = __mt7996_mcu_alloc_bss_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2658
mld_op->own_mld_id = link->mld_idx;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2706
struct mt7996_vif_link *link;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2712
link = mt7996_vif_link(dev, vif, link_id);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2713
if (!link)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2717
mld_setup_link->bss_idx = link->mt76.idx;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2740
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2744
struct mt76_wcid *wcid = msta_link ? &msta_link->wcid : link->mt76.wcid;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2749
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76, wcid,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2773
link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2776
link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2788
mt7996_mcu_sta_he_tlv(skb, link_sta, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2803
ret = mt7996_mcu_add_group(dev, link, wcid);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2814
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2819
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2833
struct mt7996_vif_link *link = (struct mt7996_vif_link *)data;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2835
struct mt7996_phy *phy = mt7996_vif_link_phy(link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2847
if (link->mt76.mvif != &msta->vif->mt76)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2851
link_id = link->msta_link.wcid.link_id;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2865
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2871
mt7996_mcu_sta_bfer_tlv(dev, skb, link_conf, link_sta, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2872
mt7996_mcu_sta_rate_ctrl_tlv(skb, dev, vif, link_conf, link_sta, link);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2948
int mt7996_mcu_add_key(struct mt76_dev *dev, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2955
skb = __mt76_connac_mcu_alloc_sta_req(dev, (struct mt76_vif_link *)link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3090
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3095
u8 *buf, keyidx = link->msta_link.wcid.hw_key_idx2;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3099
wcid = &link->msta_link.wcid;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3126
struct mt7996_vif_link *link = mt7996_vif_conf_link(dev, vif, link_conf);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3127
struct mt76_phy *mphy = link ? mt76_vif_link_phy(&link->mt76) : NULL;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3128
struct mt76_vif_link *mlink = link ? &link->mt76 : NULL;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3177
mt7996_mcu_beacon_cont(dev, link_conf, link, rskb, skb, bcn, &offs);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3189
struct mt7996_vif_link *link, u32 changed)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3193
struct mt76_phy *mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3215
rskb = __mt7996_mcu_alloc_bss_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3793
struct mt7996_vif_link *link = mt7996_vif_conf_link(dev, vif, link_conf);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3801
.bss_idx = link->mt76.idx,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
431
rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
460
rcu_dereference(mvif->mt76.link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4831
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4835
u8 omac = link->mt76.omac_idx;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4908
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4942
ret = mt7996_mcu_set_obss_spr_siga(phy, link, he_obss_pd);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4978
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
5009
.own_mac_idx = link->mt76.omac_idx,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
5013
.bss = link->mt76.idx,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
5014
.bss_idx = link->mt76.idx,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
5131
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
5136
skb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &link->mt76,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
268
struct mt7996_sta_link __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
627
mt7996_vif_link_phy(struct mt7996_vif_link *link)
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
629
struct mt76_phy *mphy = mt76_vif_link_phy(&link->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
651
return rcu_dereference(msta->link[link_id]);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
661
return mt76_dereference(msta->link[link_id], &dev->mt76);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
677
u64 __mt7996_get_tsf(struct ieee80211_hw *hw, struct mt7996_vif_link *link);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
706
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
717
struct mt7996_vif_link *link);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
721
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
725
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
741
struct mt7996_vif_link *link, u32 changed);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
743
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
770
int mt7996_mcu_set_protection(struct mt7996_phy *phy, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
803
struct mt7996_vif_link *link, bool add);
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
887
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
917
int mt7996_mcu_add_key(struct mt76_dev *dev, struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
921
struct mt7996_vif_link *link,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
926
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
559
bool scan = false, link = false;
drivers/net/wireless/realtek/rtw88/coex.c
583
if (scan || link || reason == COEX_RSN_2GCONSTART ||
drivers/net/wireless/realtek/rtw88/coex.c
837
u8 link = 0;
drivers/net/wireless/realtek/rtw88/coex.c
850
link = 0;
drivers/net/wireless/realtek/rtw88/coex.c
854
link = 0x1;
drivers/net/wireless/realtek/rtw88/coex.c
863
link = 0x3;
drivers/net/wireless/realtek/rtw88/coex.c
871
coex_dm->wl_ch_info[0] = link;
drivers/net/wireless/realtek/rtw88/coex.c
875
rtw_fw_wl_ch_info(rtwdev, link, center_chan, bw);
drivers/net/wireless/realtek/rtw88/coex.c
877
"[BTCoex], %s: para[0:2] = 0x%x 0x%x 0x%x\n", __func__, link,
drivers/net/wireless/realtek/rtw88/fw.c
624
void rtw_fw_wl_ch_info(struct rtw_dev *rtwdev, u8 link, u8 ch, u8 bw)
drivers/net/wireless/realtek/rtw88/fw.c
630
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
515
struct rtw89_vif_link *link;
drivers/net/wireless/realtek/rtw89/chan.c
519
link = rtw89_vif_get_link_inst(role, i);
drivers/net/wireless/realtek/rtw89/chan.c
520
if (!link || !link->chanctx_assigned)
drivers/net/wireless/realtek/rtw89/chan.c
537
struct rtw89_vif_link *link;
drivers/net/wireless/realtek/rtw89/chan.c
558
link = rtw89_vif_get_link_inst(role, i);
drivers/net/wireless/realtek/rtw89/chan.c
559
if (!link || !link->chanctx_assigned)
drivers/net/wireless/realtek/rtw89/chan.c
562
if (link->chanctx_idx == RTW89_CHANCTX_0) {
drivers/net/wireless/realtek/rtw89/chan.c
563
rtw89_normalize_link_chanctx(rtwdev, link);
drivers/net/wireless/realtek/rtw89/chan.c
582
link = rtw89_vif_get_link_inst(role, i);
drivers/net/wireless/realtek/rtw89/chan.c
583
if (!link || !link->chanctx_assigned)
drivers/net/wireless/realtek/rtw89/chan.c
586
mgnt->chanctx_tbl[pos][i] = link->chanctx_idx;
drivers/net/wireless/realtek/rtw89/core.c
6804
struct rtw89_vif_link *link = *container;
drivers/net/wireless/realtek/rtw89/core.c
6807
if (!link)
drivers/net/wireless/realtek/rtw89/core.c
6810
index = rtw89_vif_link_inst_get_index(link);
drivers/net/wireless/realtek/rtw89/core.c
6813
list_del(&link->dlink_schd);
drivers/net/wireless/realtek/rtw89/core.c
6856
struct rtw89_sta_link *link = *container;
drivers/net/wireless/realtek/rtw89/core.c
6859
if (!link)
drivers/net/wireless/realtek/rtw89/core.c
6862
index = rtw89_sta_link_inst_get_index(link);
drivers/net/wireless/realtek/rtw89/core.c
6865
list_del(&link->dlink_schd);
drivers/net/wireless/realtek/rtw89/core.h
7300
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_main.c
2066
*link_sta = rcu_dereference(sta->link[link_id]);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2153
u8 link = u32_get_bits(IEEE80211_SKB_CB(skb)->control.flags,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2165
if (link != IEEE80211_LINK_UNSPECIFIED) {
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2166
bss_conf = rcu_dereference(vif->link_conf[link]);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2168
link_sta = rcu_dereference(sta->link[link]);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2179
WARN(link != IEEE80211_LINK_UNSPECIFIED || !sta || !sta->mlo,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2181
link, sta ? sta->addr : NULL, sta ? sta->mlo : -1);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2806
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
153
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
154
struct mhi_mbim_context *mbim = link->mbim;
drivers/net/wwan/mhi_wwan_mbim.c
161
skb = mbim_tx_fixup(skb, link->session, mbim->tx_seq);
drivers/net/wwan/mhi_wwan_mbim.c
186
u64_stats_update_begin(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
187
u64_stats_inc(&link->tx_dropped);
drivers/net/wwan/mhi_wwan_mbim.c
188
u64_stats_update_end(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
269
struct mhi_mbim_link *link;
drivers/net/wwan/mhi_wwan_mbim.c
297
link = mhi_mbim_get_link_rcu(mbim, session);
drivers/net/wwan/mhi_wwan_mbim.c
298
if (!link) {
drivers/net/wwan/mhi_wwan_mbim.c
318
skbn = netdev_alloc_skb(link->ndev, dgram_len);
drivers/net/wwan/mhi_wwan_mbim.c
334
link->ndev->name);
drivers/net/wwan/mhi_wwan_mbim.c
336
u64_stats_update_begin(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
337
u64_stats_inc(&link->rx_errors);
drivers/net/wwan/mhi_wwan_mbim.c
338
u64_stats_update_end(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
342
u64_stats_update_begin(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
343
u64_stats_inc(&link->rx_packets);
drivers/net/wwan/mhi_wwan_mbim.c
344
u64_stats_add(&link->rx_bytes, skbn->len);
drivers/net/wwan/mhi_wwan_mbim.c
345
u64_stats_update_end(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
466
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
470
start = u64_stats_fetch_begin(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
471
stats->rx_packets = u64_stats_read(&link->rx_packets);
drivers/net/wwan/mhi_wwan_mbim.c
472
stats->rx_bytes = u64_stats_read(&link->rx_bytes);
drivers/net/wwan/mhi_wwan_mbim.c
473
stats->rx_errors = u64_stats_read(&link->rx_errors);
drivers/net/wwan/mhi_wwan_mbim.c
474
} while (u64_stats_fetch_retry(&link->rx_syncp, start));
drivers/net/wwan/mhi_wwan_mbim.c
477
start = u64_stats_fetch_begin(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
478
stats->tx_packets = u64_stats_read(&link->tx_packets);
drivers/net/wwan/mhi_wwan_mbim.c
479
stats->tx_bytes = u64_stats_read(&link->tx_bytes);
drivers/net/wwan/mhi_wwan_mbim.c
480
stats->tx_errors = u64_stats_read(&link->tx_errors);
drivers/net/wwan/mhi_wwan_mbim.c
481
stats->tx_dropped = u64_stats_read(&link->tx_dropped);
drivers/net/wwan/mhi_wwan_mbim.c
482
} while (u64_stats_fetch_retry(&link->tx_syncp, start));
drivers/net/wwan/mhi_wwan_mbim.c
491
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
498
u64_stats_update_begin(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
502
u64_stats_update_end(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
506
u64_stats_inc(&link->tx_errors);
drivers/net/wwan/mhi_wwan_mbim.c
508
u64_stats_inc(&link->tx_packets);
drivers/net/wwan/mhi_wwan_mbim.c
509
u64_stats_add(&link->tx_bytes, mhi_res->bytes_xferd);
drivers/net/wwan/mhi_wwan_mbim.c
511
u64_stats_update_end(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
519
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
522
schedule_delayed_work(&link->mbim->rx_refill, 0);
drivers/net/wwan/mhi_wwan_mbim.c
550
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
553
link->mbim = mbim;
drivers/net/wwan/mhi_wwan_mbim.c
554
link->session = mhi_mbim_get_link_mux_id(link->mbim->mdev->mhi_cntrl) + if_id;
drivers/net/wwan/mhi_wwan_mbim.c
555
link->ndev = ndev;
drivers/net/wwan/mhi_wwan_mbim.c
556
u64_stats_init(&link->rx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
557
u64_stats_init(&link->tx_syncp);
drivers/net/wwan/mhi_wwan_mbim.c
567
hlist_add_head_rcu(&link->hlnode, &mbim->link_list[LINK_HASH(if_id)]);
drivers/net/wwan/mhi_wwan_mbim.c
575
struct mhi_mbim_link *link = wwan_netdev_drvpriv(ndev);
drivers/net/wwan/mhi_wwan_mbim.c
577
hlist_del_init_rcu(&link->hlnode);
drivers/net/wwan/mhi_wwan_mbim.c
87
struct mhi_mbim_link *link;
drivers/net/wwan/mhi_wwan_mbim.c
89
hlist_for_each_entry_rcu(link, &mbim->link_list[LINK_HASH(session)], hlnode) {
drivers/net/wwan/mhi_wwan_mbim.c
90
if (link->session == session)
drivers/net/wwan/mhi_wwan_mbim.c
91
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
1059
struct nvmet_subsys_link *link, *p;
drivers/nvme/target/configfs.c
1067
link = kmalloc_obj(*link);
drivers/nvme/target/configfs.c
1068
if (!link)
drivers/nvme/target/configfs.c
1070
link->subsys = subsys;
drivers/nvme/target/configfs.c
1085
list_add_tail(&link->entry, &port->subsystems);
drivers/nvme/target/configfs.c
1093
kfree(link);
drivers/nvme/target/configfs.c
1138
struct nvmet_host_link *link, *p;
drivers/nvme/target/configfs.c
1147
link = kmalloc_obj(*link);
drivers/nvme/target/configfs.c
1148
if (!link)
drivers/nvme/target/configfs.c
1150
link->host = host;
drivers/nvme/target/configfs.c
1164
list_add_tail(&link->entry, &subsys->hosts);
drivers/nvme/target/configfs.c
1171
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
1913
list_add_tail(&ap->link, &aliases_lookup);
drivers/of/base.c
2007
list_for_each_entry(app, &aliases_lookup, link) {
drivers/of/base.c
2035
list_for_each_entry(app, &aliases_lookup, link) {
drivers/of/device.c
241
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
99
struct device_link **link;
drivers/pci/controller/dwc/pci-dra7xx.c
681
struct device_link **link;
drivers/pci/controller/dwc/pci-dra7xx.c
729
link = devm_kcalloc(dev, phy_count, sizeof(*link), GFP_KERNEL);
drivers/pci/controller/dwc/pci-dra7xx.c
730
if (!link)
drivers/pci/controller/dwc/pci-dra7xx.c
748
link[i] = device_link_add(dev, &phy[i]->dev, DL_FLAG_STATELESS);
drivers/pci/controller/dwc/pci-dra7xx.c
749
if (!link[i]) {
drivers/pci/controller/dwc/pci-dra7xx.c
856
device_link_del(link[i]);
drivers/pci/controller/dwc/pci-imx6.c
644
struct device_link *link;
drivers/pci/controller/dwc/pci-imx6.c
656
link = device_link_add(dev, imx_pcie->pd_pcie,
drivers/pci/controller/dwc/pci-imx6.c
660
if (!link) {
drivers/pci/controller/dwc/pci-imx6.c
669
link = device_link_add(dev, imx_pcie->pd_pcie_phy,
drivers/pci/controller/dwc/pci-imx6.c
673
if (!link) {
drivers/pci/controller/dwc/pci-keystone.c
1132
struct device_link **link;
drivers/pci/controller/dwc/pci-keystone.c
1203
link = devm_kcalloc(dev, num_lanes, sizeof(*link), GFP_KERNEL);
drivers/pci/controller/dwc/pci-keystone.c
1204
if (!link)
drivers/pci/controller/dwc/pci-keystone.c
1218
link[i] = device_link_add(dev, &phy[i]->dev, DL_FLAG_STATELESS);
drivers/pci/controller/dwc/pci-keystone.c
1219
if (!link[i]) {
drivers/pci/controller/dwc/pci-keystone.c
1227
ks_pcie->link = link;
drivers/pci/controller/dwc/pci-keystone.c
132
struct device_link **link;
drivers/pci/controller/dwc/pci-keystone.c
1340
while (--i >= 0 && link[i])
drivers/pci/controller/dwc/pci-keystone.c
1341
device_link_del(link[i]);
drivers/pci/controller/dwc/pci-keystone.c
1349
struct device_link **link = ks_pcie->link;
drivers/pci/controller/dwc/pci-keystone.c
1357
device_link_del(link[num_lanes]);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
207
val = readl_relaxed(k1->link + K1_PHY_AHB_LINK_STS);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
222
writel_relaxed(MSI_CTRL_INT, k1->link + INTR_ENABLE);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
225
val = readl_relaxed(k1->link + K1_PHY_AHB_IRQ_EN);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
227
writel_relaxed(val, k1->link + K1_PHY_AHB_IRQ_EN);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
238
val = readl_relaxed(k1->link + K1_PHY_AHB_IRQ_EN);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
240
writel_relaxed(val, k1->link + K1_PHY_AHB_IRQ_EN);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
242
writel_relaxed(0, k1->link + INTR_ENABLE);
drivers/pci/controller/dwc/pcie-spacemit-k1.c
295
k1->link = devm_platform_ioremap_resource_byname(pdev, "link");
drivers/pci/controller/dwc/pcie-spacemit-k1.c
296
if (IS_ERR(k1->link))
drivers/pci/controller/dwc/pcie-spacemit-k1.c
297
return dev_err_probe(dev, PTR_ERR(k1->link),
drivers/pci/controller/dwc/pcie-spacemit-k1.c
54
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
762
list_del(&php_slot->link);
drivers/pci/hotplug/pnv_php.c
823
INIT_LIST_HEAD(&php_slot->link);
drivers/pci/hotplug/pnv_php.c
869
list_add_tail(&php_slot->link, &parent->children);
drivers/pci/hotplug/pnv_php.c
871
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
665
u8 link; /* Function Dependency Link */
drivers/pci/pcie/aspm.c
1001
state &= (link->aspm_capable & ~link->aspm_disable);
drivers/pci/pcie/aspm.c
1010
state |= (link->aspm_enabled & PCIE_LINK_STATE_L1_SS_PCIPM);
drivers/pci/pcie/aspm.c
1014
if (link->aspm_enabled == state)
drivers/pci/pcie/aspm.c
1044
if (link->aspm_capable & PCIE_LINK_STATE_L1SS)
drivers/pci/pcie/aspm.c
1045
pcie_config_aspm_l1ss(link, state);
drivers/pci/pcie/aspm.c
1051
link->aspm_enabled = state;
drivers/pci/pcie/aspm.c
1054
pci_save_aspm_l1ss_state(link->downstream);
drivers/pci/pcie/aspm.c
1055
pci_update_aspm_saved_state(link->downstream);
drivers/pci/pcie/aspm.c
1060
static void pcie_config_aspm_path(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
1062
while (link) {
drivers/pci/pcie/aspm.c
1063
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1064
link = link->parent;
drivers/pci/pcie/aspm.c
1068
static void free_link_state(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
1070
link->pdev->link_state = NULL;
drivers/pci/pcie/aspm.c
1071
kfree(link);
drivers/pci/pcie/aspm.c
1111
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
1113
link = kzalloc_obj(*link);
drivers/pci/pcie/aspm.c
1114
if (!link)
drivers/pci/pcie/aspm.c
1117
INIT_LIST_HEAD(&link->sibling);
drivers/pci/pcie/aspm.c
1118
link->pdev = pdev;
drivers/pci/pcie/aspm.c
1119
link->downstream = pci_function_0(pdev->subordinate);
drivers/pci/pcie/aspm.c
1131
link->root = link;
drivers/pci/pcie/aspm.c
1137
kfree(link);
drivers/pci/pcie/aspm.c
1141
link->parent = parent;
drivers/pci/pcie/aspm.c
1142
link->root = link->parent->root;
drivers/pci/pcie/aspm.c
1145
list_add(&link->sibling, &link_list);
drivers/pci/pcie/aspm.c
1146
pdev->link_state = link;
drivers/pci/pcie/aspm.c
1147
return link;
drivers/pci/pcie/aspm.c
1165
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
1192
link = alloc_pcie_link_state(pdev);
drivers/pci/pcie/aspm.c
1193
if (!link)
drivers/pci/pcie/aspm.c
1200
pcie_aspm_cap_init(link, blacklist);
drivers/pci/pcie/aspm.c
1203
pcie_clkpm_cap_init(link, blacklist);
drivers/pci/pcie/aspm.c
1215
pcie_config_aspm_path(link);
drivers/pci/pcie/aspm.c
1216
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1302
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
1304
list_for_each_entry(link, &link_list, sibling) {
drivers/pci/pcie/aspm.c
1305
if (link->root != root)
drivers/pci/pcie/aspm.c
1307
link->aspm_capable = link->aspm_support;
drivers/pci/pcie/aspm.c
1309
list_for_each_entry(link, &link_list, sibling) {
drivers/pci/pcie/aspm.c
1311
struct pci_bus *linkbus = link->pdev->subordinate;
drivers/pci/pcie/aspm.c
1312
if (link->root != root)
drivers/pci/pcie/aspm.c
1327
struct pcie_link_state *link, *root, *parent_link;
drivers/pci/pcie/aspm.c
1335
link = parent->link_state;
drivers/pci/pcie/aspm.c
1336
root = link->root;
drivers/pci/pcie/aspm.c
1337
parent_link = link->parent;
drivers/pci/pcie/aspm.c
1347
if (pdev != link->downstream)
drivers/pci/pcie/aspm.c
1350
pcie_config_aspm_link(link, 0);
drivers/pci/pcie/aspm.c
1351
list_del(&link->sibling);
drivers/pci/pcie/aspm.c
1352
free_link_state(link);
drivers/pci/pcie/aspm.c
1371
struct pcie_link_state *link = pdev->link_state;
drivers/pci/pcie/aspm.c
1373
if (aspm_disabled || !link)
drivers/pci/pcie/aspm.c
1382
pcie_update_aspm_capable(link->root);
drivers/pci/pcie/aspm.c
1383
pcie_config_aspm_path(link);
drivers/pci/pcie/aspm.c
1391
struct pcie_link_state *link = pdev->link_state;
drivers/pci/pcie/aspm.c
1393
if (aspm_disabled || !link)
drivers/pci/pcie/aspm.c
1402
pcie_config_aspm_path(link);
drivers/pci/pcie/aspm.c
1403
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1446
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1448
if (!link)
drivers/pci/pcie/aspm.c
1466
link->aspm_disable |= pci_calc_aspm_disable_mask(state);
drivers/pci/pcie/aspm.c
1467
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1470
link->clkpm_disable = 1;
drivers/pci/pcie/aspm.c
1471
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1504
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1506
if (!link)
drivers/pci/pcie/aspm.c
1522
link->aspm_default = pci_calc_aspm_enable_mask(state);
drivers/pci/pcie/aspm.c
1523
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1525
link->clkpm_default = (state & PCIE_LINK_STATE_CLKPM) ? 1 : 0;
drivers/pci/pcie/aspm.c
1526
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1593
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
1606
list_for_each_entry(link, &link_list, sibling) {
drivers/pci/pcie/aspm.c
1607
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1608
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1641
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1643
if (!link)
drivers/pci/pcie/aspm.c
1646
return link->aspm_enabled;
drivers/pci/pcie/aspm.c
1655
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1657
return sysfs_emit(buf, "%d\n", (link->aspm_enabled & state) ? 1 : 0);
drivers/pci/pcie/aspm.c
1665
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1675
link->aspm_disable &= ~state;
drivers/pci/pcie/aspm.c
1678
link->aspm_disable &= ~PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
1680
link->aspm_disable |= state;
drivers/pci/pcie/aspm.c
1682
link->aspm_disable |= PCIE_LINK_STATE_L1SS;
drivers/pci/pcie/aspm.c
1685
pcie_config_aspm_link(link, policy_to_aspm_state(link));
drivers/pci/pcie/aspm.c
1714
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1716
return sysfs_emit(buf, "%d\n", link->clkpm_enabled);
drivers/pci/pcie/aspm.c
1724
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1733
link->clkpm_disable = !state_enable;
drivers/pci/pcie/aspm.c
1734
pcie_set_clkpm(link, policy_to_clkpm_state(link));
drivers/pci/pcie/aspm.c
1766
struct pcie_link_state *link = pcie_aspm_get_link(pdev);
drivers/pci/pcie/aspm.c
1776
if (aspm_disabled || !link)
drivers/pci/pcie/aspm.c
1780
return link->clkpm_capable ? a->mode : 0;
drivers/pci/pcie/aspm.c
1782
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
614
struct pcie_link_state *link;
drivers/pci/pcie/aspm.c
621
link = endpoint->bus->self->link_state;
drivers/pci/pcie/aspm.c
631
while (link) {
drivers/pci/pcie/aspm.c
632
struct pci_dev *dev = pci_function_0(link->pdev->subordinate);
drivers/pci/pcie/aspm.c
635
pcie_capability_read_dword(link->pdev, PCI_EXP_LNKCAP,
drivers/pci/pcie/aspm.c
645
if ((link->aspm_capable & PCIE_LINK_STATE_L0S_UP) &&
drivers/pci/pcie/aspm.c
647
link->aspm_capable &= ~PCIE_LINK_STATE_L0S_UP;
drivers/pci/pcie/aspm.c
650
if ((link->aspm_capable & PCIE_LINK_STATE_L0S_DW) &&
drivers/pci/pcie/aspm.c
652
link->aspm_capable &= ~PCIE_LINK_STATE_L0S_DW;
drivers/pci/pcie/aspm.c
667
if ((link->aspm_capable & PCIE_LINK_STATE_L1) &&
drivers/pci/pcie/aspm.c
669
link->aspm_capable &= ~PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
672
link = link->parent;
drivers/pci/pcie/aspm.c
677
static void aspm_calc_l12_info(struct pcie_link_state *link,
drivers/pci/pcie/aspm.c
680
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/pcie/aspm.c
783
static void aspm_l1ss_init(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
785
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/pcie/aspm.c
812
link->aspm_support |= PCIE_LINK_STATE_L1_1;
drivers/pci/pcie/aspm.c
814
link->aspm_support |= PCIE_LINK_STATE_L1_2;
drivers/pci/pcie/aspm.c
816
link->aspm_support |= PCIE_LINK_STATE_L1_1_PCIPM;
drivers/pci/pcie/aspm.c
818
link->aspm_support |= PCIE_LINK_STATE_L1_2_PCIPM;
drivers/pci/pcie/aspm.c
828
link->aspm_enabled |= PCIE_LINK_STATE_L1_1;
drivers/pci/pcie/aspm.c
830
link->aspm_enabled |= PCIE_LINK_STATE_L1_2;
drivers/pci/pcie/aspm.c
832
link->aspm_enabled |= PCIE_LINK_STATE_L1_1_PCIPM;
drivers/pci/pcie/aspm.c
834
link->aspm_enabled |= PCIE_LINK_STATE_L1_2_PCIPM;
drivers/pci/pcie/aspm.c
836
if (link->aspm_support & PCIE_LINK_STATE_L1_2_MASK)
drivers/pci/pcie/aspm.c
837
aspm_calc_l12_info(link, parent_l1ss_cap, child_l1ss_cap);
drivers/pci/pcie/aspm.c
842
static void pcie_aspm_override_default_link_state(struct pcie_link_state *link)
drivers/pci/pcie/aspm.c
844
struct pci_dev *pdev = link->downstream;
drivers/pci/pcie/aspm.c
849
if (link->aspm_support & PCIE_LINK_STATE_L0S)
drivers/pci/pcie/aspm.c
850
link->aspm_default |= PCIE_LINK_STATE_L0S;
drivers/pci/pcie/aspm.c
851
if (link->aspm_support & PCIE_LINK_STATE_L1)
drivers/pci/pcie/aspm.c
852
link->aspm_default |= PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
853
override = link->aspm_default & ~link->aspm_enabled;
drivers/pci/pcie/aspm.c
861
static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
drivers/pci/pcie/aspm.c
863
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/pcie/aspm.c
869
link->aspm_enabled = PCIE_LINK_STATE_ASPM_ALL;
drivers/pci/pcie/aspm.c
870
link->aspm_disable = PCIE_LINK_STATE_ASPM_ALL;
drivers/pci/pcie/aspm.c
883
pcie_aspm_configure_common_clock(link);
drivers/pci/pcie/aspm.c
911
link->aspm_support |= PCIE_LINK_STATE_L0S;
drivers/pci/pcie/aspm.c
914
link->aspm_enabled |= PCIE_LINK_STATE_L0S_UP;
drivers/pci/pcie/aspm.c
916
link->aspm_enabled |= PCIE_LINK_STATE_L0S_DW;
drivers/pci/pcie/aspm.c
920
link->aspm_support |= PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
923
link->aspm_enabled |= PCIE_LINK_STATE_L1;
drivers/pci/pcie/aspm.c
925
aspm_l1ss_init(link);
drivers/pci/pcie/aspm.c
935
link->aspm_default = link->aspm_enabled;
drivers/pci/pcie/aspm.c
937
pcie_aspm_override_default_link_state(link);
drivers/pci/pcie/aspm.c
940
link->aspm_capable = link->aspm_support;
drivers/pci/pcie/aspm.c
953
static void pcie_config_aspm_l1ss(struct pcie_link_state *link, u32 state)
drivers/pci/pcie/aspm.c
956
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/pcie/aspm.c
994
static void pcie_config_aspm_link(struct pcie_link_state *link, u32 state)
drivers/pci/pcie/aspm.c
997
struct pci_dev *child = link->downstream, *parent = link->pdev;
drivers/pci/quirks.c
1149
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
1270
struct device_link *link;
drivers/platform/wmi/core.c
1281
link = device_link_add(&wdev->dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER);
drivers/platform/wmi/core.c
1282
if (!link)
drivers/platform/x86/intel/vsec.c
199
struct device_link *link;
drivers/platform/x86/intel/vsec.c
210
link = device_link_add(dev, suppliers[supplier_id],
drivers/platform/x86/intel/vsec.c
212
if (!link)
drivers/pmdomain/core.c
1022
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1023
genpd_sd_counter_dec(link->parent);
drivers/pmdomain/core.c
1024
genpd_lock_nested(link->parent, depth + 1);
drivers/pmdomain/core.c
1025
genpd_power_off(link->parent, false, depth + 1);
drivers/pmdomain/core.c
1026
genpd_unlock(link->parent);
drivers/pmdomain/core.c
1040
struct gpd_link *link;
drivers/pmdomain/core.c
1054
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1055
struct generic_pm_domain *parent = link->parent;
drivers/pmdomain/core.c
1079
list_for_each_entry_continue_reverse(link,
drivers/pmdomain/core.c
1082
genpd_sd_counter_dec(link->parent);
drivers/pmdomain/core.c
1083
genpd_lock_nested(link->parent, depth + 1);
drivers/pmdomain/core.c
1084
genpd_power_off(link->parent, false, depth + 1);
drivers/pmdomain/core.c
1085
genpd_unlock(link->parent);
drivers/pmdomain/core.c
1407
struct gpd_link *link;
drivers/pmdomain/core.c
1417
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
1418
struct generic_pm_domain *child = link->child;
drivers/pmdomain/core.c
1447
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1448
genpd_sd_counter_dec(link->parent);
drivers/pmdomain/core.c
1451
genpd_lock_nested(link->parent, depth + 1);
drivers/pmdomain/core.c
1453
genpd_sync_power_off(link->parent, use_lock, depth + 1);
drivers/pmdomain/core.c
1456
genpd_unlock(link->parent);
drivers/pmdomain/core.c
1473
struct gpd_link *link;
drivers/pmdomain/core.c
1478
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1479
genpd_sd_counter_inc(link->parent);
drivers/pmdomain/core.c
1482
genpd_lock_nested(link->parent, depth + 1);
drivers/pmdomain/core.c
1484
genpd_sync_power_on(link->parent, use_lock, depth + 1);
drivers/pmdomain/core.c
1487
genpd_unlock(link->parent);
drivers/pmdomain/core.c
1879
struct gpd_link *link;
drivers/pmdomain/core.c
1884
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
1885
struct generic_pm_domain *parent = link->parent;
drivers/pmdomain/core.c
2148
struct gpd_link *link, *itr;
drivers/pmdomain/core.c
2166
link = kzalloc_obj(*link);
drivers/pmdomain/core.c
2167
if (!link)
drivers/pmdomain/core.c
2185
link->parent = genpd;
drivers/pmdomain/core.c
2186
list_add_tail(&link->parent_node, &genpd->parent_links);
drivers/pmdomain/core.c
2187
link->child = subdomain;
drivers/pmdomain/core.c
2188
list_add_tail(&link->child_node, &subdomain->child_links);
drivers/pmdomain/core.c
2196
kfree(link);
drivers/pmdomain/core.c
2226
struct gpd_link *l, *link;
drivers/pmdomain/core.c
2242
list_for_each_entry_safe(link, l, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
2243
if (link->child != subdomain)
drivers/pmdomain/core.c
2246
list_del(&link->parent_node);
drivers/pmdomain/core.c
2247
list_del(&link->child_node);
drivers/pmdomain/core.c
2248
kfree(link);
drivers/pmdomain/core.c
2468
struct gpd_link *l, *link;
drivers/pmdomain/core.c
2487
list_for_each_entry_safe(link, l, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
2488
list_del(&link->parent_node);
drivers/pmdomain/core.c
2489
list_del(&link->child_node);
drivers/pmdomain/core.c
2490
kfree(link);
drivers/pmdomain/core.c
2556
struct list_head link;
drivers/pmdomain/core.c
2641
list_add(&cp->link, &of_genpd_providers);
drivers/pmdomain/core.c
2860
list_for_each_entry_safe(cp, tmp, &of_genpd_providers, link) {
drivers/pmdomain/core.c
2881
list_del(&cp->link);
drivers/pmdomain/core.c
2915
list_for_each_entry(provider, &of_genpd_providers, link) {
drivers/pmdomain/core.c
355
struct gpd_link *link;
drivers/pmdomain/core.c
3832
struct gpd_link *link;
drivers/pmdomain/core.c
3855
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
3856
if (list_is_first(&link->parent_node, &genpd->parent_links))
drivers/pmdomain/core.c
3858
seq_printf(s, "%s", link->child->name);
drivers/pmdomain/core.c
3859
if (!list_is_last(&link->parent_node, &genpd->parent_links))
drivers/pmdomain/core.c
387
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
388
if (link->performance_state > state)
drivers/pmdomain/core.c
389
state = link->performance_state;
drivers/pmdomain/core.c
3930
struct gpd_link *link;
drivers/pmdomain/core.c
3937
list_for_each_entry(link, &genpd->parent_links, parent_node)
drivers/pmdomain/core.c
3938
seq_printf(s, "%s\n", link->child->name);
drivers/pmdomain/core.c
410
static void _genpd_rollback_parent_state(struct gpd_link *link, int depth)
drivers/pmdomain/core.c
412
struct generic_pm_domain *parent = link->parent;
drivers/pmdomain/core.c
417
parent_state = link->prev_performance_state;
drivers/pmdomain/core.c
418
link->performance_state = parent_state;
drivers/pmdomain/core.c
430
struct gpd_link *link,
drivers/pmdomain/core.c
433
struct generic_pm_domain *parent = link->parent;
drivers/pmdomain/core.c
445
link->prev_performance_state = link->performance_state;
drivers/pmdomain/core.c
446
link->performance_state = parent_state;
drivers/pmdomain/core.c
451
link->performance_state = link->prev_performance_state;
drivers/pmdomain/core.c
461
struct gpd_link *link = NULL;
drivers/pmdomain/core.c
469
list_for_each_entry(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
470
ret = _genpd_set_parent_state(genpd, link, state, depth);
drivers/pmdomain/core.c
479
if (link)
drivers/pmdomain/core.c
487
list_for_each_entry_reverse(link, &genpd->child_links, child_node) {
drivers/pmdomain/core.c
488
ret = _genpd_set_parent_state(genpd, link, state, depth);
drivers/pmdomain/core.c
498
list_for_each_entry_continue_reverse(link, &genpd->child_links, child_node)
drivers/pmdomain/core.c
499
_genpd_rollback_parent_state(link, depth);
drivers/pmdomain/core.c
502
list_for_each_entry_continue(link, &genpd->child_links, child_node)
drivers/pmdomain/core.c
503
_genpd_rollback_parent_state(link, depth);
drivers/pmdomain/core.c
955
struct gpd_link *link;
drivers/pmdomain/core.c
977
list_for_each_entry(link, &genpd->parent_links, parent_node) {
drivers/pmdomain/core.c
978
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/pmdomain/imx/imx93-blk-ctrl.c
216
struct imx93_blk_ctrl_subdomain_link *link = data;
drivers/pmdomain/imx/imx93-blk-ctrl.c
218
pm_genpd_remove_subdomain(link->parent, link->subdomain);
drivers/pmdomain/imx/imx93-blk-ctrl.c
323
struct imx93_blk_ctrl_subdomain_link *link;
drivers/pmdomain/imx/imx93-blk-ctrl.c
329
link = devm_kzalloc(dev, sizeof(*link), GFP_KERNEL);
drivers/pmdomain/imx/imx93-blk-ctrl.c
330
if (!link)
drivers/pmdomain/imx/imx93-blk-ctrl.c
333
link->parent = &bc->domains[data->parent].genpd;
drivers/pmdomain/imx/imx93-blk-ctrl.c
334
link->subdomain = &domain->genpd;
drivers/pmdomain/imx/imx93-blk-ctrl.c
342
ret = devm_add_action_or_reset(dev, imx93_release_subdomain, link);
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
4759
ptp_ocp_symlink(struct ptp_ocp *bp, struct device *child, const char *link)
drivers/ptp/ptp_ocp.c
4763
if (sysfs_create_link(&dev->kobj, &child->kobj, link))
drivers/ptp/ptp_ocp.c
4764
dev_err(dev, "%s symlink failed\n", link);
drivers/ptp/ptp_ocp.c
4768
ptp_ocp_link_child(struct ptp_ocp *bp, const char *name, const char *link)
drivers/ptp/ptp_ocp.c
4780
ptp_ocp_symlink(bp, child, link);
drivers/ras/amd/atl/access.c
78
F4 = node_to_amd_nb(node)->link;
drivers/regulator/core.c
2428
struct device_link *link;
drivers/regulator/core.c
2543
link = device_link_add(dev, &rdev->dev, DL_FLAG_STATELESS);
drivers/regulator/core.c
2544
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
3347
u8 link[SLI4_BMBX_SIZE];
drivers/scsi/elx/efct/efct_hw.c
3353
if (!sli_cmd_config_link(&hw->sli, link))
drivers/scsi/elx/efct/efct_hw.c
3354
rc = efct_hw_command(hw, link, EFCT_CMD_NOWAIT,
drivers/scsi/elx/efct/efct_hw.c
3365
if (!sli_cmd_init_link(&hw->sli, link, speed, reset_alpa))
drivers/scsi/elx/efct/efct_hw.c
3366
rc = efct_hw_command(hw, link, EFCT_CMD_NOWAIT,
drivers/scsi/elx/efct/efct_hw.c
3374
if (!sli_cmd_down_link(&hw->sli, link))
drivers/scsi/elx/efct/efct_hw.c
3375
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
6129
((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
631
struct device_link *link;
drivers/soc/qcom/ice.c
678
link = device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER);
drivers/soc/qcom/ice.c
679
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
716
struct fwnode_handle *link;
drivers/soundwire/amd_manager.c
726
link = device_get_named_child_node(bus->dev, name);
drivers/soundwire/amd_manager.c
727
if (!link) {
drivers/soundwire/amd_manager.c
731
fwnode_property_read_u32(link, "amd-sdw-enable", &quirk_mask);
drivers/soundwire/amd_manager.c
737
fwnode_property_read_u32(link, "amd-sdw-wakeup-enable", &wake_en_mask);
drivers/soundwire/amd_manager.c
739
fwnode_property_read_u32(link, "amd-sdw-power-mode", &power_mode_mask);
drivers/soundwire/amd_manager.c
742
fwnode_handle_put(link);
drivers/soundwire/intel_auxdevice.c
159
struct fwnode_handle *link;
drivers/soundwire/intel_auxdevice.c
167
link = device_get_named_child_node(bus->dev, name);
drivers/soundwire/intel_auxdevice.c
168
if (!link) {
drivers/soundwire/intel_auxdevice.c
173
fwnode_property_read_u32(link,
drivers/soundwire/intel_auxdevice.c
184
fwnode_property_read_u32(link,
drivers/soundwire/intel_auxdevice.c
196
fwnode_handle_put(link);
drivers/soundwire/intel_auxdevice.c
211
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
214
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
217
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
220
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
223
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
226
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
229
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
232
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
235
fwnode_property_read_u16(link,
drivers/soundwire/intel_auxdevice.c
246
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
116
nval = fwnode_property_count_u32(link, scales_prop);
drivers/soundwire/mipi_disco.c
119
nval = fwnode_property_count_u32(link, scales_prop);
drivers/soundwire/mipi_disco.c
127
fwnode_handle_put(link);
drivers/soundwire/mipi_disco.c
131
ret = fwnode_property_read_u32_array(link,
drivers/soundwire/mipi_disco.c
139
fwnode_property_read_u32(link, "mipi-sdw-default-frame-rate",
drivers/soundwire/mipi_disco.c
142
fwnode_property_read_u32(link, "mipi-sdw-default-frame-row-size",
drivers/soundwire/mipi_disco.c
145
fwnode_property_read_u32(link, "mipi-sdw-default-frame-col-size",
drivers/soundwire/mipi_disco.c
148
prop->dynamic_frame = mipi_fwnode_property_read_bool(link,
drivers/soundwire/mipi_disco.c
151
fwnode_property_read_u32(link, "mipi-sdw-command-error-threshold",
drivers/soundwire/mipi_disco.c
154
fwnode_handle_put(link);
drivers/soundwire/mipi_disco.c
52
struct fwnode_handle *link;
drivers/soundwire/mipi_disco.c
67
link = device_get_named_child_node(bus->dev, name);
drivers/soundwire/mipi_disco.c
68
if (!link) {
drivers/soundwire/mipi_disco.c
73
if (mipi_fwnode_property_read_bool(link,
drivers/soundwire/mipi_disco.c
77
if (mipi_fwnode_property_read_bool(link,
drivers/soundwire/mipi_disco.c
81
fwnode_property_read_u32(link,
drivers/soundwire/mipi_disco.c
85
nval = fwnode_property_count_u32(link, "mipi-sdw-clock-frequencies-supported");
drivers/soundwire/mipi_disco.c
92
fwnode_handle_put(link);
drivers/soundwire/mipi_disco.c
96
ret = fwnode_property_read_u32_array(link,
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3667
struct media_link *link;
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3672
link = media_entity_find_link(
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3675
if (!link) {
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3686
link->flags |= MEDIA_LNK_FL_ENABLED;
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3688
link->flags &= ~MEDIA_LNK_FL_ENABLED;
drivers/staging/media/atomisp/pci/atomisp_cmd.c
3690
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
1487
int link,
drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
1493
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
1151
struct media_link *link,
drivers/staging/media/imx/imx-media-csi.c
1159
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/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
1471
struct v4l2_fwnode_link link;
drivers/staging/media/tegra-video/vi.c
1487
ret = v4l2_fwnode_parse_link(ep, &link);
drivers/staging/media/tegra-video/vi.c
1494
if (link.local_port >= local->num_pads) {
drivers/staging/media/tegra-video/vi.c
1496
link.local_port, to_of_node(link.local_node));
drivers/staging/media/tegra-video/vi.c
1497
v4l2_fwnode_put_link(&link);
drivers/staging/media/tegra-video/vi.c
1502
local_pad = &local->pads[link.local_port];
drivers/staging/media/tegra-video/vi.c
1506
if (link.remote_node == of_fwnode_handle(vi->dev->of_node)) {
drivers/staging/media/tegra-video/vi.c
1518
to_of_node(link.local_node), link.local_port);
drivers/staging/media/tegra-video/vi.c
1519
v4l2_fwnode_put_link(&link);
drivers/staging/media/tegra-video/vi.c
1525
link.remote_node);
drivers/staging/media/tegra-video/vi.c
1528
to_of_node(link.remote_node));
drivers/staging/media/tegra-video/vi.c
1529
v4l2_fwnode_put_link(&link);
drivers/staging/media/tegra-video/vi.c
1535
if (link.remote_port >= remote->num_pads) {
drivers/staging/media/tegra-video/vi.c
1537
link.remote_port,
drivers/staging/media/tegra-video/vi.c
1538
to_of_node(link.remote_node));
drivers/staging/media/tegra-video/vi.c
1539
v4l2_fwnode_put_link(&link);
drivers/staging/media/tegra-video/vi.c
1544
remote_pad = &remote->pads[link.remote_port];
drivers/staging/media/tegra-video/vi.c
1554
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
478
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
11
struct list_head link;
drivers/tee/optee/supp.c
119
list_add_tail(&req->link, &supp->reqs);
drivers/tee/optee/supp.c
139
list_del(&req->link);
drivers/tee/optee/supp.c
188
req = list_first_entry(&supp->reqs, struct optee_supp_req, link);
drivers/tee/optee/supp.c
195
list_del(&req->link);
drivers/tee/optee/supp.c
61
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->dev,
drivers/thunderbolt/acpi.c
64
if (link) {
drivers/thunderbolt/icm.c
1006
sw = tb_switch_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
1008
tb_warn(tb, "no switch exists at %u.%u, ignoring\n", link,
drivers/thunderbolt/icm.c
1013
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
1557
static int icm_ar_get_route(struct tb *tb, u8 link, u8 depth, u64 *route)
drivers/thunderbolt/icm.c
1562
.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
597
request.link_info = xd->depth << ICM_LINK_INFO_DEPTH_SHIFT | xd->link;
drivers/thunderbolt/icm.c
625
phy_port = tb_phy_port_from_link(xd->link);
drivers/thunderbolt/icm.c
678
u8 connection_key, u8 link, u8 depth, bool boot)
drivers/thunderbolt/icm.c
692
sw->link = link;
drivers/thunderbolt/icm.c
711
u8 link, u8 depth)
drivers/thunderbolt/icm.c
721
xd->link = link;
drivers/thunderbolt/icm.c
733
static void update_xdomain(struct tb_xdomain *xd, u64 route, u8 link)
drivers/thunderbolt/icm.c
735
xd->link = link;
drivers/thunderbolt/icm.c
761
u8 link, depth;
drivers/thunderbolt/icm.c
767
link = pkg->link_info & ICM_LINK_INFO_LINK_MASK;
drivers/thunderbolt/icm.c
779
link, depth);
drivers/thunderbolt/icm.c
787
sw_phy_port = tb_phy_port_from_link(sw->link);
drivers/thunderbolt/icm.c
788
phy_port = tb_phy_port_from_link(link);
drivers/thunderbolt/icm.c
804
if (sw->link != link) {
drivers/thunderbolt/icm.c
805
ret = icm->get_route(tb, link, depth, &route);
drivers/thunderbolt/icm.c
808
link, depth);
drivers/thunderbolt/icm.c
817
pkg->connection_key, link, depth, boot);
drivers/thunderbolt/icm.c
837
sw = tb_switch_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
841
dual_link = dual_link_from_link(link);
drivers/thunderbolt/icm.c
851
xd = tb_xdomain_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
857
parent_sw = tb_switch_find_by_link_depth(tb, link, depth - 1);
drivers/thunderbolt/icm.c
860
link, depth);
drivers/thunderbolt/icm.c
864
ret = icm->get_route(tb, link, depth, &route);
drivers/thunderbolt/icm.c
867
link, depth);
drivers/thunderbolt/icm.c
878
sw->link = link;
drivers/thunderbolt/icm.c
904
u8 link, depth;
drivers/thunderbolt/icm.c
906
link = pkg->link_info & ICM_LINK_INFO_LINK_MASK;
drivers/thunderbolt/icm.c
910
if (link > ICM_MAX_LINK || depth > TB_SWITCH_MAX_DEPTH) {
drivers/thunderbolt/icm.c
911
tb_warn(tb, "invalid topology %u.%u, ignoring\n", link, depth);
drivers/thunderbolt/icm.c
915
sw = tb_switch_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
917
tb_warn(tb, "no switch exists at %u.%u, ignoring\n", link,
drivers/thunderbolt/icm.c
939
u8 link, depth;
drivers/thunderbolt/icm.c
942
link = pkg->link_info & ICM_LINK_INFO_LINK_MASK;
drivers/thunderbolt/icm.c
946
if (link > ICM_MAX_LINK || depth > TB_SWITCH_MAX_DEPTH) {
drivers/thunderbolt/icm.c
947
tb_warn(tb, "invalid topology %u.%u, ignoring\n", link, depth);
drivers/thunderbolt/icm.c
961
update_xdomain(xd, route, link);
drivers/thunderbolt/icm.c
981
xd = tb_xdomain_find_by_link_depth(tb, link, depth);
drivers/thunderbolt/icm.c
985
dual_link = dual_link_from_link(link);
drivers/thunderbolt/switch.c
3753
u8 link;
drivers/thunderbolt/switch.c
3781
return sw->link == lookup->link && sw->depth == lookup->depth;
drivers/thunderbolt/switch.c
3795
struct tb_switch *tb_switch_find_by_link_depth(struct tb *tb, u8 link, u8 depth)
drivers/thunderbolt/switch.c
3802
lookup.link = link;
drivers/thunderbolt/tb.c
3350
const struct device_link *link;
drivers/thunderbolt/tb.c
3358
link = device_link_add(&pdev->dev, nhi->dev,
drivers/thunderbolt/tb.c
3361
if (link) {
drivers/thunderbolt/tb.h
1268
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
862
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
2488
u8 link;
drivers/thunderbolt/xdomain.c
2512
if (lookup->link && lookup->link == xd->link &&
drivers/thunderbolt/xdomain.c
2576
struct tb_xdomain *tb_xdomain_find_by_link_depth(struct tb *tb, u8 link,
drivers/thunderbolt/xdomain.c
2583
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
600
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
709
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
816
dentry = devpts_pty_new(fsi, index, tty->link);
drivers/tty/pty.c
821
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
5373
struct device_link *link;
drivers/ufs/core/ufshcd.c
5380
link = device_link_add(&sdev->sdev_gendev,
drivers/ufs/core/ufshcd.c
5383
if (!link) {
drivers/ufs/host/ufs-mediatek.c
2362
struct device_link *link;
drivers/ufs/host/ufs-mediatek.c
2377
link = device_link_add(dev, &reset_pdev->dev,
drivers/ufs/host/ufs-mediatek.c
2380
if (!link) {
drivers/ufs/host/ufs-mediatek.c
2385
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
1665
ep_ring->enqueue->link.control |= cpu_to_le32(TRB_CHAIN);
drivers/usb/cdns3/cdnsp-ring.c
1668
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
2310
char *name, int link)
drivers/usb/gadget/udc/fsl_udc_core.c
2343
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
279
if (TRB_TYPE_LINK_LE32(next->link.control)) {
drivers/usb/host/xhci-dbgcap.c
280
next->link.control ^= cpu_to_le32(TRB_CYCLE);
drivers/usb/host/xhci-dbgcap.c
473
trb->link.segment_ptr = cpu_to_le64(ring->first_seg->dma);
drivers/usb/host/xhci-dbgcap.c
474
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
155
seg->trbs[i].link.control |= cpu_to_le32(TRB_CYCLE);
drivers/usb/host/xhci-mem.c
170
dst->last_seg->trbs[TRBS_PER_SEGMENT-1].link.control
drivers/usb/host/xhci-mem.c
175
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
855
seg->trbs[TRBS_PER_SEGMENT - 1].link.control &= cpu_to_le32(~TRB_CYCLE);
drivers/usb/host/xhci.h
1092
struct xhci_link_trb link;
drivers/usb/misc/usb-ljca.c
207
list_for_each_entry(client, &adap->client_list, link) {
drivers/usb/misc/usb-ljca.c
562
list_add_tail(&client->link, &adap->client_list);
drivers/usb/misc/usb-ljca.c
742
list_for_each_entry_safe_reverse(client, next, &adap->client_list, link) {
drivers/usb/misc/usb-ljca.c
746
list_del_init(&client->link);
drivers/usb/misc/usb-ljca.c
853
list_for_each_entry_safe_reverse(client, next, &adap->client_list, link) {
drivers/usb/misc/usb-ljca.c
857
list_del_init(&client->link);
drivers/usb/misc/usbio.c
132
struct list_head link;
drivers/usb/misc/usbio.c
472
list_add_tail(&client->link, &usbio->cli_list);
drivers/usb/misc/usbio.c
532
list_for_each_entry(client, &usbio->cli_list, link) {
drivers/usb/misc/usbio.c
542
list_for_each_entry_safe_reverse(client, next, &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
216
struct rb_node **link = &iommu->dma_list.rb_node, *parent = NULL;
drivers/vfio/vfio_iommu_type1.c
221
while (*link) {
drivers/vfio/vfio_iommu_type1.c
222
parent = *link;
drivers/vfio/vfio_iommu_type1.c
226
link = &(*link)->rb_left;
drivers/vfio/vfio_iommu_type1.c
228
link = &(*link)->rb_right;
drivers/vfio/vfio_iommu_type1.c
231
rb_link_node(&new->node, parent, link);
drivers/vfio/vfio_iommu_type1.c
362
struct rb_node **link, *parent = NULL;
drivers/vfio/vfio_iommu_type1.c
365
link = &dma->pfn_list.rb_node;
drivers/vfio/vfio_iommu_type1.c
366
while (*link) {
drivers/vfio/vfio_iommu_type1.c
367
parent = *link;
drivers/vfio/vfio_iommu_type1.c
371
link = &(*link)->rb_left;
drivers/vfio/vfio_iommu_type1.c
373
link = &(*link)->rb_right;
drivers/vfio/vfio_iommu_type1.c
376
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
2473
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
967
hlist_for_each_entry(se_lun, &tpg_entry->se_tpg.tpg_lun_hlist, link) {
fs/9p/vfs_inode.c
1371
.link = v9fs_vfs_link,
fs/9p/vfs_inode_dotl.c
967
.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
63
.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
269
.link = bfs_link,
fs/btrfs/free-space-cache.c
2645
goto link;
fs/btrfs/free-space-cache.c
2659
link:
fs/btrfs/inode.c
10520
.link = btrfs_link,
fs/ceph/dir.c
2257
.link = ceph_link,
fs/ceph/subvolume_metrics.c
79
struct rb_node **link = &tracker->tree.rb_root.rb_node;
fs/ceph/subvolume_metrics.c
83
while (*link) {
fs/ceph/subvolume_metrics.c
85
rb_entry(*link, struct ceph_subvol_metric_rb_entry, node);
fs/ceph/subvolume_metrics.c
87
parent = *link;
fs/ceph/subvolume_metrics.c
89
link = &(*link)->rb_left;
fs/ceph/subvolume_metrics.c
91
link = &(*link)->rb_right;
fs/ceph/subvolume_metrics.c
97
rb_link_node(&entry->node, parent, link);
fs/coda/dir.c
553
.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/fscrypt_private.h
251
struct list_head link;
fs/crypto/fscrypt_private.h
503
struct list_head 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/crypto/keyring.c
116
list_for_each_entry_safe(node, tmp, &mk->mk_mode_keys, link) {
fs/crypto/keyring.c
118
list_del(&node->link);
fs/crypto/keyring.c
1207
list_for_each_entry(mk_user, &mk->mk_users, link) {
fs/crypto/keyring.c
324
list_for_each_entry(mk_user, &mk->mk_users, link) {
fs/crypto/keyring.c
367
list_add(&mk_user->link, &mk->mk_users);
fs/crypto/keyring.c
373
list_del(&mk_user->link);
fs/crypto/keyring.c
403
list_for_each_entry_safe(mk_user, tmp, &mk->mk_users, link)
fs/crypto/keysetup.c
206
list_for_each_entry_rcu(node, &mk->mk_mode_keys, link) {
fs/crypto/keysetup.c
296
list_add_tail_rcu(&new_node->link, &mk->mk_mode_keys);
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
1126
.link = ecryptfs_link,
fs/ecryptfs/inode.c
641
const char *link;
fs/ecryptfs/inode.c
645
link = vfs_get_link(lower_dentry, &done);
fs/ecryptfs/inode.c
646
if (IS_ERR(link))
fs/ecryptfs/inode.c
647
return ERR_CAST(link);
fs/ecryptfs/inode.c
650
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
411
.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
4225
.link = ext4_link,
fs/f2fs/namei.c
1371
.link = f2fs_link,
fs/f2fs/namei.c
638
const char *link = page_get_link(dentry, inode, done);
fs/f2fs/namei.c
640
if (!IS_ERR(link) && !*link) {
fs/f2fs/namei.c
644
link = ERR_PTR(-ENOENT);
fs/f2fs/namei.c
646
return link;
fs/fuse/dir.c
1133
struct dentry *entry, const char *link)
fs/fuse/dir.c
1136
unsigned len = strlen(link) + 1;
fs/fuse/dir.c
1145
args.in_args[2].value = link;
fs/fuse/dir.c
1820
char *link;
fs/fuse/dir.c
1840
link = folio_address(folio);
fs/fuse/dir.c
1841
link[res] = '\0';
fs/fuse/dir.c
2403
.link = fuse_link,
fs/fuse/fuse_dev_i.h
136
void (*send_forget)(struct fuse_iqueue *fiq, struct fuse_forget_link *link);
fs/fuse/poll.c
126
struct rb_node **link;
fs/fuse/poll.c
130
link = fuse_find_polled_node(fc, kh, NULL);
fs/fuse/poll.c
131
if (*link) {
fs/fuse/poll.c
134
ff = rb_entry(*link, struct fuse_file, polled_node);
fs/fuse/poll.c
31
struct rb_node **link = &fc->polled_files.rb_node;
fs/fuse/poll.c
34
while (*link) {
fs/fuse/poll.c
37
last = *link;
fs/fuse/poll.c
41
link = &last->rb_left;
fs/fuse/poll.c
43
link = &last->rb_right;
fs/fuse/poll.c
45
return link;
fs/fuse/poll.c
50
return link;
fs/fuse/poll.c
64
struct rb_node **link, *parent;
fs/fuse/poll.c
66
link = fuse_find_polled_node(fc, ff->kh, &parent);
fs/fuse/poll.c
67
BUG_ON(*link);
fs/fuse/poll.c
68
rb_link_node(&ff->polled_node, parent, link);
fs/fuse/virtio_fs.c
1258
static void virtio_fs_send_forget(struct fuse_iqueue *fiq, struct fuse_forget_link *link)
fs/fuse/virtio_fs.c
1272
.nodeid = link->forget_one.nodeid,
fs/fuse/virtio_fs.c
1277
.nlookup = link->forget_one.nlookup,
fs/fuse/virtio_fs.c
1281
kfree(link);
fs/gfs2/inode.c
2311
.link = gfs2_link,
fs/hfsplus/dir.c
623
.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
1221
.link = simple_link,
fs/internal.h
58
int may_linkat(struct mnt_idmap *idmap, const struct path *link);
fs/isofs/rock.c
465
slp = &rr->u.SL.link;
fs/isofs/rock.c
624
slp = &rr->u.SL.link;
fs/isofs/rock.c
720
char *link = folio_address(folio);
fs/isofs/rock.c
723
char *rpnt = link;
fs/isofs/rock.c
783
link + (PAGE_SIZE - 1));
fs/isofs/rock.c
803
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
1201
path_put(&last->link);
fs/namei.c
1299
audit_inode(nd->name, nd->stack[0].link.dentry, 0);
fs/namei.c
1360
int may_linkat(struct mnt_idmap *idmap, const struct path *link)
fs/namei.c
1362
struct inode *inode = link->dentry->d_inode;
fs/namei.c
1979
static int reserve_stack(struct nameidata *nd, struct path *link)
fs/namei.c
1994
bool grabbed_link = legitimize_path(nd, link, nd->next_seq);
fs/namei.c
2007
static noinline const char *pick_link(struct nameidata *nd, struct path *link,
fs/namei.c
2016
if (read_seqcount_retry(&link->dentry->d_seq, nd->next_seq))
fs/namei.c
2019
if (link->mnt == nd->path.mnt)
fs/namei.c
2020
mntget(link->mnt);
fs/namei.c
2023
error = reserve_stack(nd, link);
fs/namei.c
2026
path_put(link);
fs/namei.c
2030
last->link = *link;
fs/namei.c
2041
unlikely(link->mnt->mnt_flags & MNT_NOSYMFOLLOW))
fs/namei.c
2044
if (unlikely(atime_needs_update(&last->link, inode))) {
fs/namei.c
2049
touch_atime(&last->link);
fs/namei.c
2053
error = security_inode_follow_link(link->dentry, inode,
fs/namei.c
2066
res = get(link->dentry, inode, &last->done);
fs/namei.c
2068
res = get(link->dentry, inode, &last->done);
fs/namei.c
2600
const char *link;
fs/namei.c
2653
link = walk_component(nd, 0);
fs/namei.c
2656
link = walk_component(nd, WALK_MORE);
fs/namei.c
2658
if (unlikely(link)) {
fs/namei.c
2659
if (IS_ERR(link))
fs/namei.c
2660
return PTR_ERR(link);
fs/namei.c
2663
name = link;
fs/namei.c
5771
if (!dir->i_op->link)
fs/namei.c
5791
error = dir->i_op->link(old_dentry, dir, new_dentry);
fs/namei.c
5888
SYSCALL_DEFINE2(link, const char __user *, oldname, const char __user *, newname)
fs/namei.c
6239
int readlink_copy(char __user *buffer, int buflen, const char *link, int linklen)
fs/namei.c
6246
if (copy_to_user(buffer, link, copylen))
fs/namei.c
6265
const char *link;
fs/namei.c
6283
link = READ_ONCE(inode->i_link);
fs/namei.c
6284
if (!link) {
fs/namei.c
6285
link = inode->i_op->get_link(dentry, inode, &done);
fs/namei.c
6286
if (IS_ERR(link))
fs/namei.c
6287
return PTR_ERR(link);
fs/namei.c
6289
res = readlink_copy(buffer, buflen, link, strlen(link));
fs/namei.c
6396
const char *link;
fs/namei.c
6400
link = page_get_link(dentry, d_inode(dentry), &done);
fs/namei.c
6401
res = PTR_ERR(link);
fs/namei.c
6402
if (!IS_ERR(link))
fs/namei.c
6403
res = readlink_copy(buffer, buflen, link, strlen(link));
fs/namei.c
739
struct path link;
fs/namei.c
851
path_put(&nd->stack[i].link);
fs/namei.c
895
if (unlikely(!legitimize_path(nd, &last->link, last->seq))) {
fs/namespace.c
1078
struct rb_node **link = &ns->mounts.rb_node;
fs/namespace.c
1084
while (*link) {
fs/namespace.c
1085
parent = *link;
fs/namespace.c
1087
link = &parent->rb_left;
fs/namespace.c
1090
link = &parent->rb_right;
fs/namespace.c
1099
rb_link_node(&mnt->mnt_node, parent, link);
fs/netfs/locking.c
13
struct list_head link; /* Link in ictx->wb_queue */
fs/netfs/locking.c
226
list_add_tail(&waiter.link, &ictx->wb_queue);
fs/netfs/locking.c
286
waiter = list_first_entry_or_null(&ictx->wb_queue, struct netfs_wb_waiter, link);
fs/netfs/locking.c
288
list_del(&waiter->link);
fs/nfs/dir.c
2702
error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name);
fs/nfs/nfs3proc.c
1046
.link = nfs_link,
fs/nfs/nfs3proc.c
1100
.link = nfs3_proc_link,
fs/nfs/nfs3xdr.c
2470
PROC(LINK, link, link, 0),
fs/nfs/nfs4proc.c
10639
.link = nfs_link,
fs/nfs/nfs4proc.c
10707
.link = nfs4_proc_link,
fs/nfs/proc.c
712
.link = nfs_link,
fs/nfs/proc.c
754
.link = nfs_proc_link,
fs/nfsd/nfs4proc.c
953
struct nfsd4_link *link = &u->link;
fs/nfsd/nfs4proc.c
957
link->li_name, link->li_namelen, &cstate->save_fh);
fs/nfsd/nfs4proc.c
959
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
4640
struct nfsd4_link *link = &u->link;
fs/nfsd/nfs4xdr.c
4643
return nfsd4_encode_change_info4(xdr, &link->li_cinfo);
fs/nfsd/vfs.c
1922
const char *link;
fs/nfsd/vfs.c
1939
link = vfs_get_link(path.dentry, &done);
fs/nfsd/vfs.c
1940
if (IS_ERR(link))
fs/nfsd/vfs.c
1941
return nfserrno(PTR_ERR(link));
fs/nfsd/vfs.c
1943
len = strlen(link);
fs/nfsd/vfs.c
1946
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
852
struct nfsd4_link link;
fs/nilfs2/namei.c
565
.link = nilfs_link,
fs/ntfs/namei.c
1575
.link = ntfs_link,
fs/ntfs/reparse.c
24
char link[];
fs/ntfs/reparse.c
302
memcpy(ni->target, wsl_link_data->link, lth);
fs/ntfs/reparse.c
787
memcpy(data->link, target, target_len);
fs/ntfs3/namei.c
508
.link = ntfs_link,
fs/ocfs2/namei.c
2929
.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
1185
ctx.link = vfs_get_link(ctx.lowerpath.dentry, &done);
fs/overlayfs/copy_up.c
1186
if (IS_ERR(ctx.link))
fs/overlayfs/copy_up.c
1187
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, name);
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
1482
.link = ovl_link,
fs/overlayfs/dir.c
205
err = ovl_do_symlink(ofs, dir, newdentry, attr->link);
fs/overlayfs/dir.c
693
const char *link)
fs/overlayfs/dir.c
699
.link = link,
fs/overlayfs/dir.c
757
struct dentry *dentry, const char *link)
fs/overlayfs/dir.c
759
return ovl_create_object(dentry, S_IFLNK, 0, link);
fs/overlayfs/dir.c
80
struct dentry *whiteout, *link;
fs/overlayfs/overlayfs.h
895
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
1181
struct ctl_table *link_table, *link;
fs/proc/proc_sysctl.c
1205
link = link_table;
fs/proc/proc_sysctl.c
1210
link->procname = link_name;
fs/proc/proc_sysctl.c
1211
link->mode = S_IFLNK|S_IRWXUGO;
fs/proc/proc_sysctl.c
1212
link->data = head->root;
fs/proc/proc_sysctl.c
1214
link++;
fs/proc/proc_sysctl.c
1228
const struct ctl_table *entry, *link;
fs/proc/proc_sysctl.c
1237
link = find_entry(&tmp_head, dir, procname, strlen(procname));
fs/proc/proc_sysctl.c
1238
if (!link)
fs/proc/proc_sysctl.c
1240
if (S_ISDIR(link->mode) && S_ISDIR(entry->mode))
fs/proc/proc_sysctl.c
1242
if (S_ISLNK(link->mode) && (link->data == link_root))
fs/proc/proc_sysctl.c
1250
link = find_entry(&tmp_head, dir, procname, strlen(procname));
fs/proc/proc_sysctl.c
1490
const struct ctl_table *link;
fs/proc/proc_sysctl.c
1493
link = find_entry(&link_head, core_parent, name, strlen(name));
fs/proc/proc_sysctl.c
1494
if (link &&
fs/proc/proc_sysctl.c
1495
((S_ISDIR(link->mode) && S_ISDIR(entry->mode)) ||
fs/proc/proc_sysctl.c
1496
(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
1248
.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
365
char *link;
fs/vboxsf/file.c
375
link = kzalloc(PATH_MAX, GFP_KERNEL);
fs/vboxsf/file.c
376
if (!link) {
fs/vboxsf/file.c
381
err = vboxsf_readlink(sbi->root, path, PATH_MAX, link);
fs/vboxsf/file.c
384
kfree(link);
fs/vboxsf/file.c
388
set_delayed_call(done, kfree_link, link);
fs/vboxsf/file.c
389
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
1280
.link = xfs_vn_link,
fs/xfs/xfs_iops.c
1308
.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_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
1524
struct bpf_tracing_multi_link *link);
include/linux/bpf.h
1526
struct bpf_tracing_multi_link *link);
include/linux/bpf.h
1641
struct bpf_tracing_multi_link *link)
include/linux/bpf.h
1646
struct bpf_tracing_multi_link *link)
include/linux/bpf.h
1938
void (*release)(struct bpf_link *link);
include/linux/bpf.h
1942
void (*dealloc)(struct bpf_link *link);
include/linux/bpf.h
1953
void (*dealloc_deferred)(struct bpf_link *link);
include/linux/bpf.h
1954
int (*detach)(struct bpf_link *link);
include/linux/bpf.h
1955
int (*update_prog)(struct bpf_link *link, struct bpf_prog *new_prog,
include/linux/bpf.h
1957
void (*show_fdinfo)(const struct bpf_link *link, struct seq_file *seq);
include/linux/bpf.h
1958
int (*fill_link_info)(const struct bpf_link *link,
include/linux/bpf.h
1960
int (*update_map)(struct bpf_link *link, struct bpf_map *new_map,
include/linux/bpf.h
1966
struct bpf_link *link;
include/linux/bpf.h
1972
struct bpf_link link;
include/linux/bpf.h
1977
struct bpf_tramp_link link;
include/linux/bpf.h
1982
struct bpf_tramp_link link;
include/linux/bpf.h
2002
struct bpf_link link;
include/linux/bpf.h
2011
struct bpf_link link;
include/linux/bpf.h
2017
struct bpf_link *link;
include/linux/bpf.h
2112
int (*reg)(void *kdata, struct bpf_link *link);
include/linux/bpf.h
2113
void (*unreg)(void *kdata, struct bpf_link *link);
include/linux/bpf.h
2114
int (*update)(void *kdata, void *old_kdata, struct bpf_link *link);
include/linux/bpf.h
2321
if (fentries.nodes[i]->link->prog->expected_attach_type == BPF_TRACE_FSESSION)
include/linux/bpf.h
2323
if (fentries.nodes[i]->link->prog->expected_attach_type == BPF_TRACE_FSESSION_MULTI)
include/linux/bpf.h
2332
return node->link->prog->call_session_cookie;
include/linux/bpf.h
2884
void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
include/linux/bpf.h
2887
void bpf_link_init_sleepable(struct bpf_link *link, enum bpf_link_type type,
include/linux/bpf.h
2890
void bpf_tramp_link_init(struct bpf_tramp_link *link, enum bpf_link_type type,
include/linux/bpf.h
2893
int bpf_link_prime(struct bpf_link *link, struct bpf_link_primer *primer);
include/linux/bpf.h
2896
void bpf_link_inc(struct bpf_link *link);
include/linux/bpf.h
2897
struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link);
include/linux/bpf.h
2898
void bpf_link_put(struct bpf_link *link);
include/linux/bpf.h
2899
int bpf_link_new_fd(struct bpf_link *link);
include/linux/bpf.h
3012
int bpf_iter_new_fd(struct bpf_link *link);
include/linux/bpf.h
3013
bool bpf_link_is_iter(struct bpf_link *link);
include/linux/bpf.h
3304
static inline void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
include/linux/bpf.h
3310
static inline void bpf_link_init_sleepable(struct bpf_link *link, enum bpf_link_type type,
include/linux/bpf.h
3316
static inline void bpf_tramp_link_init(struct bpf_tramp_link *link, enum bpf_link_type type,
include/linux/bpf.h
3322
static inline int bpf_link_prime(struct bpf_link *link,
include/linux/bpf.h
3337
static inline void bpf_link_inc(struct bpf_link *link)
include/linux/bpf.h
3341
static inline struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link)
include/linux/bpf.h
3346
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
211
struct coresight_sysfs_link *link;
include/linux/device.h
1380
void device_link_del(struct device_link *link);
include/linux/device.h
1386
static inline bool device_link_test(const struct device_link *link, u32 flags)
include/linux/device.h
1388
return !!(link->flags & flags);
include/linux/dynamic_debug.h
87
struct list_head link;
include/linux/edac.h
503
struct list_head link; /* for global list of mem_ctl_info structs */
include/linux/filelock.h
137
struct list_head link; /* link in AFS vnode's pending_locks list */
include/linux/firewire.h
124
struct list_head link;
include/linux/firewire.h
340
struct list_head link;
include/linux/firewire.h
347
struct list_head link;
include/linux/firewire.h
371
struct list_head link;
include/linux/firewire.h
479
struct list_head link;
include/linux/fs.h
2006
int (*link) (struct dentry *,struct inode *,struct dentry *);
include/linux/fs.h
947
static inline void inode_set_cached_link(struct inode *inode, char *link, int linklen)
include/linux/fs.h
949
VFS_WARN_ON_INODE(strlen(link) != linklen, inode);
include/linux/fs.h
951
inode->i_link = link;
include/linux/gpu_buddy.h
128
struct list_head 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
279
struct io_submit_link link;
include/linux/io_uring_types.h
808
struct io_kiocb *link;
include/linux/iommu.h
1474
static inline int iommu_device_link(struct device *dev, struct device *link)
include/linux/iommu.h
1479
static inline void iommu_device_unlink(struct device *dev, struct device *link)
include/linux/iommu.h
899
int iommu_device_link(struct iommu_device *iommu, struct device *link);
include/linux/iommu.h
900
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
1793
struct hlist_node link;
include/linux/kvm_host.h
239
struct list_head link;
include/linux/kvm_host.h
689
struct hlist_node link;
include/linux/kvm_irqfd.h
36
struct list_head link;
include/linux/libata.h
1001
int (*set_lpm)(struct ata_link *link, enum ata_lpm_policy policy,
include/linux/libata.h
1129
extern int ata_std_prereset(struct ata_link *link, unsigned long deadline);
include/linux/libata.h
1130
extern int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
include/linux/libata.h
1131
int (*check_ready)(struct ata_link *link));
include/linux/libata.h
1132
extern void ata_std_postreset(struct ata_link *link, unsigned int *classes);
include/linux/libata.h
1163
extern bool ata_link_online(struct ata_link *link);
include/linux/libata.h
1164
extern bool ata_link_offline(struct ata_link *link);
include/linux/libata.h
1228
int ata_set_mode(struct ata_link *link, struct ata_device **r_failed_dev);
include/linux/libata.h
1250
extern int sata_scr_valid(struct ata_link *link);
include/linux/libata.h
1251
extern int sata_scr_read(struct ata_link *link, int reg, u32 *val);
include/linux/libata.h
1252
extern int sata_scr_write(struct ata_link *link, int reg, u32 val);
include/linux/libata.h
1253
extern int sata_scr_write_flush(struct ata_link *link, int reg, u32 val);
include/linux/libata.h
1254
extern int sata_set_spd(struct ata_link *link);
include/linux/libata.h
1255
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
include/linux/libata.h
1257
extern int sata_link_hardreset(struct ata_link *link,
include/linux/libata.h
1260
extern int sata_link_resume(struct ata_link *link, const unsigned int *params,
include/linux/libata.h
1262
extern void ata_eh_analyze_ncq_error(struct ata_link *link);
include/linux/libata.h
1269
static inline int sata_scr_valid(struct ata_link *link) { return 0; }
include/linux/libata.h
1270
static inline int sata_scr_read(struct ata_link *link, int reg, u32 *val)
include/linux/libata.h
1274
static inline int sata_scr_write(struct ata_link *link, int reg, u32 val)
include/linux/libata.h
1278
static inline int sata_scr_write_flush(struct ata_link *link, int reg, u32 val)
include/linux/libata.h
1282
static inline int sata_set_spd(struct ata_link *link) { return -EOPNOTSUPP; }
include/linux/libata.h
1283
static inline int sata_std_hardreset(struct ata_link *link, unsigned int *class,
include/linux/libata.h
1288
static inline int sata_link_hardreset(struct ata_link *link,
include/linux/libata.h
1298
static inline int sata_link_resume(struct ata_link *link,
include/linux/libata.h
1304
static inline void ata_eh_analyze_ncq_error(struct ata_link *link) { }
include/linux/libata.h
1306
extern int sata_link_debounce(struct ata_link *link,
include/linux/libata.h
1308
extern int sata_link_scr_lpm(struct ata_link *link, enum ata_lpm_policy policy,
include/linux/libata.h
1324
extern bool sata_lpm_ignore_phy_events(struct ata_link *link);
include/linux/libata.h
1414
extern int ata_link_abort(struct ata_link *link);
include/linux/libata.h
1428
extern int ata_link_nr_enabled(struct ata_link *link);
include/linux/libata.h
1521
static inline bool ata_is_host_link(const struct ata_link *link)
include/linux/libata.h
1523
return link == &link->ap->link || link == link->ap->slave_link;
include/linux/libata.h
1536
static inline bool ata_is_host_link(const struct ata_link *link)
include/linux/libata.h
1542
static inline int sata_srst_pmp(struct ata_link *link)
include/linux/libata.h
1544
if (sata_pmp_supported(link->ap) && ata_is_host_link(link))
include/linux/libata.h
1546
return link->pmp;
include/linux/libata.h
1563
#define ata_link_printk(level, link, fmt, ...) \
include/linux/libata.h
1565
if (sata_pmp_attached((link)->ap) || \
include/linux/libata.h
1566
(link)->ap->slave_link) \
include/linux/libata.h
1568
(link)->ap->print_id, \
include/linux/libata.h
1569
(link)->pmp, \
include/linux/libata.h
1573
(link)->ap->print_id, \
include/linux/libata.h
1577
#define ata_link_err(link, fmt, ...) \
include/linux/libata.h
1578
ata_link_printk(err, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1579
#define ata_link_warn(link, fmt, ...) \
include/linux/libata.h
1580
ata_link_printk(warn, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1581
#define ata_link_notice(link, fmt, ...) \
include/linux/libata.h
1582
ata_link_printk(notice, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1583
#define ata_link_info(link, fmt, ...) \
include/linux/libata.h
1584
ata_link_printk(info, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1585
#define ata_link_dbg(link, fmt, ...) \
include/linux/libata.h
1586
ata_link_printk(debug, link, fmt, ##__VA_ARGS__)
include/linux/libata.h
1590
(dev)->link->ap->print_id, \
include/linux/libata.h
1591
(dev)->link->pmp + (dev)->devno, \
include/linux/libata.h
1607
(dev)->link->ap->print_id, \
include/linux/libata.h
1608
(dev)->link->pmp + (dev)->devno, \
include/linux/libata.h
1724
static inline int ata_link_max_devices(const struct ata_link *link)
include/linux/libata.h
1726
if (ata_is_host_link(link) && link->ap->flags & ATA_FLAG_SLAVE_POSS)
include/linux/libata.h
1731
static inline int ata_link_active(struct ata_link *link)
include/linux/libata.h
1733
return ata_tag_valid(link->active_tag) || link->sactive;
include/linux/libata.h
1763
extern struct ata_link *ata_link_next(struct ata_link *link,
include/linux/libata.h
1768
struct ata_link *link,
include/linux/libata.h
1785
#define ata_for_each_link(link, ap, mode) \
include/linux/libata.h
1786
for ((link) = ata_link_next(NULL, (ap), ATA_LITER_##mode); (link); \
include/linux/libata.h
1787
(link) = ata_link_next((link), (ap), ATA_LITER_##mode))
include/linux/libata.h
1789
#define ata_for_each_dev(dev, link, mode) \
include/linux/libata.h
1790
for ((dev) = ata_dev_next(NULL, (link), ATA_DITER_##mode); (dev); \
include/linux/libata.h
1791
(dev) = ata_dev_next((dev), (link), ATA_DITER_##mode))
include/linux/libata.h
1890
tf->ctl = dev->link->ap->ctl;
include/linux/libata.h
2035
extern int ata_sff_wait_ready(struct ata_link *link, unsigned long deadline);
include/linux/libata.h
2050
extern void ata_sff_queue_pio_task(struct ata_link *link, unsigned long delay);
include/linux/libata.h
2059
extern int ata_sff_prereset(struct ata_link *link, unsigned long deadline);
include/linux/libata.h
2062
extern int ata_sff_wait_after_reset(struct ata_link *link, unsigned int devmask,
include/linux/libata.h
2064
extern int ata_sff_softreset(struct ata_link *link, unsigned int *classes,
include/linux/libata.h
2066
extern int sata_sff_hardreset(struct ata_link *link, unsigned int *class,
include/linux/libata.h
2068
extern void ata_sff_postreset(struct ata_link *link, unsigned int *classes);
include/linux/libata.h
2172
static inline int sata_sff_hardreset(struct ata_link *link, unsigned int *class,
include/linux/libata.h
542
typedef int (*ata_prereset_fn_t)(struct ata_link *link, unsigned long deadline);
include/linux/libata.h
543
typedef int (*ata_reset_fn_t)(struct ata_link *link, unsigned int *classes,
include/linux/libata.h
545
typedef void (*ata_postreset_fn_t)(struct ata_link *link, unsigned int *classes);
include/linux/libata.h
721
struct ata_link *link;
include/linux/libata.h
906
struct ata_link link; /* host default link */
include/linux/libata.h
977
int (*set_mode)(struct ata_link *link, struct ata_device **r_failed_dev);
include/linux/libata.h
997
int (*scr_read)(struct ata_link *link, unsigned int sc_reg, u32 *val);
include/linux/libata.h
998
int (*scr_write)(struct ata_link *link, unsigned int sc_reg, u32 val);
include/linux/mmu_notifier.h
257
struct llist_node link;
include/linux/mroute_base.h
36
int link;
include/linux/netdevice.h
1007
struct bpf_xdp_link *link;
include/linux/nfs_xdr.h
1815
int (*link) (struct inode *, struct inode *, const struct qstr *);
include/linux/pci-pwrctrl.h
48
struct device_link *link;
include/linux/phy.h
698
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
201
struct rb_node **link = &tree->rb_root.rb_node;
include/linux/rbtree.h
205
while (*link) {
include/linux/rbtree.h
206
parent = *link;
include/linux/rbtree.h
208
link = &parent->rb_left;
include/linux/rbtree.h
210
link = &parent->rb_right;
include/linux/rbtree.h
215
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
linkop(node, parent, link);
include/linux/rbtree.h
238
rb_link_node(node, parent, link);
include/linux/rbtree.h
246
rb_link_linked_node(struct rb_node *node, struct rb_node *parent, struct rb_node **link)
include/linux/rbtree.h
254
if (link == &parent->rb_left) {
include/linux/rbtree.h
318
struct rb_node **link = &tree->rb_root.rb_node;
include/linux/rbtree.h
322
while (*link) {
include/linux/rbtree.h
323
parent = *link;
include/linux/rbtree.h
327
link = &parent->rb_left;
include/linux/rbtree.h
329
link = &parent->rb_right;
include/linux/rbtree.h
336
rb_link_node(node, parent, link);
include/linux/rbtree.h
354
struct rb_node **link = &tree->rb_node;
include/linux/rbtree.h
358
while (*link) {
include/linux/rbtree.h
359
parent = *link;
include/linux/rbtree.h
363
link = &parent->rb_left;
include/linux/rbtree.h
365
link = &parent->rb_right;
include/linux/rbtree.h
370
rb_link_node(node, parent, link);
include/linux/rbtree.h
390
struct rb_node **link = &tree->rb_node;
include/linux/rbtree.h
394
while (*link) {
include/linux/rbtree.h
395
parent = *link;
include/linux/rbtree.h
399
link = &parent->rb_left;
include/linux/rbtree.h
401
link = &parent->rb_right;
include/linux/rbtree.h
406
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/simple_ring_buffer.h
15
struct list_head link;
include/linux/skmsg.h
104
struct list_head link;
include/linux/skmsg.h
472
static inline void sk_psock_free_link(struct sk_psock_link *link)
include/linux/skmsg.h
474
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
102
static inline unsigned int tb_phy_port_from_link(unsigned int link)
include/linux/thunderbolt.h
104
return (link - 1) / TB_LINKS_PER_PHY_PORT;
include/linux/thunderbolt.h
285
u8 link;
include/linux/trace_events.h
779
int bpf_probe_register(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link);
include/linux/trace_events.h
780
int bpf_probe_unregister(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link);
include/linux/trace_events.h
816
static inline int bpf_probe_register(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link)
include/linux/trace_events.h
820
static inline int bpf_probe_unregister(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link)
include/linux/trace_events.h
917
void bpf_trace_run1(struct bpf_raw_tp_link *link, u64 arg1);
include/linux/trace_events.h
918
void bpf_trace_run2(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2);
include/linux/trace_events.h
919
void bpf_trace_run3(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
921
void bpf_trace_run4(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
923
void bpf_trace_run5(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
925
void bpf_trace_run6(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
927
void bpf_trace_run7(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
929
void bpf_trace_run8(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
932
void bpf_trace_run9(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
935
void bpf_trace_run10(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
938
void bpf_trace_run11(struct bpf_raw_tp_link *link, u64 arg1, u64 arg2,
include/linux/trace_events.h
941
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
1349
void __media_remove_intf_link(struct media_link *link);
include/media/media-entity.h
1358
void media_remove_intf_link(struct media_link *link);
include/media/media-entity.h
1430
struct media_link *link,
include/media/media-entity.h
1441
#define for_each_media_entity_data_link(entity, link) \
include/media/media-entity.h
1442
for (link = __media_entity_next_link(entity, NULL, \
include/media/media-entity.h
1444
link; \
include/media/media-entity.h
1445
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
867
int __media_entity_setup_link(struct media_link *link, u32 flags);
include/media/media-entity.h
905
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
306
struct v4l2_fwnode_link *link);
include/media/v4l2-fwnode.h
315
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
776
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
166
s8 link; /* one of BOND_LINK_XXXX */
include/net/bonding.h
408
if (tmp->link == BOND_LINK_UP)
include/net/bonding.h
410
else if (tmp->link == BOND_LINK_DOWN)
include/net/bonding.h
440
return bond_slave_is_up(slave) && slave->link == BOND_LINK_UP &&
include/net/bonding.h
620
slave->link = slave->link_new_state;
include/net/bonding.h
707
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
58
u16 link; /* network layer link number */
include/net/mac80211.h
2289
#define for_each_vif_active_link(vif, link, link_id) \
include/net/mac80211.h
2293
(link = link_conf_dereference_check(vif, link_id)))
include/net/mac80211.h
2743
struct ieee80211_link_sta __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
include/net/mac80211.h
2764
rcu_dereference_protected((sta)->link[link_id], \
include/net/mac80211.h
2768
rcu_dereference_check((sta)->link[link_id], \
include/net/mac80211.h
2772
for (link_id = 0; link_id < ARRAY_SIZE((sta)->link); link_id++) \
include/net/pkt_cls.h
493
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
1136
int link; /* ifindex of underlying L2 interface */
include/scsi/libsas.h
402
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
141
int link; /* number of link */
include/sound/simple_card_utils.h
265
struct snd_soc_dai_link *link = simple_priv_to_link(priv, i);
include/sound/simple_card_utils.h
272
dev_dbg(dev, "cpu num = %d\n", link->num_cpus);
include/sound/simple_card_utils.h
275
dev_dbg(dev, "codec num = %d\n", link->num_codecs);
include/sound/simple_card_utils.h
279
if (link->name)
include/sound/simple_card_utils.h
280
dev_dbg(dev, "link name = %s\n", link->name);
include/sound/simple_card_utils.h
281
if (link->dai_fmt)
include/sound/simple_card_utils.h
282
dev_dbg(dev, "link format = %04x\n", link->dai_fmt);
include/sound/simple_card_utils.h
283
if (link->playback_only)
include/sound/simple_card_utils.h
285
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
1023
struct snd_soc_dai_link *link);
include/sound/soc.h
1025
struct snd_soc_dai_link *link);
include/sound/soc.h
1094
#define for_each_card_prelinks(card, i, link) \
include/sound/soc.h
1096
((i) < (card)->num_links) && ((link) = &(card)->dai_link[i]); \
include/sound/soc.h
817
static inline int snd_soc_link_num_ch_map(const struct snd_soc_dai_link *link)
include/sound/soc.h
819
return max(link->num_cpus, link->num_codecs);
include/sound/soc.h
823
snd_soc_link_to_cpu(struct snd_soc_dai_link *link, int n) {
include/sound/soc.h
824
return &(link)->cpus[n];
include/sound/soc.h
828
snd_soc_link_to_codec(struct snd_soc_dai_link *link, int n) {
include/sound/soc.h
829
return &(link)->codecs[n];
include/sound/soc.h
833
snd_soc_link_to_platform(struct snd_soc_dai_link *link, int n) {
include/sound/soc.h
834
return &(link)->platforms[n];
include/sound/soc.h
837
#define for_each_link_codecs(link, i, codec) \
include/sound/soc.h
839
((i) < link->num_codecs) && \
include/sound/soc.h
840
((codec) = snd_soc_link_to_codec(link, i)); \
include/sound/soc.h
843
#define for_each_link_platforms(link, i, platform) \
include/sound/soc.h
845
((i) < link->num_platforms) && \
include/sound/soc.h
846
((platform) = snd_soc_link_to_platform(link, i)); \
include/sound/soc.h
849
#define for_each_link_cpus(link, i, cpu) \
include/sound/soc.h
851
((i) < link->num_cpus) && \
include/sound/soc.h
852
((cpu) = snd_soc_link_to_cpu(link, i)); \
include/sound/soc.h
855
#define for_each_link_ch_maps(link, i, ch_map) \
include/sound/soc.h
857
((i) < snd_soc_link_num_ch_map(link) && \
include/sound/soc.h
858
((ch_map) = link->ch_maps + i)); \
include/target/target_core_base.h
708
struct hlist_node link;
include/target/target_core_base.h
799
struct hlist_node link;
include/trace/events/ext4.h
2971
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/bpf-ops.c
182
static int bpf_io_reg(void *kdata, struct bpf_link *link)
io_uring/bpf-ops.c
217
static void bpf_io_unreg(void *kdata, struct bpf_link *link)
io_uring/io_uring.c
1034
nxt = req->link;
io_uring/io_uring.c
1035
req->link = NULL;
io_uring/io_uring.c
1382
struct io_kiocb *link = NULL;
io_uring/io_uring.c
1389
link = __io_prep_linked_timeout(req);
io_uring/io_uring.c
1400
if (unlikely(creds || link)) {
io_uring/io_uring.c
1403
if (link)
io_uring/io_uring.c
1404
io_queue_linked_timeout(link);
io_uring/io_uring.c
170
req->link = IO_URING_PTR_POISON;
io_uring/io_uring.c
1707
struct io_kiocb *head = ctx->submit_state.link.head;
io_uring/io_uring.c
1798
if (unlikely(ctx->int_flags & IO_RING_F_DRAIN_NEXT) && !ctx->submit_state.link.head) {
io_uring/io_uring.c
1849
struct io_submit_link *link = &ctx->submit_state.link;
io_uring/io_uring.c
1850
struct io_kiocb *head = link->head;
io_uring/io_uring.c
1866
link->last->link = req;
io_uring/io_uring.c
1867
link->head = NULL;
io_uring/io_uring.c
1875
link->last->link = req;
io_uring/io_uring.c
1877
link->head = req;
io_uring/io_uring.c
1878
link->last = req;
io_uring/io_uring.c
1886
struct io_submit_link *link = &ctx->submit_state.link;
io_uring/io_uring.c
1908
if (unlikely(link->head)) {
io_uring/io_uring.c
1909
trace_io_uring_link(req, link->last);
io_uring/io_uring.c
1911
link->last->link = req;
io_uring/io_uring.c
1912
link->last = req;
io_uring/io_uring.c
1917
req = link->head;
io_uring/io_uring.c
1918
link->head = NULL;
io_uring/io_uring.c
1925
link->head = req;
io_uring/io_uring.c
1926
link->last = req;
io_uring/io_uring.c
1945
if (unlikely(state->link.head))
io_uring/io_uring.c
1946
io_queue_sqe_fallback(state->link.head);
io_uring/io_uring.c
1963
state->link.head = NULL;
io_uring/io_uring.c
347
if (WARN_ON_ONCE(!req->link))
io_uring/io_uring.c
355
__io_req_set_refcount(req->link, 2);
io_uring/io_uring.c
356
return req->link;
io_uring/io_uring.h
256
for (pos = (head); pos; pos = pos->link)
io_uring/timeout.c
202
struct io_kiocb *link = tw_req.req;
io_uring/timeout.c
204
io_tw_lock(link->ctx, tw);
io_uring/timeout.c
205
while (link) {
io_uring/timeout.c
206
struct io_kiocb *nxt = link->link;
io_uring/timeout.c
209
if (link->flags & REQ_F_FAIL)
io_uring/timeout.c
210
res = link->cqe.res;
io_uring/timeout.c
211
link->link = NULL;
io_uring/timeout.c
212
io_req_set_res(link, res, 0);
io_uring/timeout.c
213
io_req_task_complete((struct io_tw_req){link}, tw);
io_uring/timeout.c
214
link = nxt;
io_uring/timeout.c
221
struct io_kiocb *link = req->link;
io_uring/timeout.c
224
if (!link)
io_uring/timeout.c
227
while (link) {
io_uring/timeout.c
229
link->flags |= REQ_F_CQE_SKIP;
io_uring/timeout.c
231
link->flags &= ~REQ_F_CQE_SKIP;
io_uring/timeout.c
232
trace_io_uring_fail_link(req, link);
io_uring/timeout.c
233
link = link->link;
io_uring/timeout.c
236
link = req->link;
io_uring/timeout.c
237
link->io_task_work.func = io_req_tw_fail_links;
io_uring/timeout.c
238
io_req_task_work_add(link);
io_uring/timeout.c
239
req->link = NULL;
io_uring/timeout.c
244
struct io_kiocb *nxt = req->link;
io_uring/timeout.c
246
req->link = nxt->link;
io_uring/timeout.c
247
nxt->link = NULL;
io_uring/timeout.c
253
struct io_kiocb *link = NULL;
io_uring/timeout.c
256
link = req->link;
io_uring/timeout.c
258
if (link && link->opcode == IORING_OP_LINK_TIMEOUT) {
io_uring/timeout.c
260
io_req_queue_tw_complete(link, -ECANCELED);
io_uring/timeout.c
266
if (req->link && req->link->opcode == IORING_OP_LINK_TIMEOUT)
io_uring/timeout.c
267
link = __io_disarm_linked_timeout(req, req->link);
io_uring/timeout.c
270
if (link)
io_uring/timeout.c
271
io_req_queue_tw_complete(link, -ECANCELED);
io_uring/timeout.c
279
struct io_kiocb *link)
io_uring/timeout.c
283
struct io_timeout_data *io = link->async_data;
io_uring/timeout.c
284
struct io_timeout *timeout = io_kiocb_to_cmd(link, struct io_timeout);
io_uring/timeout.c
294
return link;
io_uring/timeout.c
378
if (prev->link == req)
io_uring/timeout.c
379
prev->link = req->link;
io_uring/timeout.c
380
req->link = NULL;
io_uring/timeout.c
617
struct io_submit_link *link = &req->ctx->submit_state.link;
io_uring/timeout.c
619
if (!link->head)
io_uring/timeout.c
621
if (link->last->opcode == IORING_OP_LINK_TIMEOUT)
io_uring/timeout.c
623
timeout->head = link->last;
io_uring/timeout.c
624
link->last->flags |= REQ_F_ARM_LTIMEOUT;
io_uring/timeout.c
78
struct io_kiocb *link);
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
1254
static void bpf_struct_ops_map_link_dealloc(struct bpf_link *link)
kernel/bpf/bpf_struct_ops.c
1259
st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1263
st_map->st_ops_desc->st_ops->unreg(&st_map->kvalue.data, link);
kernel/bpf/bpf_struct_ops.c
1269
static void bpf_struct_ops_map_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/bpf_struct_ops.c
1275
st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1283
static int bpf_struct_ops_map_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/bpf_struct_ops.c
1289
st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1298
static int bpf_struct_ops_map_link_update(struct bpf_link *link, struct bpf_map *new_map,
kernel/bpf/bpf_struct_ops.c
1306
st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1334
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
1348
static int bpf_struct_ops_map_link_detach(struct bpf_link *link)
kernel/bpf/bpf_struct_ops.c
1350
struct bpf_struct_ops_link *st_link = container_of(link, struct bpf_struct_ops_link, link);
kernel/bpf/bpf_struct_ops.c
1363
st_map->st_ops_desc->st_ops->unreg(&st_map->kvalue.data, link);
kernel/bpf/bpf_struct_ops.c
1399
struct bpf_struct_ops_link *link = NULL;
kernel/bpf/bpf_struct_ops.c
1416
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/bpf_struct_ops.c
1417
if (!link) {
kernel/bpf/bpf_struct_ops.c
1421
bpf_link_init(&link->link, BPF_LINK_TYPE_STRUCT_OPS, &bpf_struct_ops_map_lops, NULL,
kernel/bpf/bpf_struct_ops.c
1424
err = bpf_link_prime(&link->link, &link_primer);
kernel/bpf/bpf_struct_ops.c
1428
init_waitqueue_head(&link->wait_hup);
kernel/bpf/bpf_struct_ops.c
1434
err = st_map->st_ops_desc->st_ops->reg(st_map->kvalue.data, &link->link);
kernel/bpf/bpf_struct_ops.c
1438
link = NULL;
kernel/bpf/bpf_struct_ops.c
1441
RCU_INIT_POINTER(link->map, map);
kernel/bpf/bpf_struct_ops.c
1448
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
749
struct bpf_tramp_link *link;
kernel/bpf/bpf_struct_ops.c
814
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/bpf_struct_ops.c
815
if (!link) {
kernel/bpf/bpf_struct_ops.c
820
bpf_tramp_link_init(link, BPF_LINK_TYPE_STRUCT_OPS,
kernel/bpf/bpf_struct_ops.c
823
*plink++ = &link->link;
kernel/bpf/bpf_struct_ops.c
836
err = bpf_struct_ops_prepare_trampoline(tnodes, &link->node,
kernel/bpf/cgroup.c
1017
WRITE_ONCE(item->prog, pl->link->link.prog);
kernel/bpf/cgroup.c
1032
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
1041
atype = bpf_cgroup_atype_find(link->link.attach_type, new_prog->aux->attach_btf_id);
kernel/bpf/cgroup.c
1047
if (link->link.prog->type != new_prog->type)
kernel/bpf/cgroup.c
1051
if (pl->link == link) {
kernel/bpf/cgroup.c
1060
old_prog = xchg(&link->link.prog, new_prog);
kernel/bpf/cgroup.c
1066
static int cgroup_bpf_replace(struct bpf_link *link, struct bpf_prog *new_prog,
kernel/bpf/cgroup.c
1072
cg_link = container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1080
if (old_prog && link->prog != old_prog) {
kernel/bpf/cgroup.c
1092
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
1108
if (!prog && !link)
kernel/bpf/cgroup.c
1116
if (pl->prog == prog && pl->link == link)
kernel/bpf/cgroup.c
1173
struct bpf_cgroup_link *link, enum bpf_attach_type type,
kernel/bpf/cgroup.c
1185
if (link)
kernel/bpf/cgroup.c
1186
attach_btf_id = link->link.prog->aux->attach_btf_id;
kernel/bpf/cgroup.c
1198
if (prog && link)
kernel/bpf/cgroup.c
1202
pl = find_detach_entry(progs, prog, link, flags & BPF_F_ALLOW_MULTI);
kernel/bpf/cgroup.c
1209
pl->link = NULL;
kernel/bpf/cgroup.c
1214
pl->link = link;
kernel/bpf/cgroup.c
1415
static void bpf_cgroup_link_release(struct bpf_link *link)
kernel/bpf/cgroup.c
1418
container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1436
link->attach_type, 0));
kernel/bpf/cgroup.c
1437
if (link->attach_type == BPF_LSM_CGROUP)
kernel/bpf/cgroup.c
1438
bpf_trampoline_unlink_cgroup_shim(cg_link->link.prog);
kernel/bpf/cgroup.c
1448
static void bpf_cgroup_link_dealloc(struct bpf_link *link)
kernel/bpf/cgroup.c
1451
container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1456
static int bpf_cgroup_link_detach(struct bpf_link *link)
kernel/bpf/cgroup.c
1458
bpf_cgroup_link_release(link);
kernel/bpf/cgroup.c
1463
static void bpf_cgroup_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/cgroup.c
1467
container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1479
link->attach_type);
kernel/bpf/cgroup.c
1482
static int bpf_cgroup_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/cgroup.c
1486
container_of(link, struct bpf_cgroup_link, link);
kernel/bpf/cgroup.c
1495
info->cgroup.attach_type = link->attach_type;
kernel/bpf/cgroup.c
1518
struct bpf_cgroup_link *link;
kernel/bpf/cgroup.c
1529
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/cgroup.c
1530
if (!link) {
kernel/bpf/cgroup.c
1534
bpf_link_init(&link->link, BPF_LINK_TYPE_CGROUP, &bpf_cgroup_link_lops,
kernel/bpf/cgroup.c
1536
link->cgroup = cgrp;
kernel/bpf/cgroup.c
1538
err = bpf_link_prime(&link->link, &link_primer);
kernel/bpf/cgroup.c
1540
kfree(link);
kernel/bpf/cgroup.c
1544
err = cgroup_bpf_attach(cgrp, NULL, NULL, link,
kernel/bpf/cgroup.c
1545
link->link.attach_type, BPF_F_ALLOW_MULTI | attr->link_create.flags,
kernel/bpf/cgroup.c
314
static void bpf_cgroup_link_auto_detach(struct bpf_cgroup_link *link)
kernel/bpf/cgroup.c
316
cgroup_put(link->cgroup);
kernel/bpf/cgroup.c
317
link->cgroup = NULL;
kernel/bpf/cgroup.c
349
if (pl->link) {
kernel/bpf/cgroup.c
350
if (pl->link->link.prog->expected_attach_type == BPF_LSM_CGROUP)
kernel/bpf/cgroup.c
351
bpf_trampoline_unlink_cgroup_shim(pl->link->link.prog);
kernel/bpf/cgroup.c
352
bpf_cgroup_link_auto_detach(pl->link);
kernel/bpf/cgroup.c
397
if (pl->link)
kernel/bpf/cgroup.c
398
return pl->link->link.prog;
kernel/bpf/cgroup.c
645
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
662
if (link && pl->link == link)
kernel/bpf/cgroup.c
683
struct bpf_link *link = ERR_PTR(-EINVAL);
kernel/bpf/cgroup.c
686
link = bpf_link_by_id(id_or_fd);
kernel/bpf/cgroup.c
688
link = bpf_link_get_from_fd(id_or_fd);
kernel/bpf/cgroup.c
689
return link;
kernel/bpf/cgroup.c
704
struct bpf_cgroup_link *link, u32 flags, u32 id_or_fd)
kernel/bpf/cgroup.c
719
if ((is_link && !link) || (!is_link && !prog))
kernel/bpf/cgroup.c
754
(anchor_link && anchor_link == &pltmp->link->link)) {
kernel/bpf/cgroup.c
772
struct bpf_prog *prog, struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
777
pltmp = get_prog_list(progs, prog, link, flags, id_or_fd);
kernel/bpf/cgroup.c
808
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
816
struct bpf_prog *new_prog = prog ? : link->link.prog;
kernel/bpf/cgroup.c
829
if (link && (prog || replace_prog))
kernel/bpf/cgroup.c
857
pl = find_attach_entry(progs, prog, link, replace_prog,
kernel/bpf/cgroup.c
863
prog ? : link->link.prog, cgrp))
kernel/bpf/cgroup.c
875
err = insert_pl_to_hlist(pl, progs, prog, link, flags, id_or_fd);
kernel/bpf/cgroup.c
884
pl->link = link;
kernel/bpf/cgroup.c
917
pl->link = NULL;
kernel/bpf/cgroup.c
929
struct bpf_cgroup_link *link,
kernel/bpf/cgroup.c
936
ret = __cgroup_bpf_attach(cgrp, prog, replace_prog, link, type, flags,
kernel/bpf/helpers.c
2729
struct rb_node **link = &((struct rb_root_cached *)root)->rb_root.rb_node;
kernel/bpf/helpers.c
2743
while (*link) {
kernel/bpf/helpers.c
2744
parent = *link;
kernel/bpf/helpers.c
2746
link = &parent->rb_left;
kernel/bpf/helpers.c
2748
link = &parent->rb_right;
kernel/bpf/helpers.c
2753
rb_link_node(n, parent, link);
kernel/bpf/inode.c
1171
bpf_link_inc(objs[i].link);
kernel/bpf/inode.c
1173
objs[i].link_name, objs[i].link);
kernel/bpf/inode.c
1175
bpf_link_put(objs[i].link);
kernel/bpf/inode.c
407
struct bpf_link *link = arg;
kernel/bpf/inode.c
410
bpf_link_is_iter(link) ?
kernel/bpf/inode.c
431
char *link;
kernel/bpf/inode.c
434
link = kstrdup(target, GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
kernel/bpf/inode.c
435
if (!link)
kernel/bpf/inode.c
440
kfree(link);
kernel/bpf/inode.c
445
inode->i_link = link;
kernel/bpf/inode.c
469
.link = simple_link,
kernel/bpf/inode.c
476
const char *name, struct bpf_link *link)
kernel/bpf/inode.c
485
ret = bpf_mkobj_ops(dentry, mode, link, &bpf_link_iops,
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
3293
void bpf_link_init_sleepable(struct bpf_link *link, enum bpf_link_type type,
kernel/bpf/syscall.c
3298
atomic64_set(&link->refcnt, 1);
kernel/bpf/syscall.c
3299
link->type = type;
kernel/bpf/syscall.c
3300
link->sleepable = sleepable;
kernel/bpf/syscall.c
3301
link->id = 0;
kernel/bpf/syscall.c
3302
link->ops = ops;
kernel/bpf/syscall.c
3303
link->prog = prog;
kernel/bpf/syscall.c
3304
link->attach_type = attach_type;
kernel/bpf/syscall.c
3307
void bpf_link_init(struct bpf_link *link, enum bpf_link_type type,
kernel/bpf/syscall.c
3311
bpf_link_init_sleepable(link, type, ops, prog, attach_type, false);
kernel/bpf/syscall.c
3314
void bpf_tramp_link_init(struct bpf_tramp_link *link, enum bpf_link_type type,
kernel/bpf/syscall.c
3318
bpf_link_init(&link->link, type, ops, prog, attach_type);
kernel/bpf/syscall.c
3319
link->node.link = &link->link;
kernel/bpf/syscall.c
3320
link->node.cookie = cookie;
kernel/bpf/syscall.c
3344
primer->link->prog = NULL;
kernel/bpf/syscall.c
3350
void bpf_link_inc(struct bpf_link *link)
kernel/bpf/syscall.c
3352
atomic64_inc(&link->refcnt);
kernel/bpf/syscall.c
3355
static void bpf_link_dealloc(struct bpf_link *link)
kernel/bpf/syscall.c
3358
if (link->prog)
kernel/bpf/syscall.c
3359
bpf_prog_put(link->prog);
kernel/bpf/syscall.c
3362
if (link->ops->dealloc_deferred)
kernel/bpf/syscall.c
3363
link->ops->dealloc_deferred(link);
kernel/bpf/syscall.c
3365
link->ops->dealloc(link);
kernel/bpf/syscall.c
3370
struct bpf_link *link = container_of(rcu, struct bpf_link, rcu);
kernel/bpf/syscall.c
3372
bpf_link_dealloc(link);
kernel/bpf/syscall.c
3375
static bool bpf_link_is_tracepoint(struct bpf_link *link)
kernel/bpf/syscall.c
3383
return link->type == BPF_LINK_TYPE_RAW_TRACEPOINT ||
kernel/bpf/syscall.c
3384
(link->type == BPF_LINK_TYPE_TRACING && link->attach_type == BPF_TRACE_RAW_TP);
kernel/bpf/syscall.c
3388
static void bpf_link_free(struct bpf_link *link)
kernel/bpf/syscall.c
3390
const struct bpf_link_ops *ops = link->ops;
kernel/bpf/syscall.c
3392
bpf_link_free_id(link->id);
kernel/bpf/syscall.c
3394
if (link->prog)
kernel/bpf/syscall.c
3395
ops->release(link);
kernel/bpf/syscall.c
3411
if (link->sleepable || (link->prog && link->prog->sleepable))
kernel/bpf/syscall.c
3413
call_rcu_tasks_trace(&link->rcu, bpf_link_defer_dealloc_rcu_gp);
kernel/bpf/syscall.c
3415
else if (bpf_link_is_tracepoint(link))
kernel/bpf/syscall.c
3416
call_tracepoint_unregister_atomic(&link->rcu, bpf_link_defer_dealloc_rcu_gp);
kernel/bpf/syscall.c
3418
call_rcu(&link->rcu, bpf_link_defer_dealloc_rcu_gp);
kernel/bpf/syscall.c
3420
bpf_link_dealloc(link);
kernel/bpf/syscall.c
3426
struct bpf_link *link = container_of(work, struct bpf_link, work);
kernel/bpf/syscall.c
3428
bpf_link_free(link);
kernel/bpf/syscall.c
3434
void bpf_link_put(struct bpf_link *link)
kernel/bpf/syscall.c
3436
if (!atomic64_dec_and_test(&link->refcnt))
kernel/bpf/syscall.c
3439
INIT_WORK(&link->work, bpf_link_put_deferred);
kernel/bpf/syscall.c
3440
schedule_work(&link->work);
kernel/bpf/syscall.c
3444
static void bpf_link_put_direct(struct bpf_link *link)
kernel/bpf/syscall.c
3446
if (!atomic64_dec_and_test(&link->refcnt))
kernel/bpf/syscall.c
3448
bpf_link_free(link);
kernel/bpf/syscall.c
3453
struct bpf_link *link = filp->private_data;
kernel/bpf/syscall.c
3455
bpf_link_put_direct(link);
kernel/bpf/syscall.c
3473
const struct bpf_link *link = filp->private_data;
kernel/bpf/syscall.c
3474
const struct bpf_prog *prog = link->prog;
kernel/bpf/syscall.c
3475
enum bpf_link_type type = link->type;
kernel/bpf/syscall.c
3479
if (link->type == BPF_LINK_TYPE_KPROBE_MULTI)
kernel/bpf/syscall.c
3480
seq_printf(m, "link_type:\t%s\n", link->flags == BPF_F_KPROBE_MULTI_RETURN ?
kernel/bpf/syscall.c
3482
else if (link->type == BPF_LINK_TYPE_UPROBE_MULTI)
kernel/bpf/syscall.c
3483
seq_printf(m, "link_type:\t%s\n", link->flags & BPF_F_UPROBE_MULTI_RETURN ?
kernel/bpf/syscall.c
3491
seq_printf(m, "link_id:\t%u\n", link->id);
kernel/bpf/syscall.c
3501
if (link->ops->show_fdinfo)
kernel/bpf/syscall.c
3502
link->ops->show_fdinfo(link, m);
kernel/bpf/syscall.c
3508
struct bpf_link *link = file->private_data;
kernel/bpf/syscall.c
3510
return link->ops->poll(file, pts);
kernel/bpf/syscall.c
3532
static int bpf_link_alloc_id(struct bpf_link *link)
kernel/bpf/syscall.c
3538
id = idr_alloc_cyclic(&link_idr, link, 1, INT_MAX, GFP_ATOMIC);
kernel/bpf/syscall.c
3558
int bpf_link_prime(struct bpf_link *link, struct bpf_link_primer *primer)
kernel/bpf/syscall.c
3568
id = bpf_link_alloc_id(link);
kernel/bpf/syscall.c
3575
link->ops->poll ? &bpf_link_fops_poll : &bpf_link_fops,
kernel/bpf/syscall.c
3576
link, O_CLOEXEC);
kernel/bpf/syscall.c
3583
primer->link = link;
kernel/bpf/syscall.c
3594
primer->link->id = primer->id;
kernel/bpf/syscall.c
3602
int bpf_link_new_fd(struct bpf_link *link)
kernel/bpf/syscall.c
3605
link->ops->poll ? &bpf_link_fops_poll : &bpf_link_fops,
kernel/bpf/syscall.c
3606
link, O_CLOEXEC);
kernel/bpf/syscall.c
3612
struct bpf_link *link;
kernel/bpf/syscall.c
3619
link = fd_file(f)->private_data;
kernel/bpf/syscall.c
3620
bpf_link_inc(link);
kernel/bpf/syscall.c
3621
return link;
kernel/bpf/syscall.c
3625
static void bpf_tracing_link_release(struct bpf_link *link)
kernel/bpf/syscall.c
3628
container_of(link, struct bpf_tracing_link, link.link);
kernel/bpf/syscall.c
3630
WARN_ON_ONCE(bpf_trampoline_unlink_prog(&tr_link->link.node,
kernel/bpf/syscall.c
3641
static void bpf_tracing_link_dealloc(struct bpf_link *link)
kernel/bpf/syscall.c
3643
struct bpf_tracing_link *tr_link = container_of(link, struct bpf_tracing_link, link.link);
kernel/bpf/syscall.c
3648
static void bpf_tracing_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/syscall.c
3651
struct bpf_tracing_link *tr_link = container_of(link, struct bpf_tracing_link, link.link);
kernel/bpf/syscall.c
3662
link->attach_type,
kernel/bpf/syscall.c
3665
tr_link->link.node.cookie);
kernel/bpf/syscall.c
3668
static int bpf_tracing_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/syscall.c
3671
struct bpf_tracing_link *tr_link = container_of(link, struct bpf_tracing_link, link.link);
kernel/bpf/syscall.c
3673
info->tracing.attach_type = link->attach_type;
kernel/bpf/syscall.c
3674
info->tracing.cookie = tr_link->link.node.cookie;
kernel/bpf/syscall.c
3698
struct bpf_tracing_link *link;
kernel/bpf/syscall.c
3756
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/syscall.c
3757
if (!link) {
kernel/bpf/syscall.c
3761
bpf_tramp_link_init(&link->link, BPF_LINK_TYPE_TRACING,
kernel/bpf/syscall.c
3765
link->fexit.link = &link->link.link;
kernel/bpf/syscall.c
3766
link->fexit.cookie = bpf_cookie;
kernel/bpf/syscall.c
3866
err = bpf_link_prime(&link->link.link, &link_primer);
kernel/bpf/syscall.c
3870
err = bpf_trampoline_link_prog(&link->link.node, tr, tgt_prog);
kernel/bpf/syscall.c
3873
link = NULL;
kernel/bpf/syscall.c
3877
link->tgt_prog = tgt_prog;
kernel/bpf/syscall.c
3878
link->trampoline = tr;
kernel/bpf/syscall.c
3901
kfree(link);
kernel/bpf/syscall.c
3908
static void bpf_raw_tp_link_release(struct bpf_link *link)
kernel/bpf/syscall.c
3911
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
3917
static void bpf_raw_tp_link_dealloc(struct bpf_link *link)
kernel/bpf/syscall.c
3920
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
3925
static void bpf_raw_tp_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/syscall.c
3929
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
3957
static int bpf_raw_tp_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/syscall.c
3961
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
3988
struct bpf_link link;
kernel/bpf/syscall.c
3992
static void bpf_perf_link_release(struct bpf_link *link)
kernel/bpf/syscall.c
3994
struct bpf_perf_link *perf_link = container_of(link, struct bpf_perf_link, link);
kernel/bpf/syscall.c
4001
static void bpf_perf_link_dealloc(struct bpf_link *link)
kernel/bpf/syscall.c
4003
struct bpf_perf_link *perf_link = container_of(link, struct bpf_perf_link, link);
kernel/bpf/syscall.c
4202
static int bpf_perf_link_fill_link_info(const struct bpf_link *link,
kernel/bpf/syscall.c
4208
perf_link = container_of(link, struct bpf_perf_link, link);
kernel/bpf/syscall.c
4270
static void bpf_perf_link_show_fdinfo(const struct bpf_link *link,
kernel/bpf/syscall.c
4276
perf_link = container_of(link, struct bpf_perf_link, link);
kernel/bpf/syscall.c
4303
struct bpf_perf_link *link;
kernel/bpf/syscall.c
4315
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/syscall.c
4316
if (!link) {
kernel/bpf/syscall.c
4320
bpf_link_init(&link->link, BPF_LINK_TYPE_PERF_EVENT, &bpf_perf_link_lops, prog,
kernel/bpf/syscall.c
4322
link->perf_file = perf_file;
kernel/bpf/syscall.c
4324
err = bpf_link_prime(&link->link, &link_primer);
kernel/bpf/syscall.c
4326
kfree(link);
kernel/bpf/syscall.c
4357
struct bpf_raw_tp_link *link;
kernel/bpf/syscall.c
4398
link = kzalloc_obj(*link, GFP_USER);
kernel/bpf/syscall.c
4399
if (!link) {
kernel/bpf/syscall.c
4403
bpf_link_init_sleepable(&link->link, BPF_LINK_TYPE_RAW_TRACEPOINT,
kernel/bpf/syscall.c
4406
link->btp = btp;
kernel/bpf/syscall.c
4407
link->cookie = cookie;
kernel/bpf/syscall.c
4409
err = bpf_link_prime(&link->link, &link_primer);
kernel/bpf/syscall.c
4411
kfree(link);
kernel/bpf/syscall.c
4415
err = bpf_probe_register(link->btp, link);
kernel/bpf/syscall.c
5532
struct bpf_link *link,
kernel/bpf/syscall.c
5550
info.type = link->type;
kernel/bpf/syscall.c
5551
info.id = link->id;
kernel/bpf/syscall.c
5552
if (link->prog)
kernel/bpf/syscall.c
5553
info.prog_id = link->prog->aux->id;
kernel/bpf/syscall.c
5555
if (link->ops->fill_link_info) {
kernel/bpf/syscall.c
5556
err = link->ops->fill_link_info(link, &info);
kernel/bpf/syscall.c
5747
struct bpf_link *link = file->private_data;
kernel/bpf/syscall.c
5749
if (link->ops == &bpf_raw_tp_link_lops) {
kernel/bpf/syscall.c
5751
container_of(link, struct bpf_raw_tp_link, link);
kernel/bpf/syscall.c
5755
raw_tp->link.prog->aux->id,
kernel/bpf/syscall.c
5950
static int link_update_map(struct bpf_link *link, union bpf_attr *attr)
kernel/bpf/syscall.c
5970
ret = link->ops->update_map(link, new_map, old_map);
kernel/bpf/syscall.c
5984
struct bpf_link *link;
kernel/bpf/syscall.c
5995
link = bpf_link_get_from_fd(attr->link_update.link_fd);
kernel/bpf/syscall.c
5996
if (IS_ERR(link))
kernel/bpf/syscall.c
5997
return PTR_ERR(link);
kernel/bpf/syscall.c
5999
if (link->ops->update_map) {
kernel/bpf/syscall.c
6000
ret = link_update_map(link, attr);
kernel/bpf/syscall.c
6022
if (link->ops->update_prog)
kernel/bpf/syscall.c
6023
ret = link->ops->update_prog(link, new_prog, old_prog);
kernel/bpf/syscall.c
6033
bpf_link_put_direct(link);
kernel/bpf/syscall.c
6041
struct bpf_link *link;
kernel/bpf/syscall.c
6047
link = bpf_link_get_from_fd(attr->link_detach.link_fd);
kernel/bpf/syscall.c
6048
if (IS_ERR(link))
kernel/bpf/syscall.c
6049
return PTR_ERR(link);
kernel/bpf/syscall.c
6051
if (link->ops->detach)
kernel/bpf/syscall.c
6052
ret = link->ops->detach(link);
kernel/bpf/syscall.c
6056
bpf_link_put_direct(link);
kernel/bpf/syscall.c
6060
struct bpf_link *bpf_link_inc_not_zero(struct bpf_link *link)
kernel/bpf/syscall.c
6062
return atomic64_fetch_add_unless(&link->refcnt, 1, 0) ? link : ERR_PTR(-ENOENT);
kernel/bpf/syscall.c
6068
struct bpf_link *link;
kernel/bpf/syscall.c
6075
link = idr_find(&link_idr, id);
kernel/bpf/syscall.c
6076
if (link) {
kernel/bpf/syscall.c
6077
if (link->id)
kernel/bpf/syscall.c
6078
link = bpf_link_inc_not_zero(link);
kernel/bpf/syscall.c
6080
link = ERR_PTR(-EAGAIN);
kernel/bpf/syscall.c
6082
link = ERR_PTR(-ENOENT);
kernel/bpf/syscall.c
6085
return link;
kernel/bpf/syscall.c
6090
struct bpf_link *link;
kernel/bpf/syscall.c
6094
link = idr_get_next(&link_idr, id);
kernel/bpf/syscall.c
6095
if (link) {
kernel/bpf/syscall.c
6096
link = bpf_link_inc_not_zero(link);
kernel/bpf/syscall.c
6097
if (IS_ERR(link)) {
kernel/bpf/syscall.c
6104
return link;
kernel/bpf/syscall.c
6111
struct bpf_link *link;
kernel/bpf/syscall.c
6121
link = bpf_link_by_id(id);
kernel/bpf/syscall.c
6122
if (IS_ERR(link))
kernel/bpf/syscall.c
6123
return PTR_ERR(link);
kernel/bpf/syscall.c
6125
fd = bpf_link_new_fd(link);
kernel/bpf/syscall.c
6127
bpf_link_put_direct(link);
kernel/bpf/syscall.c
6190
struct bpf_link *link;
kernel/bpf/syscall.c
6199
link = bpf_link_get_from_fd(attr->iter_create.link_fd);
kernel/bpf/syscall.c
6200
if (IS_ERR(link))
kernel/bpf/syscall.c
6201
return PTR_ERR(link);
kernel/bpf/syscall.c
6203
err = bpf_iter_new_fd(link);
kernel/bpf/syscall.c
6204
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
WARN_ON_ONCE(bpf_trampoline_unlink_prog(&shim_link->link.node, shim_link->trampoline, NULL));
kernel/bpf/trampoline.c
1009
static void bpf_shim_tramp_link_dealloc(struct bpf_link *link)
kernel/bpf/trampoline.c
1012
container_of(link, struct bpf_shim_tramp_link, link.link);
kernel/bpf/trampoline.c
1051
bpf_tramp_link_init(&shim_link->link, BPF_LINK_TYPE_UNSPEC,
kernel/bpf/trampoline.c
1066
struct bpf_prog *p = node->link->prog;
kernel/bpf/trampoline.c
1069
return container_of(node, struct bpf_shim_tramp_link, link.node);
kernel/bpf/trampoline.c
1104
if (shim_link && !IS_ERR(bpf_link_inc_not_zero(&shim_link->link.link))) {
kernel/bpf/trampoline.c
1119
err = __bpf_trampoline_link_prog(&shim_link->link.node, tr, NULL, &trampoline_ops, NULL);
kernel/bpf/trampoline.c
1133
bpf_link_put(&shim_link->link.link);
kernel/bpf/trampoline.c
1161
bpf_link_put(&shim_link->link.link);
kernel/bpf/trampoline.c
1605
#define for_each_mnode_cnt(mnode, link, cnt) \
kernel/bpf/trampoline.c
1606
for (i = 0, mnode = &link->nodes[i]; i < cnt; i++, mnode = &link->nodes[i])
kernel/bpf/trampoline.c
1608
#define for_each_mnode(mnode, link) \
kernel/bpf/trampoline.c
1609
for_each_mnode_cnt(mnode, link, link->nodes_cnt)
kernel/bpf/trampoline.c
1612
struct bpf_tracing_multi_link *link)
kernel/bpf/trampoline.c
1614
struct bpf_tracing_multi_data *data = &link->data;
kernel/bpf/trampoline.c
1622
for_each_mnode(mnode, link) {
kernel/bpf/trampoline.c
1638
mnode->node.link = &link->link;
kernel/bpf/trampoline.c
1639
mnode->node.cookie = link->cookies ? link->cookies[i] : 0;
kernel/bpf/trampoline.c
1642
link->fexits[i].link = &link->link;
kernel/bpf/trampoline.c
1643
link->fexits[i].cookie = link->cookies ? link->cookies[i] : 0;
kernel/bpf/trampoline.c
1651
rollback_cnt = link->nodes_cnt;
kernel/bpf/trampoline.c
1657
for_each_mnode(mnode, link) {
kernel/bpf/trampoline.c
1669
rollback_cnt = link->nodes_cnt;
kernel/bpf/trampoline.c
1685
for_each_mnode(mnode, link)
kernel/bpf/trampoline.c
1694
for_each_mnode_cnt(mnode, link, rollback_cnt) {
kernel/bpf/trampoline.c
1702
rollback_cnt = link->nodes_cnt;
kernel/bpf/trampoline.c
1705
for_each_mnode_cnt(mnode, link, rollback_cnt)
kernel/bpf/trampoline.c
1711
int bpf_trampoline_multi_detach(struct bpf_prog *prog, struct bpf_tracing_multi_link *link)
kernel/bpf/trampoline.c
1713
struct bpf_tracing_multi_data *data = &link->data;
kernel/bpf/trampoline.c
1719
for_each_mnode(mnode, link) {
kernel/bpf/trampoline.c
1731
for_each_mnode(mnode, link)
kernel/bpf/trampoline.c
1736
for_each_mnode(mnode, link)
kernel/bpf/trampoline.c
525
*ip_arg |= node->link->prog->call_get_func_ip;
kernel/bpf/trampoline.c
829
if (node->link->type == BPF_LINK_TYPE_TRACING) {
kernel/bpf/trampoline.c
830
struct bpf_tracing_link *link;
kernel/bpf/trampoline.c
832
link = container_of(node->link, struct bpf_tracing_link, link.link);
kernel/bpf/trampoline.c
833
return &link->fexit;
kernel/bpf/trampoline.c
834
} else if (node->link->type == BPF_LINK_TYPE_TRACING_MULTI) {
kernel/bpf/trampoline.c
835
struct bpf_tracing_multi_link *link;
kernel/bpf/trampoline.c
838
link = container_of(node->link, struct bpf_tracing_multi_link, link);
kernel/bpf/trampoline.c
840
return &link->fexits[mnode - link->nodes];
kernel/bpf/trampoline.c
853
kind = bpf_attach_type_to_tramp(node->link->prog);
kernel/bpf/trampoline.c
866
if (node_existing->link->prog != node->link->prog)
kernel/bpf/trampoline.c
892
kind = bpf_attach_type_to_tramp(node->link->prog);
kernel/bpf/trampoline.c
915
kind = bpf_attach_type_to_tramp(node->link->prog);
kernel/bpf/trampoline.c
932
tr->extension_prog = node->link->prog;
kernel/bpf/trampoline.c
935
node->link->prog->bpf_func);
kernel/bpf/trampoline.c
967
kind = bpf_attach_type_to_tramp(node->link->prog);
kernel/bpf/trampoline.c
996
static void bpf_shim_tramp_link_release(struct bpf_link *link)
kernel/bpf/trampoline.c
999
container_of(link, struct bpf_shim_tramp_link, 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
1132
struct cgrp_cset_link *link, *tmp_link;
kernel/cgroup/cgroup.c
1134
list_for_each_entry_safe(link, tmp_link, links_to_free, cset_link) {
kernel/cgroup/cgroup.c
1135
list_del(&link->cset_link);
kernel/cgroup/cgroup.c
1136
kfree(link);
kernel/cgroup/cgroup.c
1150
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
1156
link = kzalloc_obj(*link);
kernel/cgroup/cgroup.c
1157
if (!link) {
kernel/cgroup/cgroup.c
1161
list_add(&link->cset_link, tmp_links);
kernel/cgroup/cgroup.c
1175
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
1182
link = list_first_entry(tmp_links, struct cgrp_cset_link, cset_link);
kernel/cgroup/cgroup.c
1183
link->cset = cset;
kernel/cgroup/cgroup.c
1184
link->cgrp = cgrp;
kernel/cgroup/cgroup.c
1190
list_move_tail(&link->cset_link, &cgrp->cset_links);
kernel/cgroup/cgroup.c
1191
list_add_tail(&link->cgrp_link, &cset->cgrp_links);
kernel/cgroup/cgroup.c
1211
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
1258
list_for_each_entry(link, &old_cset->cgrp_links, cgrp_link) {
kernel/cgroup/cgroup.c
1259
struct cgroup *c = link->cgrp;
kernel/cgroup/cgroup.c
1375
struct cgrp_cset_link *link, *tmp_link;
kernel/cgroup/cgroup.c
1398
list_for_each_entry_safe(link, tmp_link, &cgrp->cset_links, cset_link) {
kernel/cgroup/cgroup.c
1399
list_del(&link->cset_link);
kernel/cgroup/cgroup.c
1400
list_del(&link->cgrp_link);
kernel/cgroup/cgroup.c
1401
kfree(link);
kernel/cgroup/cgroup.c
1434
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
1437
list_for_each_entry(link, &cset->cgrp_links, cgrp_link) {
kernel/cgroup/cgroup.c
1438
struct cgroup *c = link->cgrp;
kernel/cgroup/cgroup.c
3189
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
3200
list_for_each_entry(link, &dsct->cset_links, cset_link)
kernel/cgroup/cgroup.c
3201
cgroup_migrate_add_src(link->cset, dsct, &mgctx);
kernel/cgroup/cgroup.c
4976
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
5005
link = list_entry(l, struct cgrp_cset_link, cset_link);
kernel/cgroup/cgroup.c
5006
cset = link->cset;
kernel/cgroup/cgroup.c
616
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
620
list_for_each_entry(link, &cgrp->cset_links, cset_link)
kernel/cgroup/cgroup.c
621
count += link->cset->nr_tasks;
kernel/cgroup/cgroup.c
6224
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
6254
list_for_each_entry(link, &cgrp->cset_links, cset_link)
kernel/cgroup/cgroup.c
6255
link->cset->dead = true;
kernel/cgroup/cgroup.c
849
struct cgrp_cset_link *link;
kernel/cgroup/cgroup.c
855
list_for_each_entry(link, &cset->cgrp_links, cgrp_link)
kernel/cgroup/cgroup.c
856
css_update_populated(&link->cgrp->self, populated);
kernel/cgroup/cgroup.c
954
struct cgrp_cset_link *link, *tmp_link;
kernel/cgroup/cgroup.c
973
list_for_each_entry_safe(link, tmp_link, &cset->cgrp_links, cgrp_link) {
kernel/cgroup/cgroup.c
974
list_del(&link->cset_link);
kernel/cgroup/cgroup.c
975
list_del(&link->cgrp_link);
kernel/cgroup/cgroup.c
976
if (cgroup_parent(link->cgrp))
kernel/cgroup/cgroup.c
977
cgroup_put(link->cgrp);
kernel/cgroup/cgroup.c
978
kfree(link);
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
2158
list_for_each_entry(d, &irq_domain_list, link)
kernel/irq/irqdomain.c
295
list_add(&domain->link, &irq_domain_list);
kernel/irq/irqdomain.c
410
list_del(&domain->link);
kernel/irq/irqdomain.c
543
list_for_each_entry(h, &irq_domain_list, link) {
kernel/liveupdate/luo_flb.c
399
struct luo_flb_link *link __free(kfree) = NULL;
kernel/liveupdate/luo_flb.c
418
link = kzalloc_obj(*link);
kernel/liveupdate/luo_flb.c
419
if (!link)
kernel/liveupdate/luo_flb.c
453
link->flb = flb;
kernel/liveupdate/luo_flb.c
454
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
5003
hlist_add_head(¬ifier->link, ¤t->preempt_notifiers);
kernel/sched/core.c
5015
hlist_del(¬ifier->link);
kernel/sched/core.c
5023
hlist_for_each_entry(notifier, &curr->preempt_notifiers, link)
kernel/sched/core.c
5039
hlist_for_each_entry(notifier, &curr->preempt_notifiers, link)
kernel/sched/ext/ext.c
7815
static s32 scx_enable(struct scx_enable_cmd *cmd, struct bpf_link *link)
kernel/sched/ext/ext.c
8019
static int bpf_scx_reg(void *kdata, struct bpf_link *link)
kernel/sched/ext/ext.c
8023
return scx_enable(&cmd, link);
kernel/sched/ext/ext.c
8055
static int bpf_scx_reg_cid(void *kdata, struct bpf_link *link)
kernel/sched/ext/ext.c
8073
ret = scx_enable(&cmd, link);
kernel/sched/ext/ext.c
8079
static void bpf_scx_unreg(void *kdata, struct bpf_link *link)
kernel/sched/ext/ext.c
8097
static int bpf_scx_update(void *kdata, void *old_kdata, struct bpf_link *link)
kernel/sched/fair.c
9672
list_for_each_entry_rcu(entry, &asym_cap_list, link) {
kernel/sched/sched.h
120
struct list_head link;
kernel/sched/topology.c
1691
list_for_each_entry(entry, &asym_cap_list, link) {
kernel/sched/topology.c
1728
list_for_each_entry(entry, &asym_cap_list, link) {
kernel/sched/topology.c
1732
insert_entry = list_prev_entry(entry, link);
kernel/sched/topology.c
1742
list_add_tail_rcu(&entry->link, &asym_cap_list);
kernel/sched/topology.c
1744
list_add_rcu(&entry->link, &insert_entry->link);
kernel/sched/topology.c
1759
list_for_each_entry(entry, &asym_cap_list, link)
kernel/sched/topology.c
1765
list_for_each_entry_safe(entry, next, &asym_cap_list, link) {
kernel/sched/topology.c
1767
list_del_rcu(&entry->link);
kernel/sched/topology.c
1777
entry = list_first_entry(&asym_cap_list, typeof(*entry), link);
kernel/sched/topology.c
1778
list_del_rcu(&entry->link);
kernel/trace/bpf_trace.c
2104
void __bpf_trace_run(struct bpf_raw_tp_link *link, u64 *args)
kernel/trace/bpf_trace.c
2107
struct bpf_prog *prog = link->link.prog;
kernel/trace/bpf_trace.c
2124
run_ctx.bpf_cookie = link->cookie;
kernel/trace/bpf_trace.c
2165
void bpf_trace_run##x(struct bpf_raw_tp_link *link, \
kernel/trace/bpf_trace.c
2170
__bpf_trace_run(link, args); \
kernel/trace/bpf_trace.c
2186
int bpf_probe_register(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link)
kernel/trace/bpf_trace.c
2189
struct bpf_prog *prog = link->link.prog;
kernel/trace/bpf_trace.c
2201
return tracepoint_probe_register_may_exist(tp, (void *)btp->bpf_func, link);
kernel/trace/bpf_trace.c
2204
int bpf_probe_unregister(struct bpf_raw_event_map *btp, struct bpf_raw_tp_link *link)
kernel/trace/bpf_trace.c
2206
return tracepoint_probe_unregister(btp->tp, (void *)btp->bpf_func, link);
kernel/trace/bpf_trace.c
2337
struct bpf_link link;
kernel/trace/bpf_trace.c
2348
struct bpf_kprobe_multi_link *link;
kernel/trace/bpf_trace.c
2428
static void bpf_kprobe_multi_link_release(struct bpf_link *link)
kernel/trace/bpf_trace.c
2432
kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
kernel/trace/bpf_trace.c
2438
static void bpf_kprobe_multi_link_dealloc(struct bpf_link *link)
kernel/trace/bpf_trace.c
2442
kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
kernel/trace/bpf_trace.c
2449
static int bpf_kprobe_multi_link_fill_link_info(const struct bpf_link *link,
kernel/trace/bpf_trace.c
2463
kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
kernel/trace/bpf_trace.c
2465
info->kprobe_multi.flags = kmulti_link->link.flags;
kernel/trace/bpf_trace.c
2500
static void bpf_kprobe_multi_show_fdinfo(const struct bpf_link *link,
kernel/trace/bpf_trace.c
2506
kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
kernel/trace/bpf_trace.c
2536
const struct bpf_kprobe_multi_link *link = priv;
kernel/trace/bpf_trace.c
2540
cookie_a = link->cookies + (addr_a - link->addrs);
kernel/trace/bpf_trace.c
2541
cookie_b = link->cookies + (addr_b - link->addrs);
kernel/trace/bpf_trace.c
2565
struct bpf_kprobe_multi_link *link;
kernel/trace/bpf_trace.c
2573
link = run_ctx->link;
kernel/trace/bpf_trace.c
2574
if (!link->cookies)
kernel/trace/bpf_trace.c
2577
addr = bsearch(&entry_ip, link->addrs, link->cnt, sizeof(entry_ip),
kernel/trace/bpf_trace.c
2581
cookie = link->cookies + (addr - link->addrs);
kernel/trace/bpf_trace.c
2595
kprobe_multi_link_prog_run(struct bpf_kprobe_multi_link *link,
kernel/trace/bpf_trace.c
2604
.link = link,
kernel/trace/bpf_trace.c
2619
bpf_prog_inc_misses_counter(link->link.prog);
kernel/trace/bpf_trace.c
2627
err = bpf_prog_run(link->link.prog, regs);
kernel/trace/bpf_trace.c
2642
struct bpf_kprobe_multi_link *link;
kernel/trace/bpf_trace.c
2645
link = container_of(fp, struct bpf_kprobe_multi_link, fp);
kernel/trace/bpf_trace.c
2646
err = kprobe_multi_link_prog_run(link, ftrace_get_entry_ip(fentry_ip),
kernel/trace/bpf_trace.c
2648
return is_kprobe_session(link->link.prog) ? err : 0;
kernel/trace/bpf_trace.c
2656
struct bpf_kprobe_multi_link *link;
kernel/trace/bpf_trace.c
2658
link = container_of(fp, struct bpf_kprobe_multi_link, fp);
kernel/trace/bpf_trace.c
2659
kprobe_multi_link_prog_run(link, ftrace_get_entry_ip(fentry_ip),
kernel/trace/bpf_trace.c
2782
struct bpf_kprobe_multi_link *link = NULL;
kernel/trace/bpf_trace.c
2875
link = kzalloc_obj(*link);
kernel/trace/bpf_trace.c
2876
if (!link) {
kernel/trace/bpf_trace.c
2881
bpf_link_init(&link->link, BPF_LINK_TYPE_KPROBE_MULTI,
kernel/trace/bpf_trace.c
2884
err = bpf_link_prime(&link->link, &link_primer);
kernel/trace/bpf_trace.c
2889
link->fp.entry_handler = kprobe_multi_link_handler;
kernel/trace/bpf_trace.c
2891
link->fp.exit_handler = kprobe_multi_link_exit_handler;
kernel/trace/bpf_trace.c
2893
link->fp.entry_data_size = sizeof(u64);
kernel/trace/bpf_trace.c
2895
link->addrs = addrs;
kernel/trace/bpf_trace.c
2896
link->cookies = cookies;
kernel/trace/bpf_trace.c
2897
link->cnt = cnt;
kernel/trace/bpf_trace.c
2898
link->link.flags = flags;
kernel/trace/bpf_trace.c
2910
link);
kernel/trace/bpf_trace.c
2913
err = get_modules_for_addrs(&link->mods, addrs, cnt);
kernel/trace/bpf_trace.c
2918
link->mods_cnt = err;
kernel/trace/bpf_trace.c
2920
err = register_fprobe_ips(&link->fp, addrs, cnt);
kernel/trace/bpf_trace.c
2922
kprobe_multi_put_modules(link->mods, link->mods_cnt);
kernel/trace/bpf_trace.c
2930
kfree(link);
kernel/trace/bpf_trace.c
2954
struct bpf_uprobe_multi_link *link;
kernel/trace/bpf_trace.c
2965
struct bpf_link link;
kernel/trace/bpf_trace.c
2988
static void bpf_uprobe_multi_link_release(struct bpf_link *link)
kernel/trace/bpf_trace.c
2992
umulti_link = container_of(link, struct bpf_uprobe_multi_link, link);
kernel/trace/bpf_trace.c
2999
static void bpf_uprobe_multi_link_dealloc(struct bpf_link *link)
kernel/trace/bpf_trace.c
3003
umulti_link = container_of(link, struct bpf_uprobe_multi_link, link);
kernel/trace/bpf_trace.c
3008
static int bpf_uprobe_multi_link_fill_link_info(const struct bpf_link *link,
kernel/trace/bpf_trace.c
3028
umulti_link = container_of(link, struct bpf_uprobe_multi_link, link);
kernel/trace/bpf_trace.c
3030
info->uprobe_multi.flags = umulti_link->link.flags;
kernel/trace/bpf_trace.c
3076
static void bpf_uprobe_multi_show_fdinfo(const struct bpf_link *link,
kernel/trace/bpf_trace.c
3083
umulti_link = container_of(link, struct bpf_uprobe_multi_link, link);
kernel/trace/bpf_trace.c
3130
struct bpf_uprobe_multi_link *link = uprobe->link;
kernel/trace/bpf_trace.c
3139
struct bpf_prog *prog = link->link.prog;
kernel/trace/bpf_trace.c
3144
if (link->task && !same_thread_group(current, link->task))
kernel/trace/bpf_trace.c
3155
err = bpf_prog_run(link->link.prog, regs);
kernel/trace/bpf_trace.c
3173
return uprobe->link->task->mm == mm;
kernel/trace/bpf_trace.c
3253
struct bpf_uprobe_multi_link *link = NULL;
kernel/trace/bpf_trace.c
3327
link = kzalloc_obj(*link);
kernel/trace/bpf_trace.c
3330
if (!uprobes || !link)
kernel/trace/bpf_trace.c
3351
uprobes[i].link = link;
kernel/trace/bpf_trace.c
3363
link->cnt = cnt;
kernel/trace/bpf_trace.c
3364
link->uprobes = uprobes;
kernel/trace/bpf_trace.c
3365
link->path = path;
kernel/trace/bpf_trace.c
3366
link->task = task;
kernel/trace/bpf_trace.c
3367
link->link.flags = flags;
kernel/trace/bpf_trace.c
3369
bpf_link_init(&link->link, BPF_LINK_TYPE_UPROBE_MULTI,
kernel/trace/bpf_trace.c
3373
uprobes[i].uprobe = uprobe_register(d_real_inode(link->path.dentry),
kernel/trace/bpf_trace.c
3379
link->cnt = i;
kernel/trace/bpf_trace.c
3384
err = bpf_link_prime(&link->link, &link_primer);
kernel/trace/bpf_trace.c
3391
bpf_uprobe_unregister(uprobes, link->cnt);
kernel/trace/bpf_trace.c
3395
kfree(link);
kernel/trace/bpf_trace.c
3685
static void bpf_tracing_multi_link_release(struct bpf_link *link)
kernel/trace/bpf_trace.c
3688
container_of(link, struct bpf_tracing_multi_link, link);
kernel/trace/bpf_trace.c
3690
WARN_ON_ONCE(bpf_trampoline_multi_detach(link->prog, tr_link));
kernel/trace/bpf_trace.c
3693
static void bpf_tracing_multi_link_dealloc(struct bpf_link *link)
kernel/trace/bpf_trace.c
3696
container_of(link, struct bpf_tracing_multi_link, link);
kernel/trace/bpf_trace.c
3704
static void bpf_tracing_multi_show_fdinfo(const struct bpf_link *link,
kernel/trace/bpf_trace.c
3708
container_of(link, struct bpf_tracing_multi_link, link);
kernel/trace/bpf_trace.c
3711
seq_printf(seq, "attach_type:\t%u\n", tr_link->link.attach_type);
kernel/trace/bpf_trace.c
3787
struct bpf_tracing_multi_link *link = NULL;
kernel/trace/bpf_trace.c
3840
link = kvzalloc_flex(*link, nodes, cnt);
kernel/trace/bpf_trace.c
3841
if (!link) {
kernel/trace/bpf_trace.c
3846
bpf_link_init(&link->link, BPF_LINK_TYPE_TRACING_MULTI,
kernel/trace/bpf_trace.c
3849
err = bpf_link_prime(&link->link, &link_primer);
kernel/trace/bpf_trace.c
3853
link->nodes_cnt = cnt;
kernel/trace/bpf_trace.c
3854
link->cookies = cookies;
kernel/trace/bpf_trace.c
3855
link->fexits = fexits;
kernel/trace/bpf_trace.c
3857
err = bpf_trampoline_multi_attach(prog, ids, link);
kernel/trace/bpf_trace.c
3869
kvfree(link);
kernel/trace/simple_ring_buffer.c
102
link = (unsigned long)smp_load_acquire(&head->link.prev->next);
kernel/trace/simple_ring_buffer.c
104
switch (link & ~SIMPLE_RB_LINK_MASK) {
kernel/trace/simple_ring_buffer.c
151
reader->link.next = head->link.next;
kernel/trace/simple_ring_buffer.c
152
reader->link.prev = head->link.prev;
kernel/trace/simple_ring_buffer.c
155
last = simple_bpage_from_link(head->link.prev);
kernel/trace/simple_ring_buffer.c
166
cpu_buffer->head_page = simple_bpage_from_link(reader->link.next);
kernel/trace/simple_ring_buffer.c
167
cpu_buffer->head_page->link.prev = &reader->link;
kernel/trace/simple_ring_buffer.c
23
unsigned long link = (unsigned long)bpage->link.next;
kernel/trace/simple_ring_buffer.c
25
link &= SIMPLE_RB_LINK_MASK;
kernel/trace/simple_ring_buffer.c
26
link |= SIMPLE_RB_LINK_HEAD;
kernel/trace/simple_ring_buffer.c
33
smp_store_release(&bpage->link.next, (struct list_head *)link);
kernel/trace/simple_ring_buffer.c
40
unsigned long *link = (unsigned long *)(&bpage->link.next);
kernel/trace/simple_ring_buffer.c
41
unsigned long old = (*link & SIMPLE_RB_LINK_MASK) | SIMPLE_RB_LINK_HEAD;
kernel/trace/simple_ring_buffer.c
42
unsigned long new = (unsigned long)(&dst->link) | new_type;
kernel/trace/simple_ring_buffer.c
424
bpage->link.next = &(bpage + 1)->link;
kernel/trace/simple_ring_buffer.c
425
bpage->link.prev = &(bpage - 1)->link;
kernel/trace/simple_ring_buffer.c
44
return try_cmpxchg(link, &old, new);
kernel/trace/simple_ring_buffer.c
441
bpage->link.next = &cpu_buffer->tail_page->link;
kernel/trace/simple_ring_buffer.c
442
cpu_buffer->tail_page->link.prev = &bpage->link;
kernel/trace/simple_ring_buffer.c
49
unsigned long link = (unsigned long)bpage->link.next;
kernel/trace/simple_ring_buffer.c
51
WRITE_ONCE(bpage->link.next, (struct list_head *)(link & SIMPLE_RB_LINK_MASK));
kernel/trace/simple_ring_buffer.c
54
static struct simple_buffer_page *simple_bpage_from_link(struct list_head *link)
kernel/trace/simple_ring_buffer.c
56
unsigned long ptr = (unsigned long)link & SIMPLE_RB_LINK_MASK;
kernel/trace/simple_ring_buffer.c
58
return container_of((struct list_head *)ptr, struct simple_buffer_page, link);
kernel/trace/simple_ring_buffer.c
63
return simple_bpage_from_link(bpage->link.next);
kernel/trace/simple_ring_buffer.c
76
INIT_LIST_HEAD(&bpage->link);
kernel/trace/simple_ring_buffer.c
98
unsigned long link;
kernel/trace/trace.c
2549
list_for_each_entry(field, head, link) {
kernel/trace/trace.h
1577
struct list_head link;
kernel/trace/trace_events.c
140
list_add(&field->link, head);
kernel/trace/trace_events.c
2109
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
3521
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
1127
list_for_each_entry_safe(field, next, head, link) {
kernel/trace/trace_events_user.c
1128
list_del(&field->link);
kernel/trace/trace_events_user.c
1184
list_add(&field->link, &user->fields);
kernel/trace/trace_events_user.c
1420
list_for_each_entry_reverse(field, head, link) {
kernel/trace/trace_events_user.c
1432
list_for_each_entry_reverse(field, head, link) {
kernel/trace/trace_events_user.c
1839
list_for_each_entry_reverse(field, head, link) {
kernel/trace/trace_events_user.c
1925
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
1506
struct event_file_link *link;
kernel/trace/trace_kprobe.c
1508
trace_probe_for_each_link_rcu(link, &tk->tp)
kernel/trace/trace_kprobe.c
1509
__kprobe_trace_func(tk, regs, link->file);
kernel/trace/trace_kprobe.c
1573
struct event_file_link *link;
kernel/trace/trace_kprobe.c
1575
trace_probe_for_each_link_rcu(link, &tk->tp)
kernel/trace/trace_kprobe.c
1576
__kretprobe_trace_func(tk, ri, regs, link->file);
kernel/trace/trace_output.c
995
list_for_each_entry_reverse(field, head, link) {
kernel/trace/trace_probe.c
2273
struct event_file_link *link;
kernel/trace/trace_probe.c
2275
link = kmalloc_obj(*link);
kernel/trace/trace_probe.c
2276
if (!link)
kernel/trace/trace_probe.c
2279
link->file = file;
kernel/trace/trace_probe.c
2280
INIT_LIST_HEAD(&link->list);
kernel/trace/trace_probe.c
2281
list_add_tail_rcu(&link->list, &tp->event->files);
kernel/trace/trace_probe.c
2289
struct event_file_link *link;
kernel/trace/trace_probe.c
2291
trace_probe_for_each_link(link, tp) {
kernel/trace/trace_probe.c
2292
if (link->file == file)
kernel/trace/trace_probe.c
2293
return link;
kernel/trace/trace_probe.c
2302
struct event_file_link *link;
kernel/trace/trace_probe.c
2304
link = trace_probe_get_file_link(tp, file);
kernel/trace/trace_probe.c
2305
if (!link)
kernel/trace/trace_probe.c
2308
list_del_rcu(&link->list);
kernel/trace/trace_probe.c
2309
kvfree_rcu_mightsleep(link);
kernel/trace/trace_probe.c
325
list_for_each_entry(field, head, link) {
kernel/trace/trace_uprobe.c
1034
struct event_file_link *link;
kernel/trace/trace_uprobe.c
1043
trace_probe_for_each_link_rcu(link, &tu->tp)
kernel/trace/trace_uprobe.c
1044
__uprobe_trace_func(tu, 0, regs, ucb, link->file);
kernel/trace/trace_uprobe.c
1054
struct event_file_link *link;
kernel/trace/trace_uprobe.c
1060
trace_probe_for_each_link_rcu(link, &tu->tp)
kernel/trace/trace_uprobe.c
1061
__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
248
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
273
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
294
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
310
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
330
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
351
list_for_each_entry(cttype, &codetag_types, link) {
lib/codetag.c
403
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
1102
list_add(&rg->link, &resv_map->region_cache);
mm/hugetlb.c
1118
list_for_each_entry_safe(rg, trg, head, link) {
mm/hugetlb.c
1119
list_del(&rg->link);
mm/hugetlb.c
465
nrg = list_first_entry(&resv->region_cache, struct file_region, link);
mm/hugetlb.c
466
list_del(&nrg->link);
mm/hugetlb.c
544
prg = list_prev_entry(rg, link);
mm/hugetlb.c
545
if (&prg->link != &resv->regions && prg->to == rg->from &&
mm/hugetlb.c
549
list_del(&rg->link);
mm/hugetlb.c
556
nrg = list_next_entry(rg, link);
mm/hugetlb.c
557
if (&nrg->link != &resv->regions && nrg->from == rg->to &&
mm/hugetlb.c
561
list_del(&rg->link);
mm/hugetlb.c
577
list_add(&nrg->link, rg);
mm/hugetlb.c
611
list_for_each_entry_safe(iter, trg, head, link) {
mm/hugetlb.c
626
rg = iter->link.prev;
mm/hugetlb.c
634
add += hugetlb_resv_map_add(resv, iter->link.prev,
mm/hugetlb.c
691
list_add(&trg->link, &allocated_regions);
mm/hugetlb.c
703
list_for_each_entry_safe(rg, trg, &allocated_regions, link) {
mm/hugetlb.c
704
list_del(&rg->link);
mm/hugetlb.c
862
list_for_each_entry_safe(rg, trg, head, link) {
mm/hugetlb.c
885
link);
mm/hugetlb.c
886
list_del(&nrg->link);
mm/hugetlb.c
908
INIT_LIST_HEAD(&nrg->link);
mm/hugetlb.c
913
list_add(&nrg->link, &rg->link);
mm/hugetlb.c
922
list_del(&rg->link);
mm/hugetlb.c
988
list_for_each_entry(rg, head, link) {
mm/interval_tree.c
27
struct rb_node **link;
mm/interval_tree.c
35
link = &prev->shared.rb.rb_right;
mm/interval_tree.c
47
link = &parent->shared.rb.rb_left;
mm/interval_tree.c
51
rb_link_node(&node->shared.rb, &parent->shared.rb, link);
mm/kmemleak.c
722
struct rb_node **link, *rb_parent;
mm/kmemleak.c
745
link = &object_tree(objflags)->rb_node;
mm/kmemleak.c
747
while (*link) {
mm/kmemleak.c
748
rb_parent = *link;
mm/kmemleak.c
752
link = &parent->rb_node.rb_left;
mm/kmemleak.c
754
link = &parent->rb_node.rb_right;
mm/kmemleak.c
772
rb_link_node(&object->rb_node, rb_parent, link);
mm/mmu_notifier.c
268
llist_for_each_entry_safe(f, next, first, link)
mm/mmu_notifier.c
300
__llist_add(&finish->link, &finish_passes);
mm/mmu_notifier.c
479
__llist_add(&finish->link, &finish_passes);
mm/shmem.c
4033
char *link;
mm/shmem.c
4055
link = kmemdup(symname, len, GFP_KERNEL);
mm/shmem.c
4056
if (!link) {
mm/shmem.c
4061
inode_set_cached_link(inode, link, len - 1);
mm/shmem.c
5180
.link = shmem_link,
mm/swapfile.c
2873
struct rb_node **link = &sis->swap_extent_root.rb_node, *parent = NULL;
mm/swapfile.c
2881
while (*link) {
mm/swapfile.c
2882
parent = *link;
mm/swapfile.c
2883
link = &parent->rb_right;
mm/swapfile.c
2904
rb_link_node(&new_se->rb_node, parent, link);
mm/vmalloc.c
1181
struct rb_node **link;
mm/vmalloc.c
1184
link = &root->rb_node;
mm/vmalloc.c
1185
if (unlikely(!*link)) {
mm/vmalloc.c
1187
return link;
mm/vmalloc.c
1190
link = &from;
mm/vmalloc.c
1199
tmp_va = rb_entry(*link, struct vmap_area, rb_node);
mm/vmalloc.c
1207
link = &(*link)->rb_left;
mm/vmalloc.c
1209
link = &(*link)->rb_right;
mm/vmalloc.c
1216
} while (*link);
mm/vmalloc.c
1219
return link;
mm/vmalloc.c
1223
get_va_next_sibling(struct rb_node *parent, struct rb_node **link)
mm/vmalloc.c
1237
return (&parent->rb_right == link ? list->next : list);
mm/vmalloc.c
1242
struct rb_node *parent, struct rb_node **link,
mm/vmalloc.c
1251
if (&parent->rb_right != link)
mm/vmalloc.c
1256
rb_link_node(&va->rb_node, parent, link);
mm/vmalloc.c
1282
struct rb_node *parent, struct rb_node **link,
mm/vmalloc.c
1285
__link_va(va, root, parent, link, head, false);
mm/vmalloc.c
1290
struct rb_node *parent, struct rb_node **link,
mm/vmalloc.c
1293
__link_va(va, root, parent, link, head, true);
mm/vmalloc.c
1397
struct rb_node **link;
mm/vmalloc.c
1400
link = find_va_links(va, root, NULL, &parent);
mm/vmalloc.c
1401
if (link)
mm/vmalloc.c
1402
link_va(va, root, parent, link, head);
mm/vmalloc.c
1410
struct rb_node **link;
mm/vmalloc.c
1414
link = find_va_links(va, NULL, from, &parent);
mm/vmalloc.c
1416
link = find_va_links(va, root, NULL, &parent);
mm/vmalloc.c
1418
if (link) {
mm/vmalloc.c
1419
link_va_augment(va, root, parent, link, head);
mm/vmalloc.c
1441
struct rb_node **link;
mm/vmalloc.c
1449
link = find_va_links(va, root, NULL, &parent);
mm/vmalloc.c
1450
if (!link)
mm/vmalloc.c
1456
next = get_va_next_sibling(parent, link);
mm/vmalloc.c
1514
__link_va(va, root, parent, link, head, augment);
mm/zsmalloc.c
1248
struct link_free *link;
mm/zsmalloc.c
1267
link = (struct link_free *)vaddr + m_offset / sizeof(*link);
mm/zsmalloc.c
1268
set_freeobj(zspage, link->next >> OBJ_TAG_BITS);
mm/zsmalloc.c
1271
link->handle = handle | OBJ_ALLOCATED_TAG;
mm/zsmalloc.c
1357
struct link_free *link;
mm/zsmalloc.c
1370
link = (struct link_free *)(vaddr + f_offset);
mm/zsmalloc.c
1374
link->next = get_freeobj(zspage) << OBJ_TAG_BITS;
mm/zsmalloc.c
859
struct link_free *link;
mm/zsmalloc.c
865
link = (struct link_free *)vaddr + off / sizeof(*link);
mm/zsmalloc.c
868
link->next = freeobj++ << OBJ_TAG_BITS;
mm/zsmalloc.c
869
link += class->size / sizeof(*link);
mm/zsmalloc.c
879
link->next = freeobj++ << OBJ_TAG_BITS;
mm/zsmalloc.c
885
link->next = -1UL << OBJ_TAG_BITS;
net/bluetooth/hci_conn.c
1201
struct hci_link *link, *t;
net/bluetooth/hci_conn.c
1203
list_for_each_entry_safe(link, t, &conn->link_list, list) {
net/bluetooth/hci_conn.c
1204
struct hci_conn *child = link->conn;
net/bluetooth/hci_conn.c
1222
if (!conn->link)
net/bluetooth/hci_conn.c
1225
list_del_rcu(&conn->link->list);
net/bluetooth/hci_conn.c
1232
kfree(conn->link);
net/bluetooth/hci_conn.c
1233
conn->link = NULL;
net/bluetooth/hci_conn.c
1798
struct hci_link *link;
net/bluetooth/hci_conn.c
1802
if (conn->link)
net/bluetooth/hci_conn.c
1803
return conn->link;
net/bluetooth/hci_conn.c
1808
link = kzalloc_obj(*link);
net/bluetooth/hci_conn.c
1809
if (!link)
net/bluetooth/hci_conn.c
1812
link->conn = hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1813
conn->link = link;
net/bluetooth/hci_conn.c
1817
list_add_tail_rcu(&link->list, &parent->link_list);
net/bluetooth/hci_conn.c
1819
return link;
net/bluetooth/hci_conn.c
1828
struct hci_link *link;
net/bluetooth/hci_conn.c
1844
link = hci_conn_link(acl, sco);
net/bluetooth/hci_conn.c
1845
if (!link) {
net/bluetooth/hci_conn.c
2303
struct hci_link *link;
net/bluetooth/hci_conn.c
2343
link = hci_conn_link(parent, conn);
net/bluetooth/hci_conn.c
2345
if (!link)
net/bluetooth/hci_conn.c
2438
struct hci_link *link;
net/bluetooth/hci_conn.c
2466
link = hci_conn_link(le, cis);
net/bluetooth/hci_conn.c
2468
if (!link) {
net/bluetooth/hci_conn.c
604
struct hci_link *link;
net/bluetooth/hci_conn.c
606
link = list_first_entry_or_null(&conn->link_list, struct hci_link, list);
net/bluetooth/hci_conn.c
607
if (!link || !link->conn)
net/bluetooth/hci_conn.c
614
hci_setup_sync(link->conn, conn->handle);
net/bluetooth/hci_conn.c
616
hci_add_sco(link->conn, conn->handle);
net/bluetooth/hci_conn.c
618
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_conn.c
619
hci_conn_del(link->conn);
net/bluetooth/hci_event.c
2291
struct hci_link *link;
net/bluetooth/hci_event.c
2311
link = list_first_entry_or_null(&acl->link_list,
net/bluetooth/hci_event.c
2313
if (link && link->conn) {
net/bluetooth/hci_event.c
2314
link->conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2316
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_event.c
2317
hci_conn_del(link->conn);
net/bluetooth/hci_event.c
2586
struct hci_link *link;
net/bluetooth/hci_event.c
2594
link = list_first_entry_or_null(&acl->link_list,
net/bluetooth/hci_event.c
2596
if (link && link->conn) {
net/bluetooth/hci_event.c
2597
link->conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2599
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_event.c
2600
hci_conn_del(link->conn);
net/bluetooth/hci_sync.c
6843
struct hci_conn *link;
net/bluetooth/hci_sync.c
6850
list_for_each_entry_rcu(link, &hdev->conn_hash.list, list) {
net/bluetooth/hci_sync.c
6851
if (hci_conn_check_create_cis(link) > 0 &&
net/bluetooth/hci_sync.c
6852
link->iso_qos.ucast.cig == cig &&
net/bluetooth/hci_sync.c
6853
link->state != BT_CONNECTED) {
net/bluetooth/iso.c
2465
struct hci_link *link, *t;
net/bluetooth/iso.c
2467
list_for_each_entry_safe(link, t, &hcon->link_list,
net/bluetooth/iso.c
2469
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_tramp_link_init(link, BPF_LINK_TYPE_STRUCT_OPS, &bpf_struct_ops_link_lops,
net/bpf/bpf_dummy_struct_ops.c
178
err = bpf_struct_ops_prepare_trampoline(tnodes, &link->node,
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
10211
struct bpf_link link;
net/core/dev.c
10243
return dev->xdp_state[mode].link;
net/core/dev.c
10249
struct bpf_xdp_link *link = dev_xdp_link(dev, mode);
net/core/dev.c
10251
if (link)
net/core/dev.c
10252
return link->link.prog;
net/core/dev.c
10262
if (dev->xdp_state[i].prog || dev->xdp_state[i].link)
net/core/dev.c
10310
struct bpf_xdp_link *link)
net/core/dev.c
10312
dev->xdp_state[mode].link = link;
net/core/dev.c
10319
dev->xdp_state[mode].link = NULL;
net/core/dev.c
10372
struct bpf_xdp_link *link;
net/core/dev.c
10391
link = dev_xdp_link(dev, mode);
net/core/dev.c
10392
if (link)
net/core/dev.c
10393
link->dev = NULL;
net/core/dev.c
10402
struct bpf_xdp_link *link, struct bpf_prog *new_prog,
net/core/dev.c
10416
if (link && (new_prog || old_prog))
net/core/dev.c
10419
if (link && (flags & ~XDP_FLAGS_MODES)) {
net/core/dev.c
10457
if (link && cur_prog) {
net/core/dev.c
10467
if (link)
net/core/dev.c
10468
new_prog = link->link.prog;
net/core/dev.c
10518
if (link)
net/core/dev.c
10519
dev_xdp_set_link(dev, mode, link);
net/core/dev.c
10530
struct bpf_xdp_link *link)
net/core/dev.c
10532
return dev_xdp_attach(dev, extack, link, NULL, NULL, link->flags);
net/core/dev.c
10537
struct bpf_xdp_link *link)
net/core/dev.c
10544
mode = dev_xdp_mode(dev, link->flags);
net/core/dev.c
10545
if (dev_xdp_link(dev, mode) != link)
net/core/dev.c
10554
static void bpf_xdp_link_release(struct bpf_link *link)
net/core/dev.c
10556
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10573
static int bpf_xdp_link_detach(struct bpf_link *link)
net/core/dev.c
10575
bpf_xdp_link_release(link);
net/core/dev.c
10579
static void bpf_xdp_link_dealloc(struct bpf_link *link)
net/core/dev.c
10581
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10586
static void bpf_xdp_link_show_fdinfo(const struct bpf_link *link,
net/core/dev.c
10589
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10600
static int bpf_xdp_link_fill_link_info(const struct bpf_link *link,
net/core/dev.c
10603
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10615
static int bpf_xdp_link_update(struct bpf_link *link, struct bpf_prog *new_prog,
net/core/dev.c
10618
struct bpf_xdp_link *xdp_link = container_of(link, struct bpf_xdp_link, link);
net/core/dev.c
10631
if (old_prog && link->prog != old_prog) {
net/core/dev.c
10635
old_prog = link->prog;
net/core/dev.c
10657
old_prog = xchg(&link->prog, new_prog);
net/core/dev.c
10679
struct bpf_xdp_link *link;
net/core/dev.c
10690
link = kzalloc_obj(*link, GFP_USER);
net/core/dev.c
10691
if (!link) {
net/core/dev.c
10696
bpf_link_init(&link->link, BPF_LINK_TYPE_XDP, &bpf_xdp_link_lops, prog,
net/core/dev.c
10698
link->dev = dev;
net/core/dev.c
10699
link->flags = attr->link_create.flags;
net/core/dev.c
10701
err = bpf_link_prime(&link->link, &link_primer);
net/core/dev.c
10703
kfree(link);
net/core/dev.c
10708
err = dev_xdp_attach_link(dev, &extack, link);
net/core/dev.c
10713
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
4478
struct rtnl_link *link;
net/core/rtnetlink.c
4491
link = rcu_dereference_rtnl(tab[type]);
net/core/rtnetlink.c
4492
if (!link)
net/core/rtnetlink.c
4495
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
6981
struct rtnl_link *link;
net/core/rtnetlink.c
7012
link = rtnl_get_link(family, type);
net/core/rtnetlink.c
7013
if (!link || !link->dumpit) {
net/core/rtnetlink.c
7015
link = rtnl_get_link(family, type);
net/core/rtnetlink.c
7016
if (!link || !link->dumpit)
net/core/rtnetlink.c
7019
owner = link->owner;
net/core/rtnetlink.c
7020
dumpit = link->dumpit;
net/core/rtnetlink.c
7021
flags = link->flags;
net/core/rtnetlink.c
7050
link = rtnl_get_link(family, type);
net/core/rtnetlink.c
7051
if (!link || !link->doit) {
net/core/rtnetlink.c
7053
link = rtnl_get_link(PF_UNSPEC, type);
net/core/rtnetlink.c
7054
if (!link || !link->doit)
net/core/rtnetlink.c
7058
owner = link->owner;
net/core/rtnetlink.c
7064
flags = link->flags;
net/core/rtnetlink.c
7073
doit = link->doit;
net/core/rtnetlink.c
7083
link = rtnl_get_link(family, type);
net/core/rtnetlink.c
7084
if (link && link->doit)
net/core/rtnetlink.c
7085
err = link->doit(skb, nlh, extack);
net/core/skmsg.c
782
INIT_LIST_HEAD(&psock->link);
net/core/skmsg.c
807
struct sk_psock_link *link;
net/core/skmsg.c
810
link = list_first_entry_or_null(&psock->link, struct sk_psock_link,
net/core/skmsg.c
812
if (link)
net/core/skmsg.c
813
list_del(&link->list);
net/core/skmsg.c
815
return link;
net/core/skmsg.c
846
struct sk_psock_link *link, *tmp;
net/core/skmsg.c
848
list_for_each_entry_safe(link, tmp, &psock->link, list) {
net/core/skmsg.c
849
list_del(&link->list);
net/core/skmsg.c
850
sk_psock_free_link(link);
net/core/sock_map.c
1000
struct sk_psock_link *link;
net/core/sock_map.c
1008
link = sk_psock_init_link();
net/core/sock_map.c
1009
if (!link)
net/core/sock_map.c
1038
sock_map_add_link(psock, link, map, elem_new);
net/core/sock_map.c
1054
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
1538
struct bpf_prog *old, struct bpf_link *link,
net/core/sock_map.c
1556
if ((!link || prog) && *plink)
net/core/sock_map.c
1565
if (link)
net/core/sock_map.c
1566
*plink = link;
net/core/sock_map.c
160
list_del(&link->list);
net/core/sock_map.c
161
sk_psock_free_link(link);
net/core/sock_map.c
1621
static void sock_map_unlink(struct sock *sk, struct sk_psock_link *link)
net/core/sock_map.c
1623
switch (link->map->map_type) {
net/core/sock_map.c
1625
return sock_map_delete_from_link(link->map, sk,
net/core/sock_map.c
1626
link->link_raw);
net/core/sock_map.c
1628
return sock_hash_delete_from_link(link->map, sk,
net/core/sock_map.c
1629
link->link_raw);
net/core/sock_map.c
1637
struct sk_psock_link *link;
net/core/sock_map.c
1639
while ((link = sk_psock_link_pop(psock))) {
net/core/sock_map.c
1640
sock_map_unlink(sk, link);
net/core/sock_map.c
1641
sk_psock_free_link(link);
net/core/sock_map.c
1738
struct bpf_link link;
net/core/sock_map.c
1742
static void sock_map_link_release(struct bpf_link *link)
net/core/sock_map.c
1744
struct sockmap_link *sockmap_link = container_of(link, struct sockmap_link, link);
net/core/sock_map.c
1750
WARN_ON_ONCE(sock_map_prog_update(sockmap_link->map, NULL, link->prog, link,
net/core/sock_map.c
1751
link->attach_type));
net/core/sock_map.c
1759
static int sock_map_link_detach(struct bpf_link *link)
net/core/sock_map.c
1761
sock_map_link_release(link);
net/core/sock_map.c
1765
static void sock_map_link_dealloc(struct bpf_link *link)
net/core/sock_map.c
1767
kfree(link);
net/core/sock_map.c
1774
static int sock_map_link_update_prog(struct bpf_link *link,
net/core/sock_map.c
1778
const struct sockmap_link *sockmap_link = container_of(link, struct sockmap_link, link);
net/core/sock_map.c
1786
if (old && link->prog != old) {
net/core/sock_map.c
1791
if (link->prog->type != prog->type ||
net/core/sock_map.c
1792
link->prog->expected_attach_type != prog->expected_attach_type) {
net/core/sock_map.c
1797
ret = sock_map_prog_attach_check(link->attach_type, prog);
net/core/sock_map.c
1807
link->attach_type);
net/core/sock_map.c
1812
if (link != *plink) {
net/core/sock_map.c
1826
old_link_prog = xchg(&link->prog, prog);
net/core/sock_map.c
1845
static int sock_map_link_fill_info(const struct bpf_link *link,
net/core/sock_map.c
1848
const struct sockmap_link *sockmap_link = container_of(link, struct sockmap_link, link);
net/core/sock_map.c
1852
info->sockmap.attach_type = link->attach_type;
net/core/sock_map.c
1856
static void sock_map_link_show_fdinfo(const struct bpf_link *link,
net/core/sock_map.c
1859
const struct sockmap_link *sockmap_link = container_of(link, struct sockmap_link, link);
net/core/sock_map.c
1863
seq_printf(seq, "attach_type:\t%u\n", link->attach_type);
net/core/sock_map.c
1901
bpf_link_init(&sockmap_link->link, BPF_LINK_TYPE_SOCKMAP, &sock_map_link_ops, prog,
net/core/sock_map.c
1905
ret = bpf_link_prime(&sockmap_link->link, &link_primer);
net/core/sock_map.c
1912
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/dsa/dsa.c
1243
bool link = of_property_read_bool(dn, "link");
net/dsa/dsa.c
1271
if (link)
net/ethtool/ioctl.c
1976
int link = __ethtool_get_link(dev);
net/ethtool/ioctl.c
1978
if (link < 0)
net/ethtool/ioctl.c
1979
return link;
net/ethtool/ioctl.c
1981
edata.data = link;
net/ethtool/linkstate.c
115
data->link = __ethtool_get_link(dev);
net/ethtool/linkstate.c
15
int link;
net/ethtool/linkstate.c
184
if (data->link >= 0 &&
net/ethtool/linkstate.c
185
nla_put_u8(skb, ETHTOOL_A_LINKSTATE_LINK, !!data->link))
net/ethtool/linkstate.c
41
else if (!phydev->link)
net/ethtool/linkstate.c
60
else if (!phydev->link)
net/ethtool/mse.c
145
if (!phydev->link) {
net/hsr/hsr_netlink.c
133
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
88
if (interlink && interlink == link[0]) {
net/hsr/hsr_netlink.c
93
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
1198
parms->link = nla_get_u32(data[IFLA_GRE_LINK]);
net/ipv4/ip_gre.c
1569
if (nla_put_u32(skb, IFLA_GRE_LINK, p->link) ||
net/ipv4/ip_gre.c
943
.flowi4_oif = t->parms.link,
net/ipv4/ip_tunnel.c
1009
kp->link = p.link;
net/ipv4/ip_tunnel.c
103
if (READ_ONCE(t->parms.link) == link)
net/ipv4/ip_tunnel.c
1031
p.link = kp->link;
net/ipv4/ip_tunnel.c
1121
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
765
tunnel->net, READ_ONCE(tunnel->parms.link),
net/ipv4/ip_tunnel.c
82
int link, const unsigned long *flags,
net/ipv4/ip_tunnel.c
884
if (t->parms.link != p->link || t->fwmark != fwmark) {
net/ipv4/ip_tunnel.c
887
WRITE_ONCE(t->parms.link, p->link);
net/ipv4/ip_tunnel_core.c
1167
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
629
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
555
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
net/ipv4/ipmr.c
1930
iph->tos & INET_DSCP_MASK, vif->link);
net/ipv4/ipmr.c
1938
iph->tos & INET_DSCP_MASK, vif->link);
net/ipv4/ipmr_base.c
26
v->link = dev_get_iflink(dev);
net/ipv4/ipmr_base.c
28
v->link = dev->ifindex;
net/ipv6/ip6_gre.c
1102
fl6->flowi6_oif = p->link;
net/ipv6/ip6_gre.c
1134
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
1197
t->parms.link = p->link;
net/ipv6/ip6_gre.c
1228
p->link = u->link;
net/ipv6/ip6_gre.c
123
if (t->parms.link != link)
net/ipv6/ip6_gre.c
1246
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
1769
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
2142
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
1056
if (p->link)
net/ipv6/ip6_tunnel.c
1057
ldev = dev_get_by_index_rcu(net, p->link);
net/ipv6/ip6_tunnel.c
115
ip6_tnl_lookup(struct net *net, int link,
net/ipv6/ip6_tunnel.c
129
if (link == t->parms.link)
net/ipv6/ip6_tunnel.c
143
if (link == t->parms.link)
net/ipv6/ip6_tunnel.c
1489
fl6->flowi6_oif = p->link;
net/ipv6/ip6_tunnel.c
1515
p->link, NULL, strict);
net/ipv6/ip6_tunnel.c
1521
if (!tdev && p->link)
net/ipv6/ip6_tunnel.c
1522
tdev = __dev_get_by_index(t->net, p->link);
net/ipv6/ip6_tunnel.c
1558
t->parms.link = p->link;
net/ipv6/ip6_tunnel.c
156
if (link == t->parms.link)
net/ipv6/ip6_tunnel.c
1587
p->flowinfo || p->link || p->fwmark || p->collect_md))
net/ipv6/ip6_tunnel.c
1604
p->link = u->link;
net/ipv6/ip6_tunnel.c
1618
u->link = p->link;
net/ipv6/ip6_tunnel.c
1787
return READ_ONCE(t->parms.link);
net/ipv6/ip6_tunnel.c
2032
parms->link = nla_get_u32(data[IFLA_IPTUN_LINK]);
net/ipv6/ip6_tunnel.c
2208
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
net/ipv6/ip6_tunnel.c
351
p->link == t->parms.link) {
net/ipv6/ip6_tunnel.c
766
(!((ltype|rtype) & IPV6_ADDR_LINKLOCAL) || p->link)) {
net/ipv6/ip6_tunnel.c
790
if (p->link)
net/ipv6/ip6_tunnel.c
791
ldev = dev_get_by_index_rcu(net, p->link);
net/ipv6/ip6_vti.c
1092
if (nla_put_u32(skb, IFLA_VTI_LINK, parm->link) ||
net/ipv6/ip6_vti.c
681
p->link, NULL, strict);
net/ipv6/ip6_vti.c
688
if (!tdev && p->link)
net/ipv6/ip6_vti.c
689
tdev = __dev_get_by_index(t->net, p->link);
net/ipv6/ip6_vti.c
714
t->parms.link = p->link;
net/ipv6/ip6_vti.c
745
p->link = u->link;
net/ipv6/ip6_vti.c
758
u->link = p->link;
net/ipv6/ip6_vti.c
992
parms->link = nla_get_u32(data[IFLA_VTI_LINK]);
net/ipv6/ip6mr.c
2108
.flowi6_oif = vif->link,
net/ipv6/sit.c
1113
tunnel->parms.link);
net/ipv6/sit.c
1122
if (!tdev && tunnel->parms.link)
net/ipv6/sit.c
1123
tdev = __dev_get_by_index(tunnel->net, tunnel->parms.link);
net/ipv6/sit.c
113
(!dev || !t->parms.link || ifindex == t->parms.link ||
net/ipv6/sit.c
114
sifindex == t->parms.link) &&
net/ipv6/sit.c
1154
if (t->parms.link != p->link || t->fwmark != fwmark) {
net/ipv6/sit.c
1155
t->parms.link = p->link;
net/ipv6/sit.c
120
(!dev || !t->parms.link || ifindex == t->parms.link ||
net/ipv6/sit.c
121
sifindex == t->parms.link) &&
net/ipv6/sit.c
127
(!dev || !t->parms.link || ifindex == t->parms.link ||
net/ipv6/sit.c
128
sifindex == t->parms.link) &&
net/ipv6/sit.c
1699
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
net/ipv6/sit.c
247
parms->link == t->parms.link) {
net/ipv6/sit.c
576
t->parms.link, iph->protocol);
net/ipv6/sit.c
581
ipv4_redirect(skb, dev_net(skb->dev), t->parms.link,
net/ipv6/sit.c
932
flowi4_init_output(&fl4, tunnel->parms.link, tunnel->fwmark,
net/llc/af_llc.c
506
llc->link = llc_ui_next_link_no(llc->sap->laddr.lsap);
net/llc/af_llc.c
733
newllc->link = llc_ui_next_link_no(newllc->laddr.lsap);
net/llc/llc_proc.c
149
llc->link);
net/mac80211/ap.c
225
struct ieee80211_link_data *link;
net/mac80211/ap.c
244
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/ap.c
245
if (!link)
net/mac80211/ap.c
248
chanctx_conf = sdata_dereference(link->conf->chanctx_conf,
net/mac80211/ap.c
255
link_sta = sdata_dereference(sta->link[link_id], sdata);
net/mac80211/ap.c
324
void ieee80211_uhr_disable_dbe_all_stas(struct ieee80211_link_data *link)
net/mac80211/ap.c
326
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/ap.c
330
int link_id = link->link_id;
net/mac80211/ap.c
333
chanctx_conf = sdata_dereference(link->conf->chanctx_conf, sdata);
net/mac80211/ap.c
344
link_sta = sdata_dereference(sta->link[link_id], sdata);
net/mac80211/cfg.c
1102
struct ieee80211_link_data *link)
net/mac80211/cfg.c
1109
old = sdata_dereference(link->u.ap.probe_resp, sdata);
net/mac80211/cfg.c
1125
rcu_assign_pointer(link->u.ap.probe_resp, new);
net/mac80211/cfg.c
1134
struct ieee80211_link_data *link,
net/mac80211/cfg.c
1148
old = sdata_dereference(link->u.ap.fils_discovery, sdata);
net/mac80211/cfg.c
1155
rcu_assign_pointer(link->u.ap.fils_discovery, new);
net/mac80211/cfg.c
1157
RCU_INIT_POINTER(link->u.ap.fils_discovery, NULL);
net/mac80211/cfg.c
1170
struct ieee80211_link_data *link,
net/mac80211/cfg.c
1181
old = sdata_dereference(link->u.ap.unsol_bcast_probe_resp, sdata);
net/mac80211/cfg.c
1189
rcu_assign_pointer(link->u.ap.unsol_bcast_probe_resp, new);
net/mac80211/cfg.c
1191
RCU_INIT_POINTER(link->u.ap.unsol_bcast_probe_resp, NULL);
net/mac80211/cfg.c
1203
struct ieee80211_link_data *link,
net/mac80211/cfg.c
1208
sdata_dereference(link->u.ap.s1g_short_beacon, sdata);
net/mac80211/cfg.c
1234
rcu_assign_pointer(link->u.ap.s1g_short_beacon, new);
net/mac80211/cfg.c
1425
static void ieee80211_update_ap_bandwidth(struct ieee80211_link_data *link,
net/mac80211/cfg.c
1428
struct ieee80211_local *local = link->sdata->local;
net/mac80211/cfg.c
1445
if (link->conf->chanreq.oper.chan->band == NL80211_BAND_S1GHZ)
net/mac80211/cfg.c
1448
link->bss_bw.he_and_lower = ieee80211_calc_ap_he_and_lower(params);
net/mac80211/cfg.c
1449
link->bss_bw.eht = ieee80211_calc_ap_eht_bw(params,
net/mac80211/cfg.c
1450
link->bss_bw.he_and_lower);
net/mac80211/cfg.c
1452
chanctx_conf = sdata_dereference(link->conf->chanctx_conf, link->sdata);
net/mac80211/cfg.c
1465
struct ieee80211_link_data *link,
net/mac80211/cfg.c
1477
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/cfg.c
1479
old = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
1570
params->probe_resp_len, csa, cca, link);
net/mac80211/cfg.c
1595
rcu_assign_pointer(link->u.ap.beacon, new);
net/mac80211/cfg.c
1601
ieee80211_update_ap_bandwidth(link, params);
net/mac80211/cfg.c
1609
struct ieee80211_link_data *link;
net/mac80211/cfg.c
1620
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
1621
if (!link)
net/mac80211/cfg.c
1624
if (sdata_dereference(link->u.ap.beacon, sdata))
net/mac80211/cfg.c
1647
struct ieee80211_link_data *link;
net/mac80211/cfg.c
1657
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
1658
if (!link)
net/mac80211/cfg.c
1661
link_conf = link->conf;
net/mac80211/cfg.c
1663
old = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
1667
link->smps_mode = IEEE80211_SMPS_OFF;
net/mac80211/cfg.c
1669
link->needed_rx_chains = sdata->local->rx_chains;
net/mac80211/cfg.c
1792
if (memcmp(&npca_params, &link->conf->npca,
net/mac80211/cfg.c
1794
link->conf->npca = npca_params;
net/mac80211/cfg.c
1808
err = ieee80211_link_use_channel(link, &chanreq,
net/mac80211/cfg.c
1811
ieee80211_link_copy_chanctx_to_vlans(link, false);
net/mac80211/cfg.c
1877
err = ieee80211_assign_beacon(sdata, link, ¶ms->beacon, NULL, NULL,
net/mac80211/cfg.c
1883
link, link_conf, &changed);
net/mac80211/cfg.c
1889
link, link_conf, &changed);
net/mac80211/cfg.c
1894
err = ieee80211_set_s1g_short_beacon(sdata, link,
net/mac80211/cfg.c
1902
old = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
1906
RCU_INIT_POINTER(link->u.ap.beacon, NULL);
net/mac80211/cfg.c
1917
if (link->u.ap.s1g_short_beacon)
net/mac80211/cfg.c
1921
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
1932
ieee80211_link_release_channel(link);
net/mac80211/cfg.c
1942
struct ieee80211_link_data *link;
net/mac80211/cfg.c
1951
link = sdata_dereference(sdata->link[beacon->link_id], sdata);
net/mac80211/cfg.c
1952
if (!link)
net/mac80211/cfg.c
1955
link_conf = link->conf;
net/mac80211/cfg.c
1963
old = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
1967
err = ieee80211_assign_beacon(sdata, link, beacon, NULL, NULL,
net/mac80211/cfg.c
1973
link, link_conf, &changed);
net/mac80211/cfg.c
1979
link, link_conf, &changed);
net/mac80211/cfg.c
1983
if (link->u.ap.s1g_short_beacon) {
net/mac80211/cfg.c
1984
err = ieee80211_set_s1g_short_beacon(sdata, link,
net/mac80211/cfg.c
1996
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
2000
static void ieee80211_free_next_beacon(struct ieee80211_link_data *link)
net/mac80211/cfg.c
2002
if (!link->u.ap.next_beacon)
net/mac80211/cfg.c
2005
kfree(link->u.ap.next_beacon->mbssid_ies);
net/mac80211/cfg.c
2006
kfree(link->u.ap.next_beacon->rnr_ies);
net/mac80211/cfg.c
2007
kfree(link->u.ap.next_beacon);
net/mac80211/cfg.c
2008
link->u.ap.next_beacon = NULL;
net/mac80211/cfg.c
2023
struct ieee80211_link_data *link =
net/mac80211/cfg.c
2024
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
2025
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/cfg.c
2031
old_beacon = sdata_dereference(link->u.ap.beacon, sdata);
net/mac80211/cfg.c
2034
old_probe_resp = sdata_dereference(link->u.ap.probe_resp,
net/mac80211/cfg.c
2036
old_fils_discovery = sdata_dereference(link->u.ap.fils_discovery,
net/mac80211/cfg.c
2039
sdata_dereference(link->u.ap.unsol_bcast_probe_resp,
net/mac80211/cfg.c
2042
sdata_dereference(link->u.ap.s1g_short_beacon, sdata);
net/mac80211/cfg.c
2049
ieee80211_free_next_beacon(link);
net/mac80211/cfg.c
2061
RCU_INIT_POINTER(link->u.ap.beacon, NULL);
net/mac80211/cfg.c
2062
RCU_INIT_POINTER(link->u.ap.probe_resp, NULL);
net/mac80211/cfg.c
2063
RCU_INIT_POINTER(link->u.ap.fils_discovery, NULL);
net/mac80211/cfg.c
2064
RCU_INIT_POINTER(link->u.ap.unsol_bcast_probe_resp, NULL);
net/mac80211/cfg.c
2065
RCU_INIT_POINTER(link->u.ap.s1g_short_beacon, NULL);
net/mac80211/cfg.c
2102
ieee80211_link_info_change_notify(sdata, link, changes);
net/mac80211/cfg.c
2104
ieee80211_remove_link_keys(link, &keys);
net/mac80211/cfg.c
2112
wiphy_hrtimer_work_cancel(wiphy, &link->dfs_cac_timer_work);
net/mac80211/cfg.c
2124
ieee80211_link_copy_chanctx_to_vlans(link, true);
net/mac80211/cfg.c
2125
ieee80211_link_release_channel(link);
net/mac80211/cfg.c
2269
struct ieee80211_link_data *link =
net/mac80211/cfg.c
2270
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
2272
rcu_dereference_protected(sta->link[link_id],
net/mac80211/cfg.c
2303
if (!link || !link_sta)
net/mac80211/cfg.c
2318
sband = ieee80211_get_link_sband(link);
net/mac80211/cfg.c
2420
ieee80211_sta_init_nss_bw_capa(link_sta, &link->conf->chanreq.oper);
net/mac80211/cfg.c
2425
enum nl80211_chan_width width = link->conf->chanreq.oper.width;
net/mac80211/cfg.c
30
struct ieee80211_link_data *link;
net/mac80211/cfg.c
3345
struct ieee80211_link_data *link;
net/mac80211/cfg.c
3349
link = ieee80211_link_or_deflink(sdata, params->link_id, true);
net/mac80211/cfg.c
3350
if (IS_ERR(link))
net/mac80211/cfg.c
3351
return PTR_ERR(link);
net/mac80211/cfg.c
3353
if (!sdata_dereference(link->u.ap.beacon, sdata))
net/mac80211/cfg.c
3356
sband = ieee80211_get_link_sband(link);
net/mac80211/cfg.c
3364
&link->conf->basic_rates))
net/mac80211/cfg.c
3367
ieee80211_check_rate_mask(link);
net/mac80211/cfg.c
3371
link->conf->use_cts_prot = params->use_cts_prot;
net/mac80211/cfg.c
3375
link->conf->use_short_preamble = params->use_short_preamble;
net/mac80211/cfg.c
3379
if (!link->conf->use_short_slot &&
net/mac80211/cfg.c
3382
link->conf->use_short_slot = true;
net/mac80211/cfg.c
3387
link->conf->use_short_slot = params->use_short_slot_time;
net/mac80211/cfg.c
3400
link->conf->ht_operation_mode = (u16)params->ht_opmode;
net/mac80211/cfg.c
3405
link->conf->p2p_noa_attr.oppps_ctwindow &=
net/mac80211/cfg.c
3407
link->conf->p2p_noa_attr.oppps_ctwindow |=
net/mac80211/cfg.c
3413
link->conf->p2p_noa_attr.oppps_ctwindow |=
net/mac80211/cfg.c
3417
link->conf->p2p_noa_attr.oppps_ctwindow &=
net/mac80211/cfg.c
3422
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
3433
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3443
if (IS_ERR(link))
net/mac80211/cfg.c
3444
return PTR_ERR(link);
net/mac80211/cfg.c
3460
link->tx_conf[params->ac] = p;
net/mac80211/cfg.c
3461
if (drv_conf_tx(local, link, params->ac, &p)) {
net/mac80211/cfg.c
3468
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/cfg.c
3494
struct ieee80211_link_data *link;
net/mac80211/cfg.c
3524
for_each_link_data(sdata, link) {
net/mac80211/cfg.c
3526
if (!sdata_dereference(link->u.ap.beacon, sdata))
net/mac80211/cfg.c
3529
chan = link->conf->chanreq.oper.chan;
net/mac80211/cfg.c
3752
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/cfg.c
3754
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3755
wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
3757
if (!link)
net/mac80211/cfg.c
3760
link->user_power_level = user_power_level;
net/mac80211/cfg.c
3762
if (txp_type != link->conf->txpower_type) {
net/mac80211/cfg.c
3764
link->conf->txpower_type = txp_type;
net/mac80211/cfg.c
3767
ieee80211_recalc_txpower(link, update_txp_type);
net/mac80211/cfg.c
3782
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/cfg.c
3784
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3785
wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
3787
if (!link)
net/mac80211/cfg.c
3790
link->user_power_level = local->user_power_level;
net/mac80211/cfg.c
3791
if (txp_type != link->conf->txpower_type)
net/mac80211/cfg.c
3793
link->conf->txpower_type = txp_type;
net/mac80211/cfg.c
3802
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/cfg.c
3804
struct ieee80211_link_data *link =
net/mac80211/cfg.c
3805
wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
3807
if (!link)
net/mac80211/cfg.c
3810
ieee80211_recalc_txpower(link, update_txp_type);
net/mac80211/cfg.c
3852
link_data = wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
3911
struct ieee80211_link_data *link,
net/mac80211/cfg.c
3925
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id))
net/mac80211/cfg.c
3928
old_req = link->u.mgd.req_smps;
net/mac80211/cfg.c
3929
link->u.mgd.req_smps = smps_mode;
net/mac80211/cfg.c
3947
link->conf->chanreq.oper.width == NL80211_CHAN_WIDTH_20_NOHT)
net/mac80211/cfg.c
3974
link->link_id : -1);
net/mac80211/cfg.c
3976
link->u.mgd.req_smps = old_req;
net/mac80211/cfg.c
3978
ieee80211_teardown_tdls_peers(link);
net/mac80211/cfg.c
4004
for (link_id = 0; link_id < ARRAY_SIZE(sdata->link); link_id++) {
net/mac80211/cfg.c
4005
struct ieee80211_link_data *link;
net/mac80211/cfg.c
4007
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
4009
if (!link)
net/mac80211/cfg.c
4011
__ieee80211_request_smps_mgd(sdata, link,
net/mac80211/cfg.c
4012
link->u.mgd.req_smps);
net/mac80211/cfg.c
4026
struct ieee80211_link_data *link,
net/mac80211/cfg.c
4032
if (!link || !link->conf)
net/mac80211/cfg.c
4035
conf = link->conf;
net/mac80211/cfg.c
4046
link->u.mgd.last_cqm_event_signal = 0;
net/mac80211/cfg.c
4048
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id))
net/mac80211/cfg.c
4053
ieee80211_link_info_change_notify(sdata, link, BSS_CHANGED_CQM);
net/mac80211/cfg.c
4070
struct ieee80211_link_data *link =
net/mac80211/cfg.c
4071
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
4073
ieee80211_set_cqm_rssi_link(sdata, link, rssi_thold, rssi_hyst,
net/mac80211/cfg.c
4093
struct ieee80211_link_data *link =
net/mac80211/cfg.c
4094
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
4096
ieee80211_set_cqm_rssi_link(sdata, link, 0, 0,
net/mac80211/cfg.c
4226
link_data = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
4255
link_data = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
4387
link_data = rcu_dereference(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
4546
struct ieee80211_link_data *link =
net/mac80211/cfg.c
4548
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
4554
if (!link->conf->csa_active)
net/mac80211/cfg.c
4560
ieee80211_csa_finalize(link);
net/mac80211/cfg.c
4694
static void ieee80211_color_change_abort(struct ieee80211_link_data *link)
net/mac80211/cfg.c
4696
link->conf->color_change_active = false;
net/mac80211/cfg.c
4698
ieee80211_free_next_beacon(link);
net/mac80211/cfg.c
47
return link;
net/mac80211/cfg.c
4700
cfg80211_color_change_aborted_notify(link->sdata->dev, link->link_id);
net/mac80211/cfg.c
4735
link_data = wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
5088
struct ieee80211_link_data *link;
net/mac80211/cfg.c
5092
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/cfg.c
5093
if (!link) {
net/mac80211/cfg.c
5098
chanctx_conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/cfg.c
5100
*chandef = link->conf->chanreq.oper;
net/mac80211/cfg.c
5152
struct ieee80211_link_data *link;
net/mac80211/cfg.c
5160
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
5162
ret = ieee80211_link_change_chanreq(link, &chanreq, &changed);
net/mac80211/cfg.c
5164
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
5509
ieee80211_set_after_color_change_beacon(struct ieee80211_link_data *link,
net/mac80211/cfg.c
5512
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5518
if (!link->u.ap.next_beacon)
net/mac80211/cfg.c
5521
ret = ieee80211_assign_beacon(sdata, link,
net/mac80211/cfg.c
5522
link->u.ap.next_beacon,
net/mac80211/cfg.c
5524
ieee80211_free_next_beacon(link);
net/mac80211/cfg.c
5540
ieee80211_set_color_change_beacon(struct ieee80211_link_data *link,
net/mac80211/cfg.c
5544
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5550
link->u.ap.next_beacon =
net/mac80211/cfg.c
5552
if (!link->u.ap.next_beacon)
net/mac80211/cfg.c
5564
err = ieee80211_assign_beacon(sdata, link,
net/mac80211/cfg.c
5568
ieee80211_free_next_beacon(link);
net/mac80211/cfg.c
5580
ieee80211_color_change_bss_config_notify(struct ieee80211_link_data *link,
net/mac80211/cfg.c
5583
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5587
link->conf->he_bss_color.color = color;
net/mac80211/cfg.c
5588
link->conf->he_bss_color.enabled = enable;
net/mac80211/cfg.c
5591
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/cfg.c
5593
if (!link->conf->nontransmitted &&
net/mac80211/cfg.c
5594
rcu_access_pointer(link->conf->tx_bss_conf)) {
net/mac80211/cfg.c
5599
rcu_access_pointer(tmp->conf->tx_bss_conf) != link->conf)
net/mac80211/cfg.c
5610
static int ieee80211_color_change_finalize(struct ieee80211_link_data *link)
net/mac80211/cfg.c
5612
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5619
link->conf->color_change_active = false;
net/mac80211/cfg.c
5621
err = ieee80211_set_after_color_change_beacon(link, &changed);
net/mac80211/cfg.c
5623
cfg80211_color_change_aborted_notify(sdata->dev, link->link_id);
net/mac80211/cfg.c
5627
ieee80211_color_change_bss_config_notify(link,
net/mac80211/cfg.c
5628
link->conf->color_change_color,
net/mac80211/cfg.c
5630
cfg80211_color_change_notify(sdata->dev, link->link_id);
net/mac80211/cfg.c
5638
struct ieee80211_link_data *link =
net/mac80211/cfg.c
5641
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5642
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/cfg.c
5654
ieee80211_color_change_finalize(link);
net/mac80211/cfg.c
5660
struct ieee80211_link_data *link =
net/mac80211/cfg.c
5663
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/cfg.c
5665
cfg80211_obss_color_collision_notify(sdata->dev, link->color_bitmap,
net/mac80211/cfg.c
5666
link->link_id);
net/mac80211/cfg.c
5672
struct ieee80211_link_data *link;
net/mac80211/cfg.c
5679
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/cfg.c
5680
if (WARN_ON(!link)) {
net/mac80211/cfg.c
5686
&link->color_change_finalize_work);
net/mac80211/cfg.c
5697
struct ieee80211_link_data *link;
net/mac80211/cfg.c
5704
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/cfg.c
5705
if (WARN_ON(!link)) {
net/mac80211/cfg.c
5710
if (link->conf->color_change_active || link->conf->csa_active) {
net/mac80211/cfg.c
5716
&link->color_collision_detect_work)) {
net/mac80211/cfg.c
5721
link->color_bitmap = color_bitmap;
net/mac80211/cfg.c
5726
&link->color_collision_detect_work,
net/mac80211/cfg.c
5740
struct ieee80211_link_data *link;
net/mac80211/cfg.c
5750
link = wiphy_dereference(wiphy, sdata->link[link_id]);
net/mac80211/cfg.c
5751
if (!link)
net/mac80211/cfg.c
5754
link_conf = link->conf;
net/mac80211/cfg.c
5769
link, link_conf, &changed);
net/mac80211/cfg.c
5773
err = ieee80211_set_color_change_beacon(link, params, &changed);
net/mac80211/cfg.c
5783
ieee80211_color_change_bss_config_notify(link, 0, 0, changed);
net/mac80211/cfg.c
5786
ieee80211_color_change_finalize(link);
net/mac80211/cfg.c
5867
link_sta = sdata_dereference(sta->link[params->link_id], sdata);
net/mac80211/cfg.c
618
struct ieee80211_link_data *link =
net/mac80211/cfg.c
630
if (IS_ERR(link))
net/mac80211/cfg.c
631
return PTR_ERR(link);
net/mac80211/cfg.c
662
key->conf.link_id = link->link_id;
net/mac80211/cfg.c
730
err = ieee80211_key_link(key, link, sta);
net/mac80211/cfg.c
743
struct ieee80211_link_data *link = &sdata->deflink;
net/mac80211/cfg.c
747
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/cfg.c
748
if (!link)
net/mac80211/cfg.c
761
link_sta = rcu_dereference_check(sta->link[link_id],
net/mac80211/cfg.c
786
key = wiphy_dereference(local->hw.wiphy, link->gtk[key_idx]);
net/mac80211/cfg.c
924
struct ieee80211_link_data *link =
net/mac80211/cfg.c
927
if (IS_ERR(link))
net/mac80211/cfg.c
928
return PTR_ERR(link);
net/mac80211/cfg.c
930
ieee80211_set_default_key(link, key_idx, uni, multi);
net/mac80211/cfg.c
940
struct ieee80211_link_data *link =
net/mac80211/cfg.c
943
if (IS_ERR(link))
net/mac80211/cfg.c
944
return PTR_ERR(link);
net/mac80211/cfg.c
946
ieee80211_set_default_mgmt_key(link, key_idx);
net/mac80211/cfg.c
956
struct ieee80211_link_data *link =
net/mac80211/cfg.c
959
if (IS_ERR(link))
net/mac80211/cfg.c
960
return PTR_ERR(link);
net/mac80211/cfg.c
962
ieee80211_set_default_beacon_key(link, key_idx);
net/mac80211/chan.c
1133
struct ieee80211_link_data *link;
net/mac80211/chan.c
1143
link = sdata_dereference(sdata->link[tdls_link_id], sdata);
net/mac80211/chan.c
1144
if (!link)
net/mac80211/chan.c
1147
if (rcu_access_pointer(link->conf->chanctx_conf) != conf)
net/mac80211/chan.c
1179
static int ieee80211_assign_link_chanctx(struct ieee80211_link_data *link,
net/mac80211/chan.c
1183
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1193
conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/chan.c
1199
drv_unassign_vif_chanctx(local, sdata, link->conf, curr_ctx);
net/mac80211/chan.c
1205
_ieee80211_recalc_chanctx_min_def(local, new_ctx, link, false);
net/mac80211/chan.c
1207
ret = drv_assign_vif_chanctx(local, sdata, link->conf, new_ctx);
net/mac80211/chan.c
1220
rcu_assign_pointer(link->conf->chanctx_conf, conf);
net/mac80211/chan.c
1230
ieee80211_recalc_txpower(link, false);
net/mac80211/chan.c
1306
if (!iter.link)
net/mac80211/chan.c
1309
switch (iter.link->smps_mode) {
net/mac80211/chan.c
1312
iter.link->smps_mode);
net/mac80211/chan.c
1315
needed_static = iter.link->needed_rx_chains;
net/mac80211/chan.c
1316
needed_dynamic = iter.link->needed_rx_chains;
net/mac80211/chan.c
1320
needed_dynamic = iter.link->needed_rx_chains;
net/mac80211/chan.c
1348
__ieee80211_link_copy_chanctx_to_vlans(struct ieee80211_link_data *link,
net/mac80211/chan.c
1351
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1352
unsigned int link_id = link->link_id;
net/mac80211/chan.c
1353
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
1392
void ieee80211_link_copy_chanctx_to_vlans(struct ieee80211_link_data *link,
net/mac80211/chan.c
1395
struct ieee80211_local *local = link->sdata->local;
net/mac80211/chan.c
1399
__ieee80211_link_copy_chanctx_to_vlans(link, clear);
net/mac80211/chan.c
1402
void ieee80211_link_unreserve_chanctx(struct ieee80211_link_data *link)
net/mac80211/chan.c
1404
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1405
struct ieee80211_chanctx *ctx = link->reserved_chanctx;
net/mac80211/chan.c
1412
link->reserved_chanctx = NULL;
net/mac80211/chan.c
153
iter->link = NULL;
net/mac80211/chan.c
1539
int ieee80211_link_reserve_chanctx(struct ieee80211_link_data *link,
net/mac80211/chan.c
1544
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1551
curr_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
1570
link->reserved_chanctx = new_ctx;
net/mac80211/chan.c
1571
link->reserved = *chanreq;
net/mac80211/chan.c
1572
link->reserved_radar_required = radar_required;
net/mac80211/chan.c
1573
link->reserved_ready = false;
net/mac80211/chan.c
1579
ieee80211_link_chanctx_reservation_complete(struct ieee80211_link_data *link)
net/mac80211/chan.c
1581
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1589
&link->csa.finalize_work);
net/mac80211/chan.c
1593
&link->u.mgd.csa.switch_work, 0);
net/mac80211/chan.c
1612
ieee80211_link_update_chanreq(struct ieee80211_link_data *link,
net/mac80211/chan.c
1615
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1616
unsigned int link_id = link->link_id;
net/mac80211/chan.c
1619
link->conf->chanreq = *chanreq;
net/mac80211/chan.c
1641
ieee80211_link_use_reserved_reassign(struct ieee80211_link_data *link)
net/mac80211/chan.c
1643
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1644
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
1655
new_ctx = link->reserved_chanctx;
net/mac80211/chan.c
1656
old_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
1658
if (WARN_ON(!link->reserved_ready))
net/mac80211/chan.c
1672
&link->reserved,
net/mac80211/chan.c
1677
if (link_conf->chanreq.oper.width != link->reserved.oper.width)
net/mac80211/chan.c
1680
ieee80211_link_update_chanreq(link, &link->reserved);
net/mac80211/chan.c
1682
_ieee80211_change_chanctx(local, new_ctx, old_ctx, chanreq, link);
net/mac80211/chan.c
1687
vif_chsw[0].link_conf = link->conf;
net/mac80211/chan.c
1689
link->reserved_chanctx = NULL;
net/mac80211/chan.c
1700
link->radar_required = link->reserved_radar_required;
net/mac80211/chan.c
1704
__ieee80211_link_copy_chanctx_to_vlans(link, false);
net/mac80211/chan.c
1716
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/chan.c
1719
ieee80211_link_chanctx_reservation_complete(link);
net/mac80211/chan.c
1724
ieee80211_link_use_reserved_assign(struct ieee80211_link_data *link)
net/mac80211/chan.c
1726
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1733
old_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
1734
new_ctx = link->reserved_chanctx;
net/mac80211/chan.c
1736
if (WARN_ON(!link->reserved_ready))
net/mac80211/chan.c
1750
&link->reserved,
net/mac80211/chan.c
1757
link->reserved_chanctx = NULL;
net/mac80211/chan.c
1759
err = ieee80211_assign_link_chanctx(link, new_ctx, false);
net/mac80211/chan.c
1768
ieee80211_link_chanctx_reservation_complete(link);
net/mac80211/chan.c
1773
ieee80211_link_has_in_place_reservation(struct ieee80211_link_data *link)
net/mac80211/chan.c
1775
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
1780
new_ctx = link->reserved_chanctx;
net/mac80211/chan.c
1781
old_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
18
struct ieee80211_link_data *link;
net/mac80211/chan.c
1824
if (!ieee80211_link_has_in_place_reservation(iter.link))
net/mac80211/chan.c
1827
old_ctx = ieee80211_link_get_chanctx(iter.link);
net/mac80211/chan.c
1831
vif_chsw[i].link_conf = iter.link->conf;
net/mac80211/chan.c
1926
if (iter.link && iter.link->reserved_chanctx) {
net/mac80211/chan.c
1928
if (iter.link->reserved_ready)
net/mac80211/chan.c
1951
if (ieee80211_link_has_in_place_reservation(iter.link) &&
net/mac80211/chan.c
1952
!iter.link->reserved_ready)
net/mac80211/chan.c
1955
old_ctx = ieee80211_link_get_chanctx(iter.link);
net/mac80211/chan.c
1992
if (!ieee80211_link_has_in_place_reservation(iter.link))
net/mac80211/chan.c
1996
ieee80211_link_get_chanctx(iter.link),
net/mac80211/chan.c
2036
struct ieee80211_link_data *link = iter.link;
net/mac80211/chan.c
2038
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
2041
if (!ieee80211_link_has_in_place_reservation(link))
net/mac80211/chan.c
2048
__ieee80211_link_copy_chanctx_to_vlans(link,
net/mac80211/chan.c
2053
link->radar_required = iter.radar_required;
net/mac80211/chan.c
2058
ieee80211_link_update_chanreq(link, &link->reserved);
net/mac80211/chan.c
2061
link,
net/mac80211/chan.c
2064
ieee80211_recalc_txpower(link, false);
net/mac80211/chan.c
2073
if (ieee80211_link_get_chanctx(iter.link) != ctx)
net/mac80211/chan.c
2076
iter.link->reserved_chanctx = NULL;
net/mac80211/chan.c
2078
ieee80211_link_chanctx_reservation_complete(iter.link);
net/mac80211/chan.c
2090
struct ieee80211_link_data *link = iter.link;
net/mac80211/chan.c
2092
if (WARN_ON(ieee80211_link_has_in_place_reservation(link)))
net/mac80211/chan.c
2095
if (!link->reserved_ready)
net/mac80211/chan.c
2098
if (ieee80211_link_get_chanctx(link))
net/mac80211/chan.c
2099
err = ieee80211_link_use_reserved_reassign(link);
net/mac80211/chan.c
2101
err = ieee80211_link_use_reserved_assign(link);
net/mac80211/chan.c
2104
link_info(link,
net/mac80211/chan.c
2107
ieee80211_link_unreserve_chanctx(link);
net/mac80211/chan.c
2109
&link->sdata->wdev,
net/mac80211/chan.c
2141
ieee80211_link_unreserve_chanctx(iter.link);
net/mac80211/chan.c
2142
ieee80211_link_chanctx_reservation_complete(iter.link);
net/mac80211/chan.c
2149
void __ieee80211_link_release_channel(struct ieee80211_link_data *link,
net/mac80211/chan.c
2152
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2153
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
2168
if (link->reserved_chanctx) {
net/mac80211/chan.c
2169
if (link->reserved_chanctx->replace_state == IEEE80211_CHANCTX_REPLACES_OTHER &&
net/mac80211/chan.c
2170
ieee80211_chanctx_num_reserved(local, link->reserved_chanctx) > 1)
net/mac80211/chan.c
2173
ieee80211_link_unreserve_chanctx(link);
net/mac80211/chan.c
2176
ieee80211_assign_link_chanctx(link, NULL, false);
net/mac80211/chan.c
2180
link->radar_required = false;
net/mac80211/chan.c
2275
int _ieee80211_link_use_channel(struct ieee80211_link_data *link,
net/mac80211/chan.c
2280
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2289
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id)) {
net/mac80211/chan.c
2290
ieee80211_link_update_chanreq(link, chanreq);
net/mac80211/chan.c
2302
link->radar_required = ret;
net/mac80211/chan.c
2317
__ieee80211_link_release_channel(link, false);
net/mac80211/chan.c
2326
ieee80211_link_update_chanreq(link, chanreq);
net/mac80211/chan.c
2328
ret = ieee80211_assign_link_chanctx(link, ctx, assign_on_failure);
net/mac80211/chan.c
2350
link->radar_required = false;
net/mac80211/chan.c
2355
int ieee80211_link_use_reserved_context(struct ieee80211_link_data *link)
net/mac80211/chan.c
2357
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2365
new_ctx = link->reserved_chanctx;
net/mac80211/chan.c
2366
old_ctx = ieee80211_link_get_chanctx(link);
net/mac80211/chan.c
2375
if (WARN_ON(link->reserved_ready))
net/mac80211/chan.c
2378
link->reserved_ready = true;
net/mac80211/chan.c
2382
return ieee80211_link_use_reserved_reassign(link);
net/mac80211/chan.c
2384
return ieee80211_link_use_reserved_assign(link);
net/mac80211/chan.c
2416
int ieee80211_link_change_chanreq(struct ieee80211_link_data *link,
net/mac80211/chan.c
2420
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2421
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
2452
compat = _ieee80211_chanctx_compatible(local, link, ctx, chanreq, &tmp);
net/mac80211/chan.c
2474
ieee80211_link_update_chanreq(link, chanreq);
net/mac80211/chan.c
2482
void ieee80211_link_release_channel(struct ieee80211_link_data *link)
net/mac80211/chan.c
2484
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2491
if (rcu_access_pointer(link->conf->chanctx_conf))
net/mac80211/chan.c
2492
__ieee80211_link_release_channel(link, false);
net/mac80211/chan.c
2495
void ieee80211_link_vlan_copy_chanctx(struct ieee80211_link_data *link)
net/mac80211/chan.c
2497
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
2498
unsigned int link_id = link->link_id;
net/mac80211/chan.c
2499
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/chan.c
260
ieee80211_link_get_chanctx(struct ieee80211_link_data *link)
net/mac80211/chan.c
262
struct ieee80211_local *local __maybe_unused = link->sdata->local;
net/mac80211/chan.c
265
conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/chan.c
346
if (iter.link && iter.link == skip_link)
net/mac80211/chan.c
401
if (iter.link && iter.link->reserved_chanctx)
net/mac80211/chan.c
464
ieee80211_get_sta_bw(struct sta_info *sta, struct ieee80211_link_data *link)
net/mac80211/chan.c
468
int link_id = link->link_id;
net/mac80211/chan.c
470
link_sta = wiphy_dereference(sta->local->hw.wiphy, sta->link[link_id]);
net/mac80211/chan.c
482
width = ieee80211_sta_current_bw(link_sta, &link->conf->chanreq.oper,
net/mac80211/chan.c
499
ieee80211_get_max_required_bw(struct ieee80211_link_data *link)
net/mac80211/chan.c
501
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/chan.c
512
max_bw = max(max_bw, ieee80211_get_sta_bw(sta, link));
net/mac80211/chan.c
519
ieee80211_get_width_of_link(struct ieee80211_link_data *link)
net/mac80211/chan.c
521
struct ieee80211_local *local = link->sdata->local;
net/mac80211/chan.c
523
switch (link->sdata->vif.type) {
net/mac80211/chan.c
525
if (!link->sdata->vif.cfg.assoc) {
net/mac80211/chan.c
532
return link->conf->chanreq.oper.width;
net/mac80211/chan.c
542
return ieee80211_get_max_required_bw(link);
net/mac80211/chan.c
55
iter->link = NULL;
net/mac80211/chan.c
552
return link->conf->chanreq.oper.width;
net/mac80211/chan.c
572
if (iter->link)
net/mac80211/chan.c
573
return ieee80211_get_width_of_link(iter->link);
net/mac80211/chan.c
68
for (int link_id = iter->link ? iter->link->link_id : 0;
net/mac80211/chan.c
69
link_id < ARRAY_SIZE(iter->sdata->link);
net/mac80211/chan.c
693
for (link_id = 0; link_id < ARRAY_SIZE(sdata->link); link_id++) {
net/mac80211/chan.c
694
struct ieee80211_link_data *link =
net/mac80211/chan.c
695
rcu_dereference(sdata->link[link_id]);
net/mac80211/chan.c
700
if (!link)
net/mac80211/chan.c
703
link_conf = link->conf;
net/mac80211/chan.c
708
link_sta = rcu_dereference(sta->link[link_id]);
net/mac80211/chan.c
71
struct ieee80211_link_data *link;
net/mac80211/chan.c
713
new_chandef = &link->reserved.oper;
net/mac80211/chan.c
73
link = sdata_dereference(iter->sdata->link[link_id],
net/mac80211/chan.c
75
if (!link)
net/mac80211/chan.c
788
if (!iter.link)
net/mac80211/chan.c
794
if (!iter.link->conf->chanreq.oper.npca_chan)
net/mac80211/chan.c
797
if (!iter.link->conf->npca.enabled)
net/mac80211/chan.c
801
iter.link->conf->npca.enabled = enable;
net/mac80211/chan.c
803
iter.link->conf,
net/mac80211/chan.c
804
iter.link->link_id,
net/mac80211/chan.c
82
rcu_access_pointer(link->conf->chanctx_conf) == &ctx->conf) {
net/mac80211/chan.c
83
iter->link = link;
net/mac80211/chan.c
85
iter->radar_required = link->radar_required;
net/mac80211/chan.c
86
iter->chanreq = &link->conf->chanreq;
net/mac80211/chan.c
93
link->reserved_chanctx == ctx) {
net/mac80211/chan.c
94
iter->link = link;
net/mac80211/chan.c
957
struct ieee80211_link_data *link;
net/mac80211/chan.c
966
for_each_sdata_link(local, link) {
net/mac80211/chan.c
967
if (link->radar_required) {
net/mac80211/chan.c
968
chan = link->conf->chanreq.oper.chan;
net/mac80211/chan.c
97
link->reserved_radar_required;
net/mac80211/chan.c
99
iter->chanreq = &link->reserved;
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
272
sdata_dereference(sta->link[pub_link_sta->link_id], sta->sdata);
net/mac80211/he.c
273
struct ieee80211_link_data *link =
net/mac80211/he.c
274
sdata_dereference(sta->sdata->link[pub_link_sta->link_id],
net/mac80211/he.c
280
if (WARN_ON(!link || !link_sta || link_sta->pub != pub_link_sta))
net/mac80211/he.c
283
conf = sdata_dereference(link->conf->chanctx_conf, sta->sdata);
net/mac80211/he.c
305
ieee80211_link_sta_update_rc_bw(link, link_sta);
net/mac80211/he.c
325
sdata_dereference(sta->link[pub_link_sta->link_id], sta->sdata);
net/mac80211/he.c
326
struct ieee80211_link_data *link =
net/mac80211/he.c
327
sdata_dereference(sta->sdata->link[pub_link_sta->link_id],
net/mac80211/he.c
332
if (WARN_ON(!link || !link_sta || link_sta->pub != pub_link_sta))
net/mac80211/he.c
335
conf = sdata_dereference(link->conf->chanctx_conf, sta->sdata);
net/mac80211/he.c
347
ieee80211_link_sta_update_rc_bw(link, link_sta);
net/mac80211/ht.c
557
struct ieee80211_link_data *link;
net/mac80211/ht.c
563
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/ht.c
564
if (WARN_ON(!link))
net/mac80211/ht.c
567
trace_api_request_smps(sdata->local, sdata, link, smps_mode);
net/mac80211/ht.c
569
if (link->u.mgd.driver_smps_mode == smps_mode)
net/mac80211/ht.c
572
link->u.mgd.driver_smps_mode = smps_mode;
net/mac80211/ht.c
574
&link->u.mgd.request_smps_work);
net/mac80211/ht.c
591
struct ieee80211_link_data *link;
net/mac80211/ht.c
595
link = sdata_dereference(sdata->link[link_sta->link_id], sdata);
net/mac80211/ht.c
596
if (WARN_ON(!link))
net/mac80211/ht.c
607
if (!ieee80211_link_sta_update_rc_bw(link, link_sta))
net/mac80211/ieee80211_i.h
1237
struct ieee80211_link_data __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
net/mac80211/ieee80211_i.h
1274
for (int ___link_id = ARRAY_SIZE(___sdata->link); \
net/mac80211/ieee80211_i.h
1277
if (___link_id == ARRAY_SIZE(___sdata->link) && \
net/mac80211/ieee80211_i.h
1280
___link_id < ARRAY_SIZE(___sdata->link); \
net/mac80211/ieee80211_i.h
1283
___sdata->link[___link_id])))
net/mac80211/ieee80211_i.h
1293
for (int ___link_id = ARRAY_SIZE(___sdata->link); \
net/mac80211/ieee80211_i.h
1296
if (___link_id == ARRAY_SIZE(___sdata->link) && \
net/mac80211/ieee80211_i.h
1299
___link_id < ARRAY_SIZE((___sdata)->link); \
net/mac80211/ieee80211_i.h
1301
if ((_link = rcu_dereference((___sdata)->link[___link_id])))
net/mac80211/ieee80211_i.h
1308
__link_id < ARRAY_SIZE((__sdata)->link); __link_id++) \
net/mac80211/ieee80211_i.h
1311
((__link) = sdata_dereference((__sdata)->link[__link_id], \
net/mac80211/ieee80211_i.h
1322
__link_id < ARRAY_SIZE((__sdata)->link); __link_id++) \
net/mac80211/ieee80211_i.h
1325
((__link) = rcu_dereference((__sdata)->link[__link_id]))) \
net/mac80211/ieee80211_i.h
1762
ieee80211_get_link_sband(struct ieee80211_link_data *link)
net/mac80211/ieee80211_i.h
1764
struct ieee80211_local *local = link->sdata->local;
net/mac80211/ieee80211_i.h
1769
chanctx_conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/ieee80211_i.h
1985
struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2007
void ieee80211_uhr_disable_dbe_all_stas(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2036
void ieee80211_mgd_setup_link(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2037
void ieee80211_mgd_stop_link(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2038
void ieee80211_mgd_set_link_qos_params(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2203
bool __ieee80211_recalc_txpower(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2204
void ieee80211_recalc_txpower(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2209
void ieee80211_link_setup(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2212
struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2214
void ieee80211_link_stop(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
227
struct ieee80211_link_data *link;
net/mac80211/ieee80211_i.h
2357
struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2461
void ieee80211_set_wmm_default(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2722
struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2725
struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2813
_ieee80211_link_use_channel(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2819
ieee80211_link_use_channel(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2823
return _ieee80211_link_use_channel(link, req, mode, false);
net/mac80211/ieee80211_i.h
2827
ieee80211_link_reserve_chanctx(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2832
ieee80211_link_use_reserved_context(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2833
void ieee80211_link_unreserve_chanctx(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2836
ieee80211_link_change_chanreq(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2839
void __ieee80211_link_release_channel(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2841
void ieee80211_link_release_channel(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2842
void ieee80211_link_vlan_copy_chanctx(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
2843
void ieee80211_link_copy_chanctx_to_vlans(struct ieee80211_link_data *link,
net/mac80211/ieee80211_i.h
2927
void ieee80211_teardown_tdls_peers(struct ieee80211_link_data *link);
net/mac80211/ieee80211_i.h
459
} link[IEEE80211_MLD_MAX_NUM_LINKS];
net/mac80211/iface.c
1469
struct ieee80211_link_data *link;
net/mac80211/iface.c
1471
for_each_link_data(sdata, link) {
net/mac80211/iface.c
1472
ieee80211_link_vlan_copy_chanctx(link);
net/mac80211/iface.c
1679
link_sta = rcu_dereference_protected(sta->link[status->link_id],
net/mac80211/iface.c
353
struct ieee80211_link_data *link;
net/mac80211/iface.c
392
for_each_link_data(nsdata, link) {
net/mac80211/iface.c
393
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
76
void ieee80211_recalc_txpower(struct ieee80211_link_data *link,
net/mac80211/iface.c
79
if (__ieee80211_recalc_txpower(link) ||
net/mac80211/iface.c
793
struct ieee80211_link_data *tx_link, *link;
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/iface.c
811
tx_link = sdata_dereference(tx_sdata->link[tx_bss_conf->link_id],
net/mac80211/iface.c
822
for_each_sdata_link(tx_sdata->local, link) {
net/mac80211/iface.c
823
struct ieee80211_sub_if_data *link_sdata = link->sdata;
net/mac80211/iface.c
826
rcu_access_pointer(link->conf->tx_bss_conf) != tx_bss_conf)
net/mac80211/iface.c
829
RCU_INIT_POINTER(link->conf->tx_bss_conf, NULL);
net/mac80211/key.c
1109
void ieee80211_remove_link_keys(struct ieee80211_link_data *link,
net/mac80211/key.c
1112
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
1119
if (key->conf.link_id != link->link_id)
net/mac80211/key.c
1121
ieee80211_key_replace(key->sdata, link, key->sta,
net/mac80211/key.c
1378
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/key.c
350
static void __ieee80211_set_default_key(struct ieee80211_link_data *link,
net/mac80211/key.c
353
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
363
link->gtk[idx]);
net/mac80211/key.c
374
rcu_assign_pointer(link->default_multicast_key, key);
net/mac80211/key.c
379
void ieee80211_set_default_key(struct ieee80211_link_data *link, int idx,
net/mac80211/key.c
382
lockdep_assert_wiphy(link->sdata->local->hw.wiphy);
net/mac80211/key.c
384
__ieee80211_set_default_key(link, idx, uni, multi);
net/mac80211/key.c
388
__ieee80211_set_default_mgmt_key(struct ieee80211_link_data *link, int idx)
net/mac80211/key.c
390
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
398
link->gtk[idx]);
net/mac80211/key.c
400
rcu_assign_pointer(link->default_mgmt_key, key);
net/mac80211/key.c
405
void ieee80211_set_default_mgmt_key(struct ieee80211_link_data *link,
net/mac80211/key.c
408
lockdep_assert_wiphy(link->sdata->local->hw.wiphy);
net/mac80211/key.c
410
__ieee80211_set_default_mgmt_key(link, idx);
net/mac80211/key.c
414
__ieee80211_set_default_beacon_key(struct ieee80211_link_data *link, int idx)
net/mac80211/key.c
416
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
425
link->gtk[idx]);
net/mac80211/key.c
427
rcu_assign_pointer(link->default_beacon_key, key);
net/mac80211/key.c
432
void ieee80211_set_default_beacon_key(struct ieee80211_link_data *link,
net/mac80211/key.c
435
lockdep_assert_wiphy(link->sdata->local->hw.wiphy);
net/mac80211/key.c
437
__ieee80211_set_default_beacon_key(link, idx);
net/mac80211/key.c
441
struct ieee80211_link_data *link,
net/mac80211/key.c
478
if (!link) {
net/mac80211/key.c
479
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/key.c
480
if (!link)
net/mac80211/key.c
485
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/key.c
491
link = &sdata->deflink;
net/mac80211/key.c
553
link->default_multicast_key);
net/mac80211/key.c
556
link->default_mgmt_key);
net/mac80211/key.c
559
link->default_beacon_key);
net/mac80211/key.c
562
__ieee80211_set_default_key(link, -1, true, false);
net/mac80211/key.c
564
__ieee80211_set_default_key(link, -1, false, true);
net/mac80211/key.c
566
__ieee80211_set_default_mgmt_key(link, -1);
net/mac80211/key.c
568
__ieee80211_set_default_beacon_key(link, -1);
net/mac80211/key.c
573
rcu_assign_pointer(link->gtk[idx], new);
net/mac80211/key.c
576
__ieee80211_set_default_key(link, new->conf.keyidx,
net/mac80211/key.c
579
__ieee80211_set_default_key(link, new->conf.keyidx,
net/mac80211/key.c
582
__ieee80211_set_default_mgmt_key(link,
net/mac80211/key.c
585
__ieee80211_set_default_beacon_key(link,
net/mac80211/key.c
847
struct ieee80211_link_data *link,
net/mac80211/key.c
850
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/key.c
891
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/key.c
907
link->gtk[idx]);
net/mac80211/key.c
943
ret = ieee80211_key_replace(sdata, link, sta, pairwise, old_key, key);
net/mac80211/key.h
149
struct ieee80211_link_data *link,
net/mac80211/key.h
154
void ieee80211_set_default_key(struct ieee80211_link_data *link, int idx,
net/mac80211/key.h
156
void ieee80211_set_default_mgmt_key(struct ieee80211_link_data *link,
net/mac80211/key.h
158
void ieee80211_set_default_beacon_key(struct ieee80211_link_data *link,
net/mac80211/key.h
160
void ieee80211_remove_link_keys(struct ieee80211_link_data *link,
net/mac80211/link.c
121
link->sdata = sdata;
net/mac80211/link.c
122
link->link_id = link_id;
net/mac80211/link.c
123
link->conf = link_conf;
net/mac80211/link.c
126
link->ap_power_level = IEEE80211_UNSET_POWER_LEVEL;
net/mac80211/link.c
127
link->user_power_level = sdata->local->user_power_level;
net/mac80211/link.c
130
wiphy_work_init(&link->csa.finalize_work,
net/mac80211/link.c
132
wiphy_work_init(&link->color_change_finalize_work,
net/mac80211/link.c
134
wiphy_delayed_work_init(&link->color_collision_detect_work,
net/mac80211/link.c
136
wiphy_hrtimer_work_init(&link->dfs_cac_timer_work,
net/mac80211/link.c
155
ieee80211_link_debugfs_add(link);
net/mac80211/link.c
159
rcu_assign_pointer(sdata->link[link_id], link);
net/mac80211/link.c
162
void ieee80211_link_stop(struct ieee80211_link_data *link)
net/mac80211/link.c
164
if (link->sdata->vif.type == NL80211_IFTYPE_STATION)
net/mac80211/link.c
165
ieee80211_mgd_stop_link(link);
net/mac80211/link.c
167
wiphy_delayed_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/link.c
168
&link->color_collision_detect_work);
net/mac80211/link.c
169
wiphy_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/link.c
170
&link->color_change_finalize_work);
net/mac80211/link.c
171
wiphy_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/link.c
172
&link->csa.finalize_work);
net/mac80211/link.c
174
if (link->sdata->wdev.links[link->link_id].cac_started) {
net/mac80211/link.c
175
wiphy_hrtimer_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/link.c
176
&link->dfs_cac_timer_work);
net/mac80211/link.c
177
cfg80211_cac_event(link->sdata->dev,
net/mac80211/link.c
178
&link->conf->chanreq.oper,
net/mac80211/link.c
180
GFP_KERNEL, link->link_id);
net/mac80211/link.c
183
ieee80211_link_release_channel(link);
net/mac80211/link.c
194
struct ieee80211_link_data *link;
net/mac80211/link.c
201
link = &links[link_id]->data;
net/mac80211/link.c
202
if (link_id == 0 && !link)
net/mac80211/link.c
203
link = &sdata->deflink;
net/mac80211/link.c
204
if (WARN_ON(!link))
net/mac80211/link.c
206
ieee80211_remove_link_keys(link, &keys);
net/mac80211/link.c
207
ieee80211_link_debugfs_remove(link);
net/mac80211/link.c
208
ieee80211_link_stop(link);
net/mac80211/link.c
23
struct ieee80211_link_data *link;
net/mac80211/link.c
232
link1 = sdata_dereference(sdata->link[i], sdata);
net/mac80211/link.c
238
link2 = sdata_dereference(sdata->link[j], sdata);
net/mac80211/link.c
298
struct link_container *links[IEEE80211_MLD_MAX_NUM_LINKS] = {}, *link;
net/mac80211/link.c
321
link = kzalloc_obj(*link);
net/mac80211/link.c
322
if (!link) {
net/mac80211/link.c
326
links[link_id] = link;
net/mac80211/link.c
333
BUILD_BUG_ON(sizeof(old_data) != sizeof(sdata->link));
net/mac80211/link.c
334
memcpy(old_data, sdata->link, sizeof(old_data));
net/mac80211/link.c
338
if (rcu_access_pointer(sdata->link[link_id]) != &sdata->deflink) {
net/mac80211/link.c
343
to_free[link_id] = container_of(rcu_access_pointer(sdata->link[link_id]),
net/mac80211/link.c
348
RCU_INIT_POINTER(sdata->link[link_id], NULL);
net/mac80211/link.c
358
rcu_access_pointer(sdata->link[link_id]) == &sdata->deflink);
net/mac80211/link.c
360
link = links[link_id];
net/mac80211/link.c
361
ieee80211_link_init(sdata, link_id, &link->data, &link->conf);
net/mac80211/link.c
362
ieee80211_link_setup(&link->data);
net/mac80211/link.c
363
ieee80211_set_wmm_default(&link->data, true, non_sta);
net/mac80211/link.c
399
memcpy(sdata->link, old_data, sizeof(old_data));
net/mac80211/link.c
511
struct ieee80211_link_data *link;
net/mac80211/link.c
513
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/link.c
515
ieee80211_teardown_tdls_peers(link);
net/mac80211/link.c
517
__ieee80211_link_release_channel(link, true);
net/mac80211/link.c
525
if (link->conf->csa_active)
net/mac80211/link.c
527
&link->u.mgd.csa.switch_work,
net/mac80211/link.c
528
link->u.mgd.csa.time -
net/mac80211/link.c
53
link = sdata_dereference(vlan->link[link_id], vlan);
net/mac80211/link.c
533
struct ieee80211_link_data *link;
net/mac80211/link.c
535
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/link.c
54
ieee80211_link_vlan_copy_chanctx(link);
net/mac80211/link.c
551
ret = _ieee80211_link_use_channel(link,
net/mac80211/link.c
552
&link->conf->chanreq,
net/mac80211/link.c
602
struct ieee80211_link_data *link;
net/mac80211/link.c
604
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/link.c
606
ieee80211_mgd_set_link_qos_params(link);
net/mac80211/link.c
607
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/link.c
89
void ieee80211_link_setup(struct ieee80211_link_data *link)
net/mac80211/link.c
91
if (link->sdata->vif.type == NL80211_IFTYPE_STATION)
net/mac80211/link.c
92
ieee80211_mgd_setup_link(link);
net/mac80211/link.c
97
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
10022
link = sdata_dereference(sdata->link[req->link_id], sdata);
net/mac80211/mlme.c
10024
link = &sdata->deflink;
net/mac80211/mlme.c
10026
if (WARN_ON(!link)) {
net/mac80211/mlme.c
10032
auth_data->ap_addr, link->conf->addr);
net/mac80211/mlme.c
10066
struct ieee80211_link_data *link;
net/mac80211/mlme.c
10070
cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
10080
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
10081
if (WARN_ON(!link))
net/mac80211/mlme.c
10094
assoc_data->link[link_id].elems = assoc_data->ie_pos;
net/mac80211/mlme.c
10095
assoc_data->link[link_id].elems_len = req->links[link_id].elems_len;
net/mac80211/mlme.c
10099
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
10100
link->u.mgd.dtim_period = 0;
net/mac80211/mlme.c
10101
link->u.mgd.have_beacon = false;
net/mac80211/mlme.c
10117
&link->u.mgd.dtim_period);
net/mac80211/mlme.c
10122
link->conf->sync_tsf = bss_ies->tsf;
net/mac80211/mlme.c
10123
link->conf->sync_device_ts = bss->device_ts_beacon;
net/mac80211/mlme.c
10124
link->conf->sync_dtim_count = dtim_count;
net/mac80211/mlme.c
10136
link->conf->profile_periodicity = elem->data[2];
net/mac80211/mlme.c
10138
link->conf->profile_periodicity = 0;
net/mac80211/mlme.c
10144
link->conf->ema_ap = true;
net/mac80211/mlme.c
10146
link->conf->ema_ap = false;
net/mac80211/mlme.c
10165
if (link->u.mgd.req_smps == IEEE80211_SMPS_AUTOMATIC) {
net/mac80211/mlme.c
10167
link->smps_mode = IEEE80211_SMPS_DYNAMIC;
net/mac80211/mlme.c
10169
link->smps_mode = IEEE80211_SMPS_OFF;
net/mac80211/mlme.c
10171
link->smps_mode = link->u.mgd.req_smps;
net/mac80211/mlme.c
10180
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
10190
if (assoc_data->link[link_id].conn.mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
10201
assoc_data->link[link_id].ap_ht_param =
net/mac80211/mlme.c
10205
if (assoc_data->link[link_id].conn.mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
10226
memcpy(&assoc_data->link[link_id].ap_vht_cap, elem->data,
net/mac80211/mlme.c
10279
struct ieee80211_link_data *link;
net/mac80211/mlme.c
10413
link = sdata_dereference(sdata->link[i], sdata);
net/mac80211/mlme.c
10414
if (link)
net/mac80211/mlme.c
10415
ether_addr_copy(assoc_data->link[i].addr,
net/mac80211/mlme.c
10416
link->conf->addr);
net/mac80211/mlme.c
10418
eth_random_addr(assoc_data->link[i].addr);
net/mac80211/mlme.c
10421
if (match_auth && i == assoc_link_id && link)
net/mac80211/mlme.c
10422
assoc_data->link[i].conn = link->u.mgd.conn;
net/mac80211/mlme.c
10424
assoc_data->link[i].conn =
net/mac80211/mlme.c
10428
&assoc_data->link[i].conn);
net/mac80211/mlme.c
10429
assoc_data->link[i].bss = link_cbss;
net/mac80211/mlme.c
10434
if (assoc_data->link[i].conn.mode < IEEE80211_CONN_MODE_EHT) {
net/mac80211/mlme.c
10454
memcpy(assoc_data->link[0].addr, sdata->vif.addr, ETH_ALEN);
net/mac80211/mlme.c
10470
assoc_data->link[0].bss = cbss;
net/mac80211/mlme.c
10473
assoc_data->link[0].conn = sdata->deflink.u.mgd.conn;
net/mac80211/mlme.c
10475
assoc_data->link[0].conn =
net/mac80211/mlme.c
10479
&assoc_data->link[0].conn);
net/mac80211/mlme.c
10540
link = sdata_dereference(sdata->link[assoc_link_id], sdata);
net/mac80211/mlme.c
10541
if (WARN_ON(!link)) {
net/mac80211/mlme.c
10546
override = link->u.mgd.conn.mode !=
net/mac80211/mlme.c
10547
assoc_data->link[assoc_link_id].conn.mode ||
net/mac80211/mlme.c
10548
link->u.mgd.conn.bw_limit !=
net/mac80211/mlme.c
10549
assoc_data->link[assoc_link_id].conn.bw_limit;
net/mac80211/mlme.c
10550
link->u.mgd.conn = assoc_data->link[assoc_link_id].conn;
net/mac80211/mlme.c
10552
ieee80211_setup_assoc_link(sdata, assoc_data, req, &link->u.mgd.conn,
net/mac80211/mlme.c
10599
for (i = 0; i < ARRAY_SIZE(assoc_data->link); i++) {
net/mac80211/mlme.c
10600
if (!assoc_data->link[i].bss)
net/mac80211/mlme.c
10606
assoc_data->link[i].bss, true,
net/mac80211/mlme.c
10607
&assoc_data->link[i].conn,
net/mac80211/mlme.c
10623
&assoc_data->link[assoc_link_id].conn,
net/mac80211/mlme.c
10640
link->u.mgd.bssid);
net/mac80211/mlme.c
10761
void ieee80211_mgd_stop_link(struct ieee80211_link_data *link)
net/mac80211/mlme.c
10763
wiphy_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/mlme.c
10764
&link->u.mgd.request_smps_work);
net/mac80211/mlme.c
10765
wiphy_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/mlme.c
10766
&link->u.mgd.recalc_smps);
net/mac80211/mlme.c
10767
wiphy_hrtimer_work_cancel(link->sdata->local->hw.wiphy,
net/mac80211/mlme.c
10768
&link->u.mgd.csa.switch_work);
net/mac80211/mlme.c
10983
if (!add_links_data->link[link_id].bss ||
net/mac80211/mlme.c
10995
struct cfg80211_bss *cbss = add_links_data->link[link_id].bss;
net/mac80211/mlme.c
10996
struct ieee80211_link_data *link;
net/mac80211/mlme.c
11003
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
11004
if (WARN_ON(!link))
net/mac80211/mlme.c
11007
link_info(link,
net/mac80211/mlme.c
11009
add_links_data->link[link_id].addr,
net/mac80211/mlme.c
11010
add_links_data->link[link_id].bss->bssid);
net/mac80211/mlme.c
11012
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/mlme.c
11017
if (!link->u.mgd.have_beacon) {
net/mac80211/mlme.c
11023
link->u.mgd.have_beacon = true;
net/mac80211/mlme.c
11027
&link->conf->sync_dtim_count,
net/mac80211/mlme.c
11028
&link->u.mgd.dtim_period);
net/mac80211/mlme.c
11029
link->conf->beacon_int = cbss->beacon_interval;
net/mac80211/mlme.c
11033
link->conf->dtim_period = link->u.mgd.dtim_period ?: 1;
net/mac80211/mlme.c
11035
link->u.mgd.conn = add_links_data->link[link_id].conn;
net/mac80211/mlme.c
11036
if (ieee80211_prep_channel(sdata, link, link_sta, link_id, cbss,
net/mac80211/mlme.c
11037
true, &link->u.mgd.conn,
net/mac80211/mlme.c
11039
link_info(link, "mlo: reconf: prep_channel failed\n");
net/mac80211/mlme.c
11043
if (ieee80211_mgd_setup_link_sta(link, sta, link_sta,
net/mac80211/mlme.c
11044
add_links_data->link[link_id].bss))
net/mac80211/mlme.c
11047
if (!ieee80211_assoc_config_link(link, link_sta,
net/mac80211/mlme.c
11048
add_links_data->link[link_id].bss,
net/mac80211/mlme.c
11057
if (add_links_data->link[link_id].status != WLAN_STATUS_SUCCESS)
net/mac80211/mlme.c
11063
changed |= ieee80211_link_set_associated(link, cbss);
net/mac80211/mlme.c
11064
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/mlme.c
11066
ieee80211_recalc_smps(sdata, link);
net/mac80211/mlme.c
11088
done_data.links[link_id].bss = add_links_data->link[link_id].bss;
net/mac80211/mlme.c
11090
add_links_data->link[link_id].addr;
net/mac80211/mlme.c
11172
if (!add_links_data || !add_links_data->link[link_id].bss)
net/mac80211/mlme.c
11175
elems_len = add_links_data->link[link_id].elems_len;
net/mac80211/mlme.c
11176
cbss = add_links_data->link[link_id].bss;
net/mac80211/mlme.c
11258
(!add_links_data || !add_links_data->link[link_id].bss))
net/mac80211/mlme.c
11275
addr = add_links_data->link[link_id].addr;
net/mac80211/mlme.c
11298
add_links_data->link[link_id].elems,
net/mac80211/mlme.c
11299
add_links_data->link[link_id].elems_len,
net/mac80211/mlme.c
11304
if (add_links_data->link[link_id].elems)
net/mac80211/mlme.c
11306
add_links_data->link[link_id].elems +
net/mac80211/mlme.c
11308
add_links_data->link[link_id].elems_len -
net/mac80211/mlme.c
11406
eth_random_addr(data->link[link_id].addr);
net/mac80211/mlme.c
11407
data->link[link_id].conn =
net/mac80211/mlme.c
11414
&data->link[link_id].conn);
net/mac80211/mlme.c
11416
data->link[link_id].bss = link_cbss;
net/mac80211/mlme.c
11417
data->link[link_id].elems =
net/mac80211/mlme.c
11419
data->link[link_id].elems_len =
net/mac80211/mlme.c
11425
if (data->link[link_id].conn.mode <
net/mac80211/mlme.c
11449
if (!data->link[link_id].bss)
net/mac80211/mlme.c
11454
data->link[link_id].bss,
net/mac80211/mlme.c
11456
&data->link[link_id].conn,
net/mac80211/mlme.c
11653
struct ieee80211_link_data *link;
net/mac80211/mlme.c
11671
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
11672
if (!link)
net/mac80211/mlme.c
11692
if (ieee80211_sta_wmm_params(sdata->local, link,
net/mac80211/mlme.c
11696
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/mlme.c
11765
struct ieee80211_link_data *link = &sdata->deflink;
net/mac80211/mlme.c
11785
link = sdata_dereference(sdata->link[rx_status->link_id],
net/mac80211/mlme.c
11787
if (!link)
net/mac80211/mlme.c
11793
ieee80211_rx_mgmt_beacon(link, (void *)mgmt,
net/mac80211/mlme.c
11797
ieee80211_rx_mgmt_probe_resp(link, skb);
net/mac80211/mlme.c
11837
ieee80211_sta_process_chanswitch(link,
net/mac80211/mlme.c
11877
ieee80211_sta_process_chanswitch(link,
net/mac80211/mlme.c
1461
struct ieee80211_link_data *link;
net/mac80211/mlme.c
1471
for_each_link_data(sdata, link) {
net/mac80211/mlme.c
1472
if (!(link_mask & BIT(link->link_id)))
net/mac80211/mlme.c
1474
if (link->u.mgd.conn.dbe_enabled) {
net/mac80211/mlme.c
1550
for_each_link_data(sdata, link) {
net/mac80211/mlme.c
1553
if (!(link_mask & BIT(link->link_id)))
net/mac80211/mlme.c
1556
sdata->u.mgd.uhr_omp.links |= BIT(link->link_id);
net/mac80211/mlme.c
1562
le16_encode_bits(link->link_id,
net/mac80211/mlme.c
1576
if (link->u.mgd.conn.dbe_enabled)
net/mac80211/mlme.c
1592
static int ieee80211_config_bw(struct ieee80211_link_data *link,
net/mac80211/mlme.c
1596
struct ieee80211_channel *channel = link->conf->chanreq.oper.chan;
net/mac80211/mlme.c
1605
.conn = &link->u.mgd.conn,
net/mac80211/mlme.c
1606
.cur_chandef = &link->conf->chanreq.oper,
net/mac80211/mlme.c
1607
.cur_dbe_used = link->u.mgd.conn.dbe_enabled,
net/mac80211/mlme.c
1609
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
1636
if (link->u.mgd.conn.mode == IEEE80211_CONN_MODE_LEGACY ||
net/mac80211/mlme.c
1637
link->u.mgd.conn.mode == IEEE80211_CONN_MODE_S1G)
net/mac80211/mlme.c
1646
link->u.mgd.conn.dbe_enabled = ap_chan_out.dbe_used;
net/mac80211/mlme.c
1648
if (ap_mode != link->u.mgd.conn.mode) {
net/mac80211/mlme.c
1649
link_info(link,
net/mac80211/mlme.c
1651
link->u.mgd.bssid,
net/mac80211/mlme.c
1652
ieee80211_conn_mode_str(link->u.mgd.conn.mode),
net/mac80211/mlme.c
1658
ieee80211_set_chanreq_ap(sdata, &chanreq, &link->u.mgd.conn,
net/mac80211/mlme.c
1667
if (link->conf->ht_operation_mode != ht_opmode) {
net/mac80211/mlme.c
1669
link->conf->ht_operation_mode = ht_opmode;
net/mac80211/mlme.c
1680
while (link->u.mgd.conn.bw_limit <
net/mac80211/mlme.c
1687
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
1690
if (memcmp(&link->conf->tpe, &elems->tpe, sizeof(elems->tpe))) {
net/mac80211/mlme.c
1691
link->conf->tpe = elems->tpe;
net/mac80211/mlme.c
1730
params.enabled = link->conf->npca.enabled;
net/mac80211/mlme.c
1733
if (memcmp(¶ms, &link->conf->npca, sizeof(params)) ||
net/mac80211/mlme.c
1735
link->conf->npca = params;
net/mac80211/mlme.c
1740
if (ieee80211_chanreq_identical(&chanreq, &link->conf->chanreq)) {
net/mac80211/mlme.c
1746
link_info(link,
net/mac80211/mlme.c
1748
link->u.mgd.bssid, frame, chanreq.oper.chan->center_freq,
net/mac80211/mlme.c
1756
link->u.mgd.bssid, frame);
net/mac80211/mlme.c
1761
link->conf->chanreq = chanreq;
net/mac80211/mlme.c
1782
ret = ieee80211_link_change_chanreq(link, &chanreq, changed);
net/mac80211/mlme.c
1786
link->u.mgd.bssid, frame);
net/mac80211/mlme.c
1793
chanctx_conf = sdata_dereference(link->conf->chanctx_conf, sdata);
net/mac80211/mlme.c
1804
!link->conf->npca.enabled && !sdata->vif.cfg.assoc) {
net/mac80211/mlme.c
1805
link->conf->npca.enabled = true;
net/mac80211/mlme.c
2159
struct ieee80211_link_data *link,
net/mac80211/mlme.c
2164
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
2185
if (link)
net/mac80211/mlme.c
2186
smps_mode = link->smps_mode;
net/mac80211/mlme.c
2192
if (link) {
net/mac80211/mlme.c
2199
chanctx_conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/mlme.c
2264
assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
2266
assoc_data->link[link_id].ap_ht_param,
net/mac80211/mlme.c
2268
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
2278
assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
2282
&assoc_data->link[link_id].ap_vht_cap,
net/mac80211/mlme.c
2283
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
2285
if (link)
net/mac80211/mlme.c
2286
link->conf->mu_mimo_owner = mu_mimo_owner;
net/mac80211/mlme.c
2295
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
2297
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
2324
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
2326
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
2336
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
2338
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
2340
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
2478
if (!assoc_data->link[link_id].bss ||
net/mac80211/mlme.c
2482
extra_elems = assoc_data->link[link_id].elems;
net/mac80211/mlme.c
2483
extra_elems_len = assoc_data->link[link_id].elems_len;
net/mac80211/mlme.c
2493
skb_put_data(skb, assoc_data->link[link_id].addr,
net/mac80211/mlme.c
2587
struct ieee80211_link_data *link;
net/mac80211/mlme.c
2621
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
2622
size_t elems_len = assoc_data->link[link_id].elems_len;
net/mac80211/mlme.c
2656
link = sdata_dereference(sdata->link[assoc_data->assoc_link_id], sdata);
net/mac80211/mlme.c
2657
if (WARN_ON(!link))
net/mac80211/mlme.c
2660
if (WARN_ON(!assoc_data->link[assoc_data->assoc_link_id].bss))
net/mac80211/mlme.c
2674
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
2719
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
2729
assoc_data->assoc_link_id, link,
net/mac80211/mlme.c
2879
struct ieee80211_link_data *link =
net/mac80211/mlme.c
2882
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
2895
if (!link->conf->csa_active)
net/mac80211/mlme.c
2903
if (!ieee80211_vif_link_active(&sdata->vif, link->link_id)) {
net/mac80211/mlme.c
2907
link->conf->chanreq = link->csa.chanreq;
net/mac80211/mlme.c
2908
cfg80211_ch_switch_notify(sdata->dev, &link->csa.chanreq.oper,
net/mac80211/mlme.c
2909
link->link_id);
net/mac80211/mlme.c
2910
link->conf->csa_active = false;
net/mac80211/mlme.c
2911
link->u.mgd.conn.dbe_enabled = false;
net/mac80211/mlme.c
2918
ap_sta->link[link->link_id]);
net/mac80211/mlme.c
2930
&link->csa.chanreq.oper,
net/mac80211/mlme.c
2942
if (link->reserved_chanctx) {
net/mac80211/mlme.c
2948
if (link->reserved_ready)
net/mac80211/mlme.c
2951
ret = ieee80211_link_use_reserved_context(link);
net/mac80211/mlme.c
2953
link_info(link,
net/mac80211/mlme.c
2962
if (!ieee80211_chanreq_identical(&link->conf->chanreq,
net/mac80211/mlme.c
2963
&link->csa.chanreq)) {
net/mac80211/mlme.c
2964
link_info(link,
net/mac80211/mlme.c
2971
link->u.mgd.csa.waiting_bcn = true;
net/mac80211/mlme.c
2981
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
2984
if (link->u.mgd.csa.ap_chandef.chan->band == NL80211_BAND_6GHZ &&
net/mac80211/mlme.c
2985
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
2986
ieee80211_rearrange_tpe(&link->u.mgd.csa.tpe,
net/mac80211/mlme.c
2987
&link->u.mgd.csa.ap_chandef,
net/mac80211/mlme.c
2988
&link->conf->chanreq.oper);
net/mac80211/mlme.c
2989
if (memcmp(&link->conf->tpe, &link->u.mgd.csa.tpe,
net/mac80211/mlme.c
2990
sizeof(link->u.mgd.csa.tpe))) {
net/mac80211/mlme.c
2991
link->conf->tpe = link->u.mgd.csa.tpe;
net/mac80211/mlme.c
2992
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/mlme.c
3002
for_each_link_data(sdata, link) {
net/mac80211/mlme.c
3003
if (!link->conf->csa_active)
net/mac80211/mlme.c
3016
static void ieee80211_chswitch_post_beacon(struct ieee80211_link_data *link)
net/mac80211/mlme.c
3018
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3026
WARN_ON(!link->conf->csa_active);
net/mac80211/mlme.c
3030
link->conf->csa_active = false;
net/mac80211/mlme.c
3031
link->u.mgd.conn.dbe_enabled = false;
net/mac80211/mlme.c
3032
link->u.mgd.csa.blocked_tx = false;
net/mac80211/mlme.c
3033
link->u.mgd.csa.waiting_bcn = false;
net/mac80211/mlme.c
3035
ret = drv_post_channel_switch(link);
net/mac80211/mlme.c
3037
link_info(link,
net/mac80211/mlme.c
3048
link_sta = sdata_dereference(ap_sta->link[link->link_id], sdata);
net/mac80211/mlme.c
3058
cfg80211_ch_switch_notify(sdata->dev, &link->conf->chanreq.oper,
net/mac80211/mlme.c
3059
link->link_id);
net/mac80211/mlme.c
3078
struct ieee80211_link_data *link =
net/mac80211/mlme.c
3079
rcu_dereference(sdata->link[link_id]);
net/mac80211/mlme.c
3081
if (WARN_ON(!link)) {
net/mac80211/mlme.c
3087
&link->u.mgd.csa.switch_work, 0);
net/mac80211/mlme.c
3095
ieee80211_sta_abort_chanswitch(struct ieee80211_link_data *link)
net/mac80211/mlme.c
3097
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3105
if (rcu_access_pointer(link->conf->chanctx_conf))
net/mac80211/mlme.c
3106
ieee80211_link_unreserve_chanctx(link);
net/mac80211/mlme.c
3110
link->conf->csa_active = false;
net/mac80211/mlme.c
3111
link->u.mgd.csa.blocked_tx = false;
net/mac80211/mlme.c
3113
drv_abort_channel_switch(link);
net/mac80211/mlme.c
3117
struct ieee80211_link_data *link;
net/mac80211/mlme.c
3128
struct ieee80211_link_data *link = data->link;
net/mac80211/mlme.c
3129
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3149
if (link_id != data->link->link_id)
net/mac80211/mlme.c
3156
link_info(link,
net/mac80211/mlme.c
3170
ieee80211_sta_other_link_csa_disappeared(struct ieee80211_link_data *link,
net/mac80211/mlme.c
3173
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3176
.link = link,
net/mac80211/mlme.c
3202
link_info(link,
net/mac80211/mlme.c
3216
if (data.chan != link->csa.chanreq.oper.chan)
net/mac80211/mlme.c
3217
ieee80211_sta_abort_chanswitch(link);
net/mac80211/mlme.c
3228
ieee80211_sta_process_chanswitch(struct ieee80211_link_data *link,
net/mac80211/mlme.c
3234
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3241
.link_id = link->link_id,
net/mac80211/mlme.c
3252
struct cfg80211_bss *cbss = link->conf->bss;
net/mac80211/mlme.c
3265
&link->u.mgd.conn,
net/mac80211/mlme.c
3266
link->u.mgd.bssid,
net/mac80211/mlme.c
3276
link->u.mgd.csa.tpe = csa_elems->csa_tpe;
net/mac80211/mlme.c
3294
if (link->conf->csa_active) {
net/mac80211/mlme.c
3301
if (link->u.mgd.csa.waiting_bcn) {
net/mac80211/mlme.c
3302
ieee80211_chswitch_post_beacon(link);
net/mac80211/mlme.c
3310
ieee80211_sta_abort_chanswitch(link);
net/mac80211/mlme.c
3320
link->link_id))
net/mac80211/mlme.c
3324
if (link->u.mgd.csa.waiting_bcn) {
net/mac80211/mlme.c
3325
ieee80211_chswitch_post_beacon(link);
net/mac80211/mlme.c
3340
ieee80211_sta_other_link_csa_disappeared(link,
net/mac80211/mlme.c
3355
if (unlikely(link->u.mgd.csa.blocked_tx)) {
net/mac80211/mlme.c
3356
link->u.mgd.csa.blocked_tx = false;
net/mac80211/mlme.c
3370
link->u.mgd.csa.blocked_tx = true;
net/mac80211/mlme.c
3376
if (link->conf->chanreq.oper.chan->band !=
net/mac80211/mlme.c
3378
link_info(link,
net/mac80211/mlme.c
3380
link->u.mgd.bssid,
net/mac80211/mlme.c
3390
link_info(link,
net/mac80211/mlme.c
3392
link->u.mgd.bssid,
net/mac80211/mlme.c
3403
&link->conf->chanreq.oper) &&
net/mac80211/mlme.c
3405
if (link->u.mgd.csa.ignored_same_chan)
net/mac80211/mlme.c
3407
link_info(link,
net/mac80211/mlme.c
3409
link->u.mgd.bssid);
net/mac80211/mlme.c
3410
link->u.mgd.csa.ignored_same_chan = true;
net/mac80211/mlme.c
3421
ieee80211_teardown_tdls_peers(link);
net/mac80211/mlme.c
3423
conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/mlme.c
3425
if (ieee80211_vif_link_active(&sdata->vif, link->link_id) && !conf) {
net/mac80211/mlme.c
3426
link_info(link,
net/mac80211/mlme.c
3435
link_info(link,
net/mac80211/mlme.c
3441
link_info(link,
net/mac80211/mlme.c
3446
link->u.mgd.csa.ap_chandef = csa_ie.chanreq.ap;
net/mac80211/mlme.c
3448
link->csa.chanreq.oper = csa_ie.chanreq.oper;
net/mac80211/mlme.c
3449
ieee80211_set_chanreq_ap(sdata, &link->csa.chanreq, &link->u.mgd.conn,
net/mac80211/mlme.c
3453
res = ieee80211_link_reserve_chanctx(link, &link->csa.chanreq,
net/mac80211/mlme.c
3456
link_info(link,
net/mac80211/mlme.c
3463
link->conf->csa_active = true;
net/mac80211/mlme.c
3464
link->u.mgd.csa.ignored_same_chan = false;
net/mac80211/mlme.c
3465
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
3466
link->u.mgd.csa.blocked_tx = csa_ie.mode;
net/mac80211/mlme.c
3472
link->link_id, csa_ie.count,
net/mac80211/mlme.c
3477
csa_time_tu = (max_t(int, csa_ie.count, 1) - 1) * link->conf->beacon_int;
net/mac80211/mlme.c
3478
link->u.mgd.csa.time = now + us_to_ktime(ieee80211_tu_to_usec(csa_time_tu));
net/mac80211/mlme.c
3480
if (ieee80211_vif_link_active(&sdata->vif, link->link_id) &&
net/mac80211/mlme.c
3494
&link->u.mgd.csa.switch_work,
net/mac80211/mlme.c
3495
link->u.mgd.csa.time - now);
net/mac80211/mlme.c
3505
link->conf->csa_active = true;
net/mac80211/mlme.c
3506
link->u.mgd.csa.blocked_tx = csa_ie.mode;
net/mac80211/mlme.c
3547
link_id < ARRAY_SIZE(sdata->link)) {
net/mac80211/mlme.c
3548
struct ieee80211_link_data *link =
net/mac80211/mlme.c
3549
sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
3551
if (link && link->conf->bss_param_ch_cnt != bss_param_ch_cnt) {
net/mac80211/mlme.c
3552
link->conf->bss_param_ch_cnt = bss_param_ch_cnt;
net/mac80211/mlme.c
3553
link->conf->bss_param_ch_cnt_link_id =
net/mac80211/mlme.c
3679
static u64 ieee80211_handle_pwr_constr(struct ieee80211_link_data *link,
net/mac80211/mlme.c
3686
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3722
if (link->ap_power_level == new_ap_level)
net/mac80211/mlme.c
3728
link->u.mgd.bssid);
net/mac80211/mlme.c
3732
if (link->ap_power_level == new_ap_level)
net/mac80211/mlme.c
3737
pwr_level_cisco, link->u.mgd.bssid);
net/mac80211/mlme.c
3740
link->ap_power_level = new_ap_level;
net/mac80211/mlme.c
3741
if (__ieee80211_recalc_txpower(link))
net/mac80211/mlme.c
3982
struct ieee80211_link_data *link =
net/mac80211/mlme.c
3985
struct cfg80211_chan_def chandef = link->conf->chanreq.oper;
net/mac80211/mlme.c
3986
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
3990
if (sdata->wdev.links[link->link_id].cac_started) {
net/mac80211/mlme.c
3991
ieee80211_link_release_channel(link);
net/mac80211/mlme.c
3994
GFP_KERNEL, link->link_id);
net/mac80211/mlme.c
4096
void ieee80211_mgd_set_link_qos_params(struct ieee80211_link_data *link)
net/mac80211/mlme.c
4098
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
4101
struct ieee80211_tx_queue_params *params = link->tx_conf;
net/mac80211/mlme.c
4112
drv_conf_tx(local, link, ac, ¶ms[ac]))
net/mac80211/mlme.c
4113
link_err(link,
net/mac80211/mlme.c
4122
struct ieee80211_link_data *link,
net/mac80211/mlme.c
4126
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
4155
if (count == link->u.mgd.wmm_last_param_set &&
net/mac80211/mlme.c
4156
mu_edca_count == link->u.mgd.mu_edca_last_param_set)
net/mac80211/mlme.c
4158
link->u.mgd.wmm_last_param_set = count;
net/mac80211/mlme.c
4159
link->u.mgd.mu_edca_last_param_set = mu_edca_count;
net/mac80211/mlme.c
4219
link_info(link,
net/mac80211/mlme.c
4232
link_info(link,
net/mac80211/mlme.c
4243
link_info(link,
net/mac80211/mlme.c
4251
link->tx_conf[ac] = params[ac];
net/mac80211/mlme.c
4258
struct ieee80211_link_data *link,
net/mac80211/mlme.c
4262
if (!_ieee80211_sta_wmm_params(local, link, wmm_param, wmm_param_len,
net/mac80211/mlme.c
4266
ieee80211_mgd_set_link_qos_params(link);
net/mac80211/mlme.c
4269
link->conf->qos = true;
net/mac80211/mlme.c
4288
static u64 ieee80211_handle_bss_capability(struct ieee80211_link_data *link,
net/mac80211/mlme.c
4291
struct ieee80211_bss_conf *bss_conf = link->conf;
net/mac80211/mlme.c
4298
sband = ieee80211_get_link_sband(link);
net/mac80211/mlme.c
4333
static u64 ieee80211_link_set_associated(struct ieee80211_link_data *link,
net/mac80211/mlme.c
4336
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
4337
struct ieee80211_bss_conf *bss_conf = link->conf;
net/mac80211/mlme.c
4346
changed |= ieee80211_handle_bss_capability(link,
net/mac80211/mlme.c
4351
ieee80211_check_rate_mask(link);
net/mac80211/mlme.c
4353
link->conf->bss = cbss;
net/mac80211/mlme.c
4354
memcpy(link->u.mgd.bssid, cbss->bssid, ETH_ALEN);
net/mac80211/mlme.c
4371
link->u.mgd.p2p_noa_index =
net/mac80211/mlme.c
4379
if (link->u.mgd.have_beacon) {
net/mac80211/mlme.c
4408
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
4409
struct ieee80211_link_data *link;
net/mac80211/mlme.c
4412
assoc_data->link[link_id].status != WLAN_STATUS_SUCCESS)
net/mac80211/mlme.c
4419
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
4420
if (WARN_ON(!link))
net/mac80211/mlme.c
4423
changed[link_id] |= ieee80211_link_set_associated(link, cbss);
net/mac80211/mlme.c
4441
struct ieee80211_link_data *link;
net/mac80211/mlme.c
4442
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
4447
assoc_data->link[link_id].status != WLAN_STATUS_SUCCESS)
net/mac80211/mlme.c
4450
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
4451
if (WARN_ON(!link))
net/mac80211/mlme.c
4454
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/mlme.c
4457
ieee80211_recalc_smps(sdata, link);
net/mac80211/mlme.c
4499
add_links_data->link[link_id].bss;
net/mac80211/mlme.c
4545
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/mlme.c
4547
struct ieee80211_link_data *link;
net/mac80211/mlme.c
4552
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
4553
if (WARN_ON_ONCE(!link))
net/mac80211/mlme.c
4556
if (link->u.mgd.csa.blocked_tx)
net/mac80211/mlme.c
4705
for (link_id = 0; link_id < ARRAY_SIZE(sdata->link); link_id++) {
net/mac80211/mlme.c
4706
struct ieee80211_link_data *link;
net/mac80211/mlme.c
4708
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
4709
if (!link)
net/mac80211/mlme.c
4711
ieee80211_link_release_channel(link);
net/mac80211/mlme.c
4992
else if (ifmgd->assoc_data && ifmgd->assoc_data->link[0].bss)
net/mac80211/mlme.c
4993
cbss = ifmgd->assoc_data->link[0].bss;
net/mac80211/mlme.c
5056
link_id < ARRAY_SIZE(sdata->link);
net/mac80211/mlme.c
5058
struct ieee80211_link_data *link;
net/mac80211/mlme.c
5060
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
5061
if (!link || !link->conf->bss)
net/mac80211/mlme.c
5063
cfg80211_unlink_bss(local->hw.wiphy, link->conf->bss);
net/mac80211/mlme.c
5064
link->conf->bss = NULL;
net/mac80211/mlme.c
5089
struct ieee80211_link_data *link;
net/mac80211/mlme.c
5109
for_each_link_data(sdata, link) {
net/mac80211/mlme.c
5112
if (!(links & BIT(link->link_id)))
net/mac80211/mlme.c
5116
if (!link->u.mgd.conn.dbe_enabled)
net/mac80211/mlme.c
5119
link_sta = sdata_dereference(ap->link[link->link_id], sdata);
net/mac80211/mlme.c
5124
ieee80211_link_sta_update_rc_bw(link, link_sta);
net/mac80211/mlme.c
5331
ARRAY_SIZE(assoc_data->link));
net/mac80211/mlme.c
5334
data.bss[i] = assoc_data->link[i].bss;
net/mac80211/mlme.c
5741
struct ieee80211_link_data *link,
net/mac80211/mlme.c
5747
if (link->conf->twt_requester != twt) {
net/mac80211/mlme.c
5748
link->conf->twt_requester = twt;
net/mac80211/mlme.c
5795
struct ieee80211_link_data *link;
net/mac80211/mlme.c
5801
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
5802
if (!link || !link->conf || !link->conf->bss) {
net/mac80211/mlme.c
5807
if (link->u.mgd.disable_wmm_tracking) {
net/mac80211/mlme.c
5809
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
5813
ies = rcu_dereference(link->conf->bss->beacon_ies);
net/mac80211/mlme.c
5816
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
5826
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
5830
ret = _ieee80211_sta_wmm_params(local, link,
net/mac80211/mlme.c
5839
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
5843
ieee80211_mgd_set_link_qos_params(link);
net/mac80211/mlme.c
5844
ieee80211_link_info_change_notify(sdata, link, BSS_CHANGED_QOS);
net/mac80211/mlme.c
5848
static bool ieee80211_assoc_config_link(struct ieee80211_link_data *link,
net/mac80211/mlme.c
5856
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
5859
struct ieee80211_bss_conf *bss_conf = link->conf;
net/mac80211/mlme.c
5861
unsigned int link_id = link->link_id;
net/mac80211/mlme.c
5863
.mode = link->u.mgd.conn.mode,
net/mac80211/mlme.c
5892
assoc_data->link[link_id].status = WLAN_STATUS_SUCCESS;
net/mac80211/mlme.c
5919
assoc_data->link[link_id].status = get_unaligned_le16(ptr + 2);
net/mac80211/mlme.c
5925
if (assoc_data->link[link_id].status != WLAN_STATUS_SUCCESS) {
net/mac80211/mlme.c
5926
link_info(link, "association response status code=%u\n",
net/mac80211/mlme.c
5927
assoc_data->link[link_id].status);
net/mac80211/mlme.c
5939
link->u.mgd.tdls_chan_switch_prohibited =
net/mac80211/mlme.c
5952
(link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
5954
(is_5ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
5992
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
5998
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
6006
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
6013
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
6028
if (!is_6ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
6036
if (is_5ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
6045
if (ieee80211_config_bw(link, elems,
net/mac80211/mlme.c
6054
if (WARN_ON(!link->conf->chanreq.oper.chan)) {
net/mac80211/mlme.c
6058
sband = local->hw.wiphy->bands[link->conf->chanreq.oper.chan->band];
net/mac80211/mlme.c
6061
if (elems->ht_cap_elem && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
6067
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
6093
link_info(link, "VHT capabilities mismatch\n");
net/mac80211/mlme.c
6105
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
6122
*changed |= ieee80211_recalc_twt_req(sdata, sband, link,
net/mac80211/mlme.c
6126
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_EHT) {
net/mac80211/mlme.c
6159
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_UHR) {
net/mac80211/mlme.c
6176
link_info(link, "Invalid UHR OMP timeout\n");
net/mac80211/mlme.c
6186
link->u.mgd.conn.mode == IEEE80211_CONN_MODE_S1G &&
net/mac80211/mlme.c
6253
link->u.mgd.wmm_last_param_set = -1;
net/mac80211/mlme.c
6254
link->u.mgd.mu_edca_last_param_set = -1;
net/mac80211/mlme.c
6256
if (link->u.mgd.disable_wmm_tracking) {
net/mac80211/mlme.c
6257
ieee80211_set_wmm_default(link, false, false);
net/mac80211/mlme.c
6258
} else if (!ieee80211_sta_wmm_params(local, link, elems->wmm_param,
net/mac80211/mlme.c
6262
ieee80211_set_wmm_default(link, false, true);
net/mac80211/mlme.c
6270
link->u.mgd.disable_wmm_tracking = true;
net/mac80211/mlme.c
6296
static int ieee80211_mgd_setup_link_sta(struct ieee80211_link_data *link,
net/mac80211/mlme.c
6301
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
6337
link_info(link, "No legacy rates in association response\n");
net/mac80211/mlme.c
6340
link_info(link, "No basic rates, using min rate instead\n");
net/mac80211/mlme.c
6347
link_info(link, "No rates found, keeping mandatory only\n");
net/mac80211/mlme.c
6349
link->conf->basic_rates = basic_rates;
net/mac80211/mlme.c
6352
link->operating_11g_mode = sband->band == NL80211_BAND_2GHZ &&
net/mac80211/mlme.c
6358
static u8 ieee80211_max_rx_chains(struct ieee80211_link_data *link,
net/mac80211/mlme.c
6373
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
6386
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
6405
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_HE)
net/mac80211/mlme.c
6709
struct ieee80211_link_data *link,
net/mac80211/mlme.c
6743
if (link && is_6ghz && conn->mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
6747
link->conf->pwr_reduction = *elems->pwr_constr_elem;
net/mac80211/mlme.c
6751
link->conf->power_type =
net/mac80211/mlme.c
6755
link_info(link,
net/mac80211/mlme.c
6759
link->conf->tpe = elems->tpe;
net/mac80211/mlme.c
6760
ieee80211_rearrange_tpe(&link->conf->tpe, &ap_chandef,
net/mac80211/mlme.c
6768
if (!link)
net/mac80211/mlme.c
6772
link->needed_rx_chains = min(ieee80211_max_rx_chains(link, cbss),
net/mac80211/mlme.c
6781
ret = ieee80211_link_use_channel(link, &chanreq,
net/mac80211/mlme.c
6791
ret = ieee80211_link_use_channel(link, &chanreq,
net/mac80211/mlme.c
6959
if (!assoc_data->link[link_id].bss)
net/mac80211/mlme.c
7002
struct cfg80211_bss *cbss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
7003
struct ieee80211_link_data *link;
net/mac80211/mlme.c
7009
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
7010
if (WARN_ON(!link))
net/mac80211/mlme.c
7014
link_info(link,
net/mac80211/mlme.c
7016
link->conf->addr,
net/mac80211/mlme.c
7017
assoc_data->link[link_id].bss->bssid,
net/mac80211/mlme.c
7021
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/mlme.c
7026
if (!link->u.mgd.have_beacon) {
net/mac80211/mlme.c
7032
link->u.mgd.have_beacon = true;
net/mac80211/mlme.c
7036
&link->conf->sync_dtim_count,
net/mac80211/mlme.c
7037
&link->u.mgd.dtim_period);
net/mac80211/mlme.c
7038
link->conf->beacon_int = cbss->beacon_interval;
net/mac80211/mlme.c
7042
link->conf->dtim_period = link->u.mgd.dtim_period ?: 1;
net/mac80211/mlme.c
7045
link->u.mgd.conn = assoc_data->link[link_id].conn;
net/mac80211/mlme.c
7047
err = ieee80211_prep_channel(sdata, link, link_sta,
net/mac80211/mlme.c
7049
true, &link->u.mgd.conn,
net/mac80211/mlme.c
7052
link_info(link, "prep_channel failed\n");
net/mac80211/mlme.c
7057
err = ieee80211_mgd_setup_link_sta(link, sta, link_sta,
net/mac80211/mlme.c
7058
assoc_data->link[link_id].bss);
net/mac80211/mlme.c
7062
if (!ieee80211_assoc_config_link(link, link_sta,
net/mac80211/mlme.c
7063
assoc_data->link[link_id].bss,
net/mac80211/mlme.c
7068
if (assoc_data->link[link_id].status != WLAN_STATUS_SUCCESS) {
net/mac80211/mlme.c
7176
assoc_data->link[assoc_data->assoc_link_id].conn.mode;
net/mac80211/mlme.c
7323
struct ieee80211_link_data *link;
net/mac80211/mlme.c
7325
if (!assoc_data->link[link_id].bss)
net/mac80211/mlme.c
7328
resp.links[link_id].bss = assoc_data->link[link_id].bss;
net/mac80211/mlme.c
7330
assoc_data->link[link_id].addr);
net/mac80211/mlme.c
7331
resp.links[link_id].status = assoc_data->link[link_id].status;
net/mac80211/mlme.c
7333
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
7334
if (!link)
net/mac80211/mlme.c
7340
if (link->tx_conf[ac].uapsd)
net/mac80211/mlme.c
7376
static void ieee80211_rx_bss_info(struct ieee80211_link_data *link,
net/mac80211/mlme.c
7380
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
7394
link->conf->beacon_rate = bss->beacon_rate;
net/mac80211/mlme.c
7400
static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_link_data *link,
net/mac80211/mlme.c
7403
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
7435
ieee80211_rx_bss_info(link, mgmt, len, rx_status);
net/mac80211/mlme.c
7438
ether_addr_equal(mgmt->bssid, link->u.mgd.bssid))
net/mac80211/mlme.c
7466
static void ieee80211_handle_beacon_sig(struct ieee80211_link_data *link,
net/mac80211/mlme.c
7472
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
7476
if (!link->u.mgd.tracking_signal_avg) {
net/mac80211/mlme.c
7477
link->u.mgd.tracking_signal_avg = true;
net/mac80211/mlme.c
7478
ewma_beacon_signal_init(&link->u.mgd.ave_beacon_signal);
net/mac80211/mlme.c
7479
link->u.mgd.last_cqm_event_signal = 0;
net/mac80211/mlme.c
7480
link->u.mgd.count_beacon_signal = 1;
net/mac80211/mlme.c
7481
link->u.mgd.last_ave_beacon_signal = 0;
net/mac80211/mlme.c
7483
link->u.mgd.count_beacon_signal++;
net/mac80211/mlme.c
7486
ewma_beacon_signal_add(&link->u.mgd.ave_beacon_signal,
net/mac80211/mlme.c
7490
link->u.mgd.count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) {
net/mac80211/mlme.c
7491
int sig = -ewma_beacon_signal_read(&link->u.mgd.ave_beacon_signal);
net/mac80211/mlme.c
7492
int last_sig = link->u.mgd.last_ave_beacon_signal;
net/mac80211/mlme.c
7503
link->u.mgd.last_ave_beacon_signal = sig;
net/mac80211/mlme.c
7509
link->u.mgd.last_ave_beacon_signal = sig;
net/mac80211/mlme.c
7516
link->u.mgd.count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT &&
net/mac80211/mlme.c
7518
int sig = -ewma_beacon_signal_read(&link->u.mgd.ave_beacon_signal);
net/mac80211/mlme.c
7519
int last_event = link->u.mgd.last_cqm_event_signal;
net/mac80211/mlme.c
7525
link->u.mgd.last_cqm_event_signal = sig;
net/mac80211/mlme.c
7532
link->u.mgd.last_cqm_event_signal = sig;
net/mac80211/mlme.c
7541
link->u.mgd.count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) {
net/mac80211/mlme.c
7542
int sig = -ewma_beacon_signal_read(&link->u.mgd.ave_beacon_signal);
net/mac80211/mlme.c
7543
int last_event = link->u.mgd.last_cqm_event_signal;
net/mac80211/mlme.c
7549
link->u.mgd.last_cqm_event_signal = sig;
net/mac80211/mlme.c
7556
link->u.mgd.last_cqm_event_signal = sig;
net/mac80211/mlme.c
7922
struct ieee80211_link_data *link;
net/mac80211/mlme.c
7936
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
7937
if (!link)
net/mac80211/mlme.c
7953
struct ieee80211_link_data *link;
net/mac80211/mlme.c
7959
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
7960
if (!link)
net/mac80211/mlme.c
7999
ieee80211_sta_process_chanswitch(link, 0, 0, elems, prof_elems,
net/mac80211/mlme.c
8060
static void ieee80211_rx_mgmt_beacon(struct ieee80211_link_data *link,
net/mac80211/mlme.c
8064
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
8066
struct ieee80211_bss_conf *bss_conf = link->conf;
net/mac80211/mlme.c
8083
.mode = link->u.mgd.conn.mode,
net/mac80211/mlme.c
8123
ieee80211_rx_our_beacon(bssid, ifmgd->assoc_data->link[0].bss)) {
net/mac80211/mlme.c
8124
parse_params.bss = ifmgd->assoc_data->link[0].bss;
net/mac80211/mlme.c
8129
ieee80211_rx_bss_info(link, mgmt, len, rx_status);
net/mac80211/mlme.c
8132
link->u.mgd.dtim_period = elems->dtim_period;
net/mac80211/mlme.c
8133
link->u.mgd.have_beacon = true;
net/mac80211/mlme.c
8167
bssid = link->u.mgd.bssid;
net/mac80211/mlme.c
8170
ieee80211_handle_beacon_sig(link, ifmgd, bss_conf,
net/mac80211/mlme.c
8256
if (link->u.mgd.p2p_noa_index != noa.index) {
net/mac80211/mlme.c
8258
link->u.mgd.p2p_noa_index = noa.index;
net/mac80211/mlme.c
8265
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
8267
} else if (link->u.mgd.p2p_noa_index != -1) {
net/mac80211/mlme.c
8269
link->u.mgd.p2p_noa_index = -1;
net/mac80211/mlme.c
8272
link->u.mgd.beacon_crc_valid = false;
net/mac80211/mlme.c
8293
if ((ncrc == link->u.mgd.beacon_crc && link->u.mgd.beacon_crc_valid) ||
net/mac80211/mlme.c
8298
link->u.mgd.beacon_crc = ncrc;
net/mac80211/mlme.c
8299
link->u.mgd.beacon_crc_valid = true;
net/mac80211/mlme.c
8301
ieee80211_rx_bss_info(link, mgmt, len, rx_status);
net/mac80211/mlme.c
8309
ieee80211_sta_process_chanswitch(link, rx_status->mactime,
net/mac80211/mlme.c
8318
if (!link->u.mgd.have_beacon) {
net/mac80211/mlme.c
8323
link->u.mgd.have_beacon = true;
net/mac80211/mlme.c
8345
changed |= ieee80211_handle_bss_capability(link,
net/mac80211/mlme.c
8372
!link->u.mgd.disable_wmm_tracking &&
net/mac80211/mlme.c
8373
ieee80211_sta_wmm_params(local, link, elems->wmm_param,
net/mac80211/mlme.c
8382
link_sta = rcu_dereference_protected(sta->link[link->link_id],
net/mac80211/mlme.c
8393
changed |= ieee80211_recalc_twt_req(sdata, sband, link, link_sta, elems);
net/mac80211/mlme.c
8395
if (ieee80211_config_bw(link, elems, true, &changed,
net/mac80211/mlme.c
8412
changed |= ieee80211_handle_pwr_constr(link, chan, mgmt,
net/mac80211/mlme.c
8423
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/mlme.c
8861
struct ieee80211_link_data *link = &sdata->deflink;
net/mac80211/mlme.c
8874
ieee80211_rx_mgmt_beacon(link, hdr, skb->len, rx_status);
net/mac80211/mlme.c
9008
assoc_data->link[assoc_data->assoc_link_id].bss);
net/mac80211/mlme.c
9206
struct ieee80211_link_data *link;
net/mac80211/mlme.c
9210
for_each_link_data_rcu(sdata, link) {
net/mac80211/mlme.c
9211
if (!(link->conf->csa_active &&
net/mac80211/mlme.c
9212
!link->u.mgd.csa.waiting_bcn))
net/mac80211/mlme.c
9248
for (link_id = 0; link_id < ARRAY_SIZE(sta->link);
net/mac80211/mlme.c
9253
link_sta = rcu_dereference(sta->link[link_id]);
net/mac80211/mlme.c
9418
struct ieee80211_link_data *link =
net/mac80211/mlme.c
9422
__ieee80211_request_smps_mgd(link->sdata, link,
net/mac80211/mlme.c
9423
link->u.mgd.driver_smps_mode);
net/mac80211/mlme.c
9489
struct ieee80211_link_data *link =
net/mac80211/mlme.c
9493
ieee80211_recalc_smps(link->sdata, link);
net/mac80211/mlme.c
9496
void ieee80211_mgd_setup_link(struct ieee80211_link_data *link)
net/mac80211/mlme.c
9498
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/mlme.c
9500
unsigned int link_id = link->link_id;
net/mac80211/mlme.c
9502
link->u.mgd.p2p_noa_index = -1;
net/mac80211/mlme.c
9503
link->conf->bssid = link->u.mgd.bssid;
net/mac80211/mlme.c
9504
link->smps_mode = IEEE80211_SMPS_OFF;
net/mac80211/mlme.c
9506
wiphy_work_init(&link->u.mgd.request_smps_work,
net/mac80211/mlme.c
9508
wiphy_work_init(&link->u.mgd.recalc_smps,
net/mac80211/mlme.c
9511
link->u.mgd.req_smps = IEEE80211_SMPS_AUTOMATIC;
net/mac80211/mlme.c
9513
link->u.mgd.req_smps = IEEE80211_SMPS_OFF;
net/mac80211/mlme.c
9515
wiphy_hrtimer_work_init(&link->u.mgd.csa.switch_work,
net/mac80211/mlme.c
9518
ieee80211_clear_tpe(&link->conf->tpe);
net/mac80211/mlme.c
9521
ether_addr_copy(link->conf->addr,
net/mac80211/mlme.c
9522
sdata->u.mgd.assoc_data->link[link_id].addr);
net/mac80211/mlme.c
9524
ether_addr_copy(link->conf->addr,
net/mac80211/mlme.c
9525
sdata->u.mgd.reconf.add_links_data->link[link_id].addr);
net/mac80211/mlme.c
9526
else if (!is_valid_ether_addr(link->conf->addr))
net/mac80211/mlme.c
9527
eth_random_addr(link->conf->addr);
net/mac80211/mlme.c
9555
struct ieee80211_link_data *link;
net/mac80211/mlme.c
9586
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/mlme.c
9587
if (WARN_ON(!link)) {
net/mac80211/mlme.c
9642
link_sta = rcu_dereference(new_sta->link[link_id]);
net/mac80211/mlme.c
9650
err = ieee80211_mgd_setup_link_sta(link, new_sta,
net/mac80211/mlme.c
9658
memcpy(link->u.mgd.bssid, cbss->bssid, ETH_ALEN);
net/mac80211/mlme.c
9661
link->conf->beacon_int = cbss->beacon_interval;
net/mac80211/mlme.c
9664
link->conf->sync_tsf = ies->tsf;
net/mac80211/mlme.c
9665
link->conf->sync_device_ts =
net/mac80211/mlme.c
9669
&link->conf->sync_dtim_count,
net/mac80211/mlme.c
9675
link->conf->sync_tsf = ies->tsf;
net/mac80211/mlme.c
9676
link->conf->sync_device_ts =
net/mac80211/mlme.c
9678
link->conf->sync_dtim_count = 0;
net/mac80211/mlme.c
9680
link->conf->sync_tsf = 0;
net/mac80211/mlme.c
9681
link->conf->sync_device_ts = 0;
net/mac80211/mlme.c
9682
link->conf->sync_dtim_count = 0;
net/mac80211/mlme.c
9697
link->u.mgd.conn = *conn;
net/mac80211/mlme.c
9700
link_sta = sdata_dereference(ap->link[link->link_id], sdata);
net/mac80211/mlme.c
9708
err = ieee80211_prep_channel(sdata, link, link_sta,
net/mac80211/mlme.c
9709
link->link_id, cbss,
net/mac80211/mlme.c
9710
mlo, &link->u.mgd.conn,
net/mac80211/mlme.c
9718
*conn = link->u.mgd.conn;
net/mac80211/mlme.c
9726
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/mlme.c
9743
WARN_ON_ONCE(!ether_addr_equal(link->u.mgd.bssid, cbss->bssid));
net/mac80211/mlme.c
9752
ieee80211_link_release_channel(link);
net/mac80211/mlme.c
9853
struct ieee80211_link_data *link;
net/mac80211/rate.c
294
void ieee80211_check_rate_mask(struct ieee80211_link_data *link)
net/mac80211/rate.c
296
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/rate.c
299
u32 user_mask, basic_rates = link->conf->basic_rates;
net/mac80211/rate.c
302
if (WARN_ON(!link->conf->chanreq.oper.chan))
net/mac80211/rate.c
305
band = link->conf->chanreq.oper.chan->band;
net/mac80211/rate.c
77
for (link_id = 0; link_id < ARRAY_SIZE(sta->link); link_id++) {
net/mac80211/rate.c
80
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
2021
key = rcu_dereference(rx->link->gtk[idx]);
net/mac80211/rx.c
2025
key = rcu_dereference(rx->link->gtk[idx2]);
net/mac80211/rx.c
2140
rx->key = rcu_dereference(rx->link->gtk[mmie_keyidx]);
net/mac80211/rx.c
2155
key = rcu_dereference(rx->link->default_mgmt_key);
net/mac80211/rx.c
2166
key = rcu_dereference(rx->link->gtk[i]);
net/mac80211/rx.c
2201
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
3493
bss_conf = rx->link->conf;
net/mac80211/rx.c
4258
if (WARN_ON_ONCE(!rx->link)) {
net/mac80211/rx.c
4333
rx->link = rcu_dereference(rx->sdata->link[link_id]);
net/mac80211/rx.c
4336
return rx->link;
net/mac80211/rx.c
4341
rx->link_sta = rcu_dereference(rx->sta->link[link_id]);
net/mac80211/rx.c
4343
return rx->link && rx->link_sta;
net/mac80211/rx.c
4364
rx->link =
net/mac80211/rx.c
4365
rcu_dereference(rx->sdata->link[sta->deflink.link_id]);
net/mac80211/rx.c
4367
rx->link = &rx->sdata->deflink;
net/mac80211/rx.c
4924
link_sta = rcu_dereference(sta->link[rx->link_id]);
net/mac80211/rx.c
5180
struct ieee80211_link_data *link = rx->link;
net/mac80211/rx.c
5239
if (ether_addr_equal(link->conf->addr, hdr->addr1))
net/mac80211/rx.c
5248
else if (ether_addr_equal(link->conf->addr, hdr->addr3))
net/mac80211/rx.c
5343
struct ieee80211_link_data *link;
net/mac80211/rx.c
5346
for_each_link_data_rcu(rx->sdata, link) {
net/mac80211/rx.c
5347
conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/rx.c
5352
link_id = link->link_id;
net/mac80211/scan.c
266
link_sdata = rcu_dereference(sdata->link[link_id]);
net/mac80211/sta_info.c
1357
for (i = 0; i < ARRAY_SIZE(sta->link); i++) {
net/mac80211/sta_info.c
1363
link_sta = rcu_dereference_protected(sta->link[i],
net/mac80211/sta_info.c
2450
for (link_id = 0; link_id < ARRAY_SIZE((sta)->link); link_id++) {
net/mac80211/sta_info.c
2457
link_sta = rcu_dereference(sta->sta.link[link_id]);
net/mac80211/sta_info.c
2543
sta->link[link_id]);
net/mac80211/sta_info.c
2677
sta->link[link_id]);
net/mac80211/sta_info.c
2802
struct ieee80211_link_data *link,
net/mac80211/sta_info.c
2807
int i, ac, cpu, link_id = link->link_id;
net/mac80211/sta_info.c
2814
sta->link[link_id]);
net/mac80211/sta_info.c
2821
link_sinfo->rx_beacon = link->u.mgd.count_beacon_signal;
net/mac80211/sta_info.c
2835
link->u.mgd.beacon_loss_count;
net/mac80211/sta_info.c
293
struct ieee80211_link_data *link;
net/mac80211/sta_info.c
3010
link_sinfo->bss_param.dtim_period = link->conf->dtim_period;
net/mac80211/sta_info.c
3011
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
3285
struct ieee80211_link_data *link;
net/mac80211/sta_info.c
3299
sta->link[link_id]);
net/mac80211/sta_info.c
3300
link = wiphy_dereference(sdata->local->hw.wiphy,
net/mac80211/sta_info.c
3301
sdata->link[link_id]);
net/mac80211/sta_info.c
3303
if (!link_sta || !sinfo->links[link_id] || !link) {
net/mac80211/sta_info.c
3308
link, tidstats);
net/mac80211/sta_info.c
3343
sta->link[link_id]);
net/mac80211/sta_info.c
3367
sta->link[link_id]))
net/mac80211/sta_info.c
3404
link_sta = rcu_dereference_protected(sta->link[link_id],
net/mac80211/sta_info.c
3691
struct ieee80211_link_data *link;
net/mac80211/sta_info.c
370
sta->link[link_id]);
net/mac80211/sta_info.c
3707
link = sdata_dereference(sdata->link[link_sta->link_id], sdata);
net/mac80211/sta_info.c
3708
if (WARN_ON(!link))
net/mac80211/sta_info.c
371
struct ieee80211_link_data *link;
net/mac80211/sta_info.c
3712
return min(bw, link->bss_bw.he_and_lower);
net/mac80211/sta_info.c
3716
return min(bw, link->bss_bw.eht);
net/mac80211/sta_info.c
3806
bool ieee80211_link_sta_update_rc_bw(struct ieee80211_link_data *link,
net/mac80211/sta_info.c
3809
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/sta_info.c
3814
band = link->conf->chanreq.oper.chan->band;
net/mac80211/sta_info.c
3817
new_bw = ieee80211_sta_current_bw(link_sta, &link->conf->chanreq.oper,
net/mac80211/sta_info.c
415
link = wiphy_dereference(sta->sdata->local->hw.wiphy,
net/mac80211/sta_info.c
416
sta->sdata->link[link_id]);
net/mac80211/sta_info.c
417
if (link)
net/mac80211/sta_info.c
419
link->u.mgd.beacon_loss_count;
net/mac80211/sta_info.c
431
link_sta = rcu_access_pointer(sta->link[link_id]);
net/mac80211/sta_info.c
449
RCU_INIT_POINTER(sta->link[link_id], NULL);
net/mac80211/sta_info.c
450
RCU_INIT_POINTER(sta->sta.link[link_id], NULL);
net/mac80211/sta_info.c
472
for (i = 0; i < ARRAY_SIZE(sta->link); i++) {
net/mac80211/sta_info.c
475
link_sta = rcu_access_pointer(sta->link[i]);
net/mac80211/sta_info.c
625
rcu_assign_pointer(sta->link[link_id], link_info);
net/mac80211/sta_info.c
626
rcu_assign_pointer(sta->sta.link[link_id], link_sta);
net/mac80211/sta_info.c
987
for (i = 0; i < ARRAY_SIZE(sta->link); i++) {
net/mac80211/sta_info.c
990
link_sta = rcu_dereference_protected(sta->link[i],
net/mac80211/sta_info.h
1029
bool ieee80211_link_sta_update_rc_bw(struct ieee80211_link_data *link,
net/mac80211/sta_info.h
786
struct link_sta_info __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];
net/mac80211/status.c
687
struct ieee80211_link_data *link;
net/mac80211/status.c
698
if (WARN(link_id >= ARRAY_SIZE(sdata->link),
net/mac80211/status.c
702
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/status.c
703
if (!link)
net/mac80211/status.c
713
link->smps_mode = smps_mode;
net/mac80211/status.c
714
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
2039
void ieee80211_teardown_tdls_peers(struct ieee80211_link_data *link)
net/mac80211/tdls.c
2041
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/tdls.c
2051
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
369
ieee80211_tdls_add_setup_start_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
374
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/tdls.c
385
sband = ieee80211_get_link_sband(link);
net/mac80211/tdls.c
410
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
445
sta->tdls_chandef = link->conf->chanreq.oper;
net/mac80211/tdls.c
448
ieee80211_tdls_add_oper_classes(link, skb);
net/mac80211/tdls.c
45
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/tdls.c
481
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
562
ieee80211_put_he_6ghz_cap(skb, sdata, link->smps_mode);
net/mac80211/tdls.c
596
ieee80211_tdls_add_setup_cfm_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
601
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/tdls.c
608
sband = ieee80211_get_link_sband(link);
net/mac80211/tdls.c
618
sta->tdls_chandef = link->conf->chanreq.oper;
net/mac80211/tdls.c
664
&link->conf->chanreq.oper, prot,
net/mac80211/tdls.c
668
ieee80211_tdls_add_link_ie(link, skb, peer, initiator);
net/mac80211/tdls.c
693
ieee80211_tdls_add_chan_switch_req_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
722
ieee80211_tdls_add_link_ie(link, skb, peer, initiator);
net/mac80211/tdls.c
732
ieee80211_tdls_add_chan_switch_resp_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
739
ieee80211_tdls_add_link_ie(link, skb, peer, initiator);
net/mac80211/tdls.c
745
static void ieee80211_tdls_add_ies(struct ieee80211_link_data *link,
net/mac80211/tdls.c
757
ieee80211_tdls_add_setup_start_ies(link,
net/mac80211/tdls.c
766
ieee80211_tdls_add_setup_cfm_ies(link, skb, peer,
net/mac80211/tdls.c
775
ieee80211_tdls_add_link_ie(link, skb,
net/mac80211/tdls.c
779
ieee80211_tdls_add_chan_switch_req_ies(link, skb, peer,
net/mac80211/tdls.c
785
ieee80211_tdls_add_chan_switch_resp_ies(link, skb, peer,
net/mac80211/tdls.c
796
struct ieee80211_link_data *link,
net/mac80211/tdls.c
821
cpu_to_le16(ieee80211_get_tdls_sta_capab(link,
net/mac80211/tdls.c
832
cpu_to_le16(ieee80211_get_tdls_sta_capab(link,
net/mac80211/tdls.c
879
const u8 *peer, struct ieee80211_link_data *link,
net/mac80211/tdls.c
892
memcpy(mgmt->bssid, link->u.mgd.bssid, ETH_ALEN);
net/mac80211/tdls.c
901
cpu_to_le16(ieee80211_get_tdls_sta_capab(link,
net/mac80211/tdls.c
919
struct ieee80211_link_data *link;
net/mac80211/tdls.c
923
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tdls.c
924
if (WARN_ON(!link))
net/mac80211/tdls.c
965
sdata->dev, link, peer,
net/mac80211/tdls.c
971
peer, link, action_code,
net/mac80211/tdls.c
983
ieee80211_tdls_add_ies(link, skb, peer, action_code, status_code,
net/mac80211/trace.h
3129
struct ieee80211_link_data *link,
net/mac80211/trace.h
3132
TP_ARGS(local, sdata, link, smps_mode),
net/mac80211/trace.h
3144
__entry->link_id = link->link_id,
net/mac80211/tx.c
2716
struct ieee80211_link_data *link;
net/mac80211/tx.c
2719
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
2720
if (WARN_ON(!link)) {
net/mac80211/tx.c
2724
memcpy(hdr.addr2, link->conf->addr, ETH_ALEN);
net/mac80211/tx.c
2825
struct ieee80211_link_data *link;
net/mac80211/tx.c
2830
link = rcu_dereference(sdata->link[tdls_link_id]);
net/mac80211/tx.c
2831
if (WARN_ON_ONCE(!link)) {
net/mac80211/tx.c
2835
memcpy(hdr.addr3, link->u.mgd.bssid, ETH_ALEN);
net/mac80211/tx.c
3172
struct ieee80211_link_data *link;
net/mac80211/tx.c
3178
link = rcu_dereference(sdata->link[tdls_link_id]);
net/mac80211/tx.c
3179
if (!WARN_ON_ONCE(!link))
net/mac80211/tx.c
3180
memcpy(hdr->addr3, link->u.mgd.bssid, ETH_ALEN);
net/mac80211/tx.c
3226
struct ieee80211_link_data *link;
net/mac80211/tx.c
3229
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
3230
if (WARN_ON(!link)) {
net/mac80211/tx.c
3234
memcpy(hdr->addr2, link->conf->addr, ETH_ALEN);
net/mac80211/tx.c
4548
unsigned int link;
net/mac80211/tx.c
4560
for_each_set_bit(link, &links, IEEE80211_MLD_MAX_NUM_LINKS) {
net/mac80211/tx.c
4561
ieee80211_mlo_multicast_tx_one(sdata, skb, ctrl_flags, link);
net/mac80211/tx.c
4791
struct ieee80211_link_data *link;
net/mac80211/tx.c
4815
link = &sdata->deflink;
net/mac80211/tx.c
4816
key = rcu_dereference(link->default_multicast_key);
net/mac80211/tx.c
5124
struct ieee80211_link_data *link,
net/mac80211/tx.c
5130
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/tx.c
5131
bool s1g = ieee80211_get_link_sband(link)->band == NL80211_BAND_S1GHZ;
net/mac80211/tx.c
5184
struct ieee80211_link_data *link,
net/mac80211/tx.c
5198
__ieee80211_beacon_add_tim(sdata, link, ps, skb, is_template);
net/mac80211/tx.c
5201
__ieee80211_beacon_add_tim(sdata, link, ps, skb, is_template);
net/mac80211/tx.c
5210
struct ieee80211_link_data *link)
net/mac80211/tx.c
5235
resp = rcu_dereference(link->u.ap.probe_resp);
net/mac80211/tx.c
5239
if (link->conf->csa_active)
net/mac80211/tx.c
5257
static u8 __ieee80211_beacon_update_cntdwn(struct ieee80211_link_data *link,
net/mac80211/tx.c
5270
link_err_once(link,
net/mac80211/tx.c
5283
struct ieee80211_link_data *link;
net/mac80211/tx.c
5292
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
5293
if (!link)
net/mac80211/tx.c
5297
beacon = rcu_dereference(link->u.ap.beacon);
net/mac80211/tx.c
5306
count = __ieee80211_beacon_update_cntdwn(link, beacon);
net/mac80211/tx.c
5343
struct ieee80211_link_data *link;
net/mac80211/tx.c
5357
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
5358
if (!link)
net/mac80211/tx.c
5362
beacon = rcu_dereference(link->u.ap.beacon);
net/mac80211/tx.c
5409
struct ieee80211_link_data *link)
net/mac80211/tx.c
5416
tx.key = rcu_dereference(link->default_beacon_key);
net/mac80211/tx.c
5485
struct ieee80211_link_data *link,
net/mac80211/tx.c
5521
txrc.bss_conf = link->conf;
net/mac80211/tx.c
5532
info->control.flags |= u32_encode_bits(link->link_id,
net/mac80211/tx.c
5571
struct ieee80211_link_data *link,
net/mac80211/tx.c
5587
ieee80211_beacon_update_cntdwn(vif, link->link_id);
net/mac80211/tx.c
5589
ieee80211_set_beacon_cntdwn(sdata, beacon, link);
net/mac80211/tx.c
5608
ieee80211_beacon_add_tim(sdata, link, &ap->ps, skb, is_template);
net/mac80211/tx.c
5627
if (ieee80211_beacon_protect(skb, local, sdata, link) < 0) {
net/mac80211/tx.c
5632
ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
net/mac80211/tx.c
5638
struct ieee80211_link_data *link)
net/mac80211/tx.c
5643
ps->sb_count = link->conf->s1g_long_beacon_period - 1;
net/mac80211/tx.c
5653
struct ieee80211_link_data *link,
net/mac80211/tx.c
5672
ieee80211_beacon_add_tim(sdata, link, &ap->ps, skb, is_template);
net/mac80211/tx.c
5677
ieee80211_beacon_get_finish(hw, vif, link, NULL, NULL, skb,
net/mac80211/tx.c
568
struct ieee80211_link_data *link;
net/mac80211/tx.c
5684
struct ieee80211_link_data *link,
net/mac80211/tx.c
5693
ieee80211_s1g_need_long_beacon(sdata, link))
net/mac80211/tx.c
5694
return __ieee80211_beacon_get_ap(hw, vif, link, offs,
net/mac80211/tx.c
5698
return ieee80211_s1g_short_beacon_get(hw, vif, link, chanctx_conf,
net/mac80211/tx.c
5705
struct ieee80211_link_data *link,
net/mac80211/tx.c
5721
ieee80211_beacon_get_ap(hw, vif, link,
net/mac80211/tx.c
573
link = &tx->sdata->deflink;
net/mac80211/tx.c
575
link = rcu_dereference(tx->sdata->link[link_id]);
net/mac80211/tx.c
5752
struct ieee80211_link_data *link;
net/mac80211/tx.c
5758
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
5759
if (!link)
net/mac80211/tx.c
576
if (!link)
net/mac80211/tx.c
5762
rcu_dereference(link->conf->chanctx_conf);
net/mac80211/tx.c
5771
beacon = rcu_dereference(link->u.ap.beacon);
net/mac80211/tx.c
5775
if (vif->cfg.s1g && link->u.ap.s1g_short_beacon) {
net/mac80211/tx.c
5777
rcu_dereference(link->u.ap.s1g_short_beacon);
net/mac80211/tx.c
5784
ieee80211_beacon_get_ap_ema_list(hw, vif, link,
net/mac80211/tx.c
5800
skb = ieee80211_beacon_get_ap(hw, vif, link, offs,
net/mac80211/tx.c
581
return rcu_dereference(link->default_multicast_key);
net/mac80211/tx.c
5815
__ieee80211_beacon_update_cntdwn(link, beacon);
net/mac80211/tx.c
5817
ieee80211_set_beacon_cntdwn(sdata, beacon, link);
net/mac80211/tx.c
5831
ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
net/mac80211/tx.c
5847
__ieee80211_beacon_update_cntdwn(link, beacon);
net/mac80211/tx.c
5849
ieee80211_set_beacon_cntdwn(sdata, beacon, link);
net/mac80211/tx.c
585
return rcu_dereference(link->default_mgmt_key);
net/mac80211/tx.c
5864
ieee80211_beacon_add_tim(sdata, link, &ifmsh->ps, skb,
net/mac80211/tx.c
587
return rcu_dereference(link->default_multicast_key);
net/mac80211/tx.c
5873
ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
net/mac80211/tx.c
6010
struct ieee80211_link_data *link;
net/mac80211/tx.c
6019
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
6020
if (!link)
net/mac80211/tx.c
6023
tmpl = rcu_dereference(link->u.ap.fils_discovery);
net/mac80211/tx.c
6045
struct ieee80211_link_data *link;
net/mac80211/tx.c
6054
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
6055
if (!link)
net/mac80211/tx.c
6058
tmpl = rcu_dereference(link->u.ap.unsol_bcast_probe_resp);
net/mac80211/tx.c
6113
struct ieee80211_link_data *link = NULL;
net/mac80211/tx.c
6135
link = rcu_dereference(sdata->link[link_id]);
net/mac80211/tx.c
6136
if (WARN_ON_ONCE(!link)) {
net/mac80211/tx.c
6162
if (link) {
net/mac80211/tx.c
6163
memcpy(nullfunc->addr1, link->conf->bssid, ETH_ALEN);
net/mac80211/tx.c
6164
memcpy(nullfunc->addr2, link->conf->addr, ETH_ALEN);
net/mac80211/tx.c
6165
memcpy(nullfunc->addr3, link->conf->bssid, ETH_ALEN);
net/mac80211/tx.c
6417
unsigned int link;
net/mac80211/tx.c
6430
link = 0;
net/mac80211/tx.c
6432
link = link_id;
net/mac80211/tx.c
6435
link = IEEE80211_LINK_UNSPECIFIED;
net/mac80211/tx.c
6439
for (link = 0; link < ARRAY_SIZE(sdata->vif.link_conf); link++) {
net/mac80211/tx.c
6442
link_conf = rcu_dereference(sdata->vif.link_conf[link]);
net/mac80211/tx.c
6450
if (WARN_ON_ONCE(link == ARRAY_SIZE(sdata->vif.link_conf)))
net/mac80211/tx.c
6451
link = ffs(sdata->vif.active_links) - 1;
net/mac80211/tx.c
6455
u32_encode_bits(link, IEEE80211_TX_CTRL_MLO_LINK);
net/mac80211/util.c
1025
void ieee80211_set_wmm_default(struct ieee80211_link_data *link,
net/mac80211/util.c
1028
struct ieee80211_sub_if_data *sdata = link->sdata;
net/mac80211/util.c
1046
chanctx_conf = rcu_dereference(link->conf->chanctx_conf);
net/mac80211/util.c
1049
!link->operating_11g_mode;
net/mac80211/util.c
1123
link->tx_conf[ac] = qparam;
net/mac80211/util.c
1124
drv_conf_tx(local, link, ac, &qparam);
net/mac80211/util.c
1130
link->conf->qos = enable_qos;
net/mac80211/util.c
1132
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/util.c
1714
struct ieee80211_link_data *link)
net/mac80211/util.c
1721
conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/util.c
1725
drv_assign_vif_chanctx(local, sdata, link->conf, ctx);
net/mac80211/util.c
1862
for (link_id = 0; link_id < ARRAY_SIZE(sdata->link); link_id++) {
net/mac80211/util.c
1863
struct ieee80211_link_data *link;
net/mac80211/util.c
1868
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/util.c
1869
if (!link)
net/mac80211/util.c
1872
if (rcu_access_pointer(link->u.ap.beacon))
net/mac80211/util.c
1873
drv_start_ap(local, sdata, link->conf);
net/mac80211/util.c
1875
if (!link->conf->enable_beacon)
net/mac80211/util.c
1881
ieee80211_link_info_change_notify(sdata, link, changed);
net/mac80211/util.c
2068
struct ieee80211_link_data *link = NULL;
net/mac80211/util.c
2100
link = sdata_dereference(sdata->link[link_id], sdata);
net/mac80211/util.c
2101
if (!link)
net/mac80211/util.c
2104
ieee80211_assign_chanctx(local, sdata, link);
net/mac80211/util.c
2152
} else if (!WARN_ON(!link)) {
net/mac80211/util.c
2153
if (link->conf->npca.enabled)
net/mac80211/util.c
2156
ieee80211_link_info_change_notify(sdata, link,
net/mac80211/util.c
2436
struct ieee80211_link_data *link)
net/mac80211/util.c
2444
chanctx_conf = rcu_dereference_protected(link->conf->chanctx_conf,
net/mac80211/util.c
3482
sdata->link[link_id]);
net/mac80211/util.c
3668
struct ieee80211_link_data *link;
net/mac80211/util.c
3677
link = sdata_dereference(sdata->link[link_id],
net/mac80211/util.c
3679
if (!link)
net/mac80211/util.c
3682
chanctx_conf = sdata_dereference(link->conf->chanctx_conf,
net/mac80211/util.c
3688
&link->dfs_cac_timer_work);
net/mac80211/util.c
3693
chandef = link->conf->chanreq.oper;
net/mac80211/util.c
3694
ieee80211_link_release_channel(link);
net/mac80211/util.c
4166
struct ieee80211_link_data *link;
net/mac80211/util.c
4174
for_each_sdata_link(local, link) {
net/mac80211/util.c
4175
if (rcu_access_pointer(link->conf->chanctx_conf) == &ctx->conf) {
net/mac80211/util.c
4183
if (link->radar_required)
net/mac80211/util.c
4185
BIT(link->conf->chanreq.oper.width);
net/mac80211/util.c
4188
if (link->reserved_chanctx == ctx &&
net/mac80211/util.c
4189
link->reserved_radar_required)
net/mac80211/util.c
4190
radar_detect |= BIT(link->reserved.oper.width);
net/mac80211/vht.c
340
struct ieee80211_link_data *link;
net/mac80211/vht.c
344
link = sdata_dereference(sdata->link[link_sta->link_id], sdata);
net/mac80211/vht.c
345
if (WARN_ON(!link))
net/mac80211/vht.c
394
new_bw = ieee80211_sta_current_bw(link_sta, &link->conf->chanreq.oper,
net/mac80211/vht.c
411
struct ieee80211_link_data *link,
net/mac80211/vht.c
414
struct ieee80211_bss_conf *link_conf = link->conf;
net/mac80211/vht.c
432
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
2620
int link;
net/netlink/af_netlink.c
2625
rhashtable_walk_enter(&nl_table[iter->link].hash, &iter->hti);
net/netlink/af_netlink.c
2655
if (++iter->link >= MAX_LINKS)
net/netlink/af_netlink.c
2672
iter->link = 0;
net/netlink/af_netlink.c
2692
if (iter->link >= MAX_LINKS)
net/rxrpc/ar-internal.h
353
struct hlist_node link;
net/rxrpc/ar-internal.h
576
struct list_head link; /* link in master connection list */
net/rxrpc/ar-internal.h
738
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
144
INIT_LIST_HEAD(&call->link);
net/rxrpc/call_object.c
392
list_add_tail_rcu(&call->link, &rxnet->calls);
net/rxrpc/call_object.c
662
list_del_rcu(&call->link);
net/rxrpc/call_object.c
740
list_for_each_entry(call, &rxnet->calls, 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
417
local = hlist_entry(v, struct rxrpc_local, link);
net/rxrpc/proc.c
72
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
295
list_del_rcu(&prog->link);
net/sched/cls_bpf.c
319
list_for_each_entry_safe(prog, tmp, &head->plist, link)
net/sched/cls_bpf.c
331
list_for_each_entry(prog, &head->plist, link) {
net/sched/cls_bpf.c
40
struct list_head link;
net/sched/cls_bpf.c
516
list_replace_rcu(&oldprog->link, &prog->link);
net/sched/cls_bpf.c
521
list_add_rcu(&prog->link, &head->plist);
net/sched/cls_bpf.c
646
list_for_each_entry(prog, &head->plist, link) {
net/sched/cls_bpf.c
661
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
1265
struct sctp_transport *link;
net/sctp/sm_statefuns.c
1284
link = sctp_assoc_lookup_paddr(asoc, &from_addr);
net/sctp/sm_statefuns.c
1287
if (unlikely(!link)) {
net/sctp/sm_statefuns.c
1303
if (hbinfo->hb_nonce != link->hb_nonce)
net/sctp/sm_statefuns.c
1307
if (hbinfo->probe_size != link->pl.probe_size ||
net/sctp/sm_statefuns.c
1308
!sctp_transport_pl_enabled(link))
net/sctp/sm_statefuns.c
1311
if (sctp_transport_pl_recv(link))
net/sctp/sm_statefuns.c
1314
return sctp_sf_send_probe(net, ep, asoc, type, link, commands);
net/sctp/sm_statefuns.c
1317
max_interval = link->hbinterval + link->rto;
net/sctp/sm_statefuns.c
1323
"for transport:%p\n", __func__, link);
net/sctp/sm_statefuns.c
1334
sctp_add_cmd_sf(commands, SCTP_CMD_TRANSPORT_ON, SCTP_TRANSPORT(link));
net/smc/af_smc.c
1272
struct smc_link *link;
net/smc/af_smc.c
1298
link = smc->conn.lnk;
net/smc/af_smc.c
1301
link = NULL;
net/smc/af_smc.c
1311
link = l;
net/smc/af_smc.c
1315
if (!link) {
net/smc/af_smc.c
1319
smc_switch_link_and_count(&smc->conn, link);
net/smc/af_smc.c
1329
smc_link_save_peer_info(link, aclc, ini);
net/smc/af_smc.c
1331
if (smc_rmb_rtoken_handling(&smc->conn, link, aclc)) {
net/smc/af_smc.c
1339
if (smc_ib_ready_link(link)) {
net/smc/af_smc.c
1346
if (smcr_lgr_reg_sndbufs(link, smc->conn.sndbuf_desc)) {
net/smc/af_smc.c
1351
if (smcr_lgr_reg_rmbs(link, smc->conn.rmb_desc)) {
net/smc/af_smc.c
1360
smc_fill_gid_list(link->lgr, &ini->smcrv2.gidlist,
net/smc/af_smc.c
1361
link->smcibdev, link->gid);
net/smc/af_smc.c
1373
smc_llc_flow_initiate(link->lgr, SMC_LLC_FLOW_ADD_LINK);
net/smc/af_smc.c
1375
smc_llc_flow_stop(link->lgr, &link->lgr->llc_flow_lcl);
net/smc/af_smc.c
1874
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
1880
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
1885
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
1889
rc = smc_llc_send_confirm_link(link, SMC_LLC_REQ);
net/smc/af_smc.c
1894
qentry = smc_llc_wait(link->lgr, link, SMC_LLC_WAIT_TIME,
net/smc/af_smc.c
1905
smc_llc_flow_qentry_del(&link->lgr->llc_flow_lcl);
net/smc/af_smc.c
1912
smc_llc_link_active(link);
net/smc/af_smc.c
1913
smcr_lgr_set_type(link->lgr, SMC_LGR_SINGLE);
net/smc/af_smc.c
1915
if (link->lgr->max_links > 1) {
net/smc/af_smc.c
1916
down_write(&link->lgr->llc_conf_mutex);
net/smc/af_smc.c
1918
smc_llc_srv_add_link(link, NULL);
net/smc/af_smc.c
1919
up_write(&link->lgr->llc_conf_mutex);
net/smc/af_smc.c
2428
struct smc_link *link = new_smc->conn.lnk;
net/smc/af_smc.c
2432
smc_link_save_peer_info(link, cclc, ini);
net/smc/af_smc.c
2434
if (smc_rmb_rtoken_handling(&new_smc->conn, link, cclc))
net/smc/af_smc.c
2438
if (smc_ib_ready_link(link))
net/smc/af_smc.c
2441
smc_llc_flow_initiate(link->lgr, SMC_LLC_FLOW_ADD_LINK);
net/smc/af_smc.c
2443
smc_llc_flow_stop(link->lgr, &link->lgr->llc_flow_lcl);
net/smc/af_smc.c
546
static int smcr_lgr_reg_sndbufs(struct smc_link *link,
net/smc/af_smc.c
549
struct smc_link_group *lgr = link->lgr;
net/smc/af_smc.c
569
static int smcr_lgr_reg_rmbs(struct smc_link *link,
net/smc/af_smc.c
572
struct smc_link_group *lgr = link->lgr;
net/smc/af_smc.c
584
if (!rmb_desc->is_reg_mr[link->link_idx]) {
net/smc/af_smc.c
606
rc = smc_llc_do_confirm_rkey(link, rmb_desc);
net/smc/af_smc.c
620
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
629
qentry = smc_llc_wait(link->lgr, NULL, 2 * SMC_LLC_WAIT_TIME,
net/smc/af_smc.c
640
smc_llc_flow_qentry_del(&link->lgr->llc_flow_lcl);
net/smc/af_smc.c
644
rc = smc_ib_modify_qp_rts(link);
net/smc/af_smc.c
648
smc_wr_remember_qp_attr(link);
net/smc/af_smc.c
652
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
657
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
664
rc = smc_llc_send_confirm_link(link, SMC_LLC_RESP);
net/smc/af_smc.c
668
smc_llc_link_active(link);
net/smc/af_smc.c
669
smcr_lgr_set_type(link->lgr, SMC_LGR_SINGLE);
net/smc/af_smc.c
671
if (link->lgr->max_links > 1) {
net/smc/af_smc.c
673
qentry = smc_llc_wait(link->lgr, NULL, SMC_LLC_WAIT_TIME,
net/smc/af_smc.c
684
smc_llc_flow_qentry_clr(&link->lgr->llc_flow_lcl);
net/smc/af_smc.c
685
smc_llc_cli_add_link(link, qentry);
net/smc/af_smc.c
762
static void smc_link_save_peer_info(struct smc_link *link,
net/smc/af_smc.c
766
link->peer_qpn = ntoh24(clc->r0.qpn);
net/smc/af_smc.c
767
memcpy(link->peer_gid, ini->peer_gid, SMC_GID_SIZE);
net/smc/af_smc.c
768
memcpy(link->peer_mac, ini->peer_mac, sizeof(link->peer_mac));
net/smc/af_smc.c
769
link->peer_psn = ntoh24(clc->r0.psn);
net/smc/af_smc.c
770
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
495
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
717
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
546
struct nlattr *link[TIPC_NLA_LINK_MAX + 1];
net/tipc/netlink_compat.c
555
err = nla_parse_nested_deprecated(link, TIPC_NLA_LINK_MAX,
net/tipc/netlink_compat.c
560
if (!link[TIPC_NLA_LINK_PROP])
net/tipc/netlink_compat.c
564
link[TIPC_NLA_LINK_PROP], NULL,
net/tipc/netlink_compat.c
569
if (!link[TIPC_NLA_LINK_STATS])
net/tipc/netlink_compat.c
573
link[TIPC_NLA_LINK_STATS], NULL,
net/tipc/netlink_compat.c
588
if (strcmp(name, nla_data(link[TIPC_NLA_LINK_NAME])) != 0)
net/tipc/netlink_compat.c
592
(char *)nla_data(link[TIPC_NLA_LINK_NAME]));
net/tipc/netlink_compat.c
594
if (link[TIPC_NLA_LINK_BROADCAST]) {
net/tipc/netlink_compat.c
599
if (link[TIPC_NLA_LINK_ACTIVE])
net/tipc/netlink_compat.c
601
else if (link[TIPC_NLA_LINK_UP])
net/tipc/netlink_compat.c
607
nla_get_u32(link[TIPC_NLA_LINK_MTU]),
net/tipc/netlink_compat.c
616
nla_get_u32(link[TIPC_NLA_LINK_RX]) -
net/tipc/netlink_compat.c
625
nla_get_u32(link[TIPC_NLA_LINK_TX]) -
net/tipc/netlink_compat.c
685
struct nlattr *link[TIPC_NLA_LINK_MAX + 1];
net/tipc/netlink_compat.c
692
err = nla_parse_nested_deprecated(link, TIPC_NLA_LINK_MAX,
net/tipc/netlink_compat.c
697
link_info.dest = htonl(nla_get_flag(link[TIPC_NLA_LINK_DEST]));
net/tipc/netlink_compat.c
698
link_info.up = htonl(nla_get_flag(link[TIPC_NLA_LINK_UP]));
net/tipc/netlink_compat.c
699
nla_strscpy(link_info.str, link[TIPC_NLA_LINK_NAME],
net/tipc/netlink_compat.c
780
struct nlattr *link;
net/tipc/netlink_compat.c
785
link = nla_nest_start_noflag(skb, TIPC_NLA_LINK);
net/tipc/netlink_compat.c
786
if (!link)
net/tipc/netlink_compat.c
798
nla_nest_end(skb, link);
net/tipc/netlink_compat.c
843
struct nlattr *link;
net/tipc/netlink_compat.c
848
link = nla_nest_start_noflag(skb, TIPC_NLA_LINK);
net/tipc/netlink_compat.c
849
if (!link)
net/tipc/netlink_compat.c
863
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
1840
rc = tipc_bcast_sync_rcv(n->net, n->bc_entry.link, hdr, xmitq, valid);
net/tipc/node.c
1858
ucl = n->links[bearer_id].link;
net/tipc/node.c
1897
rc = tipc_bcast_rcv(net, be->link, skb);
net/tipc/node.c
1902
tipc_link_build_state_msg(le->link, &xmitq);
net/tipc/node.c
1951
l = n->links[bearer_id].link;
net/tipc/node.c
1962
if ((pb_id != bearer_id) && n->links[pb_id].link) {
net/tipc/node.c
1963
pl = n->links[pb_id].link;
net/tipc/node.c
202
return n->links[bearer_id].link;
net/tipc/node.c
2158
} else if (unlikely(tipc_link_acked(n->bc_entry.link) != bc_ack)) {
net/tipc/node.c
2159
tipc_bcast_ack_rcv(net, n->bc_entry.link, hdr);
net/tipc/node.c
2166
if (le->link) {
net/tipc/node.c
2167
rc = tipc_link_rcv(le->link, skb, &xmitq);
net/tipc/node.c
2180
if (le->link) {
net/tipc/node.c
2181
rc = tipc_link_rcv(le->link, skb, &xmitq);
net/tipc/node.c
2230
if (e->link) {
net/tipc/node.c
2232
tipc_link_set_tolerance(e->link, b->tolerance,
net/tipc/node.c
2235
tipc_link_set_mtu(e->link, b->mtu);
net/tipc/node.c
2238
e->mtu = tipc_link_mss(e->link);
net/tipc/node.c
2409
l = n->links[i].link;
net/tipc/node.c
2431
struct tipc_link *link;
net/tipc/node.c
2462
link = node->links[bearer_id].link;
net/tipc/node.c
2463
if (!link) {
net/tipc/node.c
2481
tipc_link_set_tolerance(link, tol, &xmitq);
net/tipc/node.c
2487
tipc_link_set_prio(link, prio, &xmitq);
net/tipc/node.c
2493
tipc_link_set_queue_limits(link,
net/tipc/node.c
2494
tipc_link_min_win(link),
net/tipc/node.c
2542
struct tipc_link *link;
net/tipc/node.c
2551
link = node->links[bearer_id].link;
net/tipc/node.c
2552
if (!link) {
net/tipc/node.c
2558
err = __tipc_nl_add_link(net, &msg, link, 0);
net/tipc/node.c
2576
struct tipc_link *link;
net/tipc/node.c
2607
link = node->bc_entry.link;
net/tipc/node.c
2608
if (link && !strcmp(link_name, tipc_link_name(link))) {
net/tipc/node.c
2609
err = tipc_bclink_reset_stats(net, link);
net/tipc/node.c
2626
link = node->links[bearer_id].link;
net/tipc/node.c
2627
if (!link) {
net/tipc/node.c
2632
tipc_link_reset_stats(link);
net/tipc/node.c
2649
if (!node->links[i].link)
net/tipc/node.c
2653
node->links[i].link, NLM_F_MULTI);
net/tipc/node.c
2660
err = tipc_nl_add_bc_link(net, msg, node->bc_entry.link);
net/tipc/node.c
2674
struct nlattr *link[TIPC_NLA_LINK_MAX + 1];
net/tipc/node.c
2690
err = nla_parse_nested_deprecated(link,
net/tipc/node.c
2697
if (unlikely(!link[TIPC_NLA_LINK_BROADCAST]))
net/tipc/node.c
3127
i += tipc_link_dump(n->links[0].link, TIPC_DUMP_NONE, buf + i);
net/tipc/node.c
313
kfree(n->bc_entry.link);
net/tipc/node.c
3136
i += tipc_link_dump(n->links[1].link, TIPC_DUMP_NONE, buf + i);
net/tipc/node.c
3141
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
1142
unsigned int link;
net/wireless/chan.c
1149
for_each_valid_link(wdev, link) {
net/wireless/chan.c
1150
if (wdev->links[link].ap.beacon_interval)
net/wireless/chan.c
1186
unsigned int link;
net/wireless/chan.c
1191
for_each_valid_link(wdev, link) {
net/wireless/chan.c
1192
if (cfg80211_is_sub_chan(&wdev->links[link].ap.chandef,
net/wireless/core.h
336
unsigned int link,
net/wireless/core.h
374
struct net_device *dev, int link,
net/wireless/nl80211.c
12944
struct nlattr *link;
net/wireless/nl80211.c
12951
nla_for_each_nested(link, info->attrs[NL80211_ATTR_MLO_LINKS], rem) {
net/wireless/nl80211.c
12954
nla_parse_nested(attrs, NL80211_ATTR_MAX, link, NULL, NULL);
net/wireless/nl80211.c
12957
NL_SET_BAD_ATTR(info->extack, link);
net/wireless/nl80211.c
12964
NL_SET_BAD_ATTR(info->extack, link);
net/wireless/nl80211.c
12973
NL_SET_ERR_MSG_ATTR(info->extack, link,
net/wireless/nl80211.c
13202
struct nlattr *link;
net/wireless/nl80211.c
13217
nla_for_each_nested(link,
net/wireless/nl80211.c
13221
nla_find_nested(link, NL80211_ATTR_MLO_LINK_ID);
net/wireless/nl80211.c
13237
NL_SET_BAD_ATTR(info->extack, link);
net/wireless/nl80211.c
20975
unsigned int link;
net/wireless/nl80211.c
20981
for_each_valid_link(cr, link) {
net/wireless/nl80211.c
20986
link_info_size += cr->links[link].addr ?
net/wireless/nl80211.c
20988
link_info_size += (cr->links[link].bssid ||
net/wireless/nl80211.c
20989
cr->links[link].bss) ?
net/wireless/nl80211.c
21047
for_each_valid_link(cr, link) {
net/wireless/nl80211.c
21049
const u8 *bssid = cr->links[link].bss ?
net/wireless/nl80211.c
21050
cr->links[link].bss->bssid :
net/wireless/nl80211.c
21051
cr->links[link].bssid;
net/wireless/nl80211.c
21057
if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link) ||
net/wireless/nl80211.c
21060
(cr->links[link].addr &&
net/wireless/nl80211.c
21062
cr->links[link].addr)) ||
net/wireless/nl80211.c
21064
cr->links[link].status))
net/wireless/nl80211.c
21090
unsigned int link;
net/wireless/nl80211.c
21098
for_each_valid_link(info, link) {
net/wireless/nl80211.c
21103
link_info_size += info->links[link].addr ?
net/wireless/nl80211.c
21105
link_info_size += (info->links[link].bssid ||
net/wireless/nl80211.c
21106
info->links[link].bss) ?
net/wireless/nl80211.c
21153
for_each_valid_link(info, link) {
net/wireless/nl80211.c
21155
const u8 *bssid = info->links[link].bss ?
net/wireless/nl80211.c
21156
info->links[link].bss->bssid :
net/wireless/nl80211.c
21157
info->links[link].bssid;
net/wireless/nl80211.c
21163
if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link) ||
net/wireless/nl80211.c
21166
(info->links[link].addr &&
net/wireless/nl80211.c
21168
info->links[link].addr)))
net/wireless/nl80211.c
21302
struct nlattr *link;
net/wireless/nl80211.c
21305
link = nla_nest_start(msg, link_id + 1);
net/wireless/nl80211.c
21306
if (!link)
net/wireless/nl80211.c
21312
nla_nest_end(msg, link);
net/wireless/nl80211.c
4753
struct nlattr *link = nla_nest_start(msg, link_id + 1);
net/wireless/nl80211.c
4757
if (!link)
net/wireless/nl80211.c
4779
nla_nest_end(msg, link);
net/wireless/nl80211.c
8054
struct nlattr *links, *link;
net/wireless/nl80211.c
8287
link = nla_nest_start(msg, link_id + 1);
net/wireless/nl80211.c
8288
if (!link)
net/wireless/nl80211.c
8302
nla_nest_end(msg, link);
net/wireless/rdev-ops.h
777
const bool noencrypt, int link,
net/wireless/rdev-ops.h
782
dest, proto, noencrypt, link);
net/wireless/rdev-ops.h
784
dest, proto, noencrypt, link, cookie);
net/wireless/reg.c
2343
int link;
net/wireless/reg.c
2363
for (link = 0; link < ARRAY_SIZE(wdev->links); link++) {
net/wireless/reg.c
2366
if (!wdev->valid_links && link > 0)
net/wireless/reg.c
2368
if (wdev->valid_links && !(wdev->valid_links & BIT(link)))
net/wireless/reg.c
2373
if (!wdev->links[link].ap.beacon_interval)
net/wireless/reg.c
2375
chandef = wdev->links[link].ap.chandef;
net/wireless/reg.c
2390
if (!wdev->links[link].client.current_bss)
net/wireless/reg.c
2393
chan = wdev->links[link].client.current_bss->pub.channel;
net/wireless/reg.c
2398
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
1085
unsigned int link;
net/wireless/sme.c
1101
for_each_valid_link(info, link) {
net/wireless/sme.c
1102
if (WARN_ON(!info->links[link].addr))
net/wireless/sme.c
1109
for_each_valid_link(info, link) {
net/wireless/sme.c
1110
if (WARN_ON(!info->links[link].bss))
net/wireless/sme.c
1116
for_each_valid_link(info, link) {
net/wireless/sme.c
1117
cfg80211_hold_bss(bss_from_pub(info->links[link].bss));
net/wireless/sme.c
1118
wdev->links[link].client.current_bss =
net/wireless/sme.c
1119
bss_from_pub(info->links[link].bss);
net/wireless/sme.c
1127
for_each_valid_link(info, link)
net/wireless/sme.c
1128
memcpy(wdev->links[link].addr, info->links[link].addr,
net/wireless/sme.c
1162
for_each_valid_link(info, link)
net/wireless/sme.c
1163
cfg80211_put_bss(wdev->wiphy, info->links[link].bss);
net/wireless/sme.c
1175
unsigned int link;
net/wireless/sme.c
1179
for_each_valid_link(info, link) {
net/wireless/sme.c
1180
link_info_size += info->links[link].addr ? ETH_ALEN : 0;
net/wireless/sme.c
1181
link_info_size += info->links[link].bssid ? ETH_ALEN : 0;
net/wireless/sme.c
1183
if (info->links[link].bss)
net/wireless/sme.c
1186
info->links[link].bss =
net/wireless/sme.c
1188
info->links[link].channel,
net/wireless/sme.c
1189
info->links[link].bssid,
net/wireless/sme.c
1195
if (!info->links[link].bss) {
net/wireless/sme.c
1256
for_each_valid_link(info, link) {
net/wireless/sme.c
1257
ev->rm.links[link].bss = info->links[link].bss;
net/wireless/sme.c
1259
if (info->links[link].addr) {
net/wireless/sme.c
1260
ev->rm.links[link].addr = next;
net/wireless/sme.c
1261
memcpy((void *)ev->rm.links[link].addr,
net/wireless/sme.c
1262
info->links[link].addr,
net/wireless/sme.c
1267
if (info->links[link].bssid) {
net/wireless/sme.c
1268
ev->rm.links[link].bssid = next;
net/wireless/sme.c
1269
memcpy((void *)ev->rm.links[link].bssid,
net/wireless/sme.c
1270
info->links[link].bssid,
net/wireless/sme.c
1283
for_each_valid_link(info, link)
net/wireless/sme.c
1284
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, ¶ms->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
914
if (nla_put_u32(skb, IFLA_XFRM_LINK, parm->link) ||
net/xfrm/xfrm_user.c
3842
const struct xfrm_link *link;
net/xfrm/xfrm_user.c
3851
link = &xfrm_dispatch[type];
net/xfrm/xfrm_user.c
3863
nlh64 = xtr->rcv_msg_compat(nlh, link->nla_max,
net/xfrm/xfrm_user.c
3864
link->nla_pol, extack);
net/xfrm/xfrm_user.c
3876
.start = link->start,
net/xfrm/xfrm_user.c
3877
.dump = link->dump,
net/xfrm/xfrm_user.c
3878
.done = link->done,
net/xfrm/xfrm_user.c
3881
if (link->dump == NULL) {
net/xfrm/xfrm_user.c
3891
link->nla_max ? : XFRMA_MAX,
net/xfrm/xfrm_user.c
3892
link->nla_pol ? : xfrma_policy, extack);
net/xfrm/xfrm_user.c
3896
if (!link->nla_pol || link->nla_pol == xfrma_policy) {
net/xfrm/xfrm_user.c
3902
if (link->doit == NULL) {
net/xfrm/xfrm_user.c
3907
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
286
umode_t mode, void *data, char *link,
security/apparmor/apparmorfs.c
309
inode->i_link = link;
security/apparmor/apparmorfs.c
337
struct aa_common_ref *data, void *link,
security/apparmor/apparmorfs.c
363
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
const char *link = NULL;
security/inode.c
264
link = kstrdup_const(target, GFP_KERNEL);
security/inode.c
265
if (!link)
security/inode.c
269
(void *)link, NULL, iops);
security/inode.c
271
kfree_const(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
388
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
390
link->codecs = codec;
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
391
link->num_codecs = ARRAY_SIZE(codec);
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
392
link->init = acp3x_es83xx_init;
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
393
link->ops = &acp3x_es83xx_ops;
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
394
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
1795
struct fwnode_handle *link;
sound/soc/codecs/cs35l56.c
1801
fwnode_for_each_child_node(dev_fwnode(cs35l56->base.dev), link) {
sound/soc/codecs/cs35l56.c
1802
ext_node = fwnode_get_named_child_node(link,
sound/soc/codecs/cs35l56.c
1805
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
427
dma_private->link[i].next = cpu_to_be64(temp_link);
sound/soc/fsl/fsl_dma.c
432
dma_private->link[i - 1].next = cpu_to_be64(dma_private->ld_buf_phys);
sound/soc/fsl/fsl_dma.c
609
struct fsl_dma_link_descriptor *link = &dma_private->link[i];
sound/soc/fsl/fsl_dma.c
611
link->count = cpu_to_be32(period_size);
sound/soc/fsl/fsl_dma.c
631
link->source_addr = cpu_to_be32(temp_addr);
sound/soc/fsl/fsl_dma.c
632
link->source_attr = cpu_to_be32(CCSR_DMA_ATR_SNOOP |
sound/soc/fsl/fsl_dma.c
635
link->dest_addr = cpu_to_be32(ssi_sxx_phys);
sound/soc/fsl/fsl_dma.c
636
link->dest_attr = cpu_to_be32(CCSR_DMA_ATR_NOSNOOP |
sound/soc/fsl/fsl_dma.c
639
link->source_addr = cpu_to_be32(ssi_sxx_phys);
sound/soc/fsl/fsl_dma.c
640
link->source_attr = cpu_to_be32(CCSR_DMA_ATR_NOSNOOP |
sound/soc/fsl/fsl_dma.c
643
link->dest_addr = cpu_to_be32(temp_addr);
sound/soc/fsl/fsl_dma.c
644
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
548
struct snd_soc_dai_link *link;
sound/soc/fsl/imx-card.c
573
card->dai_link = devm_kcalloc(dev, num_links, sizeof(*link), GFP_KERNEL);
sound/soc/fsl/imx-card.c
582
link = card->dai_link;
sound/soc/fsl/imx-card.c
591
link->cpus = &dlc[0];
sound/soc/fsl/imx-card.c
592
link->platforms = &dlc[1];
sound/soc/fsl/imx-card.c
594
link->num_cpus = 1;
sound/soc/fsl/imx-card.c
595
link->num_platforms = 1;
sound/soc/fsl/imx-card.c
597
ret = of_property_read_string(np, "link-name", &link->name);
sound/soc/fsl/imx-card.c
605
dev_err(dev, "%s: Can't find cpu DT node\n", link->name);
sound/soc/fsl/imx-card.c
610
ret = snd_soc_of_get_dlc(cpu, &args, link->cpus, 0);
sound/soc/fsl/imx-card.c
613
"%s: error getting cpu dai info\n", link->name);
sound/soc/fsl/imx-card.c
641
link->platforms->of_node = link->cpus->of_node;
sound/soc/fsl/imx-card.c
642
link->id = args.args[0];
sound/soc/fsl/imx-card.c
646
ret = snd_soc_of_get_dai_link_codecs(dev, codec, link);
sound/soc/fsl/imx-card.c
649
link->name);
sound/soc/fsl/imx-card.c
653
plat_data->num_codecs = link->num_codecs;
sound/soc/fsl/imx-card.c
656
if (!strcmp(link->codecs->dai_name, "ak4458-aif"))
sound/soc/fsl/imx-card.c
658
else if (!strcmp(link->codecs->dai_name, "ak4497-aif"))
sound/soc/fsl/imx-card.c
660
else if (!strcmp(link->codecs->dai_name, "ak5558-aif"))
sound/soc/fsl/imx-card.c
662
else if (!strcmp(link->codecs->dai_name, "ak5552-aif"))
sound/soc/fsl/imx-card.c
664
else if (!strcmp(link->codecs->dai_name, "cs42888"))
sound/soc/fsl/imx-card.c
666
else if (!strcmp(link->codecs->dai_name, "wm8524-hifi"))
sound/soc/fsl/imx-card.c
670
link->codecs = &snd_soc_dummy_dlc;
sound/soc/fsl/imx-card.c
671
link->num_codecs = 1;
sound/soc/fsl/imx-card.c
674
if (!strncmp(link->name, "HiFi-ASRC-FE", 12)) {
sound/soc/fsl/imx-card.c
676
link->dynamic = 1;
sound/soc/fsl/imx-card.c
677
link->dpcm_merged_chan = 1;
sound/soc/fsl/imx-card.c
702
} else if (!strncmp(link->name, "HiFi-ASRC-BE", 12)) {
sound/soc/fsl/imx-card.c
708
link->no_pcm = 1;
sound/soc/fsl/imx-card.c
709
link->platforms = NULL;
sound/soc/fsl/imx-card.c
711
link->be_hw_params_fixup = be_hw_params_fixup;
sound/soc/fsl/imx-card.c
712
link->ops = &imx_aif_ops_be;
sound/soc/fsl/imx-card.c
714
link->ops = &imx_aif_ops;
sound/soc/fsl/imx-card.c
720
link->playback_only = playback_only;
sound/soc/fsl/imx-card.c
721
link->capture_only = capture_only;
sound/soc/fsl/imx-card.c
725
NULL, &link->dai_fmt);
sound/soc/fsl/imx-card.c
727
link->dai_fmt = SND_SOC_DAIFMT_NB_NF |
sound/soc/fsl/imx-card.c
742
link->ignore_pmdown_time = 1;
sound/soc/fsl/imx-card.c
743
link->stream_name = link->name;
sound/soc/fsl/imx-card.c
744
link++;
sound/soc/fsl/imx-card.c
767
struct snd_soc_dai_link *link_be = NULL, *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->no_pcm == 1)
sound/soc/fsl/imx-card.c
913
link_be = link;
sound/soc/fsl/imx-card.c
915
for_each_card_prelinks(&data->card, i, link) {
sound/soc/fsl/imx-card.c
916
if (link->dynamic == 1 && link_be) {
sound/soc/fsl/imx-card.c
917
link->playback_only = link_be->playback_only;
sound/soc/fsl/imx-card.c
918
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
922
dai_props = devm_kcalloc(dev, li->link, sizeof(*dai_props), GFP_KERNEL);
sound/soc/generic/simple-card-utils.c
923
dai_link = devm_kcalloc(dev, li->link, sizeof(*dai_link), GFP_KERNEL);
sound/soc/generic/simple-card-utils.c
931
for (i = 0; i < li->link; i++) {
sound/soc/generic/simple-card-utils.c
953
li->link, dai_num, cnf_num);
sound/soc/generic/simple-card-utils.c
962
card->num_links = li->link;
sound/soc/generic/simple-card-utils.c
966
for (i = 0; i < li->link; i++) {
sound/soc/generic/simple-card.c
148
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/simple-card.c
149
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/simple-card.c
183
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/simple-card.c
184
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/simple-card.c
236
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/simple-card.c
237
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
sound/soc/generic/simple-card.c
301
li->link++;
sound/soc/generic/simple-card.c
313
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
sound/soc/generic/simple-card.c
356
li->link++;
sound/soc/generic/simple-card.c
565
if (li->link >= SNDRV_MAX_LINKS)
sound/soc/generic/simple-card.c
582
li->num[li->link].cpus = 1;
sound/soc/generic/simple-card.c
583
li->num[li->link].platforms = 1;
sound/soc/generic/simple-card.c
585
li->num[li->link].codecs = 1;
sound/soc/generic/simple-card.c
587
li->link += 1;
sound/soc/generic/simple-card.c
600
if (li->link >= SNDRV_MAX_LINKS)
sound/soc/generic/simple-card.c
609
li->num[li->link].cpus = 1;
sound/soc/generic/simple-card.c
610
li->num[li->link].platforms = 1;
sound/soc/generic/simple-card.c
612
li->link++; /* CPU-dummy */
sound/soc/generic/simple-card.c
614
li->num[li->link].codecs = 1;
sound/soc/generic/simple-card.c
616
li->link++; /* dummy-Codec */
sound/soc/generic/simple-card.c
680
li->link = 1;
sound/soc/generic/simple-card.c
735
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
1434
struct snd_soc_dai_link *link)
sound/soc/intel/boards/sof_sdw.c
1440
if (strstr(link->stream_name, "HDMI") && !intel_ctx->hdmi.idisp_codec)
sound/soc/intel/boards/sof_sdw.c
1441
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(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->ops = &apq8096_ops;
sound/soc/qcom/apq8096.c
93
struct snd_soc_dai_link *link;
sound/soc/qcom/apq8096.c
96
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/apq8096.c
97
if (link->no_pcm == 1) {
sound/soc/qcom/apq8096.c
98
link->be_hw_params_fixup = apq8096_be_hw_params_fixup;
sound/soc/qcom/apq8096.c
99
link->init = apq8096_init;
sound/soc/qcom/common.c
106
dev_err(dev, "%s: Can't find cpu DT node\n", link->name);
sound/soc/qcom/common.c
110
ret = snd_soc_of_get_dlc(cpu, &args, link->cpus, 0);
sound/soc/qcom/common.c
113
"%s: error getting cpu dai name\n", link->name);
sound/soc/qcom/common.c
117
link->id = args.args[0];
sound/soc/qcom/common.c
119
if (link->id >= LPASS_MAX_PORT) {
sound/soc/qcom/common.c
120
dev_err(dev, "%s: Invalid cpu dai id %d\n", link->name, link->id);
sound/soc/qcom/common.c
125
link->platforms->of_node = of_parse_phandle(platform,
sound/soc/qcom/common.c
128
if (!link->platforms->of_node) {
sound/soc/qcom/common.c
129
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
29
struct snd_soc_dai_link *link;
sound/soc/qcom/common.c
74
card->dai_link = devm_kcalloc(dev, num_links, sizeof(*link), GFP_KERNEL);
sound/soc/qcom/common.c
79
link = card->dai_link;
sound/soc/qcom/common.c
86
link->cpus = &dlc[0];
sound/soc/qcom/common.c
87
link->platforms = &dlc[1];
sound/soc/qcom/common.c
89
link->num_cpus = 1;
sound/soc/qcom/common.c
90
link->num_platforms = 1;
sound/soc/qcom/common.c
92
ret = of_property_read_string(np, "link-name", &link->name);
sound/soc/qcom/qdsp6/topology.c
1091
struct snd_soc_dai_link *link,
sound/soc/qcom/qdsp6/topology.c
1094
link->nonatomic = true;
sound/soc/qcom/qdsp6/topology.c
1095
link->dynamic = true;
sound/soc/qcom/qdsp6/topology.c
1096
link->platforms->name = NULL;
sound/soc/qcom/qdsp6/topology.c
1097
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
349
struct snd_soc_dai_link *link;
sound/soc/qcom/sc7280.c
372
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/sc7280.c
373
link->init = sc7280_init;
sound/soc/qcom/sc7280.c
374
link->ops = &sc7280_ops;
sound/soc/qcom/sc7280.c
375
if (link->no_pcm == 1)
sound/soc/qcom/sc7280.c
376
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
169
struct snd_soc_dai_link *link;
sound/soc/qcom/x1e80100.c
172
for_each_card_prelinks(card, i, link) {
sound/soc/qcom/x1e80100.c
173
if (link->no_pcm == 1) {
sound/soc/qcom/x1e80100.c
174
link->init = x1e80100_snd_init;
sound/soc/qcom/x1e80100.c
175
link->be_hw_params_fixup = x1e80100_be_hw_params_fixup;
sound/soc/qcom/x1e80100.c
176
link->ops = &x1e80100_be_ops;
sound/soc/samsung/odroid.c
194
struct snd_soc_dai_link *link, *codec_link;
sound/soc/samsung/odroid.c
234
link = card->dai_link;
sound/soc/samsung/odroid.c
250
for (i = 0; i < num_pcms; i++, link += 2) {
sound/soc/samsung/odroid.c
251
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
1027
dev_err(card->dev, "ASoC: Both Component name/of_node are set for %s\n", link->name);
sound/soc/soc-core.c
1031
dev_err(card->dev, "ASoC: Neither Component name/of_node are set for %s\n", link->name);
sound/soc/soc-core.c
1035
dev_dbg(card->dev, "ASoC: Component %s not found for link %s\n", dlc->name, link->name);
sound/soc/soc-core.c
1039
dev_err(card->dev, "ASoC: DAI name is not set for %s\n", link->name);
sound/soc/soc-core.c
1043
dev_err(card->dev, "ASoC: Neither DAI/Component name/of_node are set for %s\n", link->name);
sound/soc/soc-core.c
948
struct snd_soc_dai_link *link)
sound/soc/soc-core.c
954
for_each_link_codecs(link, i, dlc) {
sound/soc/soc-core.c
978
for_each_link_platforms(link, i, dlc) {
sound/soc/soc-core.c
999
for_each_link_cpus(link, i, dlc) {
sound/soc/soc-pcm.c
620
struct snd_soc_dai_link *link = rtd->dai_link;
sound/soc/soc-pcm.c
624
symmetry = link->symmetric_rate ||
sound/soc/soc-pcm.c
625
link->symmetric_channels ||
sound/soc/soc-pcm.c
626
link->symmetric_sample_bits;
sound/soc/soc-topology.c
1462
static void set_link_flags(struct snd_soc_dai_link *link,
sound/soc/soc-topology.c
1466
link->symmetric_rate =
sound/soc/soc-topology.c
1470
link->symmetric_channels =
sound/soc/soc-topology.c
1475
link->symmetric_sample_bits =
sound/soc/soc-topology.c
1480
link->ignore_suspend =
sound/soc/soc-topology.c
1489
struct snd_soc_dai_link *link;
sound/soc/soc-topology.c
1494
link = devm_kzalloc(tplg->dev, sizeof(*link) + (3 * sizeof(*dlc)), GFP_KERNEL);
sound/soc/soc-topology.c
1495
if (link == NULL)
sound/soc/soc-topology.c
1498
dlc = (struct snd_soc_dai_link_component *)(link + 1);
sound/soc/soc-topology.c
1500
link->cpus = &dlc[0];
sound/soc/soc-topology.c
1501
link->num_cpus = 1;
sound/soc/soc-topology.c
1503
link->dobj.index = tplg->index;
sound/soc/soc-topology.c
1504
link->dobj.type = SND_SOC_DOBJ_DAI_LINK;
sound/soc/soc-topology.c
1506
link->dobj.unload = tplg->ops->link_unload;
sound/soc/soc-topology.c
1513
link->name = devm_kstrdup(tplg->dev, pcm->pcm_name, GFP_KERNEL);
sound/soc/soc-topology.c
1514
link->stream_name = devm_kstrdup(tplg->dev, pcm->pcm_name, GFP_KERNEL);
sound/soc/soc-topology.c
1515
if (!link->name || !link->stream_name) {
sound/soc/soc-topology.c
1520
link->id = le32_to_cpu(pcm->pcm_id);
sound/soc/soc-topology.c
1527
link->cpus->dai_name = devm_kstrdup(tplg->dev, pcm->dai_name, GFP_KERNEL);
sound/soc/soc-topology.c
1528
if (!link->cpus->dai_name) {
sound/soc/soc-topology.c
1539
link->codecs = &dlc[1]; /* Don't use &snd_soc_dummy_dlc here */
sound/soc/soc-topology.c
1540
link->codecs->name = "snd-soc-dummy";
sound/soc/soc-topology.c
1541
link->codecs->dai_name = "snd-soc-dummy-dai";
sound/soc/soc-topology.c
1542
link->num_codecs = 1;
sound/soc/soc-topology.c
1544
link->platforms = &dlc[2]; /* Don't use &snd_soc_dummy_dlc here */
sound/soc/soc-topology.c
1545
link->platforms->name = "snd-soc-dummy";
sound/soc/soc-topology.c
1546
link->num_platforms = 1;
sound/soc/soc-topology.c
1549
link->dynamic = 1;
sound/soc/soc-topology.c
1550
link->ignore_pmdown_time = 1;
sound/soc/soc-topology.c
1551
link->playback_only = le32_to_cpu(pcm->playback) && !le32_to_cpu(pcm->capture);
sound/soc/soc-topology.c
1552
link->capture_only = !le32_to_cpu(pcm->playback) && le32_to_cpu(pcm->capture);
sound/soc/soc-topology.c
1554
set_link_flags(link,
sound/soc/soc-topology.c
1559
ret = soc_tplg_dai_link_load(tplg, link, NULL);
sound/soc/soc-topology.c
1565
ret = snd_soc_add_pcm_runtimes(tplg->comp->card, link, 1);
sound/soc/soc-topology.c
1572
list_add(&link->dobj.list, &tplg->comp->dobj_list);
sound/soc/soc-topology.c
1653
static void set_link_hw_format(struct snd_soc_dai_link *link,
sound/soc/soc-topology.c
1666
link->dai_fmt = le32_to_cpu(hw_config->fmt) &
sound/soc/soc-topology.c
1672
link->dai_fmt |= SND_SOC_DAIFMT_GATED;
sound/soc/soc-topology.c
1676
link->dai_fmt |= SND_SOC_DAIFMT_CONT;
sound/soc/soc-topology.c
1688
link->dai_fmt |= SND_SOC_DAIFMT_NB_NF;
sound/soc/soc-topology.c
1690
link->dai_fmt |= SND_SOC_DAIFMT_NB_IF;
sound/soc/soc-topology.c
1692
link->dai_fmt |= SND_SOC_DAIFMT_IB_NF;
sound/soc/soc-topology.c
1694
link->dai_fmt |= SND_SOC_DAIFMT_IB_IF;
sound/soc/soc-topology.c
1702
link->dai_fmt |= SND_SOC_DAIFMT_CBP_CFP;
sound/soc/soc-topology.c
1704
link->dai_fmt |= SND_SOC_DAIFMT_CBC_CFP;
sound/soc/soc-topology.c
1706
link->dai_fmt |= SND_SOC_DAIFMT_CBP_CFC;
sound/soc/soc-topology.c
1708
link->dai_fmt |= SND_SOC_DAIFMT_CBC_CFC;
sound/soc/soc-topology.c
1734
struct snd_soc_dai_link *link = rtd->dai_link;
sound/soc/soc-topology.c
1736
if (link->id != id)
sound/soc/soc-topology.c
1739
if (name && (!link->name || !strstr(link->name, name)))
sound/soc/soc-topology.c
1742
if (stream_name && (!link->stream_name ||
sound/soc/soc-topology.c
1743
!strstr(link->stream_name, stream_name)))
sound/soc/soc-topology.c
1746
return link;
sound/soc/soc-topology.c
1756
struct snd_soc_dai_link *link;
sound/soc/soc-topology.c
1777
link = snd_soc_find_dai_link(tplg->comp->card, le32_to_cpu(cfg->id),
sound/soc/soc-topology.c
1779
if (!link) {
sound/soc/soc-topology.c
1787
set_link_hw_format(link, cfg);
sound/soc/soc-topology.c
1791
set_link_flags(link,
sound/soc/soc-topology.c
1796
ret = soc_tplg_dai_link_load(tplg, link, cfg);
sound/soc/soc-topology.c
1803
link->dobj.index = tplg->index;
sound/soc/soc-topology.c
1804
link->dobj.type = SND_SOC_DOBJ_BACKEND_LINK;
sound/soc/soc-topology.c
1806
link->dobj.unload = tplg->ops->link_unload;
sound/soc/soc-topology.c
1807
list_add(&link->dobj.list, &tplg->comp->dobj_list);
sound/soc/soc-topology.c
1817
struct snd_soc_tplg_link_config *link;
sound/soc/soc-topology.c
1825
link = (struct snd_soc_tplg_link_config *)tplg->pos;
sound/soc/soc-topology.c
1826
size = le32_to_cpu(link->size);
sound/soc/soc-topology.c
1840
link = (struct snd_soc_tplg_link_config *)tplg->pos;
sound/soc/soc-topology.c
1841
size = le32_to_cpu(link->size);
sound/soc/soc-topology.c
1842
if (size != sizeof(*link))
sound/soc/soc-topology.c
1845
ret = soc_tplg_link_config(tplg, link);
sound/soc/soc-topology.c
1852
tplg->pos += size + le32_to_cpu(link->priv.size);
sound/soc/soc-topology.c
297
struct snd_soc_dai_link *link, struct snd_soc_tplg_link_config *cfg)
sound/soc/soc-topology.c
300
return tplg->ops->link_load(tplg->comp, tplg->index, link, cfg);
sound/soc/soc-topology.c
426
struct snd_soc_dai_link *link =
sound/soc/soc-topology.c
438
if (!link->ignore)
sound/soc/soc-topology.c
440
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
1156
struct snd_soc_acpi_link_adr *link,
sound/soc/sof/intel/hda.c
1161
int index = link->num_adr;
sound/soc/sof/intel/hda.c
1165
link->mask = BIT(sdw_device->bus->link_id);
sound/soc/sof/intel/hda.c
1170
adr_dev = devm_krealloc(dev, (struct snd_soc_acpi_adr_device *)link->adr_d,
sound/soc/sof/intel/hda.c
1292
link->num_adr++;
sound/soc/sof/intel/hda.c
1300
const struct snd_soc_acpi_link_adr *link;
sound/soc/sof/intel/hda.c
1351
link = mach->links;
sound/soc/sof/intel/hda.c
1352
for (i = 0; i < hdev->info.count && link->num_adr;
sound/soc/sof/intel/hda.c
1353
i++, link++) {
sound/soc/sof/intel/hda.c
1358
if (!snd_soc_acpi_sdw_link_slaves_found(sdev->dev, link,
sound/soc/sof/intel/hda.c
1363
if (i == hdev->info.count || !link->num_adr)
sound/soc/sof/ipc3-topology.c
1629
if (strcmp(slink->link->name, dai->name))
sound/soc/sof/ipc3-topology.c
2591
static int sof_ipc3_link_setup(struct snd_sof_dev *sdev, struct snd_soc_dai_link *link)
sound/soc/sof/ipc3-topology.c
2593
if (link->no_pcm)
sound/soc/sof/ipc3-topology.c
2603
link->trigger[SNDRV_PCM_STREAM_PLAYBACK] = SND_SOC_DPCM_TRIGGER_PRE;
sound/soc/sof/ipc3-topology.c
2604
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
1744
if (!strcmp(slink->link->name, dai->name)) {
sound/soc/sof/ipc4-topology.c
3837
if (!strcmp(slink->link->name, dai->name)) {
sound/soc/sof/ipc4-topology.c
3900
static int sof_ipc4_link_setup(struct snd_sof_dev *sdev, struct snd_soc_dai_link *link)
sound/soc/sof/ipc4-topology.c
3902
if (link->no_pcm)
sound/soc/sof/ipc4-topology.c
3912
link->trigger[SNDRV_PCM_STREAM_PLAYBACK] = SND_SOC_DPCM_TRIGGER_POST;
sound/soc/sof/ipc4-topology.c
3913
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
1892
static int sof_link_load(struct snd_soc_component *scomp, int index, struct snd_soc_dai_link *link,
sound/soc/sof/topology.c
1904
if (!link->platforms) {
sound/soc/sof/topology.c
1908
link->platforms->name = dev_name(scomp->dev);
sound/soc/sof/topology.c
1911
ret = tplg_ops->link_setup(sdev, link);
sound/soc/sof/topology.c
1917
if (!link->no_pcm) {
sound/soc/sof/topology.c
1918
link->nonatomic = true;
sound/soc/sof/topology.c
1936
slink->link = link;
sound/soc/sof/topology.c
1939
slink->num_hw_configs, slink->default_hw_cfg_id, link->name);
sound/soc/sof/topology.c
2027
token_list[SOF_DAI_LINK_TOKENS].name, link->name);
sound/soc/sof/topology.c
2041
token_list[token_id].name, link->name);
sound/soc/sof/topology.c
2051
dev_err(sdev->dev, "Invalid active PDM count for %s\n", link->name);
sound/soc/sof/topology.c
2061
token_list[SOF_DMIC_PDM_TOKENS].name, link->name);
sound/soc/sof/topology.c
2066
link->dobj.private = slink;
sound/soc/sof/topology.c
2085
slink->link->platforms->name = NULL;
sound/soc/sof/topology.c
2470
struct snd_soc_dai_link *link,
sound/soc/sof/topology.c
2473
link->platforms->name = dev_name(scomp->dev);
sound/soc/sof/topology.c
2476
if (!link->no_pcm)
sound/soc/sof/topology.c
2477
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);
sound/soc/tegra/tegra_wm8962.c
102
struct snd_soc_dai_link *link = &card->dai_link[0];
sound/soc/tegra/tegra_wm8962.c
103
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
10062
static int attach_kprobe(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10063
static int attach_uprobe(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10064
static int attach_ksyscall(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10065
static int attach_usdt(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10066
static int attach_tp(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10067
static int attach_raw_tp(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10068
static int attach_trace(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10069
static int attach_kprobe_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10070
static int attach_kprobe_session(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10071
static int attach_uprobe_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10072
static int attach_lsm(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10073
static int attach_iter(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
10074
static int attach_tracing_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link);
tools/lib/bpf/libbpf.c
11333
int bpf_link__update_program(struct bpf_link *link, struct bpf_program *prog)
tools/lib/bpf/libbpf.c
11344
ret = bpf_link_update(bpf_link__fd(link), prog_fd, NULL);
tools/lib/bpf/libbpf.c
11358
void bpf_link__disconnect(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11360
link->disconnected = true;
tools/lib/bpf/libbpf.c
11363
int bpf_link__destroy(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11367
if (IS_ERR_OR_NULL(link))
tools/lib/bpf/libbpf.c
11370
if (!link->disconnected && link->detach)
tools/lib/bpf/libbpf.c
11371
err = link->detach(link);
tools/lib/bpf/libbpf.c
11372
if (link->pin_path)
tools/lib/bpf/libbpf.c
11373
free(link->pin_path);
tools/lib/bpf/libbpf.c
11374
if (link->dealloc)
tools/lib/bpf/libbpf.c
11375
link->dealloc(link);
tools/lib/bpf/libbpf.c
11377
free(link);
tools/lib/bpf/libbpf.c
11382
int bpf_link__fd(const struct bpf_link *link)
tools/lib/bpf/libbpf.c
11384
return link->fd;
tools/lib/bpf/libbpf.c
11387
const char *bpf_link__pin_path(const struct bpf_link *link)
tools/lib/bpf/libbpf.c
11389
return link->pin_path;
tools/lib/bpf/libbpf.c
11392
static int bpf_link__detach_fd(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11394
return libbpf_err_errno(close(link->fd));
tools/lib/bpf/libbpf.c
11399
struct bpf_link *link;
tools/lib/bpf/libbpf.c
11409
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
11410
if (!link) {
tools/lib/bpf/libbpf.c
11414
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
11415
link->fd = fd;
tools/lib/bpf/libbpf.c
11417
link->pin_path = strdup(path);
tools/lib/bpf/libbpf.c
11418
if (!link->pin_path) {
tools/lib/bpf/libbpf.c
11419
bpf_link__destroy(link);
tools/lib/bpf/libbpf.c
11423
return link;
tools/lib/bpf/libbpf.c
11426
int bpf_link__detach(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11428
return bpf_link_detach(link->fd) ? -errno : 0;
tools/lib/bpf/libbpf.c
11431
int bpf_link__pin(struct bpf_link *link, const char *path)
tools/lib/bpf/libbpf.c
11435
if (link->pin_path)
tools/lib/bpf/libbpf.c
11444
link->pin_path = strdup(path);
tools/lib/bpf/libbpf.c
11445
if (!link->pin_path)
tools/lib/bpf/libbpf.c
11448
if (bpf_obj_pin(link->fd, link->pin_path)) {
tools/lib/bpf/libbpf.c
11450
zfree(&link->pin_path);
tools/lib/bpf/libbpf.c
11454
pr_debug("link fd=%d: pinned at %s\n", link->fd, link->pin_path);
tools/lib/bpf/libbpf.c
11458
int bpf_link__unpin(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11462
if (!link->pin_path)
tools/lib/bpf/libbpf.c
11465
err = unlink(link->pin_path);
tools/lib/bpf/libbpf.c
11469
pr_debug("link fd=%d: unpinned from %s\n", link->fd, link->pin_path);
tools/lib/bpf/libbpf.c
11470
zfree(&link->pin_path);
tools/lib/bpf/libbpf.c
11475
struct bpf_link link;
tools/lib/bpf/libbpf.c
11486
static int bpf_link_perf_detach(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11488
struct bpf_link_perf *perf_link = container_of(link, struct bpf_link_perf, link);
tools/lib/bpf/libbpf.c
11494
if (perf_link->perf_event_fd != link->fd)
tools/lib/bpf/libbpf.c
11496
close(link->fd);
tools/lib/bpf/libbpf.c
11512
static void bpf_link_perf_dealloc(struct bpf_link *link)
tools/lib/bpf/libbpf.c
11514
struct bpf_link_perf *perf_link = container_of(link, struct bpf_link_perf, link);
tools/lib/bpf/libbpf.c
11523
struct bpf_link_perf *link;
tools/lib/bpf/libbpf.c
11542
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
11543
if (!link)
tools/lib/bpf/libbpf.c
11545
link->link.detach = &bpf_link_perf_detach;
tools/lib/bpf/libbpf.c
11546
link->link.dealloc = &bpf_link_perf_dealloc;
tools/lib/bpf/libbpf.c
11547
link->perf_event_fd = pfd;
tools/lib/bpf/libbpf.c
11561
link->link.fd = link_fd;
tools/lib/bpf/libbpf.c
11578
link->link.fd = pfd;
tools/lib/bpf/libbpf.c
11590
return &link->link;
tools/lib/bpf/libbpf.c
11594
free(link);
tools/lib/bpf/libbpf.c
11922
struct bpf_link *link;
tools/lib/bpf/libbpf.c
11983
link = bpf_program__attach_perf_event_opts(prog, pfd, &pe_opts);
tools/lib/bpf/libbpf.c
11984
err = libbpf_get_error(link);
tools/lib/bpf/libbpf.c
11994
struct bpf_link_perf *perf_link = container_of(link, struct bpf_link_perf, link);
tools/lib/bpf/libbpf.c
12001
return link;
tools/lib/bpf/libbpf.c
12271
struct bpf_link *link = NULL;
tools/lib/bpf/libbpf.c
12348
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
12349
if (!link) {
tools/lib/bpf/libbpf.c
12353
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
12370
link->fd = link_fd;
tools/lib/bpf/libbpf.c
12372
return link;
tools/lib/bpf/libbpf.c
12375
free(link);
tools/lib/bpf/libbpf.c
12380
static int attach_kprobe(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12388
*link = NULL;
tools/lib/bpf/libbpf.c
12419
*link = bpf_program__attach_kprobe_opts(prog, func, &opts);
tools/lib/bpf/libbpf.c
12421
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
12424
static int attach_ksyscall(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12429
*link = NULL;
tools/lib/bpf/libbpf.c
12441
*link = bpf_program__attach_ksyscall(prog, syscall_name, &opts);
tools/lib/bpf/libbpf.c
12442
return *link ? 0 : -errno;
tools/lib/bpf/libbpf.c
12445
static int attach_kprobe_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12452
*link = NULL;
tools/lib/bpf/libbpf.c
12471
*link = bpf_program__attach_kprobe_multi_opts(prog, pattern, &opts);
tools/lib/bpf/libbpf.c
12473
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
12477
struct bpf_link **link)
tools/lib/bpf/libbpf.c
12484
*link = NULL;
tools/lib/bpf/libbpf.c
12497
*link = bpf_program__attach_kprobe_multi_opts(prog, pattern, &opts);
tools/lib/bpf/libbpf.c
12499
return *link ? 0 : -errno;
tools/lib/bpf/libbpf.c
12502
static int attach_uprobe_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12508
*link = NULL;
tools/lib/bpf/libbpf.c
12521
*link = bpf_program__attach_uprobe_multi(prog, -1, binary_path, func_name, &opts);
tools/lib/bpf/libbpf.c
12522
ret = libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
12695
struct bpf_link *link;
tools/lib/bpf/libbpf.c
12733
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
12734
if (!link) {
tools/lib/bpf/libbpf.c
12738
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
12746
link->fd = link_fd;
tools/lib/bpf/libbpf.c
12748
return link;
tools/lib/bpf/libbpf.c
12751
free(link);
tools/lib/bpf/libbpf.c
12756
static int attach_tracing_multi(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
12771
*link = NULL;
tools/lib/bpf/libbpf.c
12803
*link = bpf_program__attach_tracing_multi(prog, pattern, NULL);
tools/lib/bpf/libbpf.c
12805
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13028
struct bpf_link *link = NULL;
tools/lib/bpf/libbpf.c
13120
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13121
if (!link) {
tools/lib/bpf/libbpf.c
13125
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13134
link->fd = link_fd;
tools/lib/bpf/libbpf.c
13136
return link;
tools/lib/bpf/libbpf.c
13140
free(link);
tools/lib/bpf/libbpf.c
13154
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13254
link = bpf_program__attach_perf_event_opts(prog, pfd, &pe_opts);
tools/lib/bpf/libbpf.c
13255
err = libbpf_get_error(link);
tools/lib/bpf/libbpf.c
13265
struct bpf_link_perf *perf_link = container_of(link, struct bpf_link_perf, link);
tools/lib/bpf/libbpf.c
13271
return link;
tools/lib/bpf/libbpf.c
13291
static int attach_uprobe(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13298
*link = NULL;
tools/lib/bpf/libbpf.c
13331
*link = bpf_program__attach_uprobe_opts(prog, -1, binary_path, offset, &opts);
tools/lib/bpf/libbpf.c
13332
ret = libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13363
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13401
link = usdt_manager_attach_usdt(obj->usdt_man, prog, pid, binary_path,
tools/lib/bpf/libbpf.c
13403
err = libbpf_get_error(link);
tools/lib/bpf/libbpf.c
13406
return link;
tools/lib/bpf/libbpf.c
13409
static int attach_usdt(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13418
*link = NULL;
tools/lib/bpf/libbpf.c
13428
*link = bpf_program__attach_usdt(prog, -1 /* any process */, path,
tools/lib/bpf/libbpf.c
13430
err = libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13494
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13509
link = bpf_program__attach_perf_event_opts(prog, pfd, &pe_opts);
tools/lib/bpf/libbpf.c
13510
err = libbpf_get_error(link);
tools/lib/bpf/libbpf.c
13518
return link;
tools/lib/bpf/libbpf.c
13557
static int attach_tp(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13568
*link = NULL;
tools/lib/bpf/libbpf.c
13591
*link = bpf_program__attach_tracepoint(prog, tp_cat, tp_name);
tools/lib/bpf/libbpf.c
13593
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13602
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13614
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13615
if (!link)
tools/lib/bpf/libbpf.c
13617
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13624
free(link);
tools/lib/bpf/libbpf.c
13629
link->fd = pfd;
tools/lib/bpf/libbpf.c
13630
return link;
tools/lib/bpf/libbpf.c
13639
static int attach_raw_tp(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13651
*link = NULL;
tools/lib/bpf/libbpf.c
13661
*link = bpf_program__attach_raw_tracepoint(prog, match);
tools/lib/bpf/libbpf.c
13662
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13670
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13682
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13683
if (!link)
tools/lib/bpf/libbpf.c
13685
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13692
free(link);
tools/lib/bpf/libbpf.c
13697
link->fd = pfd;
tools/lib/bpf/libbpf.c
13698
return link;
tools/lib/bpf/libbpf.c
13717
static int attach_trace(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13719
*link = bpf_program__attach_trace(prog);
tools/lib/bpf/libbpf.c
13720
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13723
static int attach_lsm(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13725
*link = bpf_program__attach_lsm(prog);
tools/lib/bpf/libbpf.c
13726
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13735
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13744
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13745
if (!link)
tools/lib/bpf/libbpf.c
13747
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13753
free(link);
tools/lib/bpf/libbpf.c
13759
link->fd = link_fd;
tools/lib/bpf/libbpf.c
13760
return link;
tools/lib/bpf/libbpf.c
13926
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13942
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13943
if (!link)
tools/lib/bpf/libbpf.c
13945
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13951
free(link);
tools/lib/bpf/libbpf.c
13956
link->fd = link_fd;
tools/lib/bpf/libbpf.c
13957
return link;
tools/lib/bpf/libbpf.c
13960
static int attach_iter(const struct bpf_program *prog, long cookie, struct bpf_link **link)
tools/lib/bpf/libbpf.c
13962
*link = bpf_program__attach_iter(prog, NULL);
tools/lib/bpf/libbpf.c
13963
return libbpf_get_error(*link);
tools/lib/bpf/libbpf.c
13970
struct bpf_link *link;
tools/lib/bpf/libbpf.c
13982
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
13983
if (!link)
tools/lib/bpf/libbpf.c
13986
link->detach = &bpf_link__detach_fd;
tools/lib/bpf/libbpf.c
13996
free(link);
tools/lib/bpf/libbpf.c
14001
link->fd = link_fd;
tools/lib/bpf/libbpf.c
14003
return link;
tools/lib/bpf/libbpf.c
14008
struct bpf_link *link = NULL;
tools/lib/bpf/libbpf.c
14020
err = prog->sec_def->prog_attach_fn(prog, prog->sec_def->cookie, &link);
tools/lib/bpf/libbpf.c
14029
if (!link)
tools/lib/bpf/libbpf.c
14032
return link;
tools/lib/bpf/libbpf.c
14036
struct bpf_link link;
tools/lib/bpf/libbpf.c
14040
static int bpf_link__detach_struct_ops(struct bpf_link *link)
tools/lib/bpf/libbpf.c
14045
st_link = container_of(link, struct bpf_link_struct_ops, link);
tools/lib/bpf/libbpf.c
14049
return bpf_map_delete_elem(link->fd, &zero);
tools/lib/bpf/libbpf.c
14051
return close(link->fd);
tools/lib/bpf/libbpf.c
14056
struct bpf_link_struct_ops *link;
tools/lib/bpf/libbpf.c
14070
link = calloc(1, sizeof(*link));
tools/lib/bpf/libbpf.c
14071
if (!link)
tools/lib/bpf/libbpf.c
14082
free(link);
tools/lib/bpf/libbpf.c
14086
link->link.detach = bpf_link__detach_struct_ops;
tools/lib/bpf/libbpf.c
14090
link->link.fd = map->fd;
tools/lib/bpf/libbpf.c
14091
link->map_fd = -1;
tools/lib/bpf/libbpf.c
14092
return &link->link;
tools/lib/bpf/libbpf.c
14097
free(link);
tools/lib/bpf/libbpf.c
14101
link->link.fd = fd;
tools/lib/bpf/libbpf.c
14102
link->map_fd = map->fd;
tools/lib/bpf/libbpf.c
14104
return &link->link;
tools/lib/bpf/libbpf.c
14110
int bpf_link__update_map(struct bpf_link *link, const struct bpf_map *map)
tools/lib/bpf/libbpf.c
14124
st_ops_link = container_of(link, struct bpf_link_struct_ops, link);
tools/lib/bpf/libbpf.c
14138
err = bpf_link_update(link->fd, map->fd, NULL);
tools/lib/bpf/libbpf.c
15061
struct bpf_link **link = prog_skel->link;
tools/lib/bpf/libbpf.c
15071
if (*link)
tools/lib/bpf/libbpf.c
15074
err = prog->sec_def->prog_attach_fn(prog, prog->sec_def->cookie, link);
tools/lib/bpf/libbpf.c
15097
struct bpf_link **link;
tools/lib/bpf/libbpf.c
15107
if (s->map_skel_sz < offsetofend(struct bpf_map_skeleton, link)) {
tools/lib/bpf/libbpf.c
15113
link = map_skel->link;
tools/lib/bpf/libbpf.c
15114
if (!link) {
tools/lib/bpf/libbpf.c
15120
if (*link)
tools/lib/bpf/libbpf.c
15123
*link = bpf_map__attach_struct_ops(map);
tools/lib/bpf/libbpf.c
15124
if (!*link) {
tools/lib/bpf/libbpf.c
15141
struct bpf_link **link = prog_skel->link;
tools/lib/bpf/libbpf.c
15143
bpf_link__destroy(*link);
tools/lib/bpf/libbpf.c
15144
*link = NULL;
tools/lib/bpf/libbpf.c
15152
struct bpf_link **link = map_skel->link;
tools/lib/bpf/libbpf.c
15154
if (link) {
tools/lib/bpf/libbpf.c
15155
bpf_link__destroy(*link);
tools/lib/bpf/libbpf.c
15156
*link = NULL;
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
963
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
1007
link->spec_ids[link->spec_cnt] = *spec_id;
tools/lib/bpf/usdt.c
1008
link->spec_cnt++;
tools/lib/bpf/usdt.c
1022
struct bpf_link_usdt *link = NULL;
tools/lib/bpf/usdt.c
1061
link = calloc(1, sizeof(*link));
tools/lib/bpf/usdt.c
1062
if (!link) {
tools/lib/bpf/usdt.c
1067
link->usdt_man = man;
tools/lib/bpf/usdt.c
1068
link->link.detach = &bpf_link_usdt_detach;
tools/lib/bpf/usdt.c
1069
link->link.dealloc = &bpf_link_usdt_dealloc;
tools/lib/bpf/usdt.c
1081
link->uprobes = calloc(target_cnt, sizeof(*link->uprobes));
tools/lib/bpf/usdt.c
1082
if (!link->uprobes) {
tools/lib/bpf/usdt.c
1102
err = allocate_spec_id(man, specs_hash, link, target, &spec_id, &is_new);
tools/lib/bpf/usdt.c
1142
link->uprobes[i].link = uprobe_link;
tools/lib/bpf/usdt.c
1143
link->uprobes[i].abs_ip = target->abs_ip;
tools/lib/bpf/usdt.c
1144
link->uprobe_cnt++;
tools/lib/bpf/usdt.c
1156
link->multi_link = bpf_program__attach_uprobe_multi(prog, pid, path,
tools/lib/bpf/usdt.c
1158
if (!link->multi_link) {
tools/lib/bpf/usdt.c
1173
return &link->link;
tools/lib/bpf/usdt.c
1180
if (link)
tools/lib/bpf/usdt.c
1181
bpf_link__destroy(&link->link);
tools/lib/bpf/usdt.c
863
struct bpf_link link;
tools/lib/bpf/usdt.c
873
struct bpf_link *link;
tools/lib/bpf/usdt.c
879
static int bpf_link_usdt_detach(struct bpf_link *link)
tools/lib/bpf/usdt.c
881
struct bpf_link_usdt *usdt_link = container_of(link, struct bpf_link_usdt, link);
tools/lib/bpf/usdt.c
890
bpf_link__destroy(usdt_link->uprobes[i].link);
tools/lib/bpf/usdt.c
939
static void bpf_link_usdt_dealloc(struct bpf_link *link)
tools/lib/bpf/usdt.c
941
struct bpf_link_usdt *usdt_link = container_of(link, struct bpf_link_usdt, link);
tools/lib/bpf/usdt.c
959
struct bpf_link_usdt *link, struct usdt_target *target,
tools/lib/bpf/usdt.c
976
new_ids = libbpf_reallocarray(link->spec_ids, link->spec_cnt + 1, sizeof(*link->spec_ids));
tools/lib/bpf/usdt.c
979
link->spec_ids = new_ids;
tools/net/ynl/tests/rt-link.c
140
ynl_dump_foreach(rsp, link)
tools/net/ynl/tests/rt-link.c
141
rt_link_print(_metadata, link);
tools/net/ynl/tests/rt-link.c
167
ynl_dump_foreach(rsp, link) {
tools/net/ynl/tests/rt-link.c
168
if (link->_hdr.ifi_index == netkit_ifindex) {
tools/net/ynl/tests/rt-link.c
169
rt_link_print(_metadata, link);
tools/objtool/builtin-check.c
152
if (opts.noinstr && !opts.link) {
tools/objtool/builtin-check.c
157
if (opts.ibt && !opts.link) {
tools/objtool/builtin-check.c
162
if (opts.unret && !opts.link) {
tools/objtool/builtin-check.c
335
if (!opts.link && has_multiple_files(file->elf)) {
tools/objtool/builtin-check.c
99
OPT_BOOLEAN(0, "link", &opts.link, "object is a linked object"),
tools/objtool/check.c
2555
if (!opts.link)
tools/objtool/include/objtool/builtin.h
39
bool link;
tools/perf/arch/powerpc/include/dwarf-regs-table.h
23
REG_DWARFNUM_NAME(link, 108),
tools/perf/tests/tests-scripts.c
186
char filename[PATH_MAX], link[128];
tools/perf/tests/tests-scripts.c
192
snprintf(link, sizeof(link), "/proc/%d/fd/%d", getpid(), dir_fd);
tools/perf/tests/tests-scripts.c
193
len = readlink(link, filename, sizeof(filename) - 1);
tools/perf/tests/tests-scripts.c
195
pr_err("Failed to readlink %s or path too long", link);
tools/perf/util/annotate.c
3003
struct basic_block_link *link;
tools/perf/util/annotate.c
3005
list_for_each_entry(link, head, node) {
tools/perf/util/annotate.c
3006
s64 begin_offset = link->bb->begin->al.offset;
tools/perf/util/annotate.c
3007
s64 end_offset = link->bb->end->al.offset;
tools/perf/util/annotate.c
3033
struct basic_block_link *link;
tools/perf/util/annotate.c
3049
link = malloc(sizeof(*link));
tools/perf/util/annotate.c
3050
if (link == NULL) {
tools/perf/util/annotate.c
3055
link->bb = bb;
tools/perf/util/annotate.c
3056
link->parent = parent;
tools/perf/util/annotate.c
3057
list_add_tail(&link->node, &bb_data->queue);
tools/perf/util/annotate.c
3063
struct basic_block_link *link,
tools/perf/util/annotate.c
3070
dl = link->bb->begin;
tools/perf/util/annotate.c
3108
add_basic_block(bb_data, link, next_dl);
tools/perf/util/annotate.c
3118
add_basic_block(bb_data, link, next_dl);
tools/perf/util/annotate.c
3123
link->bb->end = dl;
tools/perf/util/annotate.c
3131
static void link_found_basic_blocks(struct basic_block_link *link,
tools/perf/util/annotate.c
3134
while (link) {
tools/perf/util/annotate.c
3135
struct basic_block_link *parent = link->parent;
tools/perf/util/annotate.c
3137
list_move(&link->bb->list, head);
tools/perf/util/annotate.c
3138
list_del(&link->node);
tools/perf/util/annotate.c
3139
free(link);
tools/perf/util/annotate.c
3141
link = parent;
tools/perf/util/annotate.c
3147
struct basic_block_link *link, *tmp;
tools/perf/util/annotate.c
3149
list_for_each_entry_safe(link, tmp, &bb_data->queue, node) {
tools/perf/util/annotate.c
3150
list_del(&link->node);
tools/perf/util/annotate.c
3151
zfree(&link->bb);
tools/perf/util/annotate.c
3152
free(link);
tools/perf/util/annotate.c
3155
list_for_each_entry_safe(link, tmp, &bb_data->visited, node) {
tools/perf/util/annotate.c
3156
list_del(&link->node);
tools/perf/util/annotate.c
3157
zfree(&link->bb);
tools/perf/util/annotate.c
3158
free(link);
tools/perf/util/annotate.c
3181
struct basic_block_link *link;
tools/perf/util/annotate.c
3194
link = list_first_entry(&bb_data.queue, struct basic_block_link, node);
tools/perf/util/annotate.c
3196
if (process_basic_block(&bb_data, link, sym, dst)) {
tools/perf/util/annotate.c
3197
link_found_basic_blocks(link, head);
tools/perf/util/annotate.c
3201
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
464
struct bpf_link *link = NULL;
tools/perf/util/bpf_counter.c
479
link = bpf_program__attach(skel->progs.on_switch);
tools/perf/util/bpf_counter.c
480
if (IS_ERR(link)) {
tools/perf/util/bpf_counter.c
482
err = PTR_ERR(link);
tools/perf/util/bpf_counter.c
486
link_fd = bpf_link__fd(link);
tools/perf/util/bpf_counter.c
509
bpf_link__destroy(link);
tools/perf/util/bpf_counter.c
517
struct bpf_link *link;
tools/perf/util/bpf_counter.c
525
link = bpf_program__attach(skel->progs.fexit_XXX);
tools/perf/util/bpf_counter.c
526
if (IS_ERR(link))
tools/perf/util/bpf_counter.c
527
err = PTR_ERR(link);
tools/perf/util/bpf_counter_cgroup.c
136
link = bpf_program__attach_perf_event(skel->progs.on_cgrp_switch,
tools/perf/util/bpf_counter_cgroup.c
138
if (IS_ERR(link)) {
tools/perf/util/bpf_counter_cgroup.c
140
err = PTR_ERR(link);
tools/perf/util/bpf_counter_cgroup.c
97
struct bpf_link *link;
tools/perf/util/build-id.c
676
} else if (link(realname, filename) && errno != EEXIST) {
tools/perf/util/build-id.c
705
} else if (link(debugfile, filename) &&
tools/perf/util/copyfile.c
126
err = link(tmp, to);
tools/sched_ext/scx_central.c
119
bpf_link__destroy(link);
tools/sched_ext/scx_central.c
48
struct bpf_link *link;
tools/sched_ext/scx_central.c
96
link = SCX_OPS_ATTACH(skel, central_ops, scx_central);
tools/sched_ext/scx_cpu0.c
64
struct bpf_link *link;
tools/sched_ext/scx_cpu0.c
87
link = SCX_OPS_ATTACH(skel, cpu0_ops, scx_cpu0);
tools/sched_ext/scx_cpu0.c
98
bpf_link__destroy(link);
tools/sched_ext/scx_flatcg.c
131
struct bpf_link *link;
tools/sched_ext/scx_flatcg.c
182
link = SCX_OPS_ATTACH(skel, flatcg_ops, scx_flatcg);
tools/sched_ext/scx_flatcg.c
232
bpf_link__destroy(link);
tools/sched_ext/scx_pair.c
166
link = SCX_OPS_ATTACH(skel, pair_ops, scx_pair);
tools/sched_ext/scx_pair.c
189
bpf_link__destroy(link);
tools/sched_ext/scx_pair.c
48
struct bpf_link *link;
tools/sched_ext/scx_qmap.c
194
link = SCX_OPS_ATTACH(skel, qmap_ops, scx_qmap);
tools/sched_ext/scx_qmap.c
226
bpf_link__destroy(link);
tools/sched_ext/scx_qmap.c
68
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
62
link = bpf_program__attach(ctx.skel->progs.benchmark);
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_full_update.c
63
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
199
link = bpf_program__attach(ctx.skel->progs.benchmark);
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_lookup.c
200
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
432
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_trigger.c
461
link = bpf_program__attach_uprobe_multi(
tools/testing/selftests/bpf/benchs/bench_trigger.c
464
ctx.skel->links.bench_trigger_uprobe_multi = link;
tools/testing/selftests/bpf/benchs/bench_trigger.c
466
link = bpf_program__attach_uprobe(ctx.skel->progs.bench_trigger_uprobe,
tools/testing/selftests/bpf/benchs/bench_trigger.c
471
ctx.skel->links.bench_trigger_uprobe = link;
tools/testing/selftests/bpf/benchs/bench_trigger.c
473
if (!link) {
tools/testing/selftests/bpf/benchs/bench_trigger.c
567
struct bpf_link *link;
tools/testing/selftests/bpf/benchs/bench_trigger.c
586
link = bpf_program__attach_usdt(ctx.skel->progs.bench_trigger_usdt,
tools/testing/selftests/bpf/benchs/bench_trigger.c
589
if (libbpf_get_error(link)) {
tools/testing/selftests/bpf/benchs/bench_trigger.c
593
ctx.skel->links.bench_trigger_usdt = 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
344
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/attach_probe.c
350
link = bpf_program__attach_kprobe_opts(skel->progs.kprobe_write_ctx,
tools/testing/selftests/bpf/prog_tests/attach_probe.c
352
if (!ASSERT_ERR_PTR(link, "bpf_program__attach_kprobe_opts"))
tools/testing/selftests/bpf/prog_tests/attach_probe.c
353
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_attr_size.c
16
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_attr_size.c
29
link = bpf_program__attach_cgroup(skel->progs.direct_packet_access,
tools/testing/selftests/bpf/prog_tests/bpf_attr_size.c
31
if (!ASSERT_OK_PTR(link, "cg_attach"))
tools/testing/selftests/bpf/prog_tests/bpf_attr_size.c
58
if (link)
tools/testing/selftests/bpf/prog_tests/bpf_attr_size.c
59
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
464
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
479
link = bpf_program__attach_perf_event_opts(skel->progs.handle_pe, pfd, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
480
if (!ASSERT_OK_PTR(link, "link1"))
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
488
bpf_link__disconnect(link);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
490
close(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
492
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
493
link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
498
link = bpf_program__attach_perf_event_opts(skel->progs.handle_pe, pfd, &opts);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
499
if (!ASSERT_OK_PTR(link, "link2"))
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
508
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
619
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
661
link = bpf_program__attach_trace_opts(skel->progs.handle_tp_btf, &trace_opts);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
662
if (!ASSERT_OK_PTR(link, "attach_trace_opts"))
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
666
bpf_link__destroy(link); /* detach */
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
667
link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
674
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
700
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
731
link = bpf_program__attach_raw_tracepoint_opts(skel->progs.handle_raw_tp,
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
733
if (!ASSERT_OK_PTR(link, "attach_raw_tp_opts"))
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
737
bpf_link__destroy(link); /* detach */
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
738
link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
745
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
150
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_qdisc.c
156
link = bpf_map__attach_struct_ops(skel->maps.test);
tools/testing/selftests/bpf/prog_tests/bpf_qdisc.c
157
if (!ASSERT_ERR_PTR(link, "bpf_map__attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/bpf_qdisc.c
158
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
119
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
155
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
161
link = bpf_map__attach_struct_ops(dctcp_skel->maps.dctcp);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
162
if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) {
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
180
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
198
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
211
link = dctcp_skel->links.dctcp;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
212
if (!ASSERT_OK_PTR(link, "link"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
267
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
292
link = bpf_map__attach_struct_ops(dctcp_skel->maps.dctcp);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
293
if (!ASSERT_OK_PTR(link, "dctcp link"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
315
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
346
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
352
link = bpf_map__attach_struct_ops(skel->maps.write_sk_pacing);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
353
ASSERT_OK_PTR(link, "attach_struct_ops");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
355
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
362
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
371
link = bpf_map__attach_struct_ops(skel->maps.incompl_cong_ops);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
372
ASSERT_ERR_PTR(link, "attach_struct_ops");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
374
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
405
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
413
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
414
if (!ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
421
err = bpf_link__update_map(link, skel->maps.ca_update_2);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
428
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
443
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
451
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
452
if (!ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
459
err = bpf_link__update_map(link, skel->maps.ca_wrong);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
465
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
480
struct bpf_link *link, *link_nl;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
491
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
492
ASSERT_OK_PTR(link, "attach_struct_ops");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
497
err = bpf_link__update_map(link, skel->maps.ca_no_link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
500
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
509
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
515
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
516
ASSERT_OK_PTR(link, "attach_struct_ops_1st");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
517
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
522
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
523
ASSERT_OK_PTR(link, "attach_struct_ops_2nd");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
524
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
533
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
540
link = bpf_map__attach_struct_ops(skel->maps.ca_update_1);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
541
ASSERT_OK_PTR(link, "attach_struct_ops_1st");
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
542
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
544
link = bpf_map__attach_struct_ops(skel->maps.ca_update_2);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
545
if (!ASSERT_OK_PTR(link, "attach_struct_ops_2nd"))
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
555
err = bpf_link_update(bpf_link__fd(link),
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
562
err = bpf_link_update(bpf_link__fd(link),
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
567
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
592
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
598
link = bpf_map__attach_struct_ops(cc_cubic_skel->maps.cc_cubic);
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
599
if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) {
tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c
606
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
128
static void test_pgfault(struct bpf_link *link, struct memcg_query *memcg_query)
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
143
if (!ASSERT_OK(read_stats(link), "read stats"))
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
156
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
175
link = bpf_program__attach_iter(skel->progs.cgroup_memcg_query, &opts);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
176
if (!ASSERT_OK_PTR(link, "bpf_program__attach_iter"))
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
180
test_anon(link, &skel->data_query->memcg_query);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
182
test_shmem(link, &skel->data_query->memcg_query);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
184
test_file(link, &skel->data_query->memcg_query);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
186
test_pgfault(link, &skel->data_query->memcg_query);
tools/testing/selftests/bpf/prog_tests/cgroup_iter_memcg.c
188
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, *fexit_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
207
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c
225
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
103
struct bpf_link *link = NULL; \
tools/testing/selftests/bpf/prog_tests/exceptions.c
120
if (!ASSERT_ERR_PTR(link = bpf_program__attach(prog), "attach err")) \
tools/testing/selftests/bpf/prog_tests/exceptions.c
123
if (!ASSERT_OK_PTR(link = bpf_program__attach(prog), "attach ok")) \
tools/testing/selftests/bpf/prog_tests/exceptions.c
126
bpf_link__destroy(link); \
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
227
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
249
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
252
if (!ASSERT_ERR_PTR(link, "fail_1"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
264
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
267
if (!ASSERT_ERR_PTR(link, "fail_2"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
279
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
282
if (!ASSERT_ERR_PTR(link, "fail_3"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
294
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
297
if (!ASSERT_ERR_PTR(link, "fail_4"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
309
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
312
if (!ASSERT_ERR_PTR(link, "fail_5"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
324
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
327
if (!ASSERT_ERR_PTR(link, "fail_6"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
336
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
340
if (!ASSERT_ERR_PTR(link, "fail_7"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
347
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
351
if (!ASSERT_ERR_PTR(link, "fail_8"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
373
link = bpf_program__attach_kprobe_multi_opts(sl_skel->progs.handle_kprobe_multi_sleepable,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
377
if (!ASSERT_ERR_PTR(link, "fail_9"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
387
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
397
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
429
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
438
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
461
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
469
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
477
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
479
if (!ASSERT_ERR_PTR(link, "bpf_program__attach_kprobe_multi_opts"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
480
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
482
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
484
if (ASSERT_OK_PTR(link, "bpf_program__attach_kprobe_multi_opts"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
485
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
495
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
498
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_empty,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
502
if (!ASSERT_OK_PTR(link, "bpf_program__attach_kprobe_multi_opts"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
506
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
574
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
584
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_override,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
586
if (!ASSERT_ERR_PTR(link, "override_attached_bpf_fentry_test1")) {
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
587
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
594
link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_override,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
596
if (!ASSERT_OK_PTR(link, "override_attached_should_fail_bio"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
599
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
649
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
655
link = bpf_program__attach_kprobe_opts(skel->progs.kprobe_multi_write_ctx,
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
657
if (!ASSERT_ERR_PTR(link, "bpf_program__attach_kprobe_opts"))
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
658
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/map_excl.c
102
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/map_excl.c
118
link = bpf_program__attach_iter(skel->progs.dump_bpf_array_map, &opts);
tools/testing/selftests/bpf/prog_tests/map_excl.c
119
if (!ASSERT_ERR_PTR(link, "reject exclusive map as iter target")) {
tools/testing/selftests/bpf/prog_tests/map_excl.c
120
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/map_excl.c
123
ASSERT_EQ(libbpf_get_error(link), -EPERM, "iter attach errno");
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
200
test_case->link = bpf_program__attach_xdp(skel->progs.drop_ack,
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
202
if (!ASSERT_OK_PTR(test_case->link, "bpf_program__attach_xdp"))
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
212
err = bpf_link__destroy(test_case->link);
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
216
test_case->link = NULL;
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
553
if (test_case->link) {
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
565
if (test_case->link) {
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
65
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/module_attach.c
133
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/module_attach.c
150
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/module_attach.c
151
if (!ASSERT_OK_PTR(link, "module_attach attach"))
tools/testing/selftests/bpf/prog_tests/module_attach.c
155
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/rhash.c
100
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/rhash.c
129
link = bpf_program__attach_iter(skel->progs.dump_bpf_rhash_map, &opts);
tools/testing/selftests/bpf/prog_tests/rhash.c
130
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/rhash.c
133
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/rhash.c
147
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/sleepable_tracepoints.c
28
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
30
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
31
if (!ASSERT_OK_PTR(link, "prog_attach"))
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
35
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
40
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
42
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
43
if (ASSERT_OK_PTR(link, "attach"))
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
44
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
49
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
51
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
52
if (!ASSERT_ERR_PTR(link, "attach_should_fail"))
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
53
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
58
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
60
link = bpf_program__attach_raw_tracepoint(skel->progs.handle_raw_tp_bare,
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
62
if (ASSERT_OK_PTR(link, "attach"))
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
63
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
68
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
70
link = bpf_program__attach_tracepoint(skel->progs.handle_tp_bare,
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
72
if (ASSERT_OK_PTR(link, "attach"))
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c
73
bpf_link__destroy(link);
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
1045
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1058
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1059
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1076
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
184
struct bpf_link *link, *link2;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
196
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
197
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
212
err = bpf_link__update_program(link, prog_clone);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
217
err = bpf_link__update_program(link, skel->progs.prog_skb_verdict);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
224
err = bpf_link_update(bpf_link__fd(link), bpf_program__fd(prog), &opts);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
230
err = bpf_link_update(bpf_link__fd(link), bpf_program__fd(prog), &opts);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
234
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
302
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
342
link = bpf_program__attach_iter(skel->progs.copy, &opts);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
343
if (!ASSERT_OK_PTR(link, "attach_iter"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
346
iter_fd = bpf_iter_create(bpf_link__fd(link));
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
368
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
409
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
417
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
418
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
421
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
428
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
429
if (!ASSERT_ERR_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
430
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
772
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
780
link = bpf_program__attach_sockmap(prog, map);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
781
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
784
err = bpf_link__update_program(link, pass->progs.prog_skb_verdict_clone);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
789
err = bpf_link__update_program(link, pass->progs.prog_skb_parser);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
796
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
895
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
897
link = bpf_program__attach_sockmap(verdict, sock_map);
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
898
if (!ASSERT_OK_PTR(link, "bpf_program__attach_sockmap"))
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
903
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
437
int parser_mod, parser_ro, link;
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
451
link = bpf_link_create(parser_ro, map, BPF_SK_SKB_STREAM_PARSER, NULL);
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
452
if (!ASSERT_GE(link, 0, "bpf_link_create parser_ro"))
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
455
err = bpf_link_update(link, parser_mod, NULL);
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
458
if (link >= 0)
tools/testing/selftests/bpf/prog_tests/sockmap_strp.c
459
close(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
12
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
23
link = bpf_map__attach_struct_ops(skel->maps.testmod_1);
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
24
if (!ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
32
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
56
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
67
link = bpf_map__attach_struct_ops(skel->maps.testmod_1);
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
68
if (!ASSERT_OK_PTR(link, "attach_struct_ops"))
tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c
75
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
517
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/test_dst_clear.c
20
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/test_dst_clear.c
31
link = bpf_program__attach_tcx(skel->progs.dst_clear,
tools/testing/selftests/bpf/prog_tests/test_dst_clear.c
33
if (!ASSERT_OK_PTR(link, "attach_tcx"))
tools/testing/selftests/bpf/prog_tests/test_dst_clear.c
35
skel->links.dst_clear = link;
tools/testing/selftests/bpf/prog_tests/test_lsm.c
35
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/test_lsm.c
44
link = bpf_program__attach(skel->progs.test_int_hook);
tools/testing/selftests/bpf/prog_tests/test_lsm.c
45
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/tracing_multi.c
605
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/tracing_multi.c
695
link = bpf_program__attach_tracing_multi(skel->progs.bench, NULL, &opts);
tools/testing/selftests/bpf/prog_tests/tracing_multi.c
698
if (!ASSERT_OK_PTR(link, "bpf_program__attach_tracing_multi"))
tools/testing/selftests/bpf/prog_tests/tracing_multi.c
702
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
39
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
55
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
56
if (!ASSERT_OK_PTR(link, "attach_prog"))
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
59
inst[i].link = link;
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
68
link = bpf_program__attach(prog);
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
69
if (!ASSERT_ERR_PTR(link, "attach_prog")) {
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
7
struct bpf_link *link;
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
70
inst[i].link = link;
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
75
if (!ASSERT_EQ(libbpf_get_error(link), -E2BIG, "E2BIG"))
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
77
if (!ASSERT_EQ(link, NULL, "ptr_is_null"))
tools/testing/selftests/bpf/prog_tests/trampoline_count.c
85
bpf_link__destroy(inst[i].link);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1166
struct bpf_link *link[TASKS] = {};
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1179
link[i] = bpf_program__attach_uprobe_multi(uprobe_multi_program(skel, i),
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1182
if (!ASSERT_OK_PTR(link[i], "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1196
bpf_link__destroy(link[i]);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1219
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
1255
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
869
get_link(struct uprobe_multi_consumers *skel, int link)
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
871
switch (link) {
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
889
struct bpf_link **link = get_link(skel, idx);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
892
if (!prog || !link)
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
907
*link = bpf_program__attach_uprobe_multi(prog, 0, "/proc/self/exe", NULL, &opts);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
908
if (!ASSERT_OK_PTR(*link, "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
915
struct bpf_link **link = get_link(skel, idx);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
917
bpf_link__destroy(*link);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
918
*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
387
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
404
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, veth);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
405
if (!ASSERT_OK_PTR(link, "attach program to veth"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
412
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
413
link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
416
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, veth);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
417
if (!ASSERT_OK_PTR(link, "attach program to slave when enslaved"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
425
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
426
link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
429
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
430
if (!ASSERT_OK_PTR(link, "attach program to master"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
438
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
439
link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
451
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
452
if (!ASSERT_ERR_PTR(link, "attach program to master when slave does not support XDP"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
456
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
467
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
491
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
492
ASSERT_OK_PTR(link, "attach program to master");
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
495
bpf_link__destroy(link);
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
589
struct bpf_link *link = NULL;
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
636
link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog,
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
638
if (!ASSERT_OK_PTR(link, "attach program to veth1"))
tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
696
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
1455
static int bpf_dummy_reg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1470
static void bpf_dummy_unreg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1533
static int bpf_dummy_reg2(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1556
static int st_ops3_reg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1573
static void st_ops3_unreg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1794
static int st_ops_reg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1811
static void st_ops_unreg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1926
static int multi_st_ops_reg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1954
static void multi_st_ops_unreg(void *kdata, struct bpf_link *link)
tools/testing/selftests/bpf/test_loader.c
1318
struct bpf_link *link, *links[32] = {};
tools/testing/selftests/bpf/test_loader.c
1468
link = bpf_map__attach_struct_ops(map);
tools/testing/selftests/bpf/test_loader.c
1469
if (!link) {
tools/testing/selftests/bpf/test_loader.c
1474
links[links_cnt++] = link;
tools/testing/selftests/bpf/testing_helpers.c
243
__u32 link_info_prog_id(const struct bpf_link *link, struct bpf_link_info *info)
tools/testing/selftests/bpf/testing_helpers.c
249
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
262
struct bpf_link *link;
tools/testing/selftests/hid/hid_bpf.c
266
link = bpf_map__attach_struct_ops(self->skel->maps.first_event);
tools/testing/selftests/hid/hid_bpf.c
267
ASSERT_NULL(link) TH_LOG("unexpected return value when re-attaching the struct_ops");
tools/testing/selftests/hid/hid_bpf.c
279
struct bpf_link *link;
tools/testing/selftests/hid/hid_bpf.c
285
link = self->hid_links[0];
tools/testing/selftests/hid/hid_bpf.c
286
ASSERT_OK_PTR(link) TH_LOG("HID-BPF link not created");
tools/testing/selftests/hid/hid_bpf.c
288
link_fd = bpf_link__fd(link);
tools/testing/selftests/landlock/fs_test.c
2095
TEST_F_FORK(layout1, link)
tools/testing/selftests/landlock/fs_test.c
2118
ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
2122
ASSERT_EQ(-1, link(file1_s2d1, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2124
ASSERT_EQ(-1, link(file2_s1d2, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2126
ASSERT_EQ(-1, link(file2_s1d3, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2129
ASSERT_EQ(0, link(file2_s1d2, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2130
ASSERT_EQ(0, link(file2_s1d3, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2139
ASSERT_EQ(0, link(file1_s1d2, file2_s1d2));
tools/testing/selftests/landlock/fs_test.c
2140
ASSERT_EQ(0, link(file1_s1d3, file2_s1d3));
tools/testing/selftests/landlock/fs_test.c
2539
ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
2542
ASSERT_EQ(-1, link(file1_s2d1, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2545
ASSERT_EQ(-1, link(file1_s2d1, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2549
ASSERT_EQ(-1, link(file1_s2d2, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
2552
ASSERT_EQ(-1, link(file1_s2d2, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2556
ASSERT_EQ(0, link(file1_s2d2, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2559
ASSERT_EQ(-1, link(file1_s1d3, file1_s2d2));
tools/testing/selftests/landlock/fs_test.c
2563
ASSERT_EQ(0, link(file1_s1d3, file1_s2d3));
tools/testing/selftests/landlock/fs_test.c
2570
ASSERT_EQ(0, link(file1_s2d3, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2573
ASSERT_EQ(-1, link(file2_s1d2, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
2575
ASSERT_EQ(-1, link(file2_s1d3, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2578
ASSERT_EQ(0, link(file2_s1d2, file1_s1d2));
tools/testing/selftests/landlock/fs_test.c
2579
ASSERT_EQ(0, link(file2_s1d3, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
3245
ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
3255
ASSERT_EQ(0, link(file1_s1d2, file2_s1d2));
tools/testing/selftests/landlock/fs_test.c
3260
ASSERT_EQ(0, link(file1_s1d3, file2_s1d3));
tools/testing/selftests/landlock/fs_test.c
3325
ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1));
tools/testing/selftests/landlock/fs_test.c
3331
ASSERT_EQ(0, link(file1_s1d2, file2_s1d2));
tools/testing/selftests/landlock/fs_test.c
3336
ASSERT_EQ(0, link(file1_s1d3, file2_s1d3));
tools/testing/selftests/landlock/fs_test.c
7565
EXPECT_EQ(-1, link(file1_s1d1, file1_s1d3));
tools/testing/selftests/landlock/fs_test.c
7589
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
1602
CASE_TEST(link_root1); EXPECT_SYSER(1, link("/", "/"), -1, EEXIST); break;
tools/testing/selftests/nolibc/nolibc-test.c
1603
CASE_TEST(link_blah); EXPECT_SYSER(1, link("/proc/self/blah", "/blah"), -1, ENOENT); break;
tools/testing/selftests/nolibc/nolibc-test.c
1604
CASE_TEST(link_dir); EXPECT_SYSER(euid0, link("/", "/blah"), -1, EPERM); break;
tools/testing/selftests/nolibc/nolibc-test.c
1605
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/dequeue.c
104
link = bpf_map__attach_struct_ops(skel->maps.dequeue_ops);
tools/testing/selftests/sched_ext/dequeue.c
105
SCX_FAIL_IF(!link, "Failed to attach struct_ops for scenario %s", scenario_name);
tools/testing/selftests/sched_ext/dequeue.c
135
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/dequeue.c
84
struct bpf_link *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
33
struct bpf_link *link;
tools/testing/selftests/sched_ext/maximal.c
35
link = bpf_map__attach_struct_ops(skel->maps.maximal_ops);
tools/testing/selftests/sched_ext/maximal.c
36
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/maximal.c
38
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/nohz_tick.c
222
struct bpf_link *link = NULL;
tools/testing/selftests/sched_ext/nohz_tick.c
230
link = bpf_map__attach_struct_ops(skel->maps.nohz_tick_ops);
tools/testing/selftests/sched_ext/nohz_tick.c
231
if (!link) {
tools/testing/selftests/sched_ext/nohz_tick.c
326
if (link)
tools/testing/selftests/sched_ext/nohz_tick.c
327
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
37
struct bpf_link *link;
tools/testing/selftests/sched_ext/reload_loop.c
39
link = bpf_map__attach_struct_ops(skel->maps.maximal_ops);
tools/testing/selftests/sched_ext/reload_loop.c
40
if (link)
tools/testing/selftests/sched_ext/reload_loop.c
41
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/rt_stall.c
246
struct bpf_link *link = NULL;
tools/testing/selftests/sched_ext/rt_stall.c
263
link = bpf_map__attach_struct_ops(skel->maps.rt_stall_ops);
tools/testing/selftests/sched_ext/rt_stall.c
264
SCX_FAIL_IF(!link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/rt_stall.c
269
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/select_cpu_dfl.c
19
struct bpf_link *link;
tools/testing/selftests/sched_ext/select_cpu_dfl.c
28
tctx->link = NULL;
tools/testing/selftests/sched_ext/select_cpu_dfl.c
53
tctx->link = bpf_map__attach_struct_ops(tctx->skel->maps.select_cpu_dfl_ops);
tools/testing/selftests/sched_ext/select_cpu_dfl.c
54
SCX_FAIL_IF(!tctx->link, "Failed to attach scheduler");
tools/testing/selftests/sched_ext/select_cpu_dfl.c
83
if (tctx->link)
tools/testing/selftests/sched_ext/select_cpu_dfl.c
84
bpf_link__destroy(tctx->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
309
struct bpf_link *link;
tools/testing/selftests/sched_ext/total_bw.c
318
link = bpf_map__attach_struct_ops(test_ctx->skel->maps.minimal_ops);
tools/testing/selftests/sched_ext/total_bw.c
319
if (!link) {
tools/testing/selftests/sched_ext/total_bw.c
327
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/total_bw.c
330
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/total_bw.c
402
link = bpf_map__attach_struct_ops(test_ctx->skel->maps.minimal_ops);
tools/testing/selftests/sched_ext/total_bw.c
403
if (!link) {
tools/testing/selftests/sched_ext/total_bw.c
411
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/total_bw.c
424
bpf_link__destroy(link);
tools/testing/selftests/sched_ext/total_bw.c
430
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(®ion->link, &iommu->dma_regions);
tools/testing/selftests/vfio/lib/iommu.c
214
list_del_init(®ion->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
103
list_del_rcu(&resampler->link);
virt/kvm/eventfd.c
426
&kvm->irqfds.resampler_list, link) {
virt/kvm/eventfd.c
445
INIT_LIST_HEAD(&resampler->link);
virt/kvm/eventfd.c
447
list_add_rcu(&resampler->link, &kvm->irqfds.resampler_list);
virt/kvm/eventfd.c
532
link, srcu_read_lock_held(&kvm->irq_srcu))
virt/kvm/eventfd.c
549
link, srcu_read_lock_held(&kvm->irq_srcu))
virt/kvm/eventfd.c
571
hlist_add_head_rcu(&kian->link, &kvm->irq_ack_notifier_list);
virt/kvm/eventfd.c
580
hlist_del_init_rcu(&kian->link);
virt/kvm/eventfd.c
693
&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) {