arch/arm/net/bpf_jit_32.c
1402
const s8 *tc;
arch/arm/net/bpf_jit_32.c
1434
tc = arm_bpf_get_reg64(tcc, tmp, ctx);
arch/arm/net/bpf_jit_32.c
1435
emit(ARM_CMP_I(tc[0], hi), ctx);
arch/arm/net/bpf_jit_32.c
1436
_emit(ARM_COND_EQ, ARM_CMP_I(tc[1], lo), ctx);
arch/arm/net/bpf_jit_32.c
1438
emit(ARM_ADDS_I(tc[1], tc[1], 1), ctx);
arch/arm/net/bpf_jit_32.c
1439
emit(ARM_ADC_I(tc[0], tc[0], 0), ctx);
arch/arm64/kvm/emulate-nested.c
1326
.tc = __FGT(g, b, p, f), \
arch/arm64/kvm/emulate-nested.c
2084
type, tc->line,
arch/arm64/kvm/emulate-nested.c
2085
sys_reg_Op0(tc->encoding), sys_reg_Op1(tc->encoding),
arch/arm64/kvm/emulate-nested.c
2086
sys_reg_CRn(tc->encoding), sys_reg_CRm(tc->encoding),
arch/arm64/kvm/emulate-nested.c
2087
sys_reg_Op2(tc->encoding),
arch/arm64/kvm/emulate-nested.c
2088
sys_reg_Op0(tc->end), sys_reg_Op1(tc->end),
arch/arm64/kvm/emulate-nested.c
2089
sys_reg_CRn(tc->end), sys_reg_CRm(tc->end),
arch/arm64/kvm/emulate-nested.c
2090
sys_reg_Op2(tc->end),
arch/arm64/kvm/emulate-nested.c
2131
static __init bool aggregate_fgt(union trap_config tc)
arch/arm64/kvm/emulate-nested.c
2136
switch (tc.fgt) {
arch/arm64/kvm/emulate-nested.c
2175
if ((BIT(tc.bit) & rresx) && (!wmasks || (BIT(tc.bit) & wresx)))
arch/arm64/kvm/emulate-nested.c
2178
if (tc.pol)
arch/arm64/kvm/emulate-nested.c
2179
rmasks->mask |= BIT(tc.bit) & ~rresx;
arch/arm64/kvm/emulate-nested.c
2181
rmasks->nmask |= BIT(tc.bit) & ~rresx;
arch/arm64/kvm/emulate-nested.c
2184
if (tc.pol)
arch/arm64/kvm/emulate-nested.c
2185
wmasks->mask |= BIT(tc.bit) & ~wresx;
arch/arm64/kvm/emulate-nested.c
2187
wmasks->nmask |= BIT(tc.bit) & ~wresx;
arch/arm64/kvm/emulate-nested.c
2261
if (cgt->tc.val & BIT(63)) {
arch/arm64/kvm/emulate-nested.c
2268
xa_mk_value(cgt->tc.val), GFP_KERNEL);
arch/arm64/kvm/emulate-nested.c
2290
union trap_config tc;
arch/arm64/kvm/emulate-nested.c
2293
if (fgt->tc.fgt >= __NR_FGT_GROUP_IDS__) {
arch/arm64/kvm/emulate-nested.c
2299
tc = get_trap_config(enc);
arch/arm64/kvm/emulate-nested.c
2301
if (tc.fgt) {
arch/arm64/kvm/emulate-nested.c
2306
tc.val |= fgt->tc.val;
arch/arm64/kvm/emulate-nested.c
2308
if (!aggregate_fgt(tc)) {
arch/arm64/kvm/emulate-nested.c
2317
xa_mk_value(tc.val), GFP_KERNEL);
arch/arm64/kvm/emulate-nested.c
2361
union trap_config tc;
arch/arm64/kvm/emulate-nested.c
2375
tc = get_trap_config(encoding);
arch/arm64/kvm/emulate-nested.c
2377
if (tc.sri) {
arch/arm64/kvm/emulate-nested.c
2379
sr->name, idx - 1, tc.sri);
arch/arm64/kvm/emulate-nested.c
2383
tc.sri = idx + 1;
arch/arm64/kvm/emulate-nested.c
2385
xa_mk_value(tc.val), GFP_KERNEL);
arch/arm64/kvm/emulate-nested.c
2430
const union trap_config tc)
arch/arm64/kvm/emulate-nested.c
2434
return __compute_trap_behaviour(vcpu, tc.cgt, b);
arch/arm64/kvm/emulate-nested.c
2443
const union trap_config tc)
arch/arm64/kvm/emulate-nested.c
2457
if (tc.pol)
arch/arm64/kvm/emulate-nested.c
2458
return (val & BIT(tc.bit));
arch/arm64/kvm/emulate-nested.c
2468
if (val & BIT(tc.bit))
arch/arm64/kvm/emulate-nested.c
2471
return !(kvm_get_sysreg_res0(kvm, sr) & BIT(tc.bit));
arch/arm64/kvm/emulate-nested.c
2477
union trap_config tc;
arch/arm64/kvm/emulate-nested.c
2487
tc = get_trap_config(sysreg);
arch/arm64/kvm/emulate-nested.c
2494
if (!tc.val)
arch/arm64/kvm/emulate-nested.c
2502
if (tc.fgt != __NO_FGT_GROUP__ &&
arch/arm64/kvm/emulate-nested.c
2503
(vcpu->kvm->arch.fgu[tc.fgt] & BIT(tc.bit))) {
arch/arm64/kvm/emulate-nested.c
2523
switch ((enum fgt_group_id)tc.fgt) {
arch/arm64/kvm/emulate-nested.c
2541
switch (tc.fgf) {
arch/arm64/kvm/emulate-nested.c
2550
tc.fgt = __NO_FGT_GROUP__;
arch/arm64/kvm/emulate-nested.c
2569
sysreg, tc.val);
arch/arm64/kvm/emulate-nested.c
2573
if (tc.fgt != __NO_FGT_GROUP__ && check_fgt_bit(vcpu, fgtreg, tc))
arch/arm64/kvm/emulate-nested.c
2576
b = compute_trap_behaviour(vcpu, tc);
arch/arm64/kvm/emulate-nested.c
2586
if (!tc.sri) {
arch/arm64/kvm/emulate-nested.c
2617
*sr_index = tc.sri - 1;
arch/arm64/kvm/emulate-nested.c
651
.tc = { \
arch/mips/include/asm/mipsmtregs.h
418
#define settc(tc) \
arch/mips/include/asm/mipsmtregs.h
420
write_c0_vpecontrol((read_c0_vpecontrol()&~VPECONTROL_TARGTC) | (tc)); \
arch/mips/include/asm/vpe.h
109
struct tc *get_tc(int index);
arch/mips/include/asm/vpe.h
111
struct tc *alloc_tc(int index);
arch/mips/include/asm/vpe.h
118
void cleanup_tc(struct tc *tc);
arch/mips/include/asm/vpe.h
64
struct list_head tc;
arch/mips/include/asm/vpe.h
83
struct list_head tc; /* The list of TC's with this VPE */
arch/mips/kernel/smp-mt.c
186
unsigned int mvpconf0, ntc, tc, ncpu = 0;
arch/mips/kernel/smp-mt.c
212
for (tc = 0; tc <= ntc; tc++) {
arch/mips/kernel/smp-mt.c
213
settc(tc);
arch/mips/kernel/smp-mt.c
215
smvp_tc_init(tc, mvpconf0);
arch/mips/kernel/smp-mt.c
216
ncpu = smvp_vpe_init(tc, mvpconf0, ncpu);
arch/mips/kernel/smp-mt.c
46
static unsigned int __init smvp_vpe_init(unsigned int tc, unsigned int mvpconf0,
arch/mips/kernel/smp-mt.c
49
if (tc >= smp_max_threads ||
arch/mips/kernel/smp-mt.c
50
(tc > ((mvpconf0 & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT)))
arch/mips/kernel/smp-mt.c
54
if (tc != 0) {
arch/mips/kernel/smp-mt.c
64
set_cpu_possible(tc, true);
arch/mips/kernel/smp-mt.c
65
set_cpu_present(tc, true);
arch/mips/kernel/smp-mt.c
66
__cpu_number_map[tc] = ++ncpu;
arch/mips/kernel/smp-mt.c
67
__cpu_logical_map[ncpu] = tc;
arch/mips/kernel/smp-mt.c
73
if (tc != 0)
arch/mips/kernel/smp-mt.c
76
cpu_set_vpe_id(&cpu_data[ncpu], tc);
arch/mips/kernel/smp-mt.c
81
static void __init smvp_tc_init(unsigned int tc, unsigned int mvpconf0)
arch/mips/kernel/smp-mt.c
85
if (!tc)
arch/mips/kernel/smp-mt.c
90
if (tc >= (((mvpconf0 & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT)+1))
arch/mips/kernel/smp-mt.c
93
write_tc_c0_tcbind(read_tc_c0_tcbind() | tc);
arch/mips/kernel/smp-mt.c
96
write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | (tc << VPECONF0_XTC_SHIFT));
arch/mips/kernel/vpe-mt.c
146
void cleanup_tc(struct tc *tc)
arch/mips/kernel/vpe-mt.c
158
settc(tc->index);
arch/mips/kernel/vpe-mt.c
208
struct tc *t;
arch/mips/kernel/vpe-mt.c
213
t = list_entry(v->tc.next, struct tc, tc);
arch/mips/kernel/vpe-mt.c
229
struct tc *t;
arch/mips/kernel/vpe-mt.c
232
t = list_entry(v->tc.next, struct tc, tc);
arch/mips/kernel/vpe-mt.c
31
struct tc *t;
arch/mips/kernel/vpe-mt.c
330
struct tc *t;
arch/mips/kernel/vpe-mt.c
331
int tc, err;
arch/mips/kernel/vpe-mt.c
386
for (tc = aprp_cpu_index(); tc < hw_tcs; tc++) {
arch/mips/kernel/vpe-mt.c
395
t = alloc_tc(tc);
arch/mips/kernel/vpe-mt.c
407
if (tc < hw_tcs) {
arch/mips/kernel/vpe-mt.c
408
settc(tc);
arch/mips/kernel/vpe-mt.c
410
v = alloc_vpe(tc);
arch/mips/kernel/vpe-mt.c
419
list_add(&t->tc, &v->tc);
arch/mips/kernel/vpe-mt.c
422
if (tc >= aprp_cpu_index()) {
arch/mips/kernel/vpe-mt.c
436
if (tc >= vpelimit) {
arch/mips/kernel/vpe-mt.c
448
if (tc >= aprp_cpu_index()) {
arch/mips/kernel/vpe-mt.c
451
settc(tc);
arch/mips/kernel/vpe-mt.c
46
if (list_empty(&v->tc)) {
arch/mips/kernel/vpe-mt.c
57
t = list_first_entry(&v->tc, struct tc, tc);
arch/mips/kernel/vpe.c
101
INIT_LIST_HEAD(&v->tc);
arch/mips/kernel/vpe.c
114
struct tc *alloc_tc(int index)
arch/mips/kernel/vpe.c
116
struct tc *tc;
arch/mips/kernel/vpe.c
118
tc = kzalloc_obj(struct tc);
arch/mips/kernel/vpe.c
119
if (tc == NULL)
arch/mips/kernel/vpe.c
122
INIT_LIST_HEAD(&tc->tc);
arch/mips/kernel/vpe.c
123
tc->index = index;
arch/mips/kernel/vpe.c
126
list_add_tail(&tc->list, &vpecontrol.tc_list);
arch/mips/kernel/vpe.c
130
return tc;
arch/mips/kernel/vpe.c
75
struct tc *get_tc(int index)
arch/mips/kernel/vpe.c
77
struct tc *res, *t;
arch/mips/net/bpf_jit_comp64.c
549
u8 tc = bpf2mips64[JIT_REG_TC];
arch/mips/net/bpf_jit_comp64.c
566
emit(ctx, ori, tc, MIPS_R_ZERO, MAX_TAIL_CALL_CNT);
arch/mips/net/bpf_jit_comp64.c
578
clobber_reg(ctx, tc);
arch/x86/platform/efi/efi_64.c
533
static efi_status_t efi_thunk_get_time(efi_time_t *tm, efi_time_cap_t *tc)
drivers/android/tests/binder_alloc_kunit.c
231
struct binder_alloc_test_case_info *tc,
drivers/android/tests/binder_alloc_kunit.c
240
tc->buffer_sizes,
drivers/android/tests/binder_alloc_kunit.c
241
tc->free_sequence);
drivers/android/tests/binder_alloc_kunit.c
248
tc->buffer_sizes,
drivers/android/tests/binder_alloc_kunit.c
249
tc->free_sequence, end);
drivers/android/tests/binder_alloc_kunit.c
257
tc->buffer_sizes,
drivers/android/tests/binder_alloc_kunit.c
258
tc->free_sequence);
drivers/android/tests/binder_alloc_kunit.c
271
tc->buffer_sizes,
drivers/android/tests/binder_alloc_kunit.c
272
tc->free_sequence, end);
drivers/android/tests/binder_alloc_kunit.c
300
struct binder_alloc_test_case_info *tc,
drivers/android/tests/binder_alloc_kunit.c
310
case_failed = binder_alloc_test_alloc_free(test, alloc, tc, end);
drivers/android/tests/binder_alloc_kunit.c
315
stringify_free_seq(test, tc->free_sequence,
drivers/android/tests/binder_alloc_kunit.c
319
tc->front_pages ? "front" : "back ",
drivers/android/tests/binder_alloc_kunit.c
320
seq_buf_str(&tc->alignments_sb),
drivers/android/tests/binder_alloc_kunit.c
327
if (is_dup(tc->free_sequence, index, i))
drivers/android/tests/binder_alloc_kunit.c
329
tc->free_sequence[index] = i;
drivers/android/tests/binder_alloc_kunit.c
330
permute_frees(test, alloc, tc, runs, failures, index + 1, end);
drivers/android/tests/binder_alloc_kunit.c
336
struct binder_alloc_test_case_info *tc,
drivers/android/tests/binder_alloc_kunit.c
346
tc->free_sequence = seq;
drivers/android/tests/binder_alloc_kunit.c
360
tc->front_pages = true;
drivers/android/tests/binder_alloc_kunit.c
361
tc->buffer_sizes = front_sizes;
drivers/android/tests/binder_alloc_kunit.c
362
permute_frees(test, alloc, tc, runs, failures, 0,
drivers/android/tests/binder_alloc_kunit.c
365
tc->front_pages = false;
drivers/android/tests/binder_alloc_kunit.c
366
tc->buffer_sizes = back_sizes;
drivers/android/tests/binder_alloc_kunit.c
367
permute_frees(test, alloc, tc, runs, failures, 0, alloc->buffer_size);
drivers/android/tests/binder_alloc_kunit.c
379
struct binder_alloc_test_case_info tc = {0};
drivers/android/tests/binder_alloc_kunit.c
381
seq_buf_init(&tc.alignments_sb, tc.alignments,
drivers/android/tests/binder_alloc_kunit.c
383
stringify_alignments(test, alignments, &tc.alignments_sb);
drivers/android/tests/binder_alloc_kunit.c
385
gen_buf_sizes(test, alloc, &tc, end_offset, runs, failures);
drivers/ata/pata_mpc52xx.c
464
unsigned int tc = min(cur_len, MAX_DMA_BUFFER_SIZE);
drivers/ata/pata_mpc52xx.c
469
bd->status = tc;
drivers/ata/pata_mpc52xx.c
474
bd->status = tc;
drivers/ata/pata_mpc52xx.c
482
cur_addr += tc;
drivers/ata/pata_mpc52xx.c
483
cur_len -= tc;
drivers/base/transport_class.c
71
static int anon_transport_dummy_function(struct transport_container *tc,
drivers/clocksource/timer-atmel-tcb.c
256
static int __init setup_clkevents(struct atmel_tc *tc, int divisor_idx)
drivers/clocksource/timer-atmel-tcb.c
259
struct clk *t2_clk = tc->clk[2];
drivers/clocksource/timer-atmel-tcb.c
260
int irq = tc->irq[2];
drivers/clocksource/timer-atmel-tcb.c
261
int bits = tc->tcb_config->counter_width;
drivers/clocksource/timer-atmel-tcb.c
268
clkevt.regs = tc->regs;
drivers/clocksource/timer-atmel-tcb.c
275
ret = clk_prepare_enable(tc->slow_clk);
drivers/clocksource/timer-atmel-tcb.c
281
clkevt.rate = clk_get_rate(tc->slow_clk);
drivers/clocksource/timer-atmel-tcb.c
293
clk_disable_unprepare(tc->slow_clk);
drivers/clocksource/timer-atmel-tcb.c
304
static int __init setup_clkevents(struct atmel_tc *tc, int divisor_idx)
drivers/clocksource/timer-atmel-tcb.c
312
static void __init tcb_setup_dual_chan(struct atmel_tc *tc, int mck_divisor_idx)
drivers/clocksource/timer-atmel-tcb.c
341
static void __init tcb_setup_single_chan(struct atmel_tc *tc, int mck_divisor_idx)
drivers/clocksource/timer-atmel-tcb.c
377
struct atmel_tc tc;
drivers/clocksource/timer-atmel-tcb.c
391
tc.regs = of_iomap(node->parent, 0);
drivers/clocksource/timer-atmel-tcb.c
392
if (!tc.regs)
drivers/clocksource/timer-atmel-tcb.c
399
tc.slow_clk = of_clk_get_by_name(node->parent, "slow_clk");
drivers/clocksource/timer-atmel-tcb.c
400
if (IS_ERR(tc.slow_clk))
drivers/clocksource/timer-atmel-tcb.c
401
return PTR_ERR(tc.slow_clk);
drivers/clocksource/timer-atmel-tcb.c
403
tc.clk[0] = t0_clk;
drivers/clocksource/timer-atmel-tcb.c
404
tc.clk[1] = of_clk_get_by_name(node->parent, "t1_clk");
drivers/clocksource/timer-atmel-tcb.c
405
if (IS_ERR(tc.clk[1]))
drivers/clocksource/timer-atmel-tcb.c
406
tc.clk[1] = t0_clk;
drivers/clocksource/timer-atmel-tcb.c
407
tc.clk[2] = of_clk_get_by_name(node->parent, "t2_clk");
drivers/clocksource/timer-atmel-tcb.c
408
if (IS_ERR(tc.clk[2]))
drivers/clocksource/timer-atmel-tcb.c
409
tc.clk[2] = t0_clk;
drivers/clocksource/timer-atmel-tcb.c
411
tc.irq[2] = of_irq_get(node->parent, 2);
drivers/clocksource/timer-atmel-tcb.c
412
if (tc.irq[2] <= 0) {
drivers/clocksource/timer-atmel-tcb.c
413
tc.irq[2] = of_irq_get(node->parent, 0);
drivers/clocksource/timer-atmel-tcb.c
414
if (tc.irq[2] <= 0)
drivers/clocksource/timer-atmel-tcb.c
422
tc.tcb_config = match->data;
drivers/clocksource/timer-atmel-tcb.c
423
bits = tc.tcb_config->counter_width;
drivers/clocksource/timer-atmel-tcb.c
425
for (i = 0; i < ARRAY_SIZE(tc.irq); i++)
drivers/clocksource/timer-atmel-tcb.c
426
writel(ATMEL_TC_ALL_IRQ, tc.regs + ATMEL_TC_REG(i, IDR));
drivers/clocksource/timer-atmel-tcb.c
437
if (tc.tcb_config->has_gclk)
drivers/clocksource/timer-atmel-tcb.c
456
tcaddr = tc.regs;
drivers/clocksource/timer-atmel-tcb.c
462
tcb_setup_single_chan(&tc, best_divisor_idx);
drivers/clocksource/timer-atmel-tcb.c
469
ret = clk_prepare_enable(tc.clk[1]);
drivers/clocksource/timer-atmel-tcb.c
475
tcb_setup_dual_chan(&tc, best_divisor_idx);
drivers/clocksource/timer-atmel-tcb.c
486
ret = setup_clkevents(&tc, best_divisor_idx);
drivers/clocksource/timer-atmel-tcb.c
502
clk_disable_unprepare(tc.clk[1]);
drivers/crypto/ccp/sev-dev-tsm.c
188
unsigned int tc)
drivers/crypto/ccp/sev-dev-tsm.c
192
if (ide[tc]) {
drivers/crypto/ccp/sev-dev-tsm.c
193
pci_err(pdev, "Stream for class=%d already registered", tc);
drivers/crypto/ccp/sev-dev-tsm.c
203
ide[tc] = ide1;
drivers/dma/amba-pl08x.c
2287
u32 mask = 0, err, tc, i;
drivers/dma/amba-pl08x.c
2296
tc = readl(pl08x->base + PL080_TC_STATUS);
drivers/dma/amba-pl08x.c
2297
if (tc)
drivers/dma/amba-pl08x.c
2298
writel(tc, pl08x->base + PL080_TC_CLEAR);
drivers/dma/amba-pl08x.c
2300
if (!err && !tc)
drivers/dma/amba-pl08x.c
2304
if ((BIT(i) & err) || (BIT(i) & tc)) {
drivers/dma/idxd/perfmon.c
312
flt_tc = flt_cfg.tc;
drivers/dma/idxd/registers.h
566
u64 tc:8;
drivers/dma/tegra210-adma.c
144
unsigned int tc;
drivers/dma/tegra210-adma.c
465
tdma_ch_write(tdc, ADMA_CH_TC - tdc->tdma->cdata->ch_tc_offset_diff, ch_regs->tc);
drivers/dma/tegra210-adma.c
629
residual = desc->ch_regs.tc;
drivers/dma/tegra210-adma.c
730
ch_regs->tc = desc->period_len & ADMA_CH_TC_COUNT_MASK;
drivers/dma/tegra210-adma.c
863
ch_reg->tc = tdma_ch_read(tdc, ADMA_CH_TC - tdma->cdata->ch_tc_offset_diff);
drivers/dma/tegra210-adma.c
918
tdma_ch_write(tdc, ADMA_CH_TC - tdma->cdata->ch_tc_offset_diff, ch_reg->tc);
drivers/dma/ti/edma.c
1447
if (!echan->tc)
drivers/dma/ti/edma.c
1673
if (echan->tc) {
drivers/dma/ti/edma.c
1674
eventq_no = echan->tc->id;
drivers/dma/ti/edma.c
1677
echan->tc = &ecc->tc_list[ecc->info->default_queue];
drivers/dma/ti/edma.c
1678
eventq_no = echan->tc->id;
drivers/dma/ti/edma.c
1737
echan->tc = NULL;
drivers/dma/ti/edma.c
220
struct edma_tc *tc;
drivers/dma/ti/edma.c
2256
echan->tc = &echan->ecc->tc_list[dma_spec->args[1]];
drivers/dma/ti/edma.c
827
if (!echan->tc && echan->edesc->cyclic)
drivers/dma/xilinx/xilinx_dpdma.c
294
enum xilinx_dpdma_testcases tc;
drivers/dma/xilinx/xilinx_dpdma.c
352
.tc = DPDMA_TC_INTR_DONE,
drivers/firmware/efi/runtime-wrappers.c
352
static efi_status_t virt_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc)
drivers/firmware/efi/runtime-wrappers.c
358
status = efi_queue_work(GET_TIME, tm, tc);
drivers/gpu/drm/bridge/tc358767.c
1009
out_bw = tc->link.num_lanes * tc->link.rate;
drivers/gpu/drm/bridge/tc358767.c
1014
ret = regmap_write(tc->regmap, DP0_VIDSYNCDELAY,
drivers/gpu/drm/bridge/tc358767.c
1018
ret = regmap_write(tc->regmap, DP0_TOTALVAL,
drivers/gpu/drm/bridge/tc358767.c
1024
ret = regmap_write(tc->regmap, DP0_STARTVAL,
drivers/gpu/drm/bridge/tc358767.c
1030
ret = regmap_write(tc->regmap, DP0_ACTIVEVAL,
drivers/gpu/drm/bridge/tc358767.c
1045
ret = regmap_write(tc->regmap, DP0_SYNCVAL, dp0_syncval);
drivers/gpu/drm/bridge/tc358767.c
1057
ret = regmap_write(tc->regmap, DPIPXLFMT, dpipxlfmt);
drivers/gpu/drm/bridge/tc358767.c
1061
ret = regmap_write(tc->regmap, DP0_MISC,
drivers/gpu/drm/bridge/tc358767.c
1068
static int tc_wait_link_training(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
1073
ret = tc_poll_timeout(tc, DP0_LTSTAT, LT_LOOPDONE,
drivers/gpu/drm/bridge/tc358767.c
1076
dev_err(tc->dev, "Link training timeout waiting for LT_LOOPDONE!\n");
drivers/gpu/drm/bridge/tc358767.c
1080
ret = regmap_read(tc->regmap, DP0_LTSTAT, &value);
drivers/gpu/drm/bridge/tc358767.c
1087
static int tc_main_link_enable(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
1089
struct drm_dp_aux *aux = &tc->aux;
drivers/gpu/drm/bridge/tc358767.c
1090
struct device *dev = tc->dev;
drivers/gpu/drm/bridge/tc358767.c
1096
dev_dbg(tc->dev, "link enable\n");
drivers/gpu/drm/bridge/tc358767.c
1098
ret = regmap_read(tc->regmap, DP0CTL, &value);
drivers/gpu/drm/bridge/tc358767.c
1103
ret = regmap_write(tc->regmap, DP0CTL, 0);
drivers/gpu/drm/bridge/tc358767.c
1108
ret = regmap_write(tc->regmap, DP0_SRCCTRL,
drivers/gpu/drm/bridge/tc358767.c
1109
tc_srcctrl(tc) |
drivers/gpu/drm/bridge/tc358767.c
1110
FIELD_PREP(DP0_SRCCTRL_PRE0, tc->pre_emphasis[0]) |
drivers/gpu/drm/bridge/tc358767.c
1111
FIELD_PREP(DP0_SRCCTRL_PRE1, tc->pre_emphasis[1]));
drivers/gpu/drm/bridge/tc358767.c
1115
ret = regmap_write(tc->regmap, DP1_SRCCTRL,
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
1118
FIELD_PREP(DP1_SRCCTRL_PRE, tc->pre_emphasis[1]));
drivers/gpu/drm/bridge/tc358767.c
1122
ret = tc_set_syspllparam(tc);
drivers/gpu/drm/bridge/tc358767.c
1128
if (tc->link.num_lanes == 2)
drivers/gpu/drm/bridge/tc358767.c
1131
ret = regmap_write(tc->regmap, DP_PHY_CTRL, dp_phy_ctrl);
drivers/gpu/drm/bridge/tc358767.c
1136
ret = tc_pllupdate(tc, DP0_PLLCTRL);
drivers/gpu/drm/bridge/tc358767.c
1140
ret = tc_pllupdate(tc, DP1_PLLCTRL);
drivers/gpu/drm/bridge/tc358767.c
1146
ret = regmap_write(tc->regmap, DP_PHY_CTRL, dp_phy_ctrl);
drivers/gpu/drm/bridge/tc358767.c
1149
ret = regmap_write(tc->regmap, DP_PHY_CTRL, dp_phy_ctrl);
drivers/gpu/drm/bridge/tc358767.c
1151
ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 500, 100000);
drivers/gpu/drm/bridge/tc358767.c
1158
ret = regmap_update_bits(tc->regmap, DP0_MISC, BPC_8, BPC_8);
drivers/gpu/drm/bridge/tc358767.c
1169
if (tc->assr != tc->link.assr) {
drivers/gpu/drm/bridge/tc358767.c
1171
tc->assr);
drivers/gpu/drm/bridge/tc358767.c
1173
tmp[0] = tc->assr;
drivers/gpu/drm/bridge/tc358767.c
1182
if (tmp[0] != tc->assr) {
drivers/gpu/drm/bridge/tc358767.c
1184
tc->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
1211
FIELD_PREP(DP_TRAIN_PRE_EMPHASIS_MASK, tc->pre_emphasis[0]);
drivers/gpu/drm/bridge/tc358767.c
1213
FIELD_PREP(DP_TRAIN_PRE_EMPHASIS_MASK, tc->pre_emphasis[1]);
drivers/gpu/drm/bridge/tc358767.c
1221
ret = regmap_write(tc->regmap, DP0_SNKLTCTRL,
drivers/gpu/drm/bridge/tc358767.c
1227
ret = regmap_write(tc->regmap, DP0_LTLOOPCTRL,
drivers/gpu/drm/bridge/tc358767.c
1234
ret = regmap_write(tc->regmap, DP0_SRCCTRL,
drivers/gpu/drm/bridge/tc358767.c
1235
tc_srcctrl(tc) | DP0_SRCCTRL_SCRMBLDIS |
drivers/gpu/drm/bridge/tc358767.c
1238
FIELD_PREP(DP0_SRCCTRL_PRE0, tc->pre_emphasis[0]) |
drivers/gpu/drm/bridge/tc358767.c
1239
FIELD_PREP(DP0_SRCCTRL_PRE1, tc->pre_emphasis[1]));
drivers/gpu/drm/bridge/tc358767.c
1244
ret = regmap_write(tc->regmap, DP0CTL,
drivers/gpu/drm/bridge/tc358767.c
1245
(drm_dp_enhanced_frame_cap(tc->link.dpcd) ?
drivers/gpu/drm/bridge/tc358767.c
1252
ret = tc_wait_link_training(tc);
drivers/gpu/drm/bridge/tc358767.c
1257
dev_err(tc->dev, "Link training phase 1 failed: %s\n",
drivers/gpu/drm/bridge/tc358767.c
1265
ret = regmap_write(tc->regmap, DP0_SNKLTCTRL,
drivers/gpu/drm/bridge/tc358767.c
1271
ret = regmap_write(tc->regmap, DP0_SRCCTRL,
drivers/gpu/drm/bridge/tc358767.c
1272
tc_srcctrl(tc) | DP0_SRCCTRL_SCRMBLDIS |
drivers/gpu/drm/bridge/tc358767.c
1275
FIELD_PREP(DP0_SRCCTRL_PRE0, tc->pre_emphasis[0]) |
drivers/gpu/drm/bridge/tc358767.c
1276
FIELD_PREP(DP0_SRCCTRL_PRE1, tc->pre_emphasis[1]));
drivers/gpu/drm/bridge/tc358767.c
1281
ret = tc_wait_link_training(tc);
drivers/gpu/drm/bridge/tc358767.c
1286
dev_err(tc->dev, "Link training phase 2 failed: %s\n",
drivers/gpu/drm/bridge/tc358767.c
1301
ret = regmap_write(tc->regmap, DP0_SRCCTRL, tc_srcctrl(tc) |
drivers/gpu/drm/bridge/tc358767.c
1303
FIELD_PREP(DP0_SRCCTRL_PRE0, tc->pre_emphasis[0]) |
drivers/gpu/drm/bridge/tc358767.c
1304
FIELD_PREP(DP0_SRCCTRL_PRE1, tc->pre_emphasis[1]));
drivers/gpu/drm/bridge/tc358767.c
1310
tmp[0] = tc->link.scrambler_dis ? DP_LINK_SCRAMBLING_DISABLE : 0x00;
drivers/gpu/drm/bridge/tc358767.c
1325
dev_err(tc->dev, "Lane 0 failed: %x\n", value);
drivers/gpu/drm/bridge/tc358767.c
1329
if (tc->link.num_lanes == 2) {
drivers/gpu/drm/bridge/tc358767.c
1333
dev_err(tc->dev, "Lane 1 failed: %x\n", value);
drivers/gpu/drm/bridge/tc358767.c
1338
dev_err(tc->dev, "Interlane align failed\n");
drivers/gpu/drm/bridge/tc358767.c
1355
dev_err(tc->dev, "Failed to read DPCD: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1358
dev_err(tc->dev, "Failed to write DPCD: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1362
static int tc_main_link_disable(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
1366
dev_dbg(tc->dev, "link disable\n");
drivers/gpu/drm/bridge/tc358767.c
1368
ret = regmap_write(tc->regmap, DP0_SRCCTRL, 0);
drivers/gpu/drm/bridge/tc358767.c
1372
ret = regmap_write(tc->regmap, DP0CTL, 0);
drivers/gpu/drm/bridge/tc358767.c
1376
return regmap_update_bits(tc->regmap, DP_PHY_CTRL,
drivers/gpu/drm/bridge/tc358767.c
1381
static int tc_dsi_rx_enable(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
1386
regmap_write(tc->regmap, PPI_D0S_CLRSIPOCOUNT, 5);
drivers/gpu/drm/bridge/tc358767.c
1387
regmap_write(tc->regmap, PPI_D1S_CLRSIPOCOUNT, 5);
drivers/gpu/drm/bridge/tc358767.c
1388
regmap_write(tc->regmap, PPI_D2S_CLRSIPOCOUNT, 5);
drivers/gpu/drm/bridge/tc358767.c
1389
regmap_write(tc->regmap, PPI_D3S_CLRSIPOCOUNT, 5);
drivers/gpu/drm/bridge/tc358767.c
1390
regmap_write(tc->regmap, PPI_D0S_ATMR, 0);
drivers/gpu/drm/bridge/tc358767.c
1391
regmap_write(tc->regmap, PPI_D1S_ATMR, 0);
drivers/gpu/drm/bridge/tc358767.c
1392
regmap_write(tc->regmap, PPI_TX_RX_TA, TTA_GET | TTA_SURE);
drivers/gpu/drm/bridge/tc358767.c
1393
regmap_write(tc->regmap, PPI_LPTXTIMECNT, LPX_PERIOD);
drivers/gpu/drm/bridge/tc358767.c
1395
value = ((LANEENABLE_L0EN << tc->dsi->lanes) - LANEENABLE_L0EN) |
drivers/gpu/drm/bridge/tc358767.c
1397
regmap_write(tc->regmap, PPI_LANEENABLE, value);
drivers/gpu/drm/bridge/tc358767.c
1398
regmap_write(tc->regmap, DSI_LANEENABLE, value);
drivers/gpu/drm/bridge/tc358767.c
1406
ret = regmap_write(tc->regmap, SYSCTRL, value);
drivers/gpu/drm/bridge/tc358767.c
1412
regmap_write(tc->regmap, PPI_STARTPPI, PPI_START_FUNCTION);
drivers/gpu/drm/bridge/tc358767.c
1413
regmap_write(tc->regmap, DSI_STARTDSI, DSI_RX_START);
drivers/gpu/drm/bridge/tc358767.c
1418
static int tc_dpi_rx_enable(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
1428
return regmap_write(tc->regmap, SYSCTRL, value);
drivers/gpu/drm/bridge/tc358767.c
1431
static int tc_dpi_stream_enable(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
1435
dev_dbg(tc->dev, "enable video stream\n");
drivers/gpu/drm/bridge/tc358767.c
1438
ret = tc_set_syspllparam(tc);
drivers/gpu/drm/bridge/tc358767.c
1446
ret = tc_pllupdate(tc, DP0_PLLCTRL);
drivers/gpu/drm/bridge/tc358767.c
1450
ret = tc_pllupdate(tc, DP1_PLLCTRL);
drivers/gpu/drm/bridge/tc358767.c
1455
ret = tc_pxl_pll_en(tc, clk_get_rate(tc->refclk),
drivers/gpu/drm/bridge/tc358767.c
1456
1000 * tc->mode.clock);
drivers/gpu/drm/bridge/tc358767.c
1460
ret = tc_set_common_video_mode(tc, &tc->mode);
drivers/gpu/drm/bridge/tc358767.c
1464
ret = tc_set_dpi_video_mode(tc, &tc->mode);
drivers/gpu/drm/bridge/tc358767.c
1468
return tc_dsi_rx_enable(tc);
drivers/gpu/drm/bridge/tc358767.c
1471
static int tc_dpi_stream_disable(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
1473
dev_dbg(tc->dev, "disable video stream\n");
drivers/gpu/drm/bridge/tc358767.c
1475
tc_pxl_pll_dis(tc);
drivers/gpu/drm/bridge/tc358767.c
1480
static int tc_edp_stream_enable(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
1485
dev_dbg(tc->dev, "enable video stream\n");
drivers/gpu/drm/bridge/tc358767.c
1498
if (tc->input_connector_dsi || tc_test_pattern) {
drivers/gpu/drm/bridge/tc358767.c
1499
ret = tc_pxl_pll_en(tc, clk_get_rate(tc->refclk),
drivers/gpu/drm/bridge/tc358767.c
1500
1000 * tc->mode.clock);
drivers/gpu/drm/bridge/tc358767.c
1505
ret = tc_set_common_video_mode(tc, &tc->mode);
drivers/gpu/drm/bridge/tc358767.c
1509
ret = tc_set_edp_video_mode(tc, &tc->mode);
drivers/gpu/drm/bridge/tc358767.c
1514
ret = tc_stream_clock_calc(tc);
drivers/gpu/drm/bridge/tc358767.c
1519
if (drm_dp_enhanced_frame_cap(tc->link.dpcd))
drivers/gpu/drm/bridge/tc358767.c
1521
ret = regmap_write(tc->regmap, DP0CTL, value);
drivers/gpu/drm/bridge/tc358767.c
1533
ret = regmap_write(tc->regmap, DP0CTL, value);
drivers/gpu/drm/bridge/tc358767.c
1538
if (tc->input_connector_dsi)
drivers/gpu/drm/bridge/tc358767.c
1539
return tc_dsi_rx_enable(tc);
drivers/gpu/drm/bridge/tc358767.c
1541
return tc_dpi_rx_enable(tc);
drivers/gpu/drm/bridge/tc358767.c
1544
static int tc_edp_stream_disable(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
1548
dev_dbg(tc->dev, "disable video stream\n");
drivers/gpu/drm/bridge/tc358767.c
1550
ret = regmap_update_bits(tc->regmap, DP0CTL, VID_EN, 0);
drivers/gpu/drm/bridge/tc358767.c
1554
tc_pxl_pll_dis(tc);
drivers/gpu/drm/bridge/tc358767.c
1563
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1566
ret = tc_dpi_stream_enable(tc);
drivers/gpu/drm/bridge/tc358767.c
1568
dev_err(tc->dev, "main link stream start error: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1569
tc_main_link_disable(tc);
drivers/gpu/drm/bridge/tc358767.c
1577
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1580
ret = tc_dpi_stream_disable(tc);
drivers/gpu/drm/bridge/tc358767.c
1582
dev_err(tc->dev, "main link stream stop error: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1588
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1591
ret = tc_get_display_props(tc);
drivers/gpu/drm/bridge/tc358767.c
1593
dev_err(tc->dev, "failed to read display props: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1597
ret = tc_main_link_enable(tc);
drivers/gpu/drm/bridge/tc358767.c
1599
dev_err(tc->dev, "main link enable error: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1603
ret = tc_edp_stream_enable(tc);
drivers/gpu/drm/bridge/tc358767.c
1605
dev_err(tc->dev, "main link stream start error: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1606
tc_main_link_disable(tc);
drivers/gpu/drm/bridge/tc358767.c
1614
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1617
ret = tc_edp_stream_disable(tc);
drivers/gpu/drm/bridge/tc358767.c
1619
dev_err(tc->dev, "main link stream stop error: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1621
ret = tc_main_link_disable(tc);
drivers/gpu/drm/bridge/tc358767.c
1623
dev_err(tc->dev, "main link disable error: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1631
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1635
ret = tc_pxl_pll_calc(tc, clk_get_rate(tc->refclk),
drivers/gpu/drm/bridge/tc358767.c
1655
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1659
ret = tc_pxl_pll_calc(tc, clk_get_rate(tc->refclk),
drivers/gpu/drm/bridge/tc358767.c
1691
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1700
avail = tc->link.num_lanes * tc->link.rate;
drivers/gpu/drm/bridge/tc358767.c
1712
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1714
drm_mode_copy(&tc->mode, adj);
drivers/gpu/drm/bridge/tc358767.c
1720
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1723
ret = tc_get_display_props(tc);
drivers/gpu/drm/bridge/tc358767.c
1725
dev_err(tc->dev, "failed to read display props: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1729
return drm_edid_read_ddc(connector, &tc->aux.ddc);
drivers/gpu/drm/bridge/tc358767.c
1734
struct tc_data *tc = connector_to_tc(connector);
drivers/gpu/drm/bridge/tc358767.c
1739
ret = tc_get_display_props(tc);
drivers/gpu/drm/bridge/tc358767.c
1741
dev_err(tc->dev, "failed to read display props: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
1745
if (tc->panel_bridge) {
drivers/gpu/drm/bridge/tc358767.c
1746
num_modes = drm_bridge_get_modes(tc->panel_bridge, connector);
drivers/gpu/drm/bridge/tc358767.c
1751
drm_edid = tc_edid_read(&tc->bridge, connector);
drivers/gpu/drm/bridge/tc358767.c
1766
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1771
ret = regmap_read(tc->regmap, GPIOI, &val);
drivers/gpu/drm/bridge/tc358767.c
1775
conn = val & BIT(tc->hpd_pin);
drivers/gpu/drm/bridge/tc358767.c
1786
struct tc_data *tc = connector_to_tc(connector);
drivers/gpu/drm/bridge/tc358767.c
1788
if (tc->hpd_pin >= 0)
drivers/gpu/drm/bridge/tc358767.c
1789
return tc_bridge_detect(&tc->bridge, connector);
drivers/gpu/drm/bridge/tc358767.c
1791
if (tc->panel_bridge)
drivers/gpu/drm/bridge/tc358767.c
1810
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1812
if (!tc->panel_bridge)
drivers/gpu/drm/bridge/tc358767.c
1815
return drm_bridge_attach(tc->bridge.encoder, tc->panel_bridge,
drivers/gpu/drm/bridge/tc358767.c
1816
&tc->bridge, flags);
drivers/gpu/drm/bridge/tc358767.c
1824
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358767.c
1828
if (tc->panel_bridge) {
drivers/gpu/drm/bridge/tc358767.c
1830
ret = drm_bridge_attach(tc->bridge.encoder, tc->panel_bridge,
drivers/gpu/drm/bridge/tc358767.c
1831
&tc->bridge, flags | DRM_BRIDGE_ATTACH_NO_CONNECTOR);
drivers/gpu/drm/bridge/tc358767.c
1839
tc->aux.drm_dev = drm;
drivers/gpu/drm/bridge/tc358767.c
1840
ret = drm_dp_aux_register(&tc->aux);
drivers/gpu/drm/bridge/tc358767.c
1845
drm_connector_helper_add(&tc->connector, &tc_connector_helper_funcs);
drivers/gpu/drm/bridge/tc358767.c
1846
ret = drm_connector_init(drm, &tc->connector, &tc_connector_funcs, tc->bridge.type);
drivers/gpu/drm/bridge/tc358767.c
1851
if (tc->hpd_pin >= 0) {
drivers/gpu/drm/bridge/tc358767.c
1852
if (tc->have_irq)
drivers/gpu/drm/bridge/tc358767.c
1853
tc->connector.polled = DRM_CONNECTOR_POLL_HPD;
drivers/gpu/drm/bridge/tc358767.c
1855
tc->connector.polled = DRM_CONNECTOR_POLL_CONNECT |
drivers/gpu/drm/bridge/tc358767.c
1859
drm_display_info_set_bus_formats(&tc->connector.display_info,
drivers/gpu/drm/bridge/tc358767.c
1861
tc->connector.display_info.bus_flags =
drivers/gpu/drm/bridge/tc358767.c
1865
drm_connector_attach_encoder(&tc->connector, tc->bridge.encoder);
drivers/gpu/drm/bridge/tc358767.c
1869
drm_dp_aux_unregister(&tc->aux);
drivers/gpu/drm/bridge/tc358767.c
2229
struct tc_data *tc = arg;
drivers/gpu/drm/bridge/tc358767.c
2233
r = regmap_read(tc->regmap, INTSTS_G, &val);
drivers/gpu/drm/bridge/tc358767.c
2243
regmap_read(tc->regmap, SYSSTAT, &stat);
drivers/gpu/drm/bridge/tc358767.c
2245
dev_err(tc->dev, "syserr %x\n", stat);
drivers/gpu/drm/bridge/tc358767.c
2248
if (tc->hpd_pin >= 0 && tc->bridge.dev && tc->aux.drm_dev) {
drivers/gpu/drm/bridge/tc358767.c
2255
bool h = val & INT_GPIO_H(tc->hpd_pin);
drivers/gpu/drm/bridge/tc358767.c
2256
bool lc = val & INT_GPIO_LC(tc->hpd_pin);
drivers/gpu/drm/bridge/tc358767.c
2259
dev_dbg(tc->dev, "GPIO%d: %s %s\n", tc->hpd_pin,
drivers/gpu/drm/bridge/tc358767.c
2261
drm_kms_helper_hotplug_event(tc->bridge.dev);
drivers/gpu/drm/bridge/tc358767.c
2265
regmap_write(tc->regmap, INTSTS_G, val);
drivers/gpu/drm/bridge/tc358767.c
2270
static int tc_mipi_dsi_host_attach(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
2272
struct device *dev = tc->dev;
drivers/gpu/drm/bridge/tc358767.c
2302
tc->dsi = dsi;
drivers/gpu/drm/bridge/tc358767.c
2317
static int tc_probe_dpi_bridge_endpoint(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
2319
struct device *dev = tc->dev;
drivers/gpu/drm/bridge/tc358767.c
2337
tc->panel_bridge = bridge;
drivers/gpu/drm/bridge/tc358767.c
2338
tc->bridge.type = DRM_MODE_CONNECTOR_DPI;
drivers/gpu/drm/bridge/tc358767.c
2346
static int tc_probe_edp_bridge_endpoint(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
2348
struct device *dev = tc->dev;
drivers/gpu/drm/bridge/tc358767.c
2365
tc->panel_bridge = panel_bridge;
drivers/gpu/drm/bridge/tc358767.c
2366
tc->bridge.type = DRM_MODE_CONNECTOR_eDP;
drivers/gpu/drm/bridge/tc358767.c
2368
tc->bridge.type = DRM_MODE_CONNECTOR_DisplayPort;
drivers/gpu/drm/bridge/tc358767.c
2371
if (tc->hpd_pin >= 0)
drivers/gpu/drm/bridge/tc358767.c
2372
tc->bridge.ops |= DRM_BRIDGE_OP_DETECT;
drivers/gpu/drm/bridge/tc358767.c
2373
tc->bridge.ops |= DRM_BRIDGE_OP_EDID;
drivers/gpu/drm/bridge/tc358767.c
2419
static int tc_probe_bridge_endpoint(struct tc_data *tc, enum tc_mode mode)
drivers/gpu/drm/bridge/tc358767.c
2421
struct device *dev = tc->dev;
drivers/gpu/drm/bridge/tc358767.c
2429
tc->pre_emphasis,
drivers/gpu/drm/bridge/tc358767.c
2430
ARRAY_SIZE(tc->pre_emphasis));
drivers/gpu/drm/bridge/tc358767.c
2432
if (tc->pre_emphasis[0] < 0 || tc->pre_emphasis[0] > 2 ||
drivers/gpu/drm/bridge/tc358767.c
2433
tc->pre_emphasis[1] < 0 || tc->pre_emphasis[1] > 2) {
drivers/gpu/drm/bridge/tc358767.c
2442
tc->input_connector_dsi = false;
drivers/gpu/drm/bridge/tc358767.c
2443
return tc_probe_edp_bridge_endpoint(tc);
drivers/gpu/drm/bridge/tc358767.c
2445
tc->input_connector_dsi = true;
drivers/gpu/drm/bridge/tc358767.c
2446
return tc_probe_dpi_bridge_endpoint(tc);
drivers/gpu/drm/bridge/tc358767.c
2448
tc->input_connector_dsi = true;
drivers/gpu/drm/bridge/tc358767.c
2449
return tc_probe_edp_bridge_endpoint(tc);
drivers/gpu/drm/bridge/tc358767.c
2460
struct tc_data *tc;
drivers/gpu/drm/bridge/tc358767.c
2467
tc = devm_drm_bridge_alloc(dev, struct tc_data, bridge, funcs);
drivers/gpu/drm/bridge/tc358767.c
2468
if (IS_ERR(tc))
drivers/gpu/drm/bridge/tc358767.c
2469
return PTR_ERR(tc);
drivers/gpu/drm/bridge/tc358767.c
2471
tc->dev = dev;
drivers/gpu/drm/bridge/tc358767.c
2473
ret = tc_probe_bridge_endpoint(tc, mode);
drivers/gpu/drm/bridge/tc358767.c
2477
tc->refclk = devm_clk_get_enabled(dev, "ref");
drivers/gpu/drm/bridge/tc358767.c
2478
if (IS_ERR(tc->refclk))
drivers/gpu/drm/bridge/tc358767.c
2479
return dev_err_probe(dev, PTR_ERR(tc->refclk),
drivers/gpu/drm/bridge/tc358767.c
2486
tc->sd_gpio = devm_gpiod_get_optional(dev, "shutdown", GPIOD_OUT_HIGH);
drivers/gpu/drm/bridge/tc358767.c
2487
if (IS_ERR(tc->sd_gpio))
drivers/gpu/drm/bridge/tc358767.c
2488
return PTR_ERR(tc->sd_gpio);
drivers/gpu/drm/bridge/tc358767.c
2490
if (tc->sd_gpio) {
drivers/gpu/drm/bridge/tc358767.c
2491
gpiod_set_value_cansleep(tc->sd_gpio, 0);
drivers/gpu/drm/bridge/tc358767.c
2496
tc->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
drivers/gpu/drm/bridge/tc358767.c
2497
if (IS_ERR(tc->reset_gpio))
drivers/gpu/drm/bridge/tc358767.c
2498
return PTR_ERR(tc->reset_gpio);
drivers/gpu/drm/bridge/tc358767.c
2500
if (tc->reset_gpio) {
drivers/gpu/drm/bridge/tc358767.c
2501
gpiod_set_value_cansleep(tc->reset_gpio, 1);
drivers/gpu/drm/bridge/tc358767.c
2505
tc->regmap = devm_regmap_init_i2c(client, &tc_regmap_config);
drivers/gpu/drm/bridge/tc358767.c
2506
if (IS_ERR(tc->regmap)) {
drivers/gpu/drm/bridge/tc358767.c
2507
ret = PTR_ERR(tc->regmap);
drivers/gpu/drm/bridge/tc358767.c
2513
&tc->hpd_pin);
drivers/gpu/drm/bridge/tc358767.c
2515
tc->hpd_pin = -ENODEV;
drivers/gpu/drm/bridge/tc358767.c
2517
if (tc->hpd_pin < 0 || tc->hpd_pin > 1) {
drivers/gpu/drm/bridge/tc358767.c
2525
regmap_write(tc->regmap, INTCTL_G, INT_SYSERR);
drivers/gpu/drm/bridge/tc358767.c
2530
"tc358767-irq", tc);
drivers/gpu/drm/bridge/tc358767.c
2536
tc->have_irq = true;
drivers/gpu/drm/bridge/tc358767.c
2539
ret = regmap_read(tc->regmap, TC_IDREG, &tc->rev);
drivers/gpu/drm/bridge/tc358767.c
2541
dev_err(tc->dev, "can not read device ID: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
2545
if ((tc->rev != 0x6601) && (tc->rev != 0x6603)) {
drivers/gpu/drm/bridge/tc358767.c
2546
dev_err(tc->dev, "invalid device ID: 0x%08x\n", tc->rev);
drivers/gpu/drm/bridge/tc358767.c
2550
tc->assr = (tc->rev == 0x6601); /* Enable ASSR for eDP panels */
drivers/gpu/drm/bridge/tc358767.c
2552
if (!tc->reset_gpio) {
drivers/gpu/drm/bridge/tc358767.c
2559
regmap_update_bits(tc->regmap, SYSRSTENB,
drivers/gpu/drm/bridge/tc358767.c
2562
regmap_update_bits(tc->regmap, SYSRSTENB,
drivers/gpu/drm/bridge/tc358767.c
2568
if (tc->hpd_pin >= 0) {
drivers/gpu/drm/bridge/tc358767.c
2569
u32 lcnt_reg = tc->hpd_pin == 0 ? INT_GP0_LCNT : INT_GP1_LCNT;
drivers/gpu/drm/bridge/tc358767.c
2570
u32 h_lc = INT_GPIO_H(tc->hpd_pin) | INT_GPIO_LC(tc->hpd_pin);
drivers/gpu/drm/bridge/tc358767.c
2573
regmap_write(tc->regmap, lcnt_reg,
drivers/gpu/drm/bridge/tc358767.c
2574
clk_get_rate(tc->refclk) * 2 / 1000);
drivers/gpu/drm/bridge/tc358767.c
2576
regmap_write(tc->regmap, GPIOM, BIT(tc->hpd_pin));
drivers/gpu/drm/bridge/tc358767.c
2578
if (tc->have_irq) {
drivers/gpu/drm/bridge/tc358767.c
2580
regmap_update_bits(tc->regmap, INTCTL_G, h_lc, h_lc);
drivers/gpu/drm/bridge/tc358767.c
2584
if (tc->bridge.type != DRM_MODE_CONNECTOR_DPI) { /* (e)DP output */
drivers/gpu/drm/bridge/tc358767.c
2585
ret = tc_aux_link_setup(tc);
drivers/gpu/drm/bridge/tc358767.c
2590
tc->bridge.of_node = dev->of_node;
drivers/gpu/drm/bridge/tc358767.c
2591
drm_bridge_add(&tc->bridge);
drivers/gpu/drm/bridge/tc358767.c
2593
i2c_set_clientdata(client, tc);
drivers/gpu/drm/bridge/tc358767.c
2595
if (tc->input_connector_dsi) { /* DSI input */
drivers/gpu/drm/bridge/tc358767.c
2596
ret = tc_mipi_dsi_host_attach(tc);
drivers/gpu/drm/bridge/tc358767.c
2598
drm_bridge_remove(&tc->bridge);
drivers/gpu/drm/bridge/tc358767.c
2608
struct tc_data *tc = i2c_get_clientdata(client);
drivers/gpu/drm/bridge/tc358767.c
2610
drm_bridge_remove(&tc->bridge);
drivers/gpu/drm/bridge/tc358767.c
417
static inline int tc_poll_timeout(struct tc_data *tc, unsigned int addr,
drivers/gpu/drm/bridge/tc358767.c
424
return regmap_read_poll_timeout(tc->regmap, addr, val,
drivers/gpu/drm/bridge/tc358767.c
429
static int tc_aux_wait_busy(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
431
return tc_poll_timeout(tc, DP0_AUXSTATUS, AUX_BUSY, 0, 100, 100000);
drivers/gpu/drm/bridge/tc358767.c
434
static int tc_aux_write_data(struct tc_data *tc, const void *data,
drivers/gpu/drm/bridge/tc358767.c
442
ret = regmap_raw_write(tc->regmap, DP0_AUXWDATA(0), auxwdata, count);
drivers/gpu/drm/bridge/tc358767.c
449
static int tc_aux_read_data(struct tc_data *tc, void *data, size_t size)
drivers/gpu/drm/bridge/tc358767.c
454
ret = regmap_raw_read(tc->regmap, DP0_AUXRDATA(0), auxrdata, count);
drivers/gpu/drm/bridge/tc358767.c
478
struct tc_data *tc = aux_to_tc(aux);
drivers/gpu/drm/bridge/tc358767.c
484
ret = tc_aux_wait_busy(tc);
drivers/gpu/drm/bridge/tc358767.c
495
ret = tc_aux_write_data(tc, msg->buffer, size);
drivers/gpu/drm/bridge/tc358767.c
505
ret = regmap_write(tc->regmap, DP0_AUXADDR, msg->address);
drivers/gpu/drm/bridge/tc358767.c
509
ret = regmap_write(tc->regmap, DP0_AUXCFG0, tc_auxcfg0(msg, size));
drivers/gpu/drm/bridge/tc358767.c
513
ret = tc_aux_wait_busy(tc);
drivers/gpu/drm/bridge/tc358767.c
517
ret = regmap_read(tc->regmap, DP0_AUXSTATUS, &auxstatus);
drivers/gpu/drm/bridge/tc358767.c
537
return tc_aux_read_data(tc, msg->buffer, size);
drivers/gpu/drm/bridge/tc358767.c
562
static u32 tc_srcctrl(struct tc_data *tc)
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
581
static int tc_pllupdate(struct tc_data *tc, unsigned int pllctrl)
drivers/gpu/drm/bridge/tc358767.c
585
ret = regmap_write(tc->regmap, pllctrl, PLLUPDATE | PLLEN);
drivers/gpu/drm/bridge/tc358767.c
595
static int tc_pxl_pll_calc(struct tc_data *tc, u32 refclk, u32 pixelclock,
drivers/gpu/drm/bridge/tc358767.c
614
if (tc->bridge.type == DRM_MODE_CONNECTOR_DPI) {
drivers/gpu/drm/bridge/tc358767.c
622
dev_dbg(tc->dev, "PLL: requested %d pixelclock, ref %d\n", pixelclock,
drivers/gpu/drm/bridge/tc358767.c
671
dev_err(tc->dev, "Failed to calc clock for %d pixelclock\n",
drivers/gpu/drm/bridge/tc358767.c
676
dev_dbg(tc->dev, "PLL: got %d, delta %d\n", best_pixelclock, best_delta);
drivers/gpu/drm/bridge/tc358767.c
677
dev_dbg(tc->dev, "PLL: %d / %d / %d * %d / %d\n", refclk,
drivers/gpu/drm/bridge/tc358767.c
705
static int tc_pxl_pll_en(struct tc_data *tc, u32 refclk, u32 pixelclock)
drivers/gpu/drm/bridge/tc358767.c
710
ret = tc_pxl_pll_calc(tc, refclk, pixelclock, NULL, &pxl_pllparam);
drivers/gpu/drm/bridge/tc358767.c
715
ret = regmap_write(tc->regmap, PXL_PLLCTRL, PLLBYP | PLLEN);
drivers/gpu/drm/bridge/tc358767.c
719
ret = regmap_write(tc->regmap, PXL_PLLPARAM, pxl_pllparam);
drivers/gpu/drm/bridge/tc358767.c
724
return tc_pllupdate(tc, PXL_PLLCTRL);
drivers/gpu/drm/bridge/tc358767.c
727
static int tc_pxl_pll_dis(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
730
return regmap_write(tc->regmap, PXL_PLLCTRL, PLLBYP);
drivers/gpu/drm/bridge/tc358767.c
733
static int tc_stream_clock_calc(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
750
return regmap_write(tc->regmap, DP0_VIDMNGEN1, 32768);
drivers/gpu/drm/bridge/tc358767.c
753
static int tc_set_syspllparam(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
758
rate = clk_get_rate(tc->refclk);
drivers/gpu/drm/bridge/tc358767.c
773
dev_err(tc->dev, "Invalid refclk rate: %lu Hz\n", rate);
drivers/gpu/drm/bridge/tc358767.c
777
return regmap_write(tc->regmap, SYS_PLLPARAM, pllparam);
drivers/gpu/drm/bridge/tc358767.c
780
static int tc_aux_link_setup(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358767.c
786
ret = tc_set_syspllparam(tc);
drivers/gpu/drm/bridge/tc358767.c
790
ret = regmap_write(tc->regmap, DP_PHY_CTRL,
drivers/gpu/drm/bridge/tc358767.c
798
ret = tc_pllupdate(tc, DP0_PLLCTRL);
drivers/gpu/drm/bridge/tc358767.c
802
ret = tc_pllupdate(tc, DP1_PLLCTRL);
drivers/gpu/drm/bridge/tc358767.c
806
ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 100, 100000);
drivers/gpu/drm/bridge/tc358767.c
808
dev_err(tc->dev, "Timeout waiting for PHY to become ready");
drivers/gpu/drm/bridge/tc358767.c
819
ret = regmap_write(tc->regmap, DP0_AUXCFG1, dp0_auxcfg1);
drivers/gpu/drm/bridge/tc358767.c
824
tc->aux.name = "TC358767 AUX i2c adapter";
drivers/gpu/drm/bridge/tc358767.c
825
tc->aux.dev = tc->dev;
drivers/gpu/drm/bridge/tc358767.c
826
tc->aux.transfer = tc_aux_transfer;
drivers/gpu/drm/bridge/tc358767.c
827
drm_dp_aux_init(&tc->aux);
drivers/gpu/drm/bridge/tc358767.c
831
dev_err(tc->dev, "tc_aux_link_setup failed: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
835
static int tc_get_display_props(struct tc_data *tc)
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
853
dev_dbg(tc->dev, "Falling to 2.7 Gbps rate\n");
drivers/gpu/drm/bridge/tc358767.c
857
tc->link.rate = rate;
drivers/gpu/drm/bridge/tc358767.c
860
dev_dbg(tc->dev, "Falling to 2 lanes\n");
drivers/gpu/drm/bridge/tc358767.c
864
tc->link.num_lanes = num_lanes;
drivers/gpu/drm/bridge/tc358767.c
866
ret = drm_dp_dpcd_readb(&tc->aux, DP_MAX_DOWNSPREAD, ®);
drivers/gpu/drm/bridge/tc358767.c
869
tc->link.spread = reg & DP_MAX_DOWNSPREAD_0_5;
drivers/gpu/drm/bridge/tc358767.c
871
ret = drm_dp_dpcd_readb(&tc->aux, DP_MAIN_LINK_CHANNEL_CODING, ®);
drivers/gpu/drm/bridge/tc358767.c
875
tc->link.scrambler_dis = false;
drivers/gpu/drm/bridge/tc358767.c
877
ret = drm_dp_dpcd_readb(&tc->aux, DP_EDP_CONFIGURATION_SET, ®);
drivers/gpu/drm/bridge/tc358767.c
880
tc->link.assr = reg & DP_ALTERNATE_SCRAMBLER_RESET_ENABLE;
drivers/gpu/drm/bridge/tc358767.c
882
dev_dbg(tc->dev, "DPCD rev: %d.%d, rate: %s, lanes: %d, framing: %s\n",
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
888
dev_dbg(tc->dev, "Downspread: %s, scrambler: %s\n",
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
891
dev_dbg(tc->dev, "Display ASSR: %d, TC358767 ASSR: %d\n",
drivers/gpu/drm/bridge/tc358767.c
892
tc->link.assr, tc->assr);
drivers/gpu/drm/bridge/tc358767.c
897
dev_err(tc->dev, "failed to read DPCD: %d\n", ret);
drivers/gpu/drm/bridge/tc358767.c
901
static int tc_set_common_video_mode(struct tc_data *tc,
drivers/gpu/drm/bridge/tc358767.c
912
dev_dbg(tc->dev, "set mode %dx%d\n",
drivers/gpu/drm/bridge/tc358767.c
914
dev_dbg(tc->dev, "H margin %d,%d sync %d\n",
drivers/gpu/drm/bridge/tc358767.c
916
dev_dbg(tc->dev, "V margin %d,%d sync %d\n",
drivers/gpu/drm/bridge/tc358767.c
918
dev_dbg(tc->dev, "total: %dx%d\n", mode->htotal, mode->vtotal);
drivers/gpu/drm/bridge/tc358767.c
926
ret = regmap_write(tc->regmap, VPCTRL0,
drivers/gpu/drm/bridge/tc358767.c
932
ret = regmap_write(tc->regmap, HTIM01,
drivers/gpu/drm/bridge/tc358767.c
938
ret = regmap_write(tc->regmap, HTIM02,
drivers/gpu/drm/bridge/tc358767.c
944
ret = regmap_write(tc->regmap, VTIM01,
drivers/gpu/drm/bridge/tc358767.c
950
ret = regmap_write(tc->regmap, VTIM02,
drivers/gpu/drm/bridge/tc358767.c
956
ret = regmap_write(tc->regmap, VFUEN0, VFUEN); /* update settings */
drivers/gpu/drm/bridge/tc358767.c
961
ret = regmap_write(tc->regmap, TSTCTL,
drivers/gpu/drm/bridge/tc358767.c
971
static int tc_set_dpi_video_mode(struct tc_data *tc,
drivers/gpu/drm/bridge/tc358767.c
976
if (tc->mode.flags & DRM_MODE_FLAG_NHSYNC)
drivers/gpu/drm/bridge/tc358767.c
979
if (tc->mode.flags & DRM_MODE_FLAG_NVSYNC)
drivers/gpu/drm/bridge/tc358767.c
982
return regmap_write(tc->regmap, POCTRL, value);
drivers/gpu/drm/bridge/tc358767.c
985
static int tc_set_edp_video_mode(struct tc_data *tc,
drivers/gpu/drm/bridge/tc358775.c
292
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358775.c
293
struct device *dev = &tc->dsi->dev;
drivers/gpu/drm/bridge/tc358775.c
296
ret = regulator_enable(tc->vddio);
drivers/gpu/drm/bridge/tc358775.c
301
ret = regulator_enable(tc->vdd);
drivers/gpu/drm/bridge/tc358775.c
306
gpiod_set_value(tc->stby_gpio, 0);
drivers/gpu/drm/bridge/tc358775.c
309
gpiod_set_value(tc->reset_gpio, 0);
drivers/gpu/drm/bridge/tc358775.c
316
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358775.c
317
struct device *dev = &tc->dsi->dev;
drivers/gpu/drm/bridge/tc358775.c
320
gpiod_set_value(tc->reset_gpio, 1);
drivers/gpu/drm/bridge/tc358775.c
323
gpiod_set_value(tc->stby_gpio, 1);
drivers/gpu/drm/bridge/tc358775.c
326
ret = regulator_disable(tc->vdd);
drivers/gpu/drm/bridge/tc358775.c
331
ret = regulator_disable(tc->vddio);
drivers/gpu/drm/bridge/tc358775.c
376
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358775.c
405
d2l_read(tc->i2c, IDREG, &val);
drivers/gpu/drm/bridge/tc358775.c
407
dev_info(tc->dev, "DSI2LVDS Chip ID.%02x Revision ID. %02x **\n",
drivers/gpu/drm/bridge/tc358775.c
410
d2l_write(tc->i2c, SYSRST, SYS_RST_REG | SYS_RST_DSIRX | SYS_RST_BM |
drivers/gpu/drm/bridge/tc358775.c
414
d2l_write(tc->i2c, PPI_TX_RX_TA, TTA_GET | TTA_SURE);
drivers/gpu/drm/bridge/tc358775.c
415
d2l_write(tc->i2c, PPI_LPTXTIMECNT, LPX_PERIOD);
drivers/gpu/drm/bridge/tc358775.c
416
d2l_write(tc->i2c, PPI_D0S_CLRSIPOCOUNT, 3);
drivers/gpu/drm/bridge/tc358775.c
417
d2l_write(tc->i2c, PPI_D1S_CLRSIPOCOUNT, 3);
drivers/gpu/drm/bridge/tc358775.c
418
d2l_write(tc->i2c, PPI_D2S_CLRSIPOCOUNT, 3);
drivers/gpu/drm/bridge/tc358775.c
419
d2l_write(tc->i2c, PPI_D3S_CLRSIPOCOUNT, 3);
drivers/gpu/drm/bridge/tc358775.c
421
val = ((L0EN << tc->num_dsi_lanes) - L0EN) | DSI_CLEN_BIT;
drivers/gpu/drm/bridge/tc358775.c
422
d2l_write(tc->i2c, PPI_LANEENABLE, val);
drivers/gpu/drm/bridge/tc358775.c
423
d2l_write(tc->i2c, DSI_LANEENABLE, val);
drivers/gpu/drm/bridge/tc358775.c
425
d2l_write(tc->i2c, PPI_STARTPPI, PPI_START_FUNCTION);
drivers/gpu/drm/bridge/tc358775.c
426
d2l_write(tc->i2c, DSI_STARTDSI, DSI_RX_START);
drivers/gpu/drm/bridge/tc358775.c
429
if (tc->type == TC358765)
drivers/gpu/drm/bridge/tc358775.c
434
if (tc->bpc == 8)
drivers/gpu/drm/bridge/tc358775.c
439
dsiclk = mode->crtc_clock * 3 * tc->bpc / tc->num_dsi_lanes / 1000;
drivers/gpu/drm/bridge/tc358775.c
440
clkdiv = dsiclk / (tc->lvds_link == DUAL_LINK ? DIVIDE_BY_6 : DIVIDE_BY_3);
drivers/gpu/drm/bridge/tc358775.c
442
t1 = hactive * (tc->bpc * 3 / 8) / tc->num_dsi_lanes;
drivers/gpu/drm/bridge/tc358775.c
444
t3 = ((t2 * byteclk) / 100) - (hactive * (tc->bpc * 3 / 8) /
drivers/gpu/drm/bridge/tc358775.c
445
tc->num_dsi_lanes);
drivers/gpu/drm/bridge/tc358775.c
450
d2l_write(tc->i2c, VPCTRL, val);
drivers/gpu/drm/bridge/tc358775.c
452
d2l_write(tc->i2c, HTIM1, htime1);
drivers/gpu/drm/bridge/tc358775.c
453
d2l_write(tc->i2c, VTIM1, vtime1);
drivers/gpu/drm/bridge/tc358775.c
454
d2l_write(tc->i2c, HTIM2, htime2);
drivers/gpu/drm/bridge/tc358775.c
455
d2l_write(tc->i2c, VTIM2, vtime2);
drivers/gpu/drm/bridge/tc358775.c
457
d2l_write(tc->i2c, VFUEN, VFUEN_EN);
drivers/gpu/drm/bridge/tc358775.c
458
d2l_write(tc->i2c, SYSRST, SYS_RST_LCD);
drivers/gpu/drm/bridge/tc358775.c
459
d2l_write(tc->i2c, LVPHY0, LV_PHY0_PRBS_ON(4) | LV_PHY0_ND(6));
drivers/gpu/drm/bridge/tc358775.c
461
dev_dbg(tc->dev, "bus_formats %04x bpc %d\n",
drivers/gpu/drm/bridge/tc358775.c
463
tc->bpc);
drivers/gpu/drm/bridge/tc358775.c
467
d2l_write(tc->i2c, LV_MX0003, LV_MX(LVI_R0, LVI_R1, LVI_R2, LVI_R3));
drivers/gpu/drm/bridge/tc358775.c
468
d2l_write(tc->i2c, LV_MX0407, LV_MX(LVI_R4, LVI_R7, LVI_R5, LVI_G0));
drivers/gpu/drm/bridge/tc358775.c
469
d2l_write(tc->i2c, LV_MX0811, LV_MX(LVI_G1, LVI_G2, LVI_G6, LVI_G7));
drivers/gpu/drm/bridge/tc358775.c
470
d2l_write(tc->i2c, LV_MX1215, LV_MX(LVI_G3, LVI_G4, LVI_G5, LVI_B0));
drivers/gpu/drm/bridge/tc358775.c
471
d2l_write(tc->i2c, LV_MX1619, LV_MX(LVI_B6, LVI_B7, LVI_B1, LVI_B2));
drivers/gpu/drm/bridge/tc358775.c
472
d2l_write(tc->i2c, LV_MX2023, LV_MX(LVI_B3, LVI_B4, LVI_B5, LVI_L0));
drivers/gpu/drm/bridge/tc358775.c
473
d2l_write(tc->i2c, LV_MX2427, LV_MX(LVI_HS, LVI_VS, LVI_DE, LVI_R6));
drivers/gpu/drm/bridge/tc358775.c
476
d2l_write(tc->i2c, LV_MX0003, LV_MX(LVI_R2, LVI_R3, LVI_R4, LVI_R5));
drivers/gpu/drm/bridge/tc358775.c
477
d2l_write(tc->i2c, LV_MX0407, LV_MX(LVI_R6, LVI_R1, LVI_R7, LVI_G2));
drivers/gpu/drm/bridge/tc358775.c
478
d2l_write(tc->i2c, LV_MX0811, LV_MX(LVI_G3, LVI_G4, LVI_G0, LVI_G1));
drivers/gpu/drm/bridge/tc358775.c
479
d2l_write(tc->i2c, LV_MX1215, LV_MX(LVI_G5, LVI_G6, LVI_G7, LVI_B2));
drivers/gpu/drm/bridge/tc358775.c
480
d2l_write(tc->i2c, LV_MX1619, LV_MX(LVI_B0, LVI_B1, LVI_B3, LVI_B4));
drivers/gpu/drm/bridge/tc358775.c
481
d2l_write(tc->i2c, LV_MX2023, LV_MX(LVI_B5, LVI_B6, LVI_B7, LVI_L0));
drivers/gpu/drm/bridge/tc358775.c
482
d2l_write(tc->i2c, LV_MX2427, LV_MX(LVI_HS, LVI_VS, LVI_DE, LVI_R0));
drivers/gpu/drm/bridge/tc358775.c
485
d2l_write(tc->i2c, VFUEN, VFUEN_EN);
drivers/gpu/drm/bridge/tc358775.c
488
if (tc->lvds_link == DUAL_LINK) {
drivers/gpu/drm/bridge/tc358775.c
494
d2l_write(tc->i2c, LVCFG, val);
drivers/gpu/drm/bridge/tc358775.c
502
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358775.c
508
if ((mode->clock > 135000 && tc->lvds_link == SINGLE_LINK) ||
drivers/gpu/drm/bridge/tc358775.c
509
(mode->clock > 270000 && tc->lvds_link == DUAL_LINK))
drivers/gpu/drm/bridge/tc358775.c
516
tc->bpc = 8;
drivers/gpu/drm/bridge/tc358775.c
520
tc->bpc = 6;
drivers/gpu/drm/bridge/tc358775.c
523
dev_warn(tc->dev,
drivers/gpu/drm/bridge/tc358775.c
532
static int tc358775_parse_dt(struct device_node *np, struct tc_data *tc)
drivers/gpu/drm/bridge/tc358775.c
538
endpoint = of_graph_get_endpoint_by_regs(tc->dev->of_node,
drivers/gpu/drm/bridge/tc358775.c
548
dev_warn(tc->dev, "no dsi-lanes for the bridge, using host lanes\n");
drivers/gpu/drm/bridge/tc358775.c
556
tc->num_dsi_lanes = dsi_lanes;
drivers/gpu/drm/bridge/tc358775.c
558
tc->host_node = of_graph_get_remote_node(np, 0, 0);
drivers/gpu/drm/bridge/tc358775.c
559
if (!tc->host_node)
drivers/gpu/drm/bridge/tc358775.c
562
of_node_put(tc->host_node);
drivers/gpu/drm/bridge/tc358775.c
564
tc->lvds_link = SINGLE_LINK;
drivers/gpu/drm/bridge/tc358775.c
565
endpoint = of_graph_get_endpoint_by_regs(tc->dev->of_node,
drivers/gpu/drm/bridge/tc358775.c
573
tc->lvds_link = DUAL_LINK;
drivers/gpu/drm/bridge/tc358775.c
578
dev_dbg(tc->dev, "no.of dsi lanes: %d\n", tc->num_dsi_lanes);
drivers/gpu/drm/bridge/tc358775.c
579
dev_dbg(tc->dev, "operating in %d-link mode\n", tc->lvds_link);
drivers/gpu/drm/bridge/tc358775.c
588
struct tc_data *tc = bridge_to_tc(bridge);
drivers/gpu/drm/bridge/tc358775.c
591
return drm_bridge_attach(encoder, tc->panel_bridge,
drivers/gpu/drm/bridge/tc358775.c
592
&tc->bridge, flags);
drivers/gpu/drm/bridge/tc358775.c
606
static int tc_attach_host(struct tc_data *tc)
drivers/gpu/drm/bridge/tc358775.c
608
struct device *dev = &tc->i2c->dev;
drivers/gpu/drm/bridge/tc358775.c
617
host = of_find_mipi_dsi_host_by_node(tc->host_node);
drivers/gpu/drm/bridge/tc358775.c
627
tc->dsi = dsi;
drivers/gpu/drm/bridge/tc358775.c
629
dsi->lanes = tc->num_dsi_lanes;
drivers/gpu/drm/bridge/tc358775.c
641
if (tc->type == TC358765)
drivers/gpu/drm/bridge/tc358775.c
659
struct tc_data *tc;
drivers/gpu/drm/bridge/tc358775.c
662
tc = devm_drm_bridge_alloc(dev, struct tc_data, bridge,
drivers/gpu/drm/bridge/tc358775.c
664
if (IS_ERR(tc))
drivers/gpu/drm/bridge/tc358775.c
665
return PTR_ERR(tc);
drivers/gpu/drm/bridge/tc358775.c
667
tc->dev = dev;
drivers/gpu/drm/bridge/tc358775.c
668
tc->i2c = client;
drivers/gpu/drm/bridge/tc358775.c
669
tc->type = (enum tc3587x5_type)(unsigned long)of_device_get_match_data(dev);
drivers/gpu/drm/bridge/tc358775.c
671
tc->panel_bridge = devm_drm_of_get_bridge(dev, dev->of_node,
drivers/gpu/drm/bridge/tc358775.c
673
if (IS_ERR(tc->panel_bridge))
drivers/gpu/drm/bridge/tc358775.c
674
return PTR_ERR(tc->panel_bridge);
drivers/gpu/drm/bridge/tc358775.c
676
ret = tc358775_parse_dt(dev->of_node, tc);
drivers/gpu/drm/bridge/tc358775.c
680
tc->vddio = devm_regulator_get(dev, "vddio-supply");
drivers/gpu/drm/bridge/tc358775.c
681
if (IS_ERR(tc->vddio)) {
drivers/gpu/drm/bridge/tc358775.c
682
ret = PTR_ERR(tc->vddio);
drivers/gpu/drm/bridge/tc358775.c
687
tc->vdd = devm_regulator_get(dev, "vdd-supply");
drivers/gpu/drm/bridge/tc358775.c
688
if (IS_ERR(tc->vdd)) {
drivers/gpu/drm/bridge/tc358775.c
689
ret = PTR_ERR(tc->vdd);
drivers/gpu/drm/bridge/tc358775.c
694
tc->stby_gpio = devm_gpiod_get_optional(dev, "stby", GPIOD_OUT_HIGH);
drivers/gpu/drm/bridge/tc358775.c
695
if (IS_ERR(tc->stby_gpio))
drivers/gpu/drm/bridge/tc358775.c
696
return PTR_ERR(tc->stby_gpio);
drivers/gpu/drm/bridge/tc358775.c
698
tc->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
drivers/gpu/drm/bridge/tc358775.c
699
if (IS_ERR(tc->reset_gpio)) {
drivers/gpu/drm/bridge/tc358775.c
700
ret = PTR_ERR(tc->reset_gpio);
drivers/gpu/drm/bridge/tc358775.c
705
tc->bridge.of_node = dev->of_node;
drivers/gpu/drm/bridge/tc358775.c
706
tc->bridge.pre_enable_prev_first = true;
drivers/gpu/drm/bridge/tc358775.c
707
drm_bridge_add(&tc->bridge);
drivers/gpu/drm/bridge/tc358775.c
709
i2c_set_clientdata(client, tc);
drivers/gpu/drm/bridge/tc358775.c
711
ret = tc_attach_host(tc);
drivers/gpu/drm/bridge/tc358775.c
718
drm_bridge_remove(&tc->bridge);
drivers/gpu/drm/bridge/tc358775.c
724
struct tc_data *tc = i2c_get_clientdata(client);
drivers/gpu/drm/bridge/tc358775.c
726
drm_bridge_remove(&tc->bridge);
drivers/gpu/drm/i915/display/icl_dsi_regs.h
12
#define _MMIO_DSI(tc, dsi0, dsi1) _MMIO_TRANS((tc) - TRANSCODER_DSI_0, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
195
#define DSI_TRANS_FUNC_CONF(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
241
#define DSI_CMD_RXCTL(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
256
#define DSI_CMD_TXCTL(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
269
#define DSI_CMD_TXHDR(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
286
#define DSI_CMD_TXPYLD(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
292
#define DSI_LP_MSG(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
303
#define DSI_HSTX_TO(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
313
#define DSI_LPRX_HOST_TO(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
323
#define DSI_PWAIT_TO(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/icl_dsi_regs.h
335
#define DSI_TA_TO(tc) _MMIO_DSI(tc, \
drivers/gpu/drm/i915/display/intel_display_regs.h
2918
#define TCSS_DDI_STATUS(tc) _MMIO(_PICK_EVEN(tc, \
drivers/gpu/drm/i915/display/intel_display_types.h
1983
struct intel_tc_port *tc;
drivers/gpu/drm/i915/display/intel_tc.c
1006
static u32 xelpdp_tc_phy_hpd_live_status(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1008
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1009
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
101
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1027
if (tc->legacy_port && (pch_isr & pch_isr_bit))
drivers/gpu/drm/i915/display/intel_tc.c
103
return intel_encoder_is_tc(&dig_port->base) && tc->mode == mode;
drivers/gpu/drm/i915/display/intel_tc.c
1034
xelpdp_tc_phy_tcss_power_is_enabled(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1036
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1037
enum port port = tc->dig_port->base.port;
drivers/gpu/drm/i915/display/intel_tc.c
1040
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1046
xelpdp_tc_phy_wait_for_tcss_power(struct intel_tc_port *tc, bool enabled)
drivers/gpu/drm/i915/display/intel_tc.c
1048
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1052
ret = poll_timeout_us(is_enabled = xelpdp_tc_phy_tcss_power_is_enabled(tc),
drivers/gpu/drm/i915/display/intel_tc.c
1059
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
1094
static void __xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool enable)
drivers/gpu/drm/i915/display/intel_tc.c
1096
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1097
enum port port = tc->dig_port->base.port;
drivers/gpu/drm/i915/display/intel_tc.c
1101
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1114
static bool xelpdp_tc_phy_enable_tcss_power(struct intel_tc_port *tc, bool enable)
drivers/gpu/drm/i915/display/intel_tc.c
1116
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1118
__xelpdp_tc_phy_enable_tcss_power(tc, enable);
drivers/gpu/drm/i915/display/intel_tc.c
1120
if (enable && !tc_phy_wait_for_ready(tc))
drivers/gpu/drm/i915/display/intel_tc.c
1123
if (!xelpdp_tc_phy_wait_for_tcss_power(tc, enable))
drivers/gpu/drm/i915/display/intel_tc.c
1129
if (drm_WARN_ON(display->drm, tc->mode == TC_PORT_LEGACY))
drivers/gpu/drm/i915/display/intel_tc.c
1135
__xelpdp_tc_phy_enable_tcss_power(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
1136
xelpdp_tc_phy_wait_for_tcss_power(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
1141
static void xelpdp_tc_phy_take_ownership(struct intel_tc_port *tc, bool take)
drivers/gpu/drm/i915/display/intel_tc.c
1143
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1144
enum port port = tc->dig_port->base.port;
drivers/gpu/drm/i915/display/intel_tc.c
1148
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1158
static bool xelpdp_tc_phy_is_owned(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1160
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1161
enum port port = tc->dig_port->base.port;
drivers/gpu/drm/i915/display/intel_tc.c
1164
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1169
static void xelpdp_tc_phy_get_hw_state(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1171
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1175
tc_cold_wref = __tc_cold_block(tc, &domain);
drivers/gpu/drm/i915/display/intel_tc.c
1177
tc->mode = tc_phy_get_current_mode(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1178
if (tc->mode != TC_PORT_DISCONNECTED) {
drivers/gpu/drm/i915/display/intel_tc.c
1179
tc->lock_wakeref = tc_cold_block(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1181
read_pin_configuration(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1186
if (tc->max_lane_count == 0)
drivers/gpu/drm/i915/display/intel_tc.c
1187
tc->max_lane_count = 4;
drivers/gpu/drm/i915/display/intel_tc.c
1191
(tc->mode == TC_PORT_DP_ALT || tc->mode == TC_PORT_LEGACY) &&
drivers/gpu/drm/i915/display/intel_tc.c
1192
!xelpdp_tc_phy_tcss_power_is_enabled(tc));
drivers/gpu/drm/i915/display/intel_tc.c
1194
__tc_cold_unblock(tc, domain, tc_cold_wref);
drivers/gpu/drm/i915/display/intel_tc.c
1197
static bool xelpdp_tc_phy_connect(struct intel_tc_port *tc, int required_lanes)
drivers/gpu/drm/i915/display/intel_tc.c
1199
tc->lock_wakeref = tc_cold_block(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1201
if (tc->mode == TC_PORT_TBT_ALT) {
drivers/gpu/drm/i915/display/intel_tc.c
1202
read_pin_configuration(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1207
if (!xelpdp_tc_phy_enable_tcss_power(tc, true))
drivers/gpu/drm/i915/display/intel_tc.c
1210
xelpdp_tc_phy_take_ownership(tc, true);
drivers/gpu/drm/i915/display/intel_tc.c
1212
read_pin_configuration(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1214
if (!tc_phy_verify_legacy_or_dp_alt_mode(tc, required_lanes))
drivers/gpu/drm/i915/display/intel_tc.c
1220
xelpdp_tc_phy_take_ownership(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
1221
xelpdp_tc_phy_wait_for_tcss_power(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
1224
tc_cold_unblock(tc, fetch_and_zero(&tc->lock_wakeref));
drivers/gpu/drm/i915/display/intel_tc.c
1229
static void xelpdp_tc_phy_disconnect(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
123
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1231
switch (tc->mode) {
drivers/gpu/drm/i915/display/intel_tc.c
1234
xelpdp_tc_phy_take_ownership(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
1235
xelpdp_tc_phy_enable_tcss_power(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
1238
tc_cold_unblock(tc, fetch_and_zero(&tc->lock_wakeref));
drivers/gpu/drm/i915/display/intel_tc.c
1241
MISSING_CASE(tc->mode);
drivers/gpu/drm/i915/display/intel_tc.c
125
return intel_encoder_is_tc(&dig_port->base) && !tc->legacy_port;
drivers/gpu/drm/i915/display/intel_tc.c
1261
tc_phy_cold_off_domain(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1263
return tc->phy_ops->cold_off_domain(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1266
static u32 tc_phy_hpd_live_status(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1268
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1271
mask = tc->phy_ops->hpd_live_status(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1279
static bool tc_phy_is_ready(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1281
return tc->phy_ops->is_ready(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1284
static bool tc_phy_is_owned(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1286
return tc->phy_ops->is_owned(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1289
static void tc_phy_get_hw_state(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1291
tc->phy_ops->get_hw_state(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1295
static bool tc_phy_owned_by_display(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
1298
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1309
static bool tc_phy_is_connected(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
1312
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1313
bool phy_is_ready = tc_phy_is_ready(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1314
bool phy_is_owned = tc_phy_is_owned(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1317
if (tc_phy_owned_by_display(tc, phy_is_ready, phy_is_owned))
drivers/gpu/drm/i915/display/intel_tc.c
1324
tc->port_name,
drivers/gpu/drm/i915/display/intel_tc.c
1333
static bool tc_phy_wait_for_ready(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1335
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1339
ret = poll_timeout_us(is_ready = tc_phy_is_ready(tc),
drivers/gpu/drm/i915/display/intel_tc.c
1344
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
1362
tc_phy_hpd_live_mode(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1364
u32 live_status_mask = tc_phy_hpd_live_status(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1370
get_tc_mode_in_phy_owned_state(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
1382
if (tc->legacy_port)
drivers/gpu/drm/i915/display/intel_tc.c
1390
get_tc_mode_in_phy_not_owned_state(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
1403
if (tc->legacy_port)
drivers/gpu/drm/i915/display/intel_tc.c
1411
tc_phy_get_current_mode(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1413
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1414
enum tc_port_mode live_mode = tc_phy_hpd_live_mode(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1424
if (tc->legacy_port)
drivers/gpu/drm/i915/display/intel_tc.c
1425
tc_phy_wait_for_ready(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1427
phy_is_ready = tc_phy_is_ready(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1428
phy_is_owned = tc_phy_is_owned(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1430
if (!tc_phy_owned_by_display(tc, phy_is_ready, phy_is_owned)) {
drivers/gpu/drm/i915/display/intel_tc.c
1431
mode = get_tc_mode_in_phy_not_owned_state(tc, live_mode);
drivers/gpu/drm/i915/display/intel_tc.c
1434
mode = get_tc_mode_in_phy_owned_state(tc, live_mode);
drivers/gpu/drm/i915/display/intel_tc.c
1439
tc->port_name,
drivers/gpu/drm/i915/display/intel_tc.c
1448
static enum tc_port_mode default_tc_mode(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1450
if (tc->legacy_port)
drivers/gpu/drm/i915/display/intel_tc.c
1457
hpd_mask_to_target_mode(struct intel_tc_port *tc, u32 live_status_mask)
drivers/gpu/drm/i915/display/intel_tc.c
1464
return default_tc_mode(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1468
tc_phy_get_target_mode(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1470
u32 live_status_mask = tc_phy_hpd_live_status(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1472
return hpd_mask_to_target_mode(tc, live_status_mask);
drivers/gpu/drm/i915/display/intel_tc.c
1475
static void tc_phy_connect(struct intel_tc_port *tc, int required_lanes)
drivers/gpu/drm/i915/display/intel_tc.c
1477
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1478
u32 live_status_mask = tc_phy_hpd_live_status(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1481
tc_port_fixup_legacy_flag(tc, live_status_mask);
drivers/gpu/drm/i915/display/intel_tc.c
1483
tc->mode = hpd_mask_to_target_mode(tc, live_status_mask);
drivers/gpu/drm/i915/display/intel_tc.c
1485
connected = tc->phy_ops->connect(tc, required_lanes);
drivers/gpu/drm/i915/display/intel_tc.c
1486
if (!connected && tc->mode != default_tc_mode(tc)) {
drivers/gpu/drm/i915/display/intel_tc.c
1487
tc->mode = default_tc_mode(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1488
connected = tc->phy_ops->connect(tc, required_lanes);
drivers/gpu/drm/i915/display/intel_tc.c
1494
static void tc_phy_disconnect(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1496
if (tc->mode != TC_PORT_DISCONNECTED) {
drivers/gpu/drm/i915/display/intel_tc.c
1497
tc->phy_ops->disconnect(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1498
tc->mode = TC_PORT_DISCONNECTED;
drivers/gpu/drm/i915/display/intel_tc.c
1502
static void tc_phy_init(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1504
mutex_lock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1505
tc->phy_ops->init(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1506
mutex_unlock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1509
static void intel_tc_port_reset_mode(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
1512
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1513
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
1514
enum tc_port_mode old_tc_mode = tc->mode;
drivers/gpu/drm/i915/display/intel_tc.c
1523
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
1526
tc_phy_disconnect(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1528
tc_phy_connect(tc, required_lanes);
drivers/gpu/drm/i915/display/intel_tc.c
1532
tc->port_name,
drivers/gpu/drm/i915/display/intel_tc.c
1534
tc_port_mode_name(tc->mode),
drivers/gpu/drm/i915/display/intel_tc.c
1535
pin_assignment_name(tc->pin_assignment),
drivers/gpu/drm/i915/display/intel_tc.c
1536
tc->max_lane_count);
drivers/gpu/drm/i915/display/intel_tc.c
1539
static bool intel_tc_port_needs_reset(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1541
return tc_phy_get_target_mode(tc) != tc->mode;
drivers/gpu/drm/i915/display/intel_tc.c
1544
static void intel_tc_port_update_mode(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
1548
intel_tc_port_needs_reset(tc))
drivers/gpu/drm/i915/display/intel_tc.c
1549
intel_tc_port_reset_mode(tc, required_lanes, force_disconnect);
drivers/gpu/drm/i915/display/intel_tc.c
1552
static void __intel_tc_port_get_link(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1554
tc->link_refcount++;
drivers/gpu/drm/i915/display/intel_tc.c
1557
static void __intel_tc_port_put_link(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1559
tc->link_refcount--;
drivers/gpu/drm/i915/display/intel_tc.c
1562
static bool tc_port_is_enabled(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1564
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1565
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
1567
assert_tc_port_power_enabled(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1583
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1586
mutex_lock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1588
drm_WARN_ON(display->drm, tc->mode != TC_PORT_DISCONNECTED);
drivers/gpu/drm/i915/display/intel_tc.c
1589
drm_WARN_ON(display->drm, tc->lock_wakeref);
drivers/gpu/drm/i915/display/intel_tc.c
1590
drm_WARN_ON(display->drm, tc->link_refcount);
drivers/gpu/drm/i915/display/intel_tc.c
1592
tc_phy_get_hw_state(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1597
tc->init_mode = tc->mode;
drivers/gpu/drm/i915/display/intel_tc.c
1610
if (!tc_port_is_enabled(tc)) {
drivers/gpu/drm/i915/display/intel_tc.c
1612
} else if (tc->mode == TC_PORT_DISCONNECTED) {
drivers/gpu/drm/i915/display/intel_tc.c
1613
drm_WARN_ON(display->drm, !tc->legacy_port);
drivers/gpu/drm/i915/display/intel_tc.c
1616
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
1621
intel_tc_port_update_mode(tc, 1, false);
drivers/gpu/drm/i915/display/intel_tc.c
1624
__intel_tc_port_get_link(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1626
mutex_unlock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1629
static bool tc_port_has_active_streams(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
1632
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1633
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
1645
if (active_streams && !tc_phy_is_connected(tc, pll_type))
drivers/gpu/drm/i915/display/intel_tc.c
1648
tc->port_name, active_streams);
drivers/gpu/drm/i915/display/intel_tc.c
1669
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1671
mutex_lock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1673
drm_WARN_ON(display->drm, tc->link_refcount != 1);
drivers/gpu/drm/i915/display/intel_tc.c
1674
if (!tc_port_has_active_streams(tc, crtc_state)) {
drivers/gpu/drm/i915/display/intel_tc.c
1681
if (tc->init_mode != TC_PORT_TBT_ALT &&
drivers/gpu/drm/i915/display/intel_tc.c
1682
tc->init_mode != TC_PORT_DISCONNECTED)
drivers/gpu/drm/i915/display/intel_tc.c
1685
tc->port_name,
drivers/gpu/drm/i915/display/intel_tc.c
1686
tc_port_mode_name(tc->init_mode));
drivers/gpu/drm/i915/display/intel_tc.c
1687
tc_phy_disconnect(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1688
__intel_tc_port_put_link(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1692
tc->port_name,
drivers/gpu/drm/i915/display/intel_tc.c
1693
tc_port_mode_name(tc->mode),
drivers/gpu/drm/i915/display/intel_tc.c
1694
pin_assignment_name(tc->pin_assignment),
drivers/gpu/drm/i915/display/intel_tc.c
1695
tc->max_lane_count);
drivers/gpu/drm/i915/display/intel_tc.c
1697
mutex_unlock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1702
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1706
tc->port_name,
drivers/gpu/drm/i915/display/intel_tc.c
1707
tc_port_mode_name(tc->mode),
drivers/gpu/drm/i915/display/intel_tc.c
1708
pin_assignment_name(tc->pin_assignment),
drivers/gpu/drm/i915/display/intel_tc.c
1709
tc->max_lane_count);
drivers/gpu/drm/i915/display/intel_tc.c
1727
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1732
if (tc->mode != TC_PORT_DISCONNECTED)
drivers/gpu/drm/i915/display/intel_tc.c
1733
mask = BIT(tc->mode);
drivers/gpu/drm/i915/display/intel_tc.c
1735
return tc_phy_hpd_live_status(tc) & mask;
drivers/gpu/drm/i915/display/intel_tc.c
1738
static bool __intel_tc_port_link_needs_reset(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1742
mutex_lock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1744
ret = tc->link_refcount &&
drivers/gpu/drm/i915/display/intel_tc.c
1745
tc->mode == TC_PORT_DP_ALT &&
drivers/gpu/drm/i915/display/intel_tc.c
1746
intel_tc_port_needs_reset(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1748
mutex_unlock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1761
static int reset_link_commit(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
1765
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1766
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
179
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1793
if (!__intel_tc_port_link_needs_reset(tc))
drivers/gpu/drm/i915/display/intel_tc.c
1799
static int reset_link(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1801
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
181
return tc_phy_cold_off_domain(tc) ==
drivers/gpu/drm/i915/display/intel_tc.c
1815
ret = reset_link_commit(tc, state, &ctx);
drivers/gpu/drm/i915/display/intel_tc.c
1824
struct intel_tc_port *tc =
drivers/gpu/drm/i915/display/intel_tc.c
1826
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1829
if (!__intel_tc_port_link_needs_reset(tc))
drivers/gpu/drm/i915/display/intel_tc.c
1836
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
1837
ret = reset_link(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1857
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
186
__tc_cold_block(struct intel_tc_port *tc, enum intel_display_power_domain *domain)
drivers/gpu/drm/i915/display/intel_tc.c
1862
cancel_delayed_work(&tc->link_reset_work);
drivers/gpu/drm/i915/display/intel_tc.c
1865
static void __intel_tc_port_lock(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
1868
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1870
mutex_lock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1872
cancel_delayed_work(&tc->disconnect_phy_work);
drivers/gpu/drm/i915/display/intel_tc.c
1874
if (!tc->link_refcount)
drivers/gpu/drm/i915/display/intel_tc.c
1875
intel_tc_port_update_mode(tc, required_lanes,
drivers/gpu/drm/i915/display/intel_tc.c
1878
drm_WARN_ON(display->drm, tc->mode == TC_PORT_DISCONNECTED);
drivers/gpu/drm/i915/display/intel_tc.c
1879
drm_WARN_ON(display->drm, tc->mode != TC_PORT_TBT_ALT && !tc_phy_is_owned(tc));
drivers/gpu/drm/i915/display/intel_tc.c
188
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1894
struct intel_tc_port *tc =
drivers/gpu/drm/i915/display/intel_tc.c
1897
mutex_lock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1899
if (!tc->link_refcount)
drivers/gpu/drm/i915/display/intel_tc.c
190
*domain = tc_phy_cold_off_domain(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1900
intel_tc_port_update_mode(tc, 1, true);
drivers/gpu/drm/i915/display/intel_tc.c
1902
mutex_unlock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1918
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1920
cancel_delayed_work_sync(&tc->link_reset_work);
drivers/gpu/drm/i915/display/intel_tc.c
1926
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1928
if (!tc->link_refcount && tc->mode != TC_PORT_DISCONNECTED)
drivers/gpu/drm/i915/display/intel_tc.c
1929
queue_delayed_work(system_unbound_wq, &tc->disconnect_phy_work,
drivers/gpu/drm/i915/display/intel_tc.c
1932
mutex_unlock(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
1937
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1939
return mutex_is_locked(&tc->lock) ||
drivers/gpu/drm/i915/display/intel_tc.c
1940
tc->link_refcount;
drivers/gpu/drm/i915/display/intel_tc.c
1946
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1948
__intel_tc_port_lock(tc, required_lanes);
drivers/gpu/drm/i915/display/intel_tc.c
1949
__intel_tc_port_get_link(tc);
drivers/gpu/drm/i915/display/intel_tc.c
1955
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
1958
__intel_tc_port_put_link(tc);
drivers/gpu/drm/i915/display/intel_tc.c
196
tc_cold_block(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
1973
struct intel_tc_port *tc;
drivers/gpu/drm/i915/display/intel_tc.c
1980
tc = kzalloc_obj(*tc);
drivers/gpu/drm/i915/display/intel_tc.c
1981
if (!tc)
drivers/gpu/drm/i915/display/intel_tc.c
1984
dig_port->tc = tc;
drivers/gpu/drm/i915/display/intel_tc.c
1985
tc->dig_port = dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
1988
tc->phy_ops = &xelpdp_tc_phy_ops;
drivers/gpu/drm/i915/display/intel_tc.c
1990
tc->phy_ops = &adlp_tc_phy_ops;
drivers/gpu/drm/i915/display/intel_tc.c
1992
tc->phy_ops = &tgl_tc_phy_ops;
drivers/gpu/drm/i915/display/intel_tc.c
1994
tc->phy_ops = &icl_tc_phy_ops;
drivers/gpu/drm/i915/display/intel_tc.c
1996
tc->port_name = kasprintf(GFP_KERNEL, "%c/TC#%d", port_name(port),
drivers/gpu/drm/i915/display/intel_tc.c
1998
if (!tc->port_name) {
drivers/gpu/drm/i915/display/intel_tc.c
1999
kfree(tc);
drivers/gpu/drm/i915/display/intel_tc.c
2003
mutex_init(&tc->lock);
drivers/gpu/drm/i915/display/intel_tc.c
2005
INIT_DELAYED_WORK(&tc->disconnect_phy_work, intel_tc_port_disconnect_phy_work);
drivers/gpu/drm/i915/display/intel_tc.c
2006
INIT_DELAYED_WORK(&tc->link_reset_work, intel_tc_port_link_reset_work);
drivers/gpu/drm/i915/display/intel_tc.c
2007
tc->legacy_port = is_legacy;
drivers/gpu/drm/i915/display/intel_tc.c
2008
tc->mode = TC_PORT_DISCONNECTED;
drivers/gpu/drm/i915/display/intel_tc.c
2009
tc->link_refcount = 0;
drivers/gpu/drm/i915/display/intel_tc.c
201
wakeref = __tc_cold_block(tc, &domain);
drivers/gpu/drm/i915/display/intel_tc.c
2011
tc_phy_init(tc);
drivers/gpu/drm/i915/display/intel_tc.c
2022
kfree(dig_port->tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
2023
kfree(dig_port->tc);
drivers/gpu/drm/i915/display/intel_tc.c
2024
dig_port->tc = NULL;
drivers/gpu/drm/i915/display/intel_tc.c
203
tc->lock_power_domain = domain;
drivers/gpu/drm/i915/display/intel_tc.c
209
__tc_cold_unblock(struct intel_tc_port *tc, enum intel_display_power_domain domain,
drivers/gpu/drm/i915/display/intel_tc.c
212
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
218
tc_cold_unblock(struct intel_tc_port *tc, struct ref_tracker *wakeref)
drivers/gpu/drm/i915/display/intel_tc.c
220
struct intel_display __maybe_unused *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
221
enum intel_display_power_domain domain = tc_phy_cold_off_domain(tc);
drivers/gpu/drm/i915/display/intel_tc.c
224
drm_WARN_ON(display->drm, tc->lock_power_domain != domain);
drivers/gpu/drm/i915/display/intel_tc.c
226
__tc_cold_unblock(tc, domain, wakeref);
drivers/gpu/drm/i915/display/intel_tc.c
230
assert_display_core_power_enabled(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
232
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
239
assert_tc_cold_blocked(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
241
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
245
tc_phy_cold_off_domain(tc));
drivers/gpu/drm/i915/display/intel_tc.c
250
tc_port_power_domain(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
252
enum tc_port tc_port = intel_encoder_to_tc(&tc->dig_port->base);
drivers/gpu/drm/i915/display/intel_tc.c
261
assert_tc_port_power_enabled(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
263
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
266
!intel_display_power_is_enabled(display, tc_port_power_domain(tc)));
drivers/gpu/drm/i915/display/intel_tc.c
269
static u32 get_lane_mask(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
271
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
275
lane_mask = intel_de_read(display, PORT_TX_DFLEXDPSP(tc->phy_fia));
drivers/gpu/drm/i915/display/intel_tc.c
278
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
280
lane_mask &= DP_LANE_ASSIGNMENT_MASK(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
281
return lane_mask >> DP_LANE_ASSIGNMENT_SHIFT(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
293
get_pin_assignment(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
295
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
296
enum tc_port tc_port = intel_encoder_to_tc(&tc->dig_port->base);
drivers/gpu/drm/i915/display/intel_tc.c
302
if (tc->mode == TC_PORT_TBT_ALT)
drivers/gpu/drm/i915/display/intel_tc.c
309
reg = PORT_TX_DFLEXPA1(tc->phy_fia);
drivers/gpu/drm/i915/display/intel_tc.c
310
mask = DP_PIN_ASSIGNMENT_MASK(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
317
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
339
static int mtl_get_max_lane_count(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
343
pin_assignment = get_pin_assignment(tc);
drivers/gpu/drm/i915/display/intel_tc.c
359
static int icl_get_max_lane_count(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
363
lane_mask = get_lane_mask(tc);
drivers/gpu/drm/i915/display/intel_tc.c
38
enum intel_display_power_domain (*cold_off_domain)(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
382
static int get_max_lane_count(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
384
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
386
if (tc->mode != TC_PORT_DP_ALT)
drivers/gpu/drm/i915/display/intel_tc.c
39
u32 (*hpd_live_status)(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
390
return mtl_get_max_lane_count(tc);
drivers/gpu/drm/i915/display/intel_tc.c
392
return icl_get_max_lane_count(tc);
drivers/gpu/drm/i915/display/intel_tc.c
395
static void read_pin_configuration(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
397
tc->pin_assignment = get_pin_assignment(tc);
drivers/gpu/drm/i915/display/intel_tc.c
398
tc->max_lane_count = get_max_lane_count(tc);
drivers/gpu/drm/i915/display/intel_tc.c
40
bool (*is_ready)(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
403
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
408
return tc->max_lane_count;
drivers/gpu/drm/i915/display/intel_tc.c
41
bool (*is_owned)(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
414
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
419
return tc->pin_assignment;
drivers/gpu/drm/i915/display/intel_tc.c
42
void (*get_hw_state)(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
426
struct intel_tc_port *tc = to_tc_port(dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
43
bool (*connect)(struct intel_tc_port *tc, int required_lanes);
drivers/gpu/drm/i915/display/intel_tc.c
434
lane_reversal && tc->mode != TC_PORT_LEGACY);
drivers/gpu/drm/i915/display/intel_tc.c
436
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
438
val = intel_de_read(display, PORT_TX_DFLEXDPMLE1(tc->phy_fia));
drivers/gpu/drm/i915/display/intel_tc.c
439
val &= ~DFLEXDPMLE1_DPMLETC_MASK(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
44
void (*disconnect)(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
444
DFLEXDPMLE1_DPMLETC_ML3(tc->phy_fia_idx) :
drivers/gpu/drm/i915/display/intel_tc.c
445
DFLEXDPMLE1_DPMLETC_ML0(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
449
DFLEXDPMLE1_DPMLETC_ML3_2(tc->phy_fia_idx) :
drivers/gpu/drm/i915/display/intel_tc.c
45
void (*init)(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
450
DFLEXDPMLE1_DPMLETC_ML1_0(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
453
val |= DFLEXDPMLE1_DPMLETC_ML3_0(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
459
intel_de_write(display, PORT_TX_DFLEXDPMLE1(tc->phy_fia), val);
drivers/gpu/drm/i915/display/intel_tc.c
462
static void tc_port_fixup_legacy_flag(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
465
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
468
drm_WARN_ON(display->drm, tc->mode != TC_PORT_DISCONNECTED);
drivers/gpu/drm/i915/display/intel_tc.c
473
if (tc->legacy_port)
drivers/gpu/drm/i915/display/intel_tc.c
485
tc->port_name, live_status_mask, valid_hpd_mask);
drivers/gpu/drm/i915/display/intel_tc.c
487
tc->legacy_port = !tc->legacy_port;
drivers/gpu/drm/i915/display/intel_tc.c
490
static void tc_phy_load_fia_params(struct intel_tc_port *tc, bool modular_fia)
drivers/gpu/drm/i915/display/intel_tc.c
492
enum tc_port tc_port = intel_encoder_to_tc(&tc->dig_port->base);
drivers/gpu/drm/i915/display/intel_tc.c
499
tc->phy_fia = tc_port / 2;
drivers/gpu/drm/i915/display/intel_tc.c
500
tc->phy_fia_idx = tc_port % 2;
drivers/gpu/drm/i915/display/intel_tc.c
502
tc->phy_fia = FIA1;
drivers/gpu/drm/i915/display/intel_tc.c
503
tc->phy_fia_idx = tc_port;
drivers/gpu/drm/i915/display/intel_tc.c
512
icl_tc_phy_cold_off_domain(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
514
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
515
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
517
if (tc->legacy_port)
drivers/gpu/drm/i915/display/intel_tc.c
523
static u32 icl_tc_phy_hpd_live_status(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
525
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
526
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
532
with_intel_display_power(display, tc_phy_cold_off_domain(tc)) {
drivers/gpu/drm/i915/display/intel_tc.c
533
fia_isr = intel_de_read(display, PORT_TX_DFLEXDPSP(tc->phy_fia));
drivers/gpu/drm/i915/display/intel_tc.c
540
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
544
if (fia_isr & TC_LIVE_STATE_TBT(tc->phy_fia_idx))
drivers/gpu/drm/i915/display/intel_tc.c
546
if (fia_isr & TC_LIVE_STATE_TC(tc->phy_fia_idx))
drivers/gpu/drm/i915/display/intel_tc.c
563
static bool icl_tc_phy_is_ready(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
565
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
568
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
570
val = intel_de_read(display, PORT_TX_DFLEXDPPMS(tc->phy_fia));
drivers/gpu/drm/i915/display/intel_tc.c
574
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
578
return val & DP_PHY_MODE_STATUS_COMPLETED(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
581
static bool icl_tc_phy_take_ownership(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
584
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
587
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
589
val = intel_de_read(display, PORT_TX_DFLEXDPCSSS(tc->phy_fia));
drivers/gpu/drm/i915/display/intel_tc.c
593
tc->port_name, take ? "take" : "release");
drivers/gpu/drm/i915/display/intel_tc.c
598
val &= ~DP_PHY_MODE_STATUS_NOT_SAFE(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
600
val |= DP_PHY_MODE_STATUS_NOT_SAFE(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
602
intel_de_write(display, PORT_TX_DFLEXDPCSSS(tc->phy_fia), val);
drivers/gpu/drm/i915/display/intel_tc.c
607
static bool icl_tc_phy_is_owned(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
609
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
612
assert_tc_cold_blocked(tc);
drivers/gpu/drm/i915/display/intel_tc.c
614
val = intel_de_read(display, PORT_TX_DFLEXDPCSSS(tc->phy_fia));
drivers/gpu/drm/i915/display/intel_tc.c
618
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
622
return val & DP_PHY_MODE_STATUS_NOT_SAFE(tc->phy_fia_idx);
drivers/gpu/drm/i915/display/intel_tc.c
625
static void icl_tc_phy_get_hw_state(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
630
tc_cold_wref = __tc_cold_block(tc, &domain);
drivers/gpu/drm/i915/display/intel_tc.c
632
tc->mode = tc_phy_get_current_mode(tc);
drivers/gpu/drm/i915/display/intel_tc.c
633
if (tc->mode != TC_PORT_DISCONNECTED) {
drivers/gpu/drm/i915/display/intel_tc.c
634
tc->lock_wakeref = tc_cold_block(tc);
drivers/gpu/drm/i915/display/intel_tc.c
636
read_pin_configuration(tc);
drivers/gpu/drm/i915/display/intel_tc.c
639
__tc_cold_unblock(tc, domain, tc_cold_wref);
drivers/gpu/drm/i915/display/intel_tc.c
653
static bool tc_phy_verify_legacy_or_dp_alt_mode(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
656
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
657
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
661
if (tc->mode == TC_PORT_LEGACY) {
drivers/gpu/drm/i915/display/intel_tc.c
666
drm_WARN_ON(display->drm, tc->mode != TC_PORT_DP_ALT);
drivers/gpu/drm/i915/display/intel_tc.c
672
if (!(tc_phy_hpd_live_status(tc) & BIT(TC_PORT_DP_ALT))) {
drivers/gpu/drm/i915/display/intel_tc.c
674
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
681
tc->port_name,
drivers/gpu/drm/i915/display/intel_tc.c
689
static bool icl_tc_phy_connect(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
692
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
694
tc->lock_wakeref = tc_cold_block(tc);
drivers/gpu/drm/i915/display/intel_tc.c
696
if (tc->mode == TC_PORT_TBT_ALT) {
drivers/gpu/drm/i915/display/intel_tc.c
697
read_pin_configuration(tc);
drivers/gpu/drm/i915/display/intel_tc.c
702
if ((!tc_phy_is_ready(tc) ||
drivers/gpu/drm/i915/display/intel_tc.c
703
!icl_tc_phy_take_ownership(tc, true)) &&
drivers/gpu/drm/i915/display/intel_tc.c
704
!drm_WARN_ON(display->drm, tc->mode == TC_PORT_LEGACY)) {
drivers/gpu/drm/i915/display/intel_tc.c
706
tc->port_name,
drivers/gpu/drm/i915/display/intel_tc.c
707
str_yes_no(tc_phy_is_ready(tc)));
drivers/gpu/drm/i915/display/intel_tc.c
711
read_pin_configuration(tc);
drivers/gpu/drm/i915/display/intel_tc.c
713
if (!tc_phy_verify_legacy_or_dp_alt_mode(tc, required_lanes))
drivers/gpu/drm/i915/display/intel_tc.c
719
icl_tc_phy_take_ownership(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
721
tc_cold_unblock(tc, fetch_and_zero(&tc->lock_wakeref));
drivers/gpu/drm/i915/display/intel_tc.c
73
static u32 tc_phy_hpd_live_status(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
730
static void icl_tc_phy_disconnect(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
732
switch (tc->mode) {
drivers/gpu/drm/i915/display/intel_tc.c
735
icl_tc_phy_take_ownership(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
738
tc_cold_unblock(tc, fetch_and_zero(&tc->lock_wakeref));
drivers/gpu/drm/i915/display/intel_tc.c
74
static bool tc_phy_is_ready(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
741
MISSING_CASE(tc->mode);
drivers/gpu/drm/i915/display/intel_tc.c
745
static void icl_tc_phy_init(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
747
tc_phy_load_fia_params(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
75
static bool tc_phy_wait_for_ready(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
76
static enum tc_port_mode tc_phy_get_current_mode(struct intel_tc_port *tc);
drivers/gpu/drm/i915/display/intel_tc.c
766
tgl_tc_phy_cold_off_domain(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
771
static void tgl_tc_phy_init(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
773
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
776
with_intel_display_power(display, tc_phy_cold_off_domain(tc))
drivers/gpu/drm/i915/display/intel_tc.c
781
tc_phy_load_fia_params(tc, val & MODULAR_FIA_MASK);
drivers/gpu/drm/i915/display/intel_tc.c
800
adlp_tc_phy_cold_off_domain(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
802
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
803
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
805
if (tc->mode != TC_PORT_TBT_ALT)
drivers/gpu/drm/i915/display/intel_tc.c
811
static u32 adlp_tc_phy_hpd_live_status(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
813
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
814
struct intel_digital_port *dig_port = tc->dig_port;
drivers/gpu/drm/i915/display/intel_tc.c
845
static bool adlp_tc_phy_is_ready(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
847
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
848
enum tc_port tc_port = intel_encoder_to_tc(&tc->dig_port->base);
drivers/gpu/drm/i915/display/intel_tc.c
851
assert_display_core_power_enabled(tc);
drivers/gpu/drm/i915/display/intel_tc.c
857
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
864
static bool adlp_tc_phy_take_ownership(struct intel_tc_port *tc,
drivers/gpu/drm/i915/display/intel_tc.c
867
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
868
enum port port = tc->dig_port->base.port;
drivers/gpu/drm/i915/display/intel_tc.c
870
assert_tc_port_power_enabled(tc);
drivers/gpu/drm/i915/display/intel_tc.c
878
static bool adlp_tc_phy_is_owned(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
880
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
881
enum port port = tc->dig_port->base.port;
drivers/gpu/drm/i915/display/intel_tc.c
884
assert_tc_port_power_enabled(tc);
drivers/gpu/drm/i915/display/intel_tc.c
890
static void adlp_tc_phy_get_hw_state(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
892
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
894
tc_port_power_domain(tc);
drivers/gpu/drm/i915/display/intel_tc.c
899
tc->mode = tc_phy_get_current_mode(tc);
drivers/gpu/drm/i915/display/intel_tc.c
900
if (tc->mode != TC_PORT_DISCONNECTED) {
drivers/gpu/drm/i915/display/intel_tc.c
901
tc->lock_wakeref = tc_cold_block(tc);
drivers/gpu/drm/i915/display/intel_tc.c
903
read_pin_configuration(tc);
drivers/gpu/drm/i915/display/intel_tc.c
909
static bool adlp_tc_phy_connect(struct intel_tc_port *tc, int required_lanes)
drivers/gpu/drm/i915/display/intel_tc.c
911
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
913
tc_port_power_domain(tc);
drivers/gpu/drm/i915/display/intel_tc.c
916
if (tc->mode == TC_PORT_TBT_ALT) {
drivers/gpu/drm/i915/display/intel_tc.c
917
tc->lock_wakeref = tc_cold_block(tc);
drivers/gpu/drm/i915/display/intel_tc.c
919
read_pin_configuration(tc);
drivers/gpu/drm/i915/display/intel_tc.c
926
if (!adlp_tc_phy_take_ownership(tc, true) &&
drivers/gpu/drm/i915/display/intel_tc.c
927
!drm_WARN_ON(display->drm, tc->mode == TC_PORT_LEGACY)) {
drivers/gpu/drm/i915/display/intel_tc.c
929
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
933
if (!tc_phy_is_ready(tc) &&
drivers/gpu/drm/i915/display/intel_tc.c
934
!drm_WARN_ON(display->drm, tc->mode == TC_PORT_LEGACY)) {
drivers/gpu/drm/i915/display/intel_tc.c
936
tc->port_name);
drivers/gpu/drm/i915/display/intel_tc.c
940
tc->lock_wakeref = tc_cold_block(tc);
drivers/gpu/drm/i915/display/intel_tc.c
942
read_pin_configuration(tc);
drivers/gpu/drm/i915/display/intel_tc.c
944
if (!tc_phy_verify_legacy_or_dp_alt_mode(tc, required_lanes))
drivers/gpu/drm/i915/display/intel_tc.c
95
return dig_port->tc;
drivers/gpu/drm/i915/display/intel_tc.c
952
tc_cold_unblock(tc, fetch_and_zero(&tc->lock_wakeref));
drivers/gpu/drm/i915/display/intel_tc.c
954
adlp_tc_phy_take_ownership(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
961
static void adlp_tc_phy_disconnect(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
963
struct intel_display *display = to_intel_display(tc->dig_port);
drivers/gpu/drm/i915/display/intel_tc.c
965
tc_port_power_domain(tc);
drivers/gpu/drm/i915/display/intel_tc.c
970
tc_cold_unblock(tc, fetch_and_zero(&tc->lock_wakeref));
drivers/gpu/drm/i915/display/intel_tc.c
972
switch (tc->mode) {
drivers/gpu/drm/i915/display/intel_tc.c
975
adlp_tc_phy_take_ownership(tc, false);
drivers/gpu/drm/i915/display/intel_tc.c
980
MISSING_CASE(tc->mode);
drivers/gpu/drm/i915/display/intel_tc.c
986
static void adlp_tc_phy_init(struct intel_tc_port *tc)
drivers/gpu/drm/i915/display/intel_tc.c
988
tc_phy_load_fia_params(tc, true);
drivers/gpu/drm/i915/display/vlv_dsi_regs.h
22
#define BXT_MIPI_TRANS_HACTIVE(tc) _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
drivers/gpu/drm/i915/display/vlv_dsi_regs.h
26
#define BXT_MIPI_TRANS_VACTIVE(tc) _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
drivers/gpu/drm/i915/display/vlv_dsi_regs.h
30
#define BXT_MIPI_TRANS_VTOTAL(tc) _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
drivers/gpu/drm/i915/display/vlv_dsi_regs.h
45
#define BXT_MIPI_PORT_CTRL(tc) _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
drivers/gpu/drm/imx/dc/dc-de.c
118
de->tc = dc_drm->tc[i];
drivers/gpu/drm/imx/dc/dc-de.c
153
dc_tc_init(de->tc);
drivers/gpu/drm/imx/dc/dc-de.h
34
struct dc_tc *tc;
drivers/gpu/drm/imx/dc/dc-de.h
57
void dc_tc_init(struct dc_tc *tc);
drivers/gpu/drm/imx/dc/dc-drv.h
52
struct dc_tc *tc[DC_DISPLAYS];
drivers/gpu/drm/imx/dc/dc-kms.c
45
bridge = devm_drm_of_get_bridge(dev, dc_crtc->de->tc->dev->of_node,
drivers/gpu/drm/imx/dc/dc-tc.c
100
tc->dev = dev;
drivers/gpu/drm/imx/dc/dc-tc.c
101
dc_drm->tc[id] = tc;
drivers/gpu/drm/imx/dc/dc-tc.c
63
void dc_tc_init(struct dc_tc *tc)
drivers/gpu/drm/imx/dc/dc-tc.c
66
regmap_write(tc->reg, TCON_CTRL, CTRL_RST_VAL);
drivers/gpu/drm/imx/dc/dc-tc.c
69
regmap_bulk_write(tc->reg, MAPBIT3_0, dc_tc_mapbit,
drivers/gpu/drm/imx/dc/dc-tc.c
79
struct dc_tc *tc;
drivers/gpu/drm/imx/dc/dc-tc.c
82
tc = devm_kzalloc(dev, sizeof(*tc), GFP_KERNEL);
drivers/gpu/drm/imx/dc/dc-tc.c
83
if (!tc)
drivers/gpu/drm/imx/dc/dc-tc.c
90
tc->reg = devm_regmap_init_mmio(dev, base, &dc_tc_regmap_config);
drivers/gpu/drm/imx/dc/dc-tc.c
91
if (IS_ERR(tc->reg))
drivers/gpu/drm/imx/dc/dc-tc.c
92
return PTR_ERR(tc->reg);
drivers/greybus/svc.c
493
request.tc = 0; /* TC0 */
drivers/hwtracing/coresight/coresight-cti-core.c
250
struct cti_trig_con *tc,
drivers/hwtracing/coresight/coresight-cti-core.c
256
tc->con_dev = csdev;
drivers/hwtracing/coresight/coresight-cti-core.c
262
tc->con_dev_name = dev_name(&csdev->dev);
drivers/hwtracing/coresight/coresight-cti-core.c
264
tc->con_dev_name = devm_kstrdup(dev,
drivers/hwtracing/coresight/coresight-cti-core.c
266
if (!tc->con_dev_name)
drivers/hwtracing/coresight/coresight-cti-core.c
269
list_add_tail(&tc->node, &cti_dev->trig_cons);
drivers/hwtracing/coresight/coresight-cti-core.c
273
drvdata->config.trig_in_use |= tc->con_in->used_mask;
drivers/hwtracing/coresight/coresight-cti-core.c
274
drvdata->config.trig_out_use |= tc->con_out->used_mask;
drivers/hwtracing/coresight/coresight-cti-core.c
283
struct cti_trig_con *tc = NULL;
drivers/hwtracing/coresight/coresight-cti-core.c
286
tc = devm_kzalloc(dev, sizeof(struct cti_trig_con), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-cti-core.c
287
if (!tc)
drivers/hwtracing/coresight/coresight-cti-core.c
288
return tc;
drivers/hwtracing/coresight/coresight-cti-core.c
302
tc->con_in = in;
drivers/hwtracing/coresight/coresight-cti-core.c
303
tc->con_out = out;
drivers/hwtracing/coresight/coresight-cti-core.c
304
tc->con_in->nr_sigs = in_sigs;
drivers/hwtracing/coresight/coresight-cti-core.c
305
tc->con_out->nr_sigs = out_sigs;
drivers/hwtracing/coresight/coresight-cti-core.c
306
return tc;
drivers/hwtracing/coresight/coresight-cti-core.c
318
struct cti_trig_con *tc = NULL;
drivers/hwtracing/coresight/coresight-cti-core.c
324
tc = cti_allocate_trig_con(dev, n_trigs, n_trigs);
drivers/hwtracing/coresight/coresight-cti-core.c
325
if (!tc)
drivers/hwtracing/coresight/coresight-cti-core.c
328
tc->con_in->used_mask = n_trig_mask;
drivers/hwtracing/coresight/coresight-cti-core.c
329
tc->con_out->used_mask = n_trig_mask;
drivers/hwtracing/coresight/coresight-cti-core.c
330
ret = cti_add_connection_entry(dev, drvdata, tc, NULL, "default");
drivers/hwtracing/coresight/coresight-cti-core.c
482
struct cti_trig_con *tc)
drivers/hwtracing/coresight/coresight-cti-core.c
488
link_info.orig_name = tc->con_dev_name;
drivers/hwtracing/coresight/coresight-cti-core.c
489
link_info.target = tc->con_dev;
drivers/hwtracing/coresight/coresight-cti-core.c
501
struct cti_trig_con *tc)
drivers/hwtracing/coresight/coresight-cti-core.c
506
link_info.orig_name = tc->con_dev_name;
drivers/hwtracing/coresight/coresight-cti-core.c
507
link_info.target = tc->con_dev;
drivers/hwtracing/coresight/coresight-cti-core.c
521
struct cti_trig_con *tc;
drivers/hwtracing/coresight/coresight-cti-core.c
525
list_for_each_entry(tc, &ctidev->trig_cons, node) {
drivers/hwtracing/coresight/coresight-cti-core.c
526
if (tc->con_dev_name) {
drivers/hwtracing/coresight/coresight-cti-core.c
527
if (!strcmp(node_name, tc->con_dev_name)) {
drivers/hwtracing/coresight/coresight-cti-core.c
529
tc->con_dev_name = dev_name(&csdev->dev);
drivers/hwtracing/coresight/coresight-cti-core.c
530
tc->con_dev = csdev;
drivers/hwtracing/coresight/coresight-cti-core.c
532
if (cti_add_sysfs_link(drvdata, tc))
drivers/hwtracing/coresight/coresight-cti-core.c
535
tc->con_dev = NULL;
drivers/hwtracing/coresight/coresight-cti-core.c
591
struct cti_trig_con *tc;
drivers/hwtracing/coresight/coresight-cti-core.c
605
list_for_each_entry(tc, &ctidev->trig_cons, node) {
drivers/hwtracing/coresight/coresight-cti-core.c
606
if (tc->con_dev == csdev) {
drivers/hwtracing/coresight/coresight-cti-core.c
607
cti_remove_sysfs_link(ctidrv, tc);
drivers/hwtracing/coresight/coresight-cti-core.c
608
tc->con_dev = NULL;
drivers/hwtracing/coresight/coresight-cti-core.c
631
struct cti_trig_con *tc;
drivers/hwtracing/coresight/coresight-cti-core.c
634
list_for_each_entry(tc, &ctidev->trig_cons, node) {
drivers/hwtracing/coresight/coresight-cti-core.c
635
if (tc->con_dev) {
drivers/hwtracing/coresight/coresight-cti-core.c
637
if (cti_add_sysfs_link(drvdata, tc))
drivers/hwtracing/coresight/coresight-cti-core.c
639
coresight_add_helper(tc->con_dev,
drivers/hwtracing/coresight/coresight-cti-core.c
643
tc->con_dev = NULL;
drivers/hwtracing/coresight/coresight-cti-core.c
650
struct cti_trig_con *tc;
drivers/hwtracing/coresight/coresight-cti-core.c
653
list_for_each_entry(tc, &ctidev->trig_cons, node) {
drivers/hwtracing/coresight/coresight-cti-core.c
654
if (tc->con_dev) {
drivers/hwtracing/coresight/coresight-cti-core.c
655
cti_remove_sysfs_link(drvdata, tc);
drivers/hwtracing/coresight/coresight-cti-core.c
656
tc->con_dev = NULL;
drivers/hwtracing/coresight/coresight-cti-platform.c
121
struct cti_trig_con *tc = NULL;
drivers/hwtracing/coresight/coresight-cti-platform.c
133
tc = cti_allocate_trig_con(dev, NR_V8ETM_INOUT_SIGS,
drivers/hwtracing/coresight/coresight-cti-platform.c
135
if (!tc)
drivers/hwtracing/coresight/coresight-cti-platform.c
139
tc->con_in->used_mask = 0xF0; /* sigs <4,5,6,7> */
drivers/hwtracing/coresight/coresight-cti-platform.c
140
tc->con_out->used_mask = 0xF0; /* sigs <4,5,6,7> */
drivers/hwtracing/coresight/coresight-cti-platform.c
147
tc->con_in->sig_types[i] = ETM_EXTOUT;
drivers/hwtracing/coresight/coresight-cti-platform.c
148
tc->con_out->sig_types[i] = ETM_EXTIN;
drivers/hwtracing/coresight/coresight-cti-platform.c
162
ret = cti_add_connection_entry(dev, drvdata, tc, csdev, assoc_name);
drivers/hwtracing/coresight/coresight-cti-platform.c
177
struct cti_trig_con *tc = NULL;
drivers/hwtracing/coresight/coresight-cti-platform.c
192
tc = cti_allocate_trig_con(dev, NR_V8PE_IN_SIGS, NR_V8PE_OUT_SIGS);
drivers/hwtracing/coresight/coresight-cti-platform.c
193
if (!tc)
drivers/hwtracing/coresight/coresight-cti-platform.c
197
tc->con_in->used_mask = 0x3; /* sigs <0 1> */
drivers/hwtracing/coresight/coresight-cti-platform.c
198
tc->con_in->sig_types[0] = PE_DBGTRIGGER;
drivers/hwtracing/coresight/coresight-cti-platform.c
199
tc->con_in->sig_types[1] = PE_PMUIRQ;
drivers/hwtracing/coresight/coresight-cti-platform.c
200
tc->con_out->used_mask = 0x7; /* sigs <0 1 2 > */
drivers/hwtracing/coresight/coresight-cti-platform.c
201
tc->con_out->sig_types[0] = PE_EDBGREQ;
drivers/hwtracing/coresight/coresight-cti-platform.c
202
tc->con_out->sig_types[1] = PE_DBGRESTART;
drivers/hwtracing/coresight/coresight-cti-platform.c
203
tc->con_out->sig_types[2] = PE_CTIIRQ;
drivers/hwtracing/coresight/coresight-cti-platform.c
206
ret = cti_add_connection_entry(dev, drvdata, tc, NULL, cpu_name_str);
drivers/hwtracing/coresight/coresight-cti-platform.c
344
struct cti_trig_con *tc = NULL;
drivers/hwtracing/coresight/coresight-cti-platform.c
359
tc = cti_allocate_trig_con(dev, nr_sigs_in, nr_sigs_out);
drivers/hwtracing/coresight/coresight-cti-platform.c
360
if (!tc)
drivers/hwtracing/coresight/coresight-cti-platform.c
364
err = cti_plat_read_trig_group(tc->con_in, fwnode,
drivers/hwtracing/coresight/coresight-cti-platform.c
369
err = cti_plat_read_trig_types(tc->con_in, fwnode,
drivers/hwtracing/coresight/coresight-cti-platform.c
374
err = cti_plat_read_trig_group(tc->con_out, fwnode,
drivers/hwtracing/coresight/coresight-cti-platform.c
379
err = cti_plat_read_trig_types(tc->con_out, fwnode,
drivers/hwtracing/coresight/coresight-cti-platform.c
409
err = cti_add_connection_entry(dev, drvdata, tc, csdev, assoc_name);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1048
int con_idx, struct cti_trig_con *tc)
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1063
tc->attr_group = group;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1070
struct cti_trig_con *tc)
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1076
attr_group = cti_create_con_sysfs_group(dev, ctidev, con_idx, tc);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1081
tc->con_attrs = devm_kcalloc(dev, CTI_CON_ATTR_MAX + 1,
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1083
if (!tc->con_attrs)
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1086
err = cti_create_con_sysfs_attr(dev, tc, CTI_CON_ATTR_NAME,
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1091
if (tc->con_in->nr_sigs > 0) {
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1092
err = cti_create_con_sysfs_attr(dev, tc,
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1098
err = cti_create_con_sysfs_attr(dev, tc,
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1105
if (tc->con_out->nr_sigs > 0) {
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1106
err = cti_create_con_sysfs_attr(dev, tc,
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1112
err = cti_create_con_sysfs_attr(dev, tc,
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1118
attr_group->attrs = tc->con_attrs;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1141
struct cti_trig_con *tc;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1152
list_for_each_entry(tc, &ctidev->trig_cons, node) {
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1153
err = cti_create_con_attr_set(dev, con_idx++, ctidev, tc);
drivers/hwtracing/coresight/coresight-cti.h
214
struct cti_trig_con *tc,
drivers/infiniband/hw/irdma/ctrl.c
2608
FIELD_PREP(IRDMA_CQPSQ_WS_TC, info->tc) |
drivers/infiniband/hw/irdma/i40iw_if.c
140
l2params.up2tc[i] = cdev_info->params.qos.prio_qos[i].tc;
drivers/infiniband/hw/irdma/icrdma_if.c
120
qset.tc = tc_node->traffic_class;
drivers/infiniband/hw/irdma/icrdma_if.c
147
qset.tc = tc_node->traffic_class;
drivers/infiniband/hw/irdma/type.h
610
u8 tc;
drivers/infiniband/hw/irdma/ws.c
102
node_info.tc = node->traffic_class;
drivers/infiniband/hw/mthca/mthca_cmd.c
666
int ts = 0, tc = 0;
drivers/infiniband/hw/mthca/mthca_cmd.c
701
++tc;
drivers/infiniband/hw/mthca/mthca_cmd.c
719
mthca_dbg(dev, "Mapped %d chunks/%d KB for FW.\n", tc, ts);
drivers/infiniband/hw/mthca/mthca_cmd.c
722
mthca_dbg(dev, "Mapped %d chunks/%d KB for ICM aux.\n", tc, ts);
drivers/infiniband/hw/mthca/mthca_cmd.c
726
tc, ts, (unsigned long long) virt - (ts << 10));
drivers/input/touchscreen/tps6507x-ts.c
155
&tsc->tc.pressure);
drivers/input/touchscreen/tps6507x-ts.c
159
pendown = tsc->tc.pressure > tsc->min_pressure;
drivers/input/touchscreen/tps6507x-ts.c
178
&tsc->tc.x);
drivers/input/touchscreen/tps6507x-ts.c
183
&tsc->tc.y);
drivers/input/touchscreen/tps6507x-ts.c
187
input_report_abs(input_dev, ABS_X, tsc->tc.x);
drivers/input/touchscreen/tps6507x-ts.c
188
input_report_abs(input_dev, ABS_Y, tsc->tc.y);
drivers/input/touchscreen/tps6507x-ts.c
189
input_report_abs(input_dev, ABS_PRESSURE, tsc->tc.pressure);
drivers/input/touchscreen/tps6507x-ts.c
45
struct ts_event tc;
drivers/input/touchscreen/tsc2007.h
89
u32 tsc2007_calculate_resistance(struct tsc2007 *tsc, struct ts_event *tc);
drivers/input/touchscreen/tsc2007_core.c
118
struct ts_event tc;
drivers/input/touchscreen/tsc2007_core.c
126
tsc2007_read_values(ts, &tc);
drivers/input/touchscreen/tsc2007_core.c
129
rt = tsc2007_calculate_resistance(ts, &tc);
drivers/input/touchscreen/tsc2007_core.c
143
tc.x, tc.y, rt);
drivers/input/touchscreen/tsc2007_core.c
148
touchscreen_report_pos(input, &ts->prop, tc.x, tc.y, false);
drivers/input/touchscreen/tsc2007_core.c
54
static void tsc2007_read_values(struct tsc2007 *tsc, struct ts_event *tc)
drivers/input/touchscreen/tsc2007_core.c
57
tc->y = tsc2007_xfer(tsc, READ_Y);
drivers/input/touchscreen/tsc2007_core.c
60
tc->x = tsc2007_xfer(tsc, READ_X);
drivers/input/touchscreen/tsc2007_core.c
63
tc->z1 = tsc2007_xfer(tsc, READ_Z1);
drivers/input/touchscreen/tsc2007_core.c
64
tc->z2 = tsc2007_xfer(tsc, READ_Z2);
drivers/input/touchscreen/tsc2007_core.c
70
u32 tsc2007_calculate_resistance(struct tsc2007 *tsc, struct ts_event *tc)
drivers/input/touchscreen/tsc2007_core.c
75
if (tc->x == MAX_12BIT)
drivers/input/touchscreen/tsc2007_core.c
76
tc->x = 0;
drivers/input/touchscreen/tsc2007_core.c
78
if (likely(tc->x && tc->z1)) {
drivers/input/touchscreen/tsc2007_core.c
80
rt = tc->z2 - tc->z1;
drivers/input/touchscreen/tsc2007_core.c
81
rt *= tc->x;
drivers/input/touchscreen/tsc2007_core.c
83
rt = div_u64(rt, tc->z1);
drivers/input/touchscreen/tsc2007_iio.c
71
struct ts_event tc;
drivers/input/touchscreen/tsc2007_iio.c
73
tc.x = tsc2007_xfer(tsc, READ_X);
drivers/input/touchscreen/tsc2007_iio.c
74
tc.z1 = tsc2007_xfer(tsc, READ_Z1);
drivers/input/touchscreen/tsc2007_iio.c
75
tc.z2 = tsc2007_xfer(tsc, READ_Z2);
drivers/input/touchscreen/tsc2007_iio.c
76
*val = tsc2007_calculate_resistance(tsc, &tc);
drivers/iommu/riscv/iommu-bits.h
324
u64 tc;
drivers/iommu/riscv/iommu.c
1019
u64 tc;
drivers/iommu/riscv/iommu.c
1024
tc = READ_ONCE(dc->tc);
drivers/iommu/riscv/iommu.c
1025
if (!(tc & RISCV_IOMMU_DC_TC_V))
drivers/iommu/riscv/iommu.c
1028
WRITE_ONCE(dc->tc, tc & ~RISCV_IOMMU_DC_TC_V);
drivers/iommu/riscv/iommu.c
1046
tc = READ_ONCE(dc->tc);
drivers/iommu/riscv/iommu.c
1047
tc |= ta & RISCV_IOMMU_DC_TC_V;
drivers/iommu/riscv/iommu.c
1053
WRITE_ONCE(dc->tc, tc);
drivers/iommu/riscv/iommu.c
1490
u64 tc;
drivers/iommu/riscv/iommu.c
1514
tc = 0;
drivers/iommu/riscv/iommu.c
1516
tc |= RISCV_IOMMU_DC_TC_SADE;
drivers/iommu/riscv/iommu.c
1523
if (READ_ONCE(dc->tc) & RISCV_IOMMU_DC_TC_V)
drivers/iommu/riscv/iommu.c
1525
WRITE_ONCE(dc->tc, tc);
drivers/md/bcache/super.c
2449
struct cache_set *c, *tc;
drivers/md/bcache/super.c
2452
list_for_each_entry_safe(c, tc, &bch_cache_sets, list)
drivers/md/bcache/super.c
2464
struct cache_set *c, *tc;
drivers/md/bcache/super.c
2466
list_for_each_entry_safe(c, tc, &bch_cache_sets, list) {
drivers/md/bcache/super.c
2708
struct cache_set *c, *tc;
drivers/md/bcache/super.c
2721
list_for_each_entry_safe(c, tc, &bch_cache_sets, list) {
drivers/md/bcache/super.c
2755
struct cache_set *c, *tc;
drivers/md/bcache/super.c
2793
list_for_each_entry_safe(c, tc, &bch_cache_sets, list)
drivers/md/dm-snap-transient.c
45
struct transient_c *tc = store->context;
drivers/md/dm-snap-transient.c
48
if (size < (tc->next_free + store->chunk_size))
drivers/md/dm-snap-transient.c
51
e->new_chunk = sector_to_chunk(store, tc->next_free);
drivers/md/dm-snap-transient.c
52
tc->next_free += store->chunk_size;
drivers/md/dm-snap-transient.c
78
struct transient_c *tc;
drivers/md/dm-snap-transient.c
80
tc = kmalloc_obj(struct transient_c);
drivers/md/dm-snap-transient.c
81
if (!tc)
drivers/md/dm-snap-transient.c
84
tc->next_free = 0;
drivers/md/dm-snap-transient.c
85
store->context = tc;
drivers/md/dm-thin.c
1009
r = dm_thin_insert_block(tc->td, m->virt_begin, m->data_block);
drivers/md/dm-thin.c
1023
inc_remap_and_issue_cell(tc, m->cell, m->data_block);
drivers/md/dm-thin.c
1024
complete_overwrite_bio(tc, bio);
drivers/md/dm-thin.c
1026
inc_all_io_entry(tc->pool, m->cell->holder);
drivers/md/dm-thin.c
1027
remap_and_issue(tc, m->cell->holder, m->data_block);
drivers/md/dm-thin.c
1028
inc_remap_and_issue_cell(tc, m->cell, m->data_block);
drivers/md/dm-thin.c
1040
struct thin_c *tc = m->tc;
drivers/md/dm-thin.c
1043
cell_defer_no_holder(tc, m->cell);
drivers/md/dm-thin.c
1044
mempool_free(m, &tc->pool->mapping_pool);
drivers/md/dm-thin.c
1062
struct thin_c *tc = m->tc;
drivers/md/dm-thin.c
1064
r = dm_thin_remove_range(tc->td, m->cell->key.block_begin, m->cell->key.block_end);
drivers/md/dm-thin.c
1066
metadata_operation_failed(tc->pool, "dm_thin_remove_range", r);
drivers/md/dm-thin.c
1071
cell_defer_no_holder(tc, m->cell);
drivers/md/dm-thin.c
1072
mempool_free(m, &tc->pool->mapping_pool);
drivers/md/dm-thin.c
1086
struct thin_c *tc = m->tc;
drivers/md/dm-thin.c
1087
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1091
begin_discard(&op, tc, discard_parent);
drivers/md/dm-thin.c
1127
struct pool *pool = m->tc->pool;
drivers/md/dm-thin.c
1148
struct thin_c *tc = m->tc;
drivers/md/dm-thin.c
1149
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1158
r = dm_thin_remove_range(tc->td, m->virt_begin, m->virt_end);
drivers/md/dm-thin.c
1162
cell_defer_no_holder(tc, m->cell);
drivers/md/dm-thin.c
1175
cell_defer_no_holder(tc, m->cell);
drivers/md/dm-thin.c
1188
begin_discard(&op, tc, discard_parent);
drivers/md/dm-thin.c
1197
struct thin_c *tc = m->tc;
drivers/md/dm-thin.c
1198
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1212
cell_defer_no_holder(tc, m->cell);
drivers/md/dm-thin.c
1278
static void ll_zero(struct thin_c *tc, struct dm_thin_new_mapping *m,
drivers/md/dm-thin.c
1283
to.bdev = tc->pool_dev->bdev;
drivers/md/dm-thin.c
1287
dm_kcopyd_zero(tc->pool->copier, 1, &to, 0, copy_complete, m);
drivers/md/dm-thin.c
1290
static void remap_and_issue_overwrite(struct thin_c *tc, struct bio *bio,
drivers/md/dm-thin.c
1294
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1301
remap_and_issue(tc, bio, data_begin);
drivers/md/dm-thin.c
1307
static void schedule_copy(struct thin_c *tc, dm_block_t virt_block,
drivers/md/dm-thin.c
1313
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1316
m->tc = tc;
drivers/md/dm-thin.c
1339
remap_and_issue_overwrite(tc, bio, data_dest, m);
drivers/md/dm-thin.c
1347
to.bdev = tc->pool_dev->bdev;
drivers/md/dm-thin.c
1359
ll_zero(tc, m,
drivers/md/dm-thin.c
1368
static void schedule_internal_copy(struct thin_c *tc, dm_block_t virt_block,
drivers/md/dm-thin.c
1372
schedule_copy(tc, virt_block, tc->pool_dev,
drivers/md/dm-thin.c
1374
tc->pool->sectors_per_block);
drivers/md/dm-thin.c
1377
static void schedule_zero(struct thin_c *tc, dm_block_t virt_block,
drivers/md/dm-thin.c
1381
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1385
m->tc = tc;
drivers/md/dm-thin.c
1398
remap_and_issue_overwrite(tc, bio, data_block, m);
drivers/md/dm-thin.c
1400
ll_zero(tc, m, data_block * pool->sectors_per_block,
drivers/md/dm-thin.c
1407
static void schedule_external_copy(struct thin_c *tc, dm_block_t virt_block,
drivers/md/dm-thin.c
1411
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1415
if (virt_block_end <= tc->origin_size) {
drivers/md/dm-thin.c
1416
schedule_copy(tc, virt_block, tc->origin_dev,
drivers/md/dm-thin.c
1420
} else if (virt_block_begin < tc->origin_size) {
drivers/md/dm-thin.c
1421
schedule_copy(tc, virt_block, tc->origin_dev,
drivers/md/dm-thin.c
1423
tc->origin_size - virt_block_begin);
drivers/md/dm-thin.c
1426
schedule_zero(tc, virt_block, data_dest, cell, bio);
drivers/md/dm-thin.c
1513
static int alloc_data_block(struct thin_c *tc, dm_block_t *result)
drivers/md/dm-thin.c
1517
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1583
struct thin_c *tc = h->tc;
drivers/md/dm-thin.c
1585
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
1586
bio_list_add(&tc->retry_on_resume_list, bio);
drivers/md/dm-thin.c
1587
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
1644
static void process_discard_cell_no_passdown(struct thin_c *tc,
drivers/md/dm-thin.c
1647
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1654
m->tc = tc;
drivers/md/dm-thin.c
1664
static void break_up_discard_bio(struct thin_c *tc, dm_block_t begin, dm_block_t end,
drivers/md/dm-thin.c
1667
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1678
r = dm_thin_find_mapped_range(tc->td, begin, end, &virt_begin, &virt_end,
drivers/md/dm-thin.c
1703
(void) build_key(tc->td, PHYSICAL, data_begin, data_begin + len, &data_key);
drivers/md/dm-thin.c
1704
if (bio_detain(tc->pool, &data_key, NULL, &data_cell)) {
drivers/md/dm-thin.c
1715
m->tc = tc;
drivers/md/dm-thin.c
1743
static void process_discard_cell_passdown(struct thin_c *tc, struct dm_bio_prison_cell *virt_cell)
drivers/md/dm-thin.c
1754
break_up_discard_bio(tc, virt_cell->key.block_begin, virt_cell->key.block_end, bio);
drivers/md/dm-thin.c
1764
static void process_discard_bio(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
1770
get_bio_block_range(tc, bio, &begin, &end);
drivers/md/dm-thin.c
1779
if (unlikely(!build_key(tc->td, VIRTUAL, begin, end, &virt_key))) {
drivers/md/dm-thin.c
1785
if (bio_detain(tc->pool, &virt_key, bio, &virt_cell)) {
drivers/md/dm-thin.c
1796
tc->pool->process_discard_cell(tc, virt_cell);
drivers/md/dm-thin.c
1799
static void break_sharing(struct thin_c *tc, struct bio *bio, dm_block_t block,
drivers/md/dm-thin.c
1806
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1808
r = alloc_data_block(tc, &data_block);
drivers/md/dm-thin.c
1811
schedule_internal_copy(tc, block, lookup_result->block,
drivers/md/dm-thin.c
1840
h->shared_read_entry = dm_deferred_entry_inc(info->tc->pool->shared_read_ds);
drivers/md/dm-thin.c
1841
inc_all_io_entry(info->tc->pool, bio);
drivers/md/dm-thin.c
1847
static void remap_and_issue_shared_cell(struct thin_c *tc,
drivers/md/dm-thin.c
1854
info.tc = tc;
drivers/md/dm-thin.c
1858
cell_visit_release(tc->pool, __remap_and_issue_shared_cell,
drivers/md/dm-thin.c
1862
thin_defer_bio(tc, bio);
drivers/md/dm-thin.c
1865
remap_and_issue(tc, bio, block);
drivers/md/dm-thin.c
1868
static void process_shared_bio(struct thin_c *tc, struct bio *bio,
drivers/md/dm-thin.c
1874
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1881
build_data_key(tc->td, lookup_result->block, &key);
drivers/md/dm-thin.c
1883
cell_defer_no_holder(tc, virt_cell);
drivers/md/dm-thin.c
1888
break_sharing(tc, bio, block, &key, lookup_result, data_cell);
drivers/md/dm-thin.c
1889
cell_defer_no_holder(tc, virt_cell);
drivers/md/dm-thin.c
1895
remap_and_issue(tc, bio, lookup_result->block);
drivers/md/dm-thin.c
1897
remap_and_issue_shared_cell(tc, data_cell, lookup_result->block);
drivers/md/dm-thin.c
1898
remap_and_issue_shared_cell(tc, virt_cell, lookup_result->block);
drivers/md/dm-thin.c
1902
static void provision_block(struct thin_c *tc, struct bio *bio, dm_block_t block,
drivers/md/dm-thin.c
1907
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1914
cell_defer_no_holder(tc, cell);
drivers/md/dm-thin.c
1916
remap_and_issue(tc, bio, 0);
drivers/md/dm-thin.c
1925
cell_defer_no_holder(tc, cell);
drivers/md/dm-thin.c
1930
r = alloc_data_block(tc, &data_block);
drivers/md/dm-thin.c
1933
if (tc->origin_dev)
drivers/md/dm-thin.c
1934
schedule_external_copy(tc, block, data_block, cell, bio);
drivers/md/dm-thin.c
1936
schedule_zero(tc, block, data_block, cell, bio);
drivers/md/dm-thin.c
1951
static void process_cell(struct thin_c *tc, struct dm_bio_prison_cell *cell)
drivers/md/dm-thin.c
1954
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
1956
dm_block_t block = get_bio_block(tc, bio);
drivers/md/dm-thin.c
1959
if (tc->requeue_mode) {
drivers/md/dm-thin.c
1964
r = dm_thin_find_block(tc->td, block, 1, &lookup_result);
drivers/md/dm-thin.c
1968
process_shared_bio(tc, bio, block, &lookup_result, cell);
drivers/md/dm-thin.c
1971
remap_and_issue(tc, bio, lookup_result.block);
drivers/md/dm-thin.c
1972
inc_remap_and_issue_cell(tc, cell, lookup_result.block);
drivers/md/dm-thin.c
1977
if (bio_data_dir(bio) == READ && tc->origin_dev) {
drivers/md/dm-thin.c
1979
cell_defer_no_holder(tc, cell);
drivers/md/dm-thin.c
1981
if (bio_end_sector(bio) <= tc->origin_size)
drivers/md/dm-thin.c
1982
remap_to_origin_and_issue(tc, bio);
drivers/md/dm-thin.c
1984
else if (bio->bi_iter.bi_sector < tc->origin_size) {
drivers/md/dm-thin.c
1986
bio->bi_iter.bi_size = (tc->origin_size - bio->bi_iter.bi_sector) << SECTOR_SHIFT;
drivers/md/dm-thin.c
1987
remap_to_origin_and_issue(tc, bio);
drivers/md/dm-thin.c
1994
provision_block(tc, bio, block, cell);
drivers/md/dm-thin.c
2000
cell_defer_no_holder(tc, cell);
drivers/md/dm-thin.c
2006
static void process_bio(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
2008
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
2009
dm_block_t block = get_bio_block(tc, bio);
drivers/md/dm-thin.c
2017
build_virtual_key(tc->td, block, &key);
drivers/md/dm-thin.c
2021
process_cell(tc, cell);
drivers/md/dm-thin.c
2024
static void __process_bio_read_only(struct thin_c *tc, struct bio *bio,
drivers/md/dm-thin.c
2029
dm_block_t block = get_bio_block(tc, bio);
drivers/md/dm-thin.c
2032
r = dm_thin_find_block(tc->td, block, 1, &lookup_result);
drivers/md/dm-thin.c
2036
handle_unserviceable_bio(tc->pool, bio);
drivers/md/dm-thin.c
2038
cell_defer_no_holder(tc, cell);
drivers/md/dm-thin.c
2040
inc_all_io_entry(tc->pool, bio);
drivers/md/dm-thin.c
2041
remap_and_issue(tc, bio, lookup_result.block);
drivers/md/dm-thin.c
2043
inc_remap_and_issue_cell(tc, cell, lookup_result.block);
drivers/md/dm-thin.c
2049
cell_defer_no_holder(tc, cell);
drivers/md/dm-thin.c
2051
handle_unserviceable_bio(tc->pool, bio);
drivers/md/dm-thin.c
2055
if (tc->origin_dev) {
drivers/md/dm-thin.c
2056
inc_all_io_entry(tc->pool, bio);
drivers/md/dm-thin.c
2057
remap_to_origin_and_issue(tc, bio);
drivers/md/dm-thin.c
2069
cell_defer_no_holder(tc, cell);
drivers/md/dm-thin.c
2075
static void process_bio_read_only(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
2077
__process_bio_read_only(tc, bio, NULL);
drivers/md/dm-thin.c
2080
static void process_cell_read_only(struct thin_c *tc, struct dm_bio_prison_cell *cell)
drivers/md/dm-thin.c
2082
__process_bio_read_only(tc, cell->holder, cell);
drivers/md/dm-thin.c
2085
static void process_bio_success(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
2090
static void process_bio_fail(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
2095
static void process_cell_success(struct thin_c *tc, struct dm_bio_prison_cell *cell)
drivers/md/dm-thin.c
2097
cell_success(tc->pool, cell);
drivers/md/dm-thin.c
2100
static void process_cell_fail(struct thin_c *tc, struct dm_bio_prison_cell *cell)
drivers/md/dm-thin.c
2102
cell_error(tc->pool, cell);
drivers/md/dm-thin.c
2118
static void __thin_bio_rb_add(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
2124
rbp = &tc->sort_bio_list.rb_node;
drivers/md/dm-thin.c
2138
rb_insert_color(&pbd->rb_node, &tc->sort_bio_list);
drivers/md/dm-thin.c
2141
static void __extract_sorted_bios(struct thin_c *tc)
drivers/md/dm-thin.c
2147
for (node = rb_first(&tc->sort_bio_list); node; node = rb_next(node)) {
drivers/md/dm-thin.c
2151
bio_list_add(&tc->deferred_bio_list, bio);
drivers/md/dm-thin.c
2152
rb_erase(&pbd->rb_node, &tc->sort_bio_list);
drivers/md/dm-thin.c
2155
WARN_ON(!RB_EMPTY_ROOT(&tc->sort_bio_list));
drivers/md/dm-thin.c
2158
static void __sort_thin_deferred_bios(struct thin_c *tc)
drivers/md/dm-thin.c
2164
bio_list_merge(&bios, &tc->deferred_bio_list);
drivers/md/dm-thin.c
2165
bio_list_init(&tc->deferred_bio_list);
drivers/md/dm-thin.c
2169
__thin_bio_rb_add(tc, bio);
drivers/md/dm-thin.c
2176
__extract_sorted_bios(tc);
drivers/md/dm-thin.c
2179
static void process_thin_deferred_bios(struct thin_c *tc)
drivers/md/dm-thin.c
2181
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
2187
if (tc->requeue_mode) {
drivers/md/dm-thin.c
2188
error_thin_bio_list(tc, &tc->deferred_bio_list,
drivers/md/dm-thin.c
2195
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
2197
if (bio_list_empty(&tc->deferred_bio_list)) {
drivers/md/dm-thin.c
2198
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
2202
__sort_thin_deferred_bios(tc);
drivers/md/dm-thin.c
2204
bio_list_merge(&bios, &tc->deferred_bio_list);
drivers/md/dm-thin.c
2205
bio_list_init(&tc->deferred_bio_list);
drivers/md/dm-thin.c
2207
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
2217
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
2218
bio_list_add(&tc->deferred_bio_list, bio);
drivers/md/dm-thin.c
2219
bio_list_merge(&tc->deferred_bio_list, &bios);
drivers/md/dm-thin.c
2220
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
2225
pool->process_discard(tc, bio);
drivers/md/dm-thin.c
2227
pool->process_bio(tc, bio);
drivers/md/dm-thin.c
226
typedef void (*process_bio_fn)(struct thin_c *tc, struct bio *bio);
drivers/md/dm-thin.c
227
typedef void (*process_cell_fn)(struct thin_c *tc, struct dm_bio_prison_cell *cell);
drivers/md/dm-thin.c
2273
static void process_thin_deferred_cells(struct thin_c *tc)
drivers/md/dm-thin.c
2275
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
2282
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
2283
list_splice_init(&tc->deferred_cells, &cells);
drivers/md/dm-thin.c
2284
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
2290
count = sort_cells(tc->pool, &cells);
drivers/md/dm-thin.c
2305
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
2306
list_splice(&cells, &tc->deferred_cells);
drivers/md/dm-thin.c
2307
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
2312
pool->process_discard_cell(tc, cell);
drivers/md/dm-thin.c
2314
pool->process_cell(tc, cell);
drivers/md/dm-thin.c
2320
static void thin_get(struct thin_c *tc);
drivers/md/dm-thin.c
2321
static void thin_put(struct thin_c *tc);
drivers/md/dm-thin.c
2330
struct thin_c *tc = NULL;
drivers/md/dm-thin.c
2333
tc = list_first_or_null_rcu(&pool->active_thins, struct thin_c, list);
drivers/md/dm-thin.c
2334
if (tc)
drivers/md/dm-thin.c
2335
thin_get(tc);
drivers/md/dm-thin.c
2338
return tc;
drivers/md/dm-thin.c
2341
static struct thin_c *get_next_thin(struct pool *pool, struct thin_c *tc)
drivers/md/dm-thin.c
2343
struct thin_c *old_tc = tc;
drivers/md/dm-thin.c
2346
list_for_each_entry_continue_rcu(tc, &pool->active_thins, list) {
drivers/md/dm-thin.c
2347
thin_get(tc);
drivers/md/dm-thin.c
2350
return tc;
drivers/md/dm-thin.c
2362
struct thin_c *tc;
drivers/md/dm-thin.c
2364
tc = get_first_thin(pool);
drivers/md/dm-thin.c
2365
while (tc) {
drivers/md/dm-thin.c
2366
process_thin_deferred_cells(tc);
drivers/md/dm-thin.c
2367
process_thin_deferred_bios(tc);
drivers/md/dm-thin.c
2368
tc = get_next_thin(pool, tc);
drivers/md/dm-thin.c
2491
struct thin_c *tc;
drivers/md/dm-thin.c
2503
w->tc->requeue_mode = true;
drivers/md/dm-thin.c
2504
requeue_io(w->tc);
drivers/md/dm-thin.c
2512
w->tc->requeue_mode = false;
drivers/md/dm-thin.c
2516
static void noflush_work(struct thin_c *tc, void (*fn)(struct work_struct *))
drivers/md/dm-thin.c
2520
w.tc = tc;
drivers/md/dm-thin.c
2521
pool_work_wait(&w.pw, tc->pool, fn);
drivers/md/dm-thin.c
2672
static void thin_defer_bio(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
2674
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
2676
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
2677
bio_list_add(&tc->deferred_bio_list, bio);
drivers/md/dm-thin.c
2678
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
2683
static void thin_defer_bio_with_throttle(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
2685
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
2688
thin_defer_bio(tc, bio);
drivers/md/dm-thin.c
2692
static void thin_defer_cell(struct thin_c *tc, struct dm_bio_prison_cell *cell)
drivers/md/dm-thin.c
2694
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
2697
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
2698
list_add_tail(&cell->user_list, &tc->deferred_cells);
drivers/md/dm-thin.c
2699
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
2705
static void thin_hook_bio(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
2709
h->tc = tc;
drivers/md/dm-thin.c
2722
struct thin_c *tc = ti->private;
drivers/md/dm-thin.c
2723
dm_block_t block = get_bio_block(tc, bio);
drivers/md/dm-thin.c
2724
struct dm_thin_device *td = tc->td;
drivers/md/dm-thin.c
2729
thin_hook_bio(tc, bio);
drivers/md/dm-thin.c
2731
if (tc->requeue_mode) {
drivers/md/dm-thin.c
2737
if (get_pool_mode(tc->pool) == PM_FAIL) {
drivers/md/dm-thin.c
2743
thin_defer_bio_with_throttle(tc, bio);
drivers/md/dm-thin.c
2751
build_virtual_key(tc->td, block, &key);
drivers/md/dm-thin.c
2752
if (bio_detain(tc->pool, &key, bio, &virt_cell))
drivers/md/dm-thin.c
2777
thin_defer_cell(tc, virt_cell);
drivers/md/dm-thin.c
2781
build_data_key(tc->td, result.block, &key);
drivers/md/dm-thin.c
2782
if (bio_detain(tc->pool, &key, bio, &data_cell)) {
drivers/md/dm-thin.c
2783
cell_defer_no_holder(tc, virt_cell);
drivers/md/dm-thin.c
2787
inc_all_io_entry(tc->pool, bio);
drivers/md/dm-thin.c
2788
cell_defer_no_holder(tc, data_cell);
drivers/md/dm-thin.c
2789
cell_defer_no_holder(tc, virt_cell);
drivers/md/dm-thin.c
2791
remap(tc, bio, result.block);
drivers/md/dm-thin.c
2796
thin_defer_cell(tc, virt_cell);
drivers/md/dm-thin.c
2806
cell_defer_no_holder(tc, virt_cell);
drivers/md/dm-thin.c
2813
struct thin_c *tc;
drivers/md/dm-thin.c
2816
list_for_each_entry_rcu(tc, &pool->active_thins, list) {
drivers/md/dm-thin.c
2817
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
2818
bio_list_merge(&tc->deferred_bio_list, &tc->retry_on_resume_list);
drivers/md/dm-thin.c
2819
bio_list_init(&tc->retry_on_resume_list);
drivers/md/dm-thin.c
2820
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
3601
struct thin_c *tc;
drivers/md/dm-thin.c
3604
tc = get_first_thin(pool);
drivers/md/dm-thin.c
3605
while (tc) {
drivers/md/dm-thin.c
3606
dm_internal_suspend_noflush(tc->thin_md);
drivers/md/dm-thin.c
3607
tc = get_next_thin(pool, tc);
drivers/md/dm-thin.c
3613
struct thin_c *tc;
drivers/md/dm-thin.c
3616
tc = get_first_thin(pool);
drivers/md/dm-thin.c
3617
while (tc) {
drivers/md/dm-thin.c
3618
dm_internal_resume(tc->thin_md);
drivers/md/dm-thin.c
3619
tc = get_next_thin(pool, tc);
drivers/md/dm-thin.c
382
struct thin_c *tc;
drivers/md/dm-thin.c
388
static void begin_discard(struct discard_op *op, struct thin_c *tc, struct bio *parent)
drivers/md/dm-thin.c
392
op->tc = tc;
drivers/md/dm-thin.c
400
struct thin_c *tc = op->tc;
drivers/md/dm-thin.c
401
sector_t s = block_to_sectors(tc->pool, data_b);
drivers/md/dm-thin.c
402
sector_t len = block_to_sectors(tc->pool, data_e - data_b);
drivers/md/dm-thin.c
404
__blkdev_issue_discard(tc->pool_dev->bdev, s, len, GFP_NOIO, &op->bio);
drivers/md/dm-thin.c
4134
static void thin_get(struct thin_c *tc)
drivers/md/dm-thin.c
4136
refcount_inc(&tc->refcount);
drivers/md/dm-thin.c
4139
static void thin_put(struct thin_c *tc)
drivers/md/dm-thin.c
4141
if (refcount_dec_and_test(&tc->refcount))
drivers/md/dm-thin.c
4142
complete(&tc->can_destroy);
drivers/md/dm-thin.c
4147
struct thin_c *tc = ti->private;
drivers/md/dm-thin.c
4149
spin_lock_irq(&tc->pool->lock);
drivers/md/dm-thin.c
4150
list_del_rcu(&tc->list);
drivers/md/dm-thin.c
4151
spin_unlock_irq(&tc->pool->lock);
drivers/md/dm-thin.c
4154
thin_put(tc);
drivers/md/dm-thin.c
4155
wait_for_completion(&tc->can_destroy);
drivers/md/dm-thin.c
4159
__pool_dec(tc->pool);
drivers/md/dm-thin.c
4160
dm_pool_close_thin_device(tc->td);
drivers/md/dm-thin.c
4161
dm_put_device(ti, tc->pool_dev);
drivers/md/dm-thin.c
4162
if (tc->origin_dev)
drivers/md/dm-thin.c
4163
dm_put_device(ti, tc->origin_dev);
drivers/md/dm-thin.c
4164
kfree(tc);
drivers/md/dm-thin.c
4184
struct thin_c *tc;
drivers/md/dm-thin.c
4196
tc = ti->private = kzalloc_obj(*tc);
drivers/md/dm-thin.c
4197
if (!tc) {
drivers/md/dm-thin.c
4202
tc->thin_md = dm_table_get_md(ti->table);
drivers/md/dm-thin.c
4203
spin_lock_init(&tc->lock);
drivers/md/dm-thin.c
4204
INIT_LIST_HEAD(&tc->deferred_cells);
drivers/md/dm-thin.c
4205
bio_list_init(&tc->deferred_bio_list);
drivers/md/dm-thin.c
4206
bio_list_init(&tc->retry_on_resume_list);
drivers/md/dm-thin.c
4207
tc->sort_bio_list = RB_ROOT;
drivers/md/dm-thin.c
4221
tc->origin_dev = origin_dev;
drivers/md/dm-thin.c
4229
tc->pool_dev = pool_dev;
drivers/md/dm-thin.c
4231
if (read_dev_id(argv[1], (unsigned long long *)&tc->dev_id, 0)) {
drivers/md/dm-thin.c
4237
pool_md = dm_get_md(tc->pool_dev->bdev->bd_dev);
drivers/md/dm-thin.c
4244
tc->pool = __pool_table_lookup(pool_md);
drivers/md/dm-thin.c
4245
if (!tc->pool) {
drivers/md/dm-thin.c
4250
__pool_inc(tc->pool);
drivers/md/dm-thin.c
4252
if (get_pool_mode(tc->pool) == PM_FAIL) {
drivers/md/dm-thin.c
4258
r = dm_pool_open_thin_device(tc->pool->pmd, tc->dev_id, &tc->td);
drivers/md/dm-thin.c
4264
r = dm_set_target_max_io_len(ti, tc->pool->sectors_per_block);
drivers/md/dm-thin.c
4275
if (tc->pool->pf.discard_enabled) {
drivers/md/dm-thin.c
4283
spin_lock_irq(&tc->pool->lock);
drivers/md/dm-thin.c
4284
if (tc->pool->suspended) {
drivers/md/dm-thin.c
4285
spin_unlock_irq(&tc->pool->lock);
drivers/md/dm-thin.c
4291
refcount_set(&tc->refcount, 1);
drivers/md/dm-thin.c
4292
init_completion(&tc->can_destroy);
drivers/md/dm-thin.c
4293
list_add_tail_rcu(&tc->list, &tc->pool->active_thins);
drivers/md/dm-thin.c
4294
spin_unlock_irq(&tc->pool->lock);
drivers/md/dm-thin.c
4308
dm_pool_close_thin_device(tc->td);
drivers/md/dm-thin.c
4310
__pool_dec(tc->pool);
drivers/md/dm-thin.c
4314
dm_put_device(ti, tc->pool_dev);
drivers/md/dm-thin.c
4316
if (tc->origin_dev)
drivers/md/dm-thin.c
4317
dm_put_device(ti, tc->origin_dev);
drivers/md/dm-thin.c
4319
kfree(tc);
drivers/md/dm-thin.c
4340
struct pool *pool = h->tc->pool;
drivers/md/dm-thin.c
4367
cell_defer_no_holder(h->tc, h->cell);
drivers/md/dm-thin.c
4374
struct thin_c *tc = ti->private;
drivers/md/dm-thin.c
4377
noflush_work(tc, do_noflush_start);
drivers/md/dm-thin.c
4382
struct thin_c *tc = ti->private;
drivers/md/dm-thin.c
4385
noflush_work(tc, do_noflush_stop);
drivers/md/dm-thin.c
4390
struct thin_c *tc = ti->private;
drivers/md/dm-thin.c
4392
if (tc->origin_dev)
drivers/md/dm-thin.c
4393
tc->origin_size = get_dev_size(tc->origin_dev->bdev);
drivers/md/dm-thin.c
4408
struct thin_c *tc = ti->private;
drivers/md/dm-thin.c
4410
if (get_pool_mode(tc->pool) == PM_FAIL) {
drivers/md/dm-thin.c
4415
if (!tc->td)
drivers/md/dm-thin.c
4420
r = dm_thin_get_mapped_count(tc->td, &mapped);
drivers/md/dm-thin.c
4426
r = dm_thin_get_highest_mapped_block(tc->td, &highest);
drivers/md/dm-thin.c
4432
DMEMIT("%llu ", mapped * tc->pool->sectors_per_block);
drivers/md/dm-thin.c
4435
tc->pool->sectors_per_block) - 1);
drivers/md/dm-thin.c
4442
format_dev_t(buf, tc->pool_dev->bdev->bd_dev),
drivers/md/dm-thin.c
4443
(unsigned long) tc->dev_id);
drivers/md/dm-thin.c
4444
if (tc->origin_dev)
drivers/md/dm-thin.c
4445
DMEMIT(" %s", format_dev_t(buf, tc->origin_dev->bdev->bd_dev));
drivers/md/dm-thin.c
4464
struct thin_c *tc = ti->private;
drivers/md/dm-thin.c
4465
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
4477
return fn(ti, tc->pool_dev, 0, pool->sectors_per_block * blocks, data);
drivers/md/dm-thin.c
4484
struct thin_c *tc = ti->private;
drivers/md/dm-thin.c
4485
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
587
struct thin_c *tc;
drivers/md/dm-thin.c
605
static void error_thin_bio_list(struct thin_c *tc, struct bio_list *master,
drivers/md/dm-thin.c
612
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
614
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
619
static void requeue_deferred_cells(struct thin_c *tc)
drivers/md/dm-thin.c
621
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
627
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
628
list_splice_init(&tc->deferred_cells, &cells);
drivers/md/dm-thin.c
629
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
635
static void requeue_io(struct thin_c *tc)
drivers/md/dm-thin.c
641
spin_lock_irq(&tc->lock);
drivers/md/dm-thin.c
642
bio_list_merge_init(&bios, &tc->deferred_bio_list);
drivers/md/dm-thin.c
643
bio_list_merge_init(&bios, &tc->retry_on_resume_list);
drivers/md/dm-thin.c
644
spin_unlock_irq(&tc->lock);
drivers/md/dm-thin.c
647
requeue_deferred_cells(tc);
drivers/md/dm-thin.c
652
struct thin_c *tc;
drivers/md/dm-thin.c
655
list_for_each_entry_rcu(tc, &pool->active_thins, list)
drivers/md/dm-thin.c
656
error_thin_bio_list(tc, &tc->retry_on_resume_list, error);
drivers/md/dm-thin.c
672
static dm_block_t get_bio_block(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
674
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
688
static void get_bio_block_range(struct thin_c *tc, struct bio *bio,
drivers/md/dm-thin.c
691
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
714
static void remap(struct thin_c *tc, struct bio *bio, dm_block_t block)
drivers/md/dm-thin.c
716
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
719
bio_set_dev(bio, tc->pool_dev->bdev);
drivers/md/dm-thin.c
730
static void remap_to_origin(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
732
bio_set_dev(bio, tc->origin_dev->bdev);
drivers/md/dm-thin.c
735
static int bio_triggers_commit(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
738
dm_thin_changed_this_transaction(tc->td);
drivers/md/dm-thin.c
752
static void issue(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
754
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
756
if (!bio_triggers_commit(tc, bio)) {
drivers/md/dm-thin.c
766
if (dm_thin_aborted_changes(tc->td)) {
drivers/md/dm-thin.c
780
static void remap_to_origin_and_issue(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
782
remap_to_origin(tc, bio);
drivers/md/dm-thin.c
783
issue(tc, bio);
drivers/md/dm-thin.c
786
static void remap_and_issue(struct thin_c *tc, struct bio *bio,
drivers/md/dm-thin.c
789
remap(tc, bio, block);
drivers/md/dm-thin.c
790
issue(tc, bio);
drivers/md/dm-thin.c
812
struct thin_c *tc;
drivers/md/dm-thin.c
829
struct pool *pool = m->tc->pool;
drivers/md/dm-thin.c
840
struct pool *pool = m->tc->pool;
drivers/md/dm-thin.c
880
static void cell_defer_no_holder(struct thin_c *tc, struct dm_bio_prison_cell *cell)
drivers/md/dm-thin.c
882
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
890
spin_lock_irqsave(&tc->lock, flags);
drivers/md/dm-thin.c
891
bio_list_merge(&tc->deferred_bio_list, &bios);
drivers/md/dm-thin.c
892
spin_unlock_irqrestore(&tc->lock, flags);
drivers/md/dm-thin.c
897
static void thin_defer_bio(struct thin_c *tc, struct bio *bio);
drivers/md/dm-thin.c
900
struct thin_c *tc;
drivers/md/dm-thin.c
915
inc_all_io_entry(info->tc->pool, bio);
drivers/md/dm-thin.c
927
static void inc_remap_and_issue_cell(struct thin_c *tc,
drivers/md/dm-thin.c
934
info.tc = tc;
drivers/md/dm-thin.c
943
cell_visit_release(tc->pool, __inc_remap_and_issue_cell,
drivers/md/dm-thin.c
947
thin_defer_bio(tc, bio);
drivers/md/dm-thin.c
950
remap_and_issue(info.tc, bio, block);
drivers/md/dm-thin.c
955
cell_error(m->tc->pool, m->cell);
drivers/md/dm-thin.c
957
mempool_free(m, &m->tc->pool->mapping_pool);
drivers/md/dm-thin.c
960
static void complete_overwrite_bio(struct thin_c *tc, struct bio *bio)
drivers/md/dm-thin.c
962
struct pool *pool = tc->pool;
drivers/md/dm-thin.c
968
if (!bio_triggers_commit(tc, bio)) {
drivers/md/dm-thin.c
978
if (dm_thin_aborted_changes(tc->td)) {
drivers/md/dm-thin.c
994
struct thin_c *tc = m->tc;
drivers/md/dm-thin.c
995
struct pool *pool = tc->pool;
drivers/media/platform/qcom/iris/iris_buffer.c
732
vbuf->timecode = inst->tss[i].tc;
drivers/media/platform/qcom/iris/iris_buffer.c
738
vbuf->timecode = inst->tss[inst->metadata_idx].tc;
drivers/media/platform/qcom/iris/iris_common.c
42
inst->tss[inst->metadata_idx].tc = vbuf->timecode;
drivers/media/platform/qcom/iris/iris_utils.h
30
struct v4l2_timecode tc;
drivers/media/platform/qcom/venus/core.h
376
struct v4l2_timecode tc;
drivers/media/platform/qcom/venus/helpers.c
471
inst->tss[slot].tc = vbuf->timecode;
drivers/media/platform/qcom/venus/helpers.c
491
vbuf->timecode = inst->tss[i].tc;
drivers/media/test-drivers/vivid/vivid-vid-cap.c
176
struct v4l2_timecode *tc = &vbuf->timecode;
drivers/media/test-drivers/vivid/vivid-vid-cap.c
190
tc->type = (fps == 30) ? V4L2_TC_TYPE_30FPS : V4L2_TC_TYPE_25FPS;
drivers/media/test-drivers/vivid/vivid-vid-cap.c
191
tc->flags = 0;
drivers/media/test-drivers/vivid/vivid-vid-cap.c
192
tc->frames = seq % fps;
drivers/media/test-drivers/vivid/vivid-vid-cap.c
193
tc->seconds = (seq / fps) % 60;
drivers/media/test-drivers/vivid/vivid-vid-cap.c
194
tc->minutes = (seq / (60 * fps)) % 60;
drivers/media/test-drivers/vivid/vivid-vid-cap.c
195
tc->hours = (seq / (60 * 60 * fps)) % 24;
drivers/media/v4l2-core/v4l2-ioctl.c
441
const struct v4l2_timecode *tc = &p->timecode;
drivers/media/v4l2-core/v4l2-ioctl.c
470
tc->hours, tc->minutes, tc->seconds,
drivers/media/v4l2-core/v4l2-ioctl.c
471
tc->type, tc->flags, tc->frames, *(__u32 *)tc->userbits);
drivers/media/v4l2-core/v4l2-jpeg.c
487
u8 tc, th, *table;
drivers/media/v4l2-core/v4l2-jpeg.c
495
tc = (tc_th >> 4) & 0xf;
drivers/media/v4l2-core/v4l2-jpeg.c
496
if (tc > 1)
drivers/media/v4l2-core/v4l2-jpeg.c
523
tables[(tc << 1) | th].start = table;
drivers/media/v4l2-core/v4l2-jpeg.c
524
tables[(tc << 1) | th].length = stream->curr - table;
drivers/net/can/rockchip/rockchip_canfd-timestamp.c
24
ns = timecounter_cyc2time(&priv->tc, timestamp);
drivers/net/can/rockchip/rockchip_canfd-timestamp.c
35
timecounter_read(&priv->tc);
drivers/net/can/rockchip/rockchip_canfd-timestamp.c
92
timecounter_init(&priv->tc, &priv->cc, ktime_get_real_ns());
drivers/net/can/rockchip/rockchip_canfd.h
474
struct timecounter tc;
drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
209
rx_ring->last_valid = timecounter_read(&priv->tc);
drivers/net/can/spi/mcp251xfd/mcp251xfd-rx.c
184
timestamp = timecounter_cyc2time(&priv->tc, hw_rx_obj->ts);
drivers/net/can/spi/mcp251xfd/mcp251xfd-timestamp.c
36
timecounter_read(&priv->tc);
drivers/net/can/spi/mcp251xfd/mcp251xfd-timestamp.c
56
timecounter_init(&priv->tc, &priv->cc, ktime_get_real_ns());
drivers/net/can/spi/mcp251xfd/mcp251xfd.h
669
struct timecounter tc;
drivers/net/can/spi/mcp251xfd/mcp251xfd.h
845
ns = timecounter_cyc2time(&priv->tc, ts_raw);
drivers/net/can/usb/gs_usb.c
334
struct timecounter tc;
drivers/net/can/usb/gs_usb.c
453
timecounter_read(&parent->tc);
drivers/net/can/usb/gs_usb.c
468
ns = timecounter_cyc2time(&parent->tc, timestamp);
drivers/net/can/usb/gs_usb.c
485
timecounter_init(&parent->tc, &parent->cc, ktime_get_real_ns());
drivers/net/dsa/b53/b53_regs.h
342
#define ARLTBL_TC(tc) ((3 & tc) << 11)
drivers/net/dsa/hirschmann/hellcreek.c
1543
int tc;
drivers/net/dsa/hirschmann/hellcreek.c
1545
for (tc = 0; tc < 8; ++tc) {
drivers/net/dsa/hirschmann/hellcreek.c
1546
u32 max_sdu = schedule->max_sdu[tc] + VLAN_ETH_HLEN - ETH_FCS_LEN;
drivers/net/dsa/hirschmann/hellcreek.c
1549
if (!schedule->max_sdu[tc])
drivers/net/dsa/hirschmann/hellcreek.c
1553
max_sdu, tc, port);
drivers/net/dsa/hirschmann/hellcreek.c
1555
hellcreek_select_port_prio(hellcreek, port, tc);
drivers/net/dsa/hirschmann/hellcreek.c
1565
int tc;
drivers/net/dsa/hirschmann/hellcreek.c
1567
for (tc = 0; tc < 8; ++tc) {
drivers/net/dsa/hirschmann/hellcreek.c
1570
hellcreek_select_port_prio(hellcreek, port, tc);
drivers/net/dsa/ocelot/felix_vsc9959.c
1094
int tc, i, n;
drivers/net/dsa/ocelot/felix_vsc9959.c
1097
for (tc = 0; tc < OCELOT_NUM_TC; tc++) {
drivers/net/dsa/ocelot/felix_vsc9959.c
1098
min_gate_len[tc] = U64_MAX;
drivers/net/dsa/ocelot/felix_vsc9959.c
1099
gate_len[tc] = 0;
drivers/net/dsa/ocelot/felix_vsc9959.c
1118
for (tc = 0; tc < OCELOT_NUM_TC; tc++) {
drivers/net/dsa/ocelot/felix_vsc9959.c
1119
if (entry->gate_mask & BIT(tc)) {
drivers/net/dsa/ocelot/felix_vsc9959.c
1120
gate_len[tc] += entry->interval;
drivers/net/dsa/ocelot/felix_vsc9959.c
1121
gates_ever_opened |= BIT(tc);
drivers/net/dsa/ocelot/felix_vsc9959.c
1126
if (min_gate_len[tc] > gate_len[tc] &&
drivers/net/dsa/ocelot/felix_vsc9959.c
1127
gate_len[tc])
drivers/net/dsa/ocelot/felix_vsc9959.c
1128
min_gate_len[tc] = gate_len[tc];
drivers/net/dsa/ocelot/felix_vsc9959.c
1129
gate_len[tc] = 0;
drivers/net/dsa/ocelot/felix_vsc9959.c
1140
for (tc = 0; tc < OCELOT_NUM_TC; tc++)
drivers/net/dsa/ocelot/felix_vsc9959.c
1141
if (!(gates_ever_opened & BIT(tc)))
drivers/net/dsa/ocelot/felix_vsc9959.c
1142
min_gate_len[tc] = 0;
drivers/net/dsa/ocelot/felix_vsc9959.c
1149
static void vsc9959_port_qmaxsdu_set(struct ocelot *ocelot, int port, int tc,
drivers/net/dsa/ocelot/felix_vsc9959.c
1152
switch (tc) {
drivers/net/dsa/ocelot/felix_vsc9959.c
1188
static u32 vsc9959_port_qmaxsdu_get(struct ocelot *ocelot, int port, int tc)
drivers/net/dsa/ocelot/felix_vsc9959.c
1190
switch (tc) {
drivers/net/dsa/ocelot/felix_vsc9959.c
1204
static u32 vsc9959_tas_tc_max_sdu(struct tc_taprio_qopt_offload *taprio, int tc)
drivers/net/dsa/ocelot/felix_vsc9959.c
1206
if (!taprio || !taprio->max_sdu[tc])
drivers/net/dsa/ocelot/felix_vsc9959.c
1209
return taprio->max_sdu[tc] + ETH_HLEN + 2 * VLAN_HLEN + ETH_FCS_LEN;
drivers/net/dsa/ocelot/felix_vsc9959.c
1229
int tc;
drivers/net/dsa/ocelot/felix_vsc9959.c
1282
for (tc = 0; tc < OCELOT_NUM_TC; tc++) {
drivers/net/dsa/ocelot/felix_vsc9959.c
1283
u32 requested_max_sdu = vsc9959_tas_tc_max_sdu(taprio, tc);
drivers/net/dsa/ocelot/felix_vsc9959.c
1288
vsc9959_tas_remaining_gate_len_ps(min_gate_len[tc]);
drivers/net/dsa/ocelot/felix_vsc9959.c
1290
if ((mm->active_preemptible_tcs & BIT(tc)) ?
drivers/net/dsa/ocelot/felix_vsc9959.c
1300
port, tc, min_gate_len[tc]);
drivers/net/dsa/ocelot/felix_vsc9959.c
1337
port, tc, min_gate_len[tc], maxlen, speed,
drivers/net/dsa/ocelot/felix_vsc9959.c
1341
vsc9959_port_qmaxsdu_set(ocelot, port, tc, max_sdu);
drivers/net/dsa/ocelot/felix_vsc9959.c
2547
int tc, port, other_port;
drivers/net/dsa/ocelot/felix_vsc9959.c
2601
for (tc = 0; tc < OCELOT_NUM_TC; tc++)
drivers/net/dsa/ocelot/felix_vsc9959.c
2602
if (vsc9959_port_qmaxsdu_get(ocelot, port, tc))
drivers/net/dsa/ocelot/felix_vsc9959.c
2603
val &= ~BIT(tc);
drivers/net/dsa/sja1105/sja1105.h
183
} tc;
drivers/net/dsa/sja1105/sja1105_flower.c
104
unsigned long cookie, int port, int tc,
drivers/net/dsa/sja1105/sja1105_flower.c
123
rule->key.tc.pcp = tc;
drivers/net/dsa/sja1105/sja1105_flower.c
135
if (policing[(port * SJA1105_NUM_TC) + tc].sharindx != port) {
drivers/net/dsa/sja1105/sja1105_flower.c
148
int index = (p * SJA1105_NUM_TC) + tc;
drivers/net/dsa/sja1105/sja1105_flower.c
187
key->tc.pcp, rate_bytes_per_sec,
drivers/net/dsa/sja1105/sja1105_flower.c
286
key->tc.pcp = pcp;
drivers/net/dsa/sja1105/sja1105_flower.c
484
int index = (port * SJA1105_NUM_TC) + rule->key.tc.pcp;
drivers/net/dsa/sja1105/sja1105_main.c
1012
int port, tc;
drivers/net/dsa/sja1105/sja1105_main.c
1036
for (tc = 0; tc < SJA1105_NUM_TC; tc++)
drivers/net/dsa/sja1105/sja1105_main.c
1037
policing[port * SJA1105_NUM_TC + tc].sharindx = port;
drivers/net/dsa/sja1105/sja1105_main.c
515
int port, tc;
drivers/net/dsa/sja1105/sja1105_main.c
542
for (tc = 0; tc < SJA1105_NUM_TC; tc++)
drivers/net/dsa/sja1105/sja1105_main.c
543
l2fwd[port].vlan_pmap[tc] = tc;
drivers/net/dsa/sja1105/sja1105_main.c
628
for (tc = 0; tc < SJA1105_NUM_TC; tc++) {
drivers/net/dsa/sja1105/sja1105_main.c
633
l2fwd[ds->num_ports + tc].vlan_pmap[port] = tc;
drivers/net/dsa/sja1105/sja1105_main.c
636
l2fwd[ds->num_ports + tc].type_egrpcp2outputq = true;
drivers/net/dsa/sja1105/sja1105_main.c
647
int port, tc;
drivers/net/dsa/sja1105/sja1105_main.c
674
for (tc = 0; tc < SJA1105_NUM_TC; tc++)
drivers/net/dsa/sja1105/sja1105_main.c
675
pcp_remap[port].egrpcp[tc] = tc;
drivers/net/ethernet/amd/declance.c
1324
MODULE_DEVICE_TABLE(tc, dec_lance_tc_table);
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
372
unsigned int prio, tc;
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
380
tc = pdata->ets->prio_tc[prio];
drivers/net/ethernet/amd/xgbe/xgbe-dev.c
383
if (pdata->pfc->pfc_en & (1 << tc))
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
1903
u8 tc;
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
1909
tc = mqprio->num_tc;
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
1911
if (tc > pdata->hw_feat.tc_cnt)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
1914
pdata->num_tcs = tc;
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
270
unsigned int tc;
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
277
for (tc = 0; tc < cfg->tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
279
snprintf(tc_string, 8, "TC%u ", tc);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
286
AQ_NIC_CFG_TCVEC2RING(cfg, tc, i));
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
292
AQ_NIC_CFG_TCVEC2RING(cfg, tc, i));
drivers/net/ethernet/aquantia/atlantic/aq_hw.h
340
int (*hw_set_fc)(struct aq_hw_s *self, u32 fc, u32 tc);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1022
unsigned int tc;
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1067
for (tc = 0U; tc < self->aq_nic_cfg.tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1072
count = aq_vec_get_sw_stats(self->aq_vec[i], tc, data);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1649
int aq_nic_setup_tc_max_rate(struct aq_nic_s *self, const unsigned int tc,
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1654
if (tc >= AQ_CFG_TCS_MAX)
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1661
cfg->tc_max_rate[tc] = 10;
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1663
cfg->tc_max_rate[tc] = max_rate;
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1669
int aq_nic_setup_tc_min_rate(struct aq_nic_s *self, const unsigned int tc,
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1674
if (tc >= AQ_CFG_TCS_MAX)
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1678
set_bit(tc, &cfg->tc_min_rate_msk);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1680
clear_bit(tc, &cfg->tc_min_rate_msk);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1686
cfg->tc_min_rate[tc] = 20;
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
1688
cfg->tc_min_rate[tc] = min_rate;
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
868
unsigned int tc = skb->queue_mapping / cfg->vecs;
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
875
ring = self->aq_ring_tx[AQ_NIC_CFG_TCVEC2RING(cfg, tc, vec)];
drivers/net/ethernet/aquantia/atlantic/aq_nic.h
217
int aq_nic_setup_tc_max_rate(struct aq_nic_s *self, const unsigned int tc,
drivers/net/ethernet/aquantia/atlantic/aq_nic.h
219
int aq_nic_setup_tc_min_rate(struct aq_nic_s *self, const unsigned int tc,
drivers/net/ethernet/aquantia/atlantic/aq_vec.c
363
bool aq_vec_is_valid_tc(struct aq_vec_s *self, const unsigned int tc)
drivers/net/ethernet/aquantia/atlantic/aq_vec.c
365
return tc < self->rx_rings && tc < self->tx_rings;
drivers/net/ethernet/aquantia/atlantic/aq_vec.c
368
unsigned int aq_vec_get_sw_stats(struct aq_vec_s *self, const unsigned int tc, u64 *data)
drivers/net/ethernet/aquantia/atlantic/aq_vec.c
372
if (!aq_vec_is_valid_tc(self, tc))
drivers/net/ethernet/aquantia/atlantic/aq_vec.c
375
count = aq_ring_fill_stats_data(&self->ring[tc][AQ_VEC_RX_ID], data);
drivers/net/ethernet/aquantia/atlantic/aq_vec.c
376
count += aq_ring_fill_stats_data(&self->ring[tc][AQ_VEC_TX_ID], data + count);
drivers/net/ethernet/aquantia/atlantic/aq_vec.h
45
bool aq_vec_is_valid_tc(struct aq_vec_s *self, const unsigned int tc);
drivers/net/ethernet/aquantia/atlantic/aq_vec.h
46
unsigned int aq_vec_get_sw_stats(struct aq_vec_s *self, const unsigned int tc, u64 *data);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
129
u32 tc = 0U;
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
150
hw_atl_tpb_tx_pkt_buff_size_per_tc_set(self, buff_size, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
154
100U, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
158
100U, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
161
tc = 0;
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
165
hw_atl_rpb_rx_pkt_buff_size_per_tc_set(self, buff_size, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
169
100U, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
173
100U, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
174
hw_atl_rpb_rx_xoff_en_per_tc_set(self, is_rx_flow_control ? 1U : 0U, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
130
int hw_atl_b0_set_fc(struct aq_hw_s *self, u32 fc, u32 tc)
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
132
hw_atl_rpb_rx_xoff_en_per_tc_set(self, !!(fc & AQ_NIC_FC_RX), tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
158
u32 tc = 0U;
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
174
for (tc = 0; tc < cfg->tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
178
hw_atl_tpb_tx_pkt_buff_size_per_tc_set(self, tx_buff_size, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
181
hw_atl_tpb_tx_buff_hi_threshold_per_tc_set(self, threshold, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
184
hw_atl_tpb_tx_buff_lo_threshold_per_tc_set(self, threshold, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
187
hw_atl_rpb_rx_pkt_buff_size_per_tc_set(self, rx_buff_size, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
190
hw_atl_rpb_rx_buff_hi_threshold_per_tc_set(self, threshold, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
193
hw_atl_rpb_rx_buff_lo_threshold_per_tc_set(self, threshold, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
195
hw_atl_b0_set_fc(self, self->aq_nic_cfg->fc.req, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
346
int tc;
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
359
for (tc = 0; tc != nic_cfg->tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
360
if (!nic_cfg->tc_min_rate[tc]) {
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
361
tc_weight[tc] = 0;
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
365
tc_weight[tc] = (-1L + link_speed +
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
366
nic_cfg->tc_min_rate[tc] *
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
369
tc_weight[tc] = min(tc_weight[tc], max_weight);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
370
sum_weight += tc_weight[tc];
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
390
for (tc = 0; tc != nic_cfg->tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
391
const u32 en = (nic_cfg->tc_max_rate[tc] != 0) ? 1U : 0U;
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
392
const u32 desc = AQ_NIC_CFG_TCVEC2RING(nic_cfg, tc, 0);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
395
hw_atl_tps_tx_pkt_shed_desc_tc_max_credit_set(self, tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
397
hw_atl_tps_tx_pkt_shed_desc_tc_weight_set(self, tc, 0x1E);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
400
weight = tc_weight[tc];
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
414
hw_atl_tps_tx_pkt_shed_tc_data_weight_set(self, tc, weight);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
415
hw_atl_tps_tx_pkt_shed_tc_data_max_credit_set(self, tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
423
nic_cfg->tc_max_rate[tc];
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
438
for (tc = nic_cfg->tcs; tc != AQ_CFG_TCS_MAX; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
439
const u32 desc = AQ_NIC_CFG_TCVEC2RING(nic_cfg, tc, 0);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h
63
int hw_atl_b0_set_fc(struct aq_hw_s *self, u32 fc, u32 tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
1554
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
1557
aq_hw_write_reg_bit(aq_hw, HW_ATL_TPS_DESC_TCTCREDIT_MAX_ADR(tc),
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
1564
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
1567
aq_hw_write_reg_bit(aq_hw, HW_ATL_TPS_DESC_TCTWEIGHT_ADR(tc),
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
1583
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
1586
aq_hw_write_reg_bit(aq_hw, HW_ATL_TPS_DATA_TCTCREDIT_MAX_ADR(tc),
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
1593
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
1596
aq_hw_write_reg_bit(aq_hw, HW_ATL_TPS_DATA_TCTWEIGHT_ADR(tc),
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
845
u32 user_priority, u32 tc)
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
866
rpf_rpb_rx_tc_upt_shft[user_priority], tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
424
u32 user_priority_tc_map, u32 tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
731
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
736
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
745
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
750
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h
2472
#define HW_ATL_TPS_DESC_TCTCREDIT_MAX_ADR(tc) (0x00007210 + (tc) * 0x4)
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h
2491
#define HW_ATL_TPS_DESC_TCTWEIGHT_ADR(tc) (0x00007210 + (tc) * 0x4)
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h
2528
#define HW_ATL_TPS_DATA_TCTCREDIT_MAX_ADR(tc) (0x00007110 + (tc) * 0x4)
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h
2547
#define HW_ATL_TPS_DATA_TCTWEIGHT_ADR(tc) (0x00007110 + (tc) * 0x4)
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
116
unsigned int tc, q;
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
135
for (tc = 0; tc != tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
136
unsigned int tc_q_offset = tc * q_per_tc;
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
139
rx_map |= tc << HW_ATL2_RX_Q_TC_MAP_SHIFT(q);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
148
tx_map |= tc << HW_ATL2_TX_Q_TC_MAP_SHIFT(q);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
168
u32 tc = 0U;
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
179
for (tc = 0; tc < cfg->tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
183
hw_atl_tpb_tx_pkt_buff_size_per_tc_set(self, tx_buff_size, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
186
hw_atl_tpb_tx_buff_hi_threshold_per_tc_set(self, threshold, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
189
hw_atl_tpb_tx_buff_lo_threshold_per_tc_set(self, threshold, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
192
hw_atl_rpb_rx_pkt_buff_size_per_tc_set(self, rx_buff_size, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
195
hw_atl_rpb_rx_buff_hi_threshold_per_tc_set(self, threshold, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
198
hw_atl_rpb_rx_buff_lo_threshold_per_tc_set(self, threshold, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
200
hw_atl_b0_set_fc(self, self->aq_nic_cfg->fc.req, tc);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
220
int tc;
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
228
for (tc = 0; tc != num_tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
229
hw_atl2_new_rpf_rss_redir_set(self, tc, i,
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
230
tc *
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
254
int tc;
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
269
for (tc = 0; tc != nic_cfg->tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
270
if (!nic_cfg->tc_min_rate[tc]) {
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
271
tc_weight[tc] = 0;
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
275
tc_weight[tc] = (-1L + link_speed +
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
276
nic_cfg->tc_min_rate[tc] *
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
279
tc_weight[tc] = min(tc_weight[tc], max_weight);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
280
sum_weight += tc_weight[tc];
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
295
for (tc = 0; tc != nic_cfg->tcs; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
296
const u32 en = (nic_cfg->tc_max_rate[tc] != 0) ? 1U : 0U;
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
297
const u32 desc = AQ_NIC_CFG_TCVEC2RING(nic_cfg, tc, 0);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
300
hw_atl_tps_tx_pkt_shed_desc_tc_max_credit_set(self, tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
302
hw_atl_tps_tx_pkt_shed_desc_tc_weight_set(self, tc, 0x1E);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
305
weight = tc_weight[tc];
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
319
hw_atl2_tps_tx_pkt_shed_tc_data_weight_set(self, tc, weight);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
320
hw_atl2_tps_tx_pkt_shed_tc_data_max_credit_set(self, tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
328
nic_cfg->tc_max_rate[tc];
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
343
for (tc = nic_cfg->tcs; tc != AQ_CFG_TCS_MAX; tc++) {
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
344
const u32 desc = AQ_NIC_CFG_TCVEC2RING(nic_cfg, tc, 0);
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c
106
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c
109
aq_hw_write_reg_bit(aq_hw, HW_ATL2_TPS_DATA_TCTCREDIT_MAX_ADR(tc),
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c
116
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c
119
aq_hw_write_reg_bit(aq_hw, HW_ATL2_TPS_DATA_TCTWEIGHT_ADR(tc),
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c
52
void hw_atl2_new_rpf_rss_redir_set(struct aq_hw_s *aq_hw, u32 tc, u32 index,
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c
55
aq_hw_write_reg_bit(aq_hw, HW_ATL2_RPF_RSS_REDIR_ADR(tc, index),
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c
56
HW_ATL2_RPF_RSS_REDIR_MSK(tc),
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c
57
HW_ATL2_RPF_RSS_REDIR_SHIFT(tc),
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.h
35
void hw_atl2_new_rpf_rss_redir_set(struct aq_hw_s *aq_hw, u32 tc, u32 index,
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.h
53
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.h
58
const u32 tc,
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh_internal.h
213
#define HW_ATL2_TPS_DATA_TCTCREDIT_MAX_ADR(tc) (0x00007110 + (tc) * 0x4)
drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh_internal.h
232
#define HW_ATL2_TPS_DATA_TCTWEIGHT_ADR(tc) (0x00007110 + (tc) * 0x4)
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
310
int n, tc = k - rx;
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
312
n = BNGE_TC_TO_RING_BASE(bd, tc) + j;
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
34
#define BNGE_TC_TO_RING_BASE(bd, tc) \
drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
35
((tc) * (bd)->tx_nr_rings_per_tc)
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15458
int bnxt_setup_mq_tc(struct net_device *dev, u8 tc)
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15464
if (tc > bp->max_tc) {
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15466
tc, bp->max_tc);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15470
if (bp->num_tc == tc)
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15477
sh, tc, bp->tx_nr_rings_xdp);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15485
if (tc) {
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15486
bp->tx_nr_rings = bp->tx_nr_rings_per_tc * tc;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15487
netdev_set_num_tc(dev, tc);
drivers/net/ethernet/broadcom/bnxt/bnxt.c
15488
bp->num_tc = tc;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
4000
#define BNXT_TC_TO_RING_BASE(bp, tc) \
drivers/net/ethernet/broadcom/bnxt/bnxt.c
4001
((tc) * (bp)->tx_nr_rings_per_tc)
drivers/net/ethernet/broadcom/bnxt/bnxt.c
4251
int n, tc = k - rx;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
4253
n = BNXT_TC_TO_RING_BASE(bp, tc) + j;
drivers/net/ethernet/broadcom/bnxt/bnxt.h
2989
int bnxt_setup_mq_tc(struct net_device *dev, u8 tc);
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
164
int tc;
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
177
tc = bnxt_queue_to_tc(bp, cos2bw.queue_id);
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
178
if (tc < 0)
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
183
ets->tc_tsa[tc] = IEEE_8021QAZ_TSA_STRICT;
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
185
ets->tc_tsa[tc] = IEEE_8021QAZ_TSA_ETS;
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
186
ets->tc_tx_bw[tc] = cos2bw.bw_weight;
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
231
int tc = bp->num_tc;
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
233
if (!tc)
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
234
tc = 1;
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
235
rc = bnxt_hwrm_queue_cos2bw_cfg(bp, bp->ieee_ets, tc);
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
472
static int bnxt_ets_validate(struct bnxt *bp, struct ieee_ets *ets, u8 *tc)
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
514
*tc = bp->max_tc;
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
516
*tc = max_tc + 1;
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
85
int tc;
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
87
tc = bnxt_queue_to_tc(bp, queue_id);
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
88
if (tc >= 0)
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
89
ets->prio_tc[i] = tc;
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
1050
timecounter_init(&ptp->tc, &ptp->cc, ktime_to_ns(ktime_get_real()));
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
1058
timecounter_init(&ptp->tc, &ptp->cc, ns);
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
1060
ptp->tc.cycle_last = ns & ptp->cc.mask;
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
242
timecounter_adjtime(&ptp->tc, delta);
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
277
timecounter_read(&ptp->tc);
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
71
timecounter_init(&ptp->tc, &ptp->cc, ns);
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
785
timecounter_read(&ptp->tc);
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h
103
struct timecounter tc;
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h
185
ns = timecounter_cyc2time(&ptp->tc, ts);
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
387
int tx_xdp = 0, rc, tc;
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
409
tc = bp->num_tc;
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
410
if (!tc)
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
411
tc = 1;
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
413
true, tc, tx_xdp);
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
433
bp->tx_nr_rings = bp->tx_nr_rings_per_tc * tc + tx_xdp;
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
1987
unsigned int rxqi, unsigned int rxq, unsigned int tc,
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
2104
int cxgb4_ethofld_send_flowc(struct net_device *dev, u32 eotid, u32 tc);
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
407
unsigned int tc; /* PCI-E traffic class */
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c
438
static void cxgb4_getpgtccfg(struct net_device *dev, int tc,
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c
460
*pgid = (be32_to_cpu(pcmd.u.dcb.pgid.pgid) >> (tc * 4)) & 0xf;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c
475
*up_tc_map = (1 << tc);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c
482
static void cxgb4_getpgtccfg_tx(struct net_device *dev, int tc,
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c
487
return cxgb4_getpgtccfg(dev, (7 - tc), prio_type, pgid, bw_per,
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c
492
static void cxgb4_getpgtccfg_rx(struct net_device *dev, int tc,
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c
497
return cxgb4_getpgtccfg(dev, (7 - tc), prio_type, pgid, bw_per,
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c
501
static void cxgb4_setpgtccfg_tx(struct net_device *dev, int tc,
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c
508
int fw_tc = 7 - tc;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
2584
S("Traffic Class", "%d", tc);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
2859
u8 tc;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
2863
for (tc = 0; tc < port_mqprio->mqprio.qopt.num_tc; tc++)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
2864
entries += port_mqprio->mqprio.qopt.count[tc];
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
3160
u8 tc;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
3170
for (tc = 0; tc < port_mqprio->mqprio.qopt.num_tc; tc++)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
3171
entries += port_mqprio->mqprio.qopt.count[tc];
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c
124
static int cxgb4_matchall_tc_bind_queues(struct net_device *dev, u32 tc)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c
133
qe.class = tc;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c
380
u8 tc)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c
388
fe.class = tc;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c
404
u8 tc)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c
416
fe.class = tc;
drivers/net/ethernet/chelsio/cxgb4/sge.c
2524
int cxgb4_ethofld_send_flowc(struct net_device *dev, u32 eotid, u32 tc)
drivers/net/ethernet/chelsio/cxgb4/sge.c
2559
if (tc != FW_SCHED_CLS_NONE) {
drivers/net/ethernet/chelsio/cxgb4/sge.c
2589
flowc->mnemval[4].val = cpu_to_be32(tc);
drivers/net/ethernet/chelsio/cxgb4/sge.c
2591
flowc->mnemval[5].val = cpu_to_be32(tc == FW_SCHED_CLS_NONE ?
drivers/net/ethernet/chelsio/cxgb4/sge.c
2598
if (tc == FW_SCHED_CLS_NONE)
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
2889
pfres->tc = FW_PFVF_CMD_TC_G(word);
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
7576
unsigned int rxqi, unsigned int rxq, unsigned int tc,
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
7592
c.tc_to_nexactf = cpu_to_be32(FW_PFVF_CMD_TC_V(tc) |
drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
2318
S("Traffic Class", "%d", tc);
drivers/net/ethernet/chelsio/cxgb4vf/t4vf_common.h
250
unsigned int tc; /* PCI-E traffic class */
drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c
1122
vfres->tc = FW_PFVF_CMD_TC_G(word);
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-dcb.c
20
static inline bool dpaa2_eth_is_prio_enabled(u8 pfc_en, u8 tc)
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-dcb.c
22
return !!(pfc_en & (1 << tc));
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-debugfs.c
83
fq->tc,
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
2094
fq->tc, fq->flowid, &td);
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
3363
priv->fq[priv->num_fqs].tc = (u8)j;
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
3904
DPNI_QUEUE_RX, fq->tc, fq->flowid, &queue, &qid);
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
3917
DPNI_QUEUE_RX, fq->tc, fq->flowid,
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
3927
if (fq->tc > 0)
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
4134
dist_cfg.tc = i;
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
4166
dist_cfg.tc = i;
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
462
u8 tc;
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
456
u8 tc;
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
488
u8 tc;
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
507
u8 tc;
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
522
u8 tc;
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
548
u8 tc;
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
559
u8 tc;
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
629
u8 tc;
drivers/net/ethernet/freescale/dpaa2/dpni.c
1487
cmd_params->tc = tc_id;
drivers/net/ethernet/freescale/dpaa2/dpni.c
1523
u8 tc,
drivers/net/ethernet/freescale/dpaa2/dpni.c
1537
cmd_params->tc = tc;
drivers/net/ethernet/freescale/dpaa2/dpni.c
1571
u8 tc,
drivers/net/ethernet/freescale/dpaa2/dpni.c
1587
cmd_params->tc = tc;
drivers/net/ethernet/freescale/dpaa2/dpni.c
1675
u8 tc,
drivers/net/ethernet/freescale/dpaa2/dpni.c
1689
cmd_params->tc = tc;
drivers/net/ethernet/freescale/dpaa2/dpni.c
1719
u8 tc,
drivers/net/ethernet/freescale/dpaa2/dpni.c
1735
cmd_params->tc = tc;
drivers/net/ethernet/freescale/dpaa2/dpni.c
1820
cmd_params->tc = cfg->tc;
drivers/net/ethernet/freescale/dpaa2/dpni.c
1855
cmd_params->tc = cfg->tc;
drivers/net/ethernet/freescale/dpaa2/dpni.h
702
u8 tc;
drivers/net/ethernet/freescale/dpaa2/dpni.h
838
u8 tc,
drivers/net/ethernet/freescale/dpaa2/dpni.h
847
u8 tc,
drivers/net/ethernet/freescale/dpaa2/dpni.h
953
u8 tc,
drivers/net/ethernet/freescale/dpaa2/dpni.h
962
u8 tc,
drivers/net/ethernet/freescale/enetc/enetc.c
3183
int err, tc, q;
drivers/net/ethernet/freescale/enetc/enetc.c
3194
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/freescale/enetc/enetc.c
3195
offset = qopt->offset[tc];
drivers/net/ethernet/freescale/enetc/enetc.c
3196
count = qopt->count[tc];
drivers/net/ethernet/freescale/enetc/enetc.c
3199
err = netdev_set_tc_queue(ndev, tc, count, offset);
drivers/net/ethernet/freescale/enetc/enetc.c
3212
tx_ring->prio = tc;
drivers/net/ethernet/freescale/enetc/enetc4_pf.c
429
int tc;
drivers/net/ethernet/freescale/enetc/enetc4_pf.c
433
for (tc = 0; tc < ENETC_NUM_TC; tc++)
drivers/net/ethernet/freescale/enetc/enetc4_pf.c
434
enetc_port_wr(hw, ENETC4_PTCTMSDUR(tc), val);
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1167
int tc;
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1169
for (tc = 0; tc < 8; tc++) {
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1170
val = enetc_port_rd(hw, ENETC_PTCFPR(tc));
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1172
if (preemptible_tcs & BIT(tc))
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1177
enetc_port_wr(hw, ENETC_PTCFPR(tc), val);
drivers/net/ethernet/freescale/enetc/enetc_pf.c
389
int tc;
drivers/net/ethernet/freescale/enetc/enetc_pf.c
391
for (tc = 0; tc < 8; tc++) {
drivers/net/ethernet/freescale/enetc/enetc_pf.c
394
if (max_sdu[tc])
drivers/net/ethernet/freescale/enetc/enetc_pf.c
395
val = max_sdu[tc] + VLAN_ETH_HLEN;
drivers/net/ethernet/freescale/enetc/enetc_pf.c
397
enetc_port_wr(hw, ENETC_PTCMSDUR(tc), val);
drivers/net/ethernet/freescale/enetc/enetc_pf.c
403
int tc;
drivers/net/ethernet/freescale/enetc/enetc_pf.c
405
for (tc = 0; tc < 8; tc++)
drivers/net/ethernet/freescale/enetc/enetc_pf.c
406
enetc_port_wr(hw, ENETC_PTCMSDUR(tc), ENETC_MAC_MAXFRM_SIZE);
drivers/net/ethernet/freescale/enetc/enetc_qos.c
224
static u32 enetc_get_cbs_enable(struct enetc_hw *hw, u8 tc)
drivers/net/ethernet/freescale/enetc/enetc_qos.c
226
return enetc_port_rd(hw, ENETC_PTCCBSR0(tc)) & ENETC_CBSE;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
229
static u8 enetc_get_cbs_bw(struct enetc_hw *hw, u8 tc)
drivers/net/ethernet/freescale/enetc/enetc_qos.c
231
return enetc_port_rd(hw, ENETC_PTCCBSR0(tc)) & ENETC_CBS_BW_MASK;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
244
u8 tc = cbs->queue;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
253
if (tc != prio_top && tc != prio_next)
drivers/net/ethernet/freescale/enetc/enetc_qos.c
260
if (tc == prio_top &&
drivers/net/ethernet/freescale/enetc/enetc_qos.c
264
prio_next, tc);
drivers/net/ethernet/freescale/enetc/enetc_qos.c
268
enetc_port_wr(hw, ENETC_PTCCBSR1(tc), 0);
drivers/net/ethernet/freescale/enetc/enetc_qos.c
269
enetc_port_wr(hw, ENETC_PTCCBSR0(tc), 0);
drivers/net/ethernet/freescale/enetc/enetc_qos.c
285
if (tc == prio_next) {
drivers/net/ethernet/freescale/enetc/enetc_qos.c
301
enetc_port_rd(hw, ENETC_PTCMSDUR(tc));
drivers/net/ethernet/freescale/enetc/enetc_qos.c
315
if (tc == prio_top) {
drivers/net/ethernet/freescale/enetc/enetc_qos.c
342
enetc_port_wr(hw, ENETC_PTCCBSR1(tc), hi_credit_reg);
drivers/net/ethernet/freescale/enetc/enetc_qos.c
345
enetc_port_wr(hw, ENETC_PTCCBSR0(tc), bw | ENETC_CBSE);
drivers/net/ethernet/freescale/enetc/enetc_qos.c
356
int tc;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
361
tc = qopt->queue;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
363
if (tc < 0 || tc >= priv->num_tx_rings)
drivers/net/ethernet/freescale/enetc/enetc_qos.c
370
priv->tx_ring[tc]->tsd_enable = qopt->enable;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
371
enetc_port_wr(hw, ENETC_PTCTSDR(tc), qopt->enable ? ENETC_TSDE : 0);
drivers/net/ethernet/freescale/fec.h
647
struct timecounter tc;
drivers/net/ethernet/freescale/fec_main.c
1475
ns = timecounter_cyc2time(&fep->tc, ts);
drivers/net/ethernet/freescale/fec_ptp.c
159
timecounter_read(&fep->tc);
drivers/net/ethernet/freescale/fec_ptp.c
169
ns = timecounter_cyc2time(&fep->tc, tempval);
drivers/net/ethernet/freescale/fec_ptp.c
239
timecounter_read(&fep->tc);
drivers/net/ethernet/freescale/fec_ptp.c
245
curr_time = timecounter_cyc2time(&fep->tc, ptp_hc);
drivers/net/ethernet/freescale/fec_ptp.c
332
timecounter_init(&fep->tc, &fep->cc, 0);
drivers/net/ethernet/freescale/fec_ptp.c
406
timecounter_read(&fep->tc);
drivers/net/ethernet/freescale/fec_ptp.c
427
timecounter_adjtime(&fep->tc, delta);
drivers/net/ethernet/freescale/fec_ptp.c
455
ns = timecounter_read(&fep->tc);
drivers/net/ethernet/freescale/fec_ptp.c
497
timecounter_init(&fep->tc, &fep->cc, ns);
drivers/net/ethernet/freescale/fec_ptp.c
591
curr_time = timecounter_read(&fep->tc);
drivers/net/ethernet/freescale/fec_ptp.c
687
timecounter_read(&fep->tc);
drivers/net/ethernet/freescale/fec_ptp.c
813
fep->ptp_saved_state.ns_phc = timecounter_read(&fep->tc);
drivers/net/ethernet/freescale/fec_ptp.c
843
timecounter_init(&fep->tc, &fep->cc, ns);
drivers/net/ethernet/hisilicon/hns3/hnae3.h
781
struct flow_cls_offload *cls_flower, int tc);
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2640
u8 tc = mqprio_qopt->qopt.num_tc;
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2646
mode == TC_MQPRIO_MODE_CHANNEL) || (!hw && tc == 0)))
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2649
if (tc > HNAE3_MAX_TC)
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2658
netif_dbg(h, drv, netdev, "setup tc: num_tc=%u\n", tc);
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2667
int tc = tc_classid_to_hwtc(priv->netdev, flow->classid);
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
2673
return h->ae_algo->ops->add_cls_flower(h, flow, tc);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
179
u8 *tc, bool *changed)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
194
*tc = tc_num;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
195
if (*tc != hdev->tm_info.num_tc)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
601
u8 tc = mqprio_qopt->qopt.num_tc;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
622
kinfo->tc_info.mqprio_destroy = !tc;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
630
kinfo->tc_info.mqprio_active = tc > 0;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
639
if (!tc) {
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
1632
u8 tc, i;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
1650
tc = pri_tc[i >> 1] >> ((i & 1) * HCLGE_DBG_TC_BIT_WIDTH);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
1651
tc &= HCLGE_DBG_TC_MASK;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
1652
seq_printf(s, "%u %u\n", i, tc);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2354
struct hclge_tc_thrd *tc;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2370
tc = &s_buf->tc_thrd[i * HCLGE_TC_NUM_ONE_DESC + j];
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2373
cpu_to_le16(tc->high >> HCLGE_BUF_UNIT_S);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2377
cpu_to_le16(tc->low >> HCLGE_BUF_UNIT_S);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
5903
kinfo->tc_info.tqp_offset[rule->cls_flower.tc];
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
5905
ilog2(kinfo->tc_info.tqp_count[rule->cls_flower.tc]);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
7367
struct flow_cls_offload *cls_flower, int tc)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
7371
if (tc < 0 || tc > hdev->tc_max) {
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
7393
int tc)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
7406
ret = hclge_check_cls_flower(hdev, cls_flower, tc);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
7424
rule->cls_flower.tc = tc;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
752
u8 tc;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1519
static int hclge_bp_setup_hw(struct hclge_dev *hdev, u8 tc)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1538
u16 qs_id = vport->qs_offset + tc;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1548
ret = hclge_tm_qs_bp_cfg(hdev, tc, i, qs_bitmap);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1981
struct hclge_tqp_tx_queue_tc_cmd *tc;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1985
tc = (struct hclge_tqp_tx_queue_tc_cmd *)desc.data;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1987
tc->queue_id = cpu_to_le16(q_id);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1995
*tc_id = tc->tc_id & HCLGE_TM_TC_MASK;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
230
u8 tc;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
232
tc = hdev->tm_info.prio_tc[pri_id];
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
234
if (tc >= hdev->tm_info.num_tc)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
246
pri[pri_id >> 1] |= tc << ((pri_id & 1) * 4);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
569
static int hclge_tm_qs_bp_cfg(struct hclge_dev *hdev, u8 tc, u8 grp_id,
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
580
bp_to_qs_map_cmd->tc_id = tc;
drivers/net/ethernet/intel/e1000e/e1000.h
330
struct timecounter tc;
drivers/net/ethernet/intel/e1000e/netdev.c
3945
timecounter_init(&adapter->tc, &adapter->cc,
drivers/net/ethernet/intel/e1000e/netdev.c
503
ns = timecounter_cyc2time(&adapter->tc, systim);
drivers/net/ethernet/intel/e1000e/ptp.c
121
*device = ns_to_ktime(timecounter_cyc2time(&adapter->tc, dev_cycles));
drivers/net/ethernet/intel/e1000e/ptp.c
175
ns = timecounter_cyc2time(&adapter->tc, cycles);
drivers/net/ethernet/intel/e1000e/ptp.c
204
timecounter_init(&adapter->tc, &adapter->cc, ns);
drivers/net/ethernet/intel/e1000e/ptp.c
234
ts = ns_to_timespec64(timecounter_read(&adapter->tc));
drivers/net/ethernet/intel/e1000e/ptp.c
73
timecounter_adjtime(&adapter->tc, delta);
drivers/net/ethernet/intel/fm10k/fm10k.h
510
int fm10k_setup_tc(struct net_device *dev, u8 tc);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
1263
int fm10k_setup_tc(struct net_device *dev, u8 tc)
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
1269
if (tc && (interface->hw.mac.type != fm10k_mac_pf))
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
1273
if (tc > 8)
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
1289
netdev_set_num_tc(dev, tc);
drivers/net/ethernet/intel/i40e/i40e_client.c
51
u8 tc = dcb_cfg->etscfg.prioritytable[i];
drivers/net/ethernet/intel/i40e/i40e_client.c
55
if (!(vsi->tc_config.enabled_tc & BIT(tc)))
drivers/net/ethernet/intel/i40e/i40e_client.c
56
tc = 0;
drivers/net/ethernet/intel/i40e/i40e_client.c
58
qs_handle = le16_to_cpu(vsi->info.qs_handle[tc]);
drivers/net/ethernet/intel/i40e/i40e_client.c
59
params->qos.prio_qos[i].tc = tc;
drivers/net/ethernet/intel/i40e/i40e_client.c
63
tc, vsi->id);
drivers/net/ethernet/intel/i40e/i40e_dcb.c
580
u8 tc;
drivers/net/ethernet/intel/i40e/i40e_dcb.c
582
tc = FIELD_GET(I40E_CEE_PGID_PRIO_0_MASK,
drivers/net/ethernet/intel/i40e/i40e_dcb.c
584
dcbcfg->etscfg.prioritytable[i * 2] = tc;
drivers/net/ethernet/intel/i40e/i40e_dcb.c
585
tc = FIELD_GET(I40E_CEE_PGID_PRIO_1_MASK,
drivers/net/ethernet/intel/i40e/i40e_dcb.c
587
dcbcfg->etscfg.prioritytable[i*2 + 1] = tc;
drivers/net/ethernet/intel/i40e/i40e_dcb.c
657
u8 tc;
drivers/net/ethernet/intel/i40e/i40e_dcb.c
659
tc = FIELD_GET(I40E_CEE_PGID_PRIO_0_MASK,
drivers/net/ethernet/intel/i40e/i40e_dcb.c
661
dcbcfg->etscfg.prioritytable[i * 2] = tc;
drivers/net/ethernet/intel/i40e/i40e_dcb.c
662
tc = FIELD_GET(I40E_CEE_PGID_PRIO_1_MASK,
drivers/net/ethernet/intel/i40e/i40e_dcb.c
664
dcbcfg->etscfg.prioritytable[i * 2 + 1] = tc;
drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
365
static void i40e_dcbnl_set_pg_tc_cfg_tx(struct net_device *netdev, int tc,
drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
377
if (tc >= I40E_MAX_TRAFFIC_CLASS)
drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
385
pf->tmp_cfg.etscfg.prioritytable[i] = tc;
drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
387
pf->tmp_cfg.etscfg.tsatable[tc] = I40E_IEEE_TSA_ETS;
drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
390
tc, bwg_id, prio_type, bw_pct, up_map);
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2339
i40e_get_veb_tc_stats(struct i40e_veb_tc_stats *tc, unsigned int i)
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2342
.tc_rx_packets = tc->tc_rx_packets[i],
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2343
.tc_rx_bytes = tc->tc_rx_bytes[i],
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2344
.tc_tx_packets = tc->tc_tx_packets[i],
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
2345
.tc_tx_bytes = tc->tc_tx_bytes[i],
drivers/net/ethernet/intel/i40e/i40e_main.c
5379
u8 tc, i;
drivers/net/ethernet/intel/i40e/i40e_main.c
5387
tc = dcbcfg->etscfg.prioritytable[app.priority];
drivers/net/ethernet/intel/i40e/i40e_main.c
5388
enabled_tc |= BIT(tc);
drivers/net/ethernet/intel/i40e/i40e_main.c
8775
static int i40e_handle_tclass(struct i40e_vsi *vsi, u32 tc,
drivers/net/ethernet/intel/i40e/i40e_main.c
8781
if (tc == 0) {
drivers/net/ethernet/intel/i40e/i40e_main.c
8784
} else if (vsi->tc_config.enabled_tc & BIT(tc)) {
drivers/net/ethernet/intel/i40e/i40e_main.c
8794
if (ch->seid == vsi->tc_seid_map[tc])
drivers/net/ethernet/intel/i40e/i40e_main.c
8812
int tc = tc_classid_to_hwtc(vsi->netdev, cls_flower->classid);
drivers/net/ethernet/intel/i40e/i40e_main.c
8817
if (tc < 0) {
drivers/net/ethernet/intel/i40e/i40e_main.c
8822
if (!tc) {
drivers/net/ethernet/intel/i40e/i40e_main.c
8855
err = i40e_handle_tclass(vsi, tc, filter);
drivers/net/ethernet/intel/iavf/iavf_main.c
4061
static int iavf_handle_tclass(struct iavf_adapter *adapter, u32 tc,
drivers/net/ethernet/intel/iavf/iavf_main.c
4064
if (tc == 0)
drivers/net/ethernet/intel/iavf/iavf_main.c
4066
if (tc < adapter->num_tc) {
drivers/net/ethernet/intel/iavf/iavf_main.c
4075
filter->f.action_meta = tc;
drivers/net/ethernet/intel/iavf/iavf_main.c
4110
int tc = tc_classid_to_hwtc(adapter->netdev, cls_flower->classid);
drivers/net/ethernet/intel/iavf/iavf_main.c
4114
if (tc < 0) {
drivers/net/ethernet/intel/iavf/iavf_main.c
4143
err = iavf_handle_tclass(adapter, tc, filter);
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
1797
qs_bw_cfg->cfg[inx].tc = 0;
drivers/net/ethernet/intel/ice/ice.h
239
u8 tc; /* TC number that Tx queue belongs to */
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h
2082
u8 tc;
drivers/net/ethernet/intel/ice/ice_base.c
1050
u8 tc;
drivers/net/ethernet/intel/ice/ice_base.c
1072
tc = ring->dcb_tc;
drivers/net/ethernet/intel/ice/ice_base.c
1074
tc = 0;
drivers/net/ethernet/intel/ice/ice_base.c
1079
ring->q_handle = ice_calc_txq_handle(vsi, ring, tc);
drivers/net/ethernet/intel/ice/ice_base.c
1082
tc = 0;
drivers/net/ethernet/intel/ice/ice_base.c
1088
status = ice_ena_vsi_txq(vsi->port_info, vsi_idx, tc, ring->q_handle,
drivers/net/ethernet/intel/ice/ice_base.c
1125
ice_dis_vsi_txq(vsi->port_info, vsi_idx, tc, 1, &ring->q_handle,
drivers/net/ethernet/intel/ice/ice_base.c
1334
txq_meta->tc, 1, &txq_meta->q_handle,
drivers/net/ethernet/intel/ice/ice_base.c
1370
u8 tc;
drivers/net/ethernet/intel/ice/ice_base.c
1373
tc = ring->dcb_tc;
drivers/net/ethernet/intel/ice/ice_base.c
1375
tc = 0;
drivers/net/ethernet/intel/ice/ice_base.c
1382
txq_meta->tc = 0;
drivers/net/ethernet/intel/ice/ice_base.c
1385
txq_meta->tc = tc;
drivers/net/ethernet/intel/ice/ice_base.c
249
ice_calc_txq_handle(const struct ice_vsi *vsi, struct ice_tx_ring *ring, u8 tc)
drivers/net/ethernet/intel/ice/ice_base.c
251
WARN_ONCE(ice_ring_is_xdp(ring) && tc, "XDP ring can't belong to TC other than 0\n");
drivers/net/ethernet/intel/ice/ice_base.c
260
return ring->q_index - vsi->tc_cfg.tc_info[tc].qoffset;
drivers/net/ethernet/intel/ice/ice_common.c
4919
ice_get_lan_q_ctx(struct ice_hw *hw, u16 vsi_handle, u8 tc, u16 q_handle)
drivers/net/ethernet/intel/ice/ice_common.c
4927
if (q_handle >= vsi->num_lan_q_entries[tc])
drivers/net/ethernet/intel/ice/ice_common.c
4929
if (!vsi->lan_q_ctx[tc])
drivers/net/ethernet/intel/ice/ice_common.c
4931
q_ctx = vsi->lan_q_ctx[tc];
drivers/net/ethernet/intel/ice/ice_common.c
4949
ice_ena_vsi_txq(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u16 q_handle,
drivers/net/ethernet/intel/ice/ice_common.c
4972
q_ctx = ice_get_lan_q_ctx(hw, vsi_handle, tc, q_handle);
drivers/net/ethernet/intel/ice/ice_common.c
4981
parent = ice_sched_get_free_qparent(pi, vsi_handle, tc,
drivers/net/ethernet/intel/ice/ice_common.c
5054
ice_dis_vsi_txq(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u8 num_queues,
drivers/net/ethernet/intel/ice/ice_common.c
5089
q_ctx = ice_get_lan_q_ctx(hw, vsi_handle, tc, q_handles[i]);
drivers/net/ethernet/intel/ice/ice_common.c
5202
ice_ena_vsi_rdma_qset(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_common.c
5225
parent = ice_sched_get_free_qparent(pi, vsi_handle, tc,
drivers/net/ethernet/intel/ice/ice_common.h
253
ice_ena_vsi_rdma_qset(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_common.h
259
ice_dis_vsi_txq(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u8 num_queues,
drivers/net/ethernet/intel/ice/ice_common.h
267
ice_ena_vsi_txq(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u16 q_handle,
drivers/net/ethernet/intel/ice/ice_common.h
277
ice_get_lan_q_ctx(struct ice_hw *hw, u16 vsi_handle, u8 tc, u16 q_handle);
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
33
u8 num_tcs = 0, i, tc, up_mapped_tc, up_in_tc = 0;
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
47
for (tc = 0; tc < num_tcs - 1; tc++)
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
48
if (ice_find_q_in_range(vsi->tc_cfg.tc_info[tc].qoffset,
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
49
vsi->tc_cfg.tc_info[tc + 1].qoffset,
drivers/net/ethernet/intel/ice/ice_dcb_lib.c
59
if (up_mapped_tc == tc)
drivers/net/ethernet/intel/ice/ice_dcb_nl.c
463
ice_dcbnl_set_pg_tc_cfg_tx(struct net_device *netdev, int tc,
drivers/net/ethernet/intel/ice/ice_dcb_nl.c
476
if (tc >= ICE_MAX_TRAFFIC_CLASS)
drivers/net/ethernet/intel/ice/ice_dcb_nl.c
490
new_cfg->etscfg.prio_table[i] = tc;
drivers/net/ethernet/intel/ice/ice_dcb_nl.c
492
new_cfg->etscfg.tsatable[tc] = ICE_IEEE_TSA_ETS;
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
176
fsp->h_u.usr_ip6_spec.tclass = rule->ip.v6.tc;
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
187
fsp->m_u.usr_ip6_spec.tclass = rule->mask.v6.tc;
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
1927
input->ip.v6.tc = fsp->h_u.tcp_ip6_spec.tclass;
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
1934
input->mask.v6.tc = fsp->m_u.tcp_ip6_spec.tclass;
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
1942
input->ip.v6.tc = fsp->h_u.usr_ip6_spec.tclass;
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
1955
input->mask.v6.tc = fsp->m_u.usr_ip6_spec.tclass;
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
207
fsp->h_u.tcp_ip6_spec.tclass = rule->ip.v6.tc;
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
208
fsp->m_u.tcp_ip6_spec.tclass = rule->mask.v6.tc;
drivers/net/ethernet/intel/ice/ice_fdir.c
1069
ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
drivers/net/ethernet/intel/ice/ice_fdir.c
1082
ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
drivers/net/ethernet/intel/ice/ice_fdir.c
1095
ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
drivers/net/ethernet/intel/ice/ice_fdir.c
1104
ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
drivers/net/ethernet/intel/ice/ice_fdir.h
127
u8 tc;
drivers/net/ethernet/intel/ice/ice_idc.c
100
max_rdmaqs[qset->tc]++;
drivers/net/ethernet/intel/ice/ice_idc.c
110
status = ice_ena_vsi_rdma_qset(vsi->port_info, vsi->idx, qset->tc,
drivers/net/ethernet/intel/ice/ice_lag.c
1229
u8 tc)
drivers/net/ethernet/intel/ice/ice_lag.c
1249
if (!ctx->sched.vsi_node[tc])
drivers/net/ethernet/intel/ice/ice_lag.c
1252
numq = ctx->num_lan_q_entries[tc];
drivers/net/ethernet/intel/ice/ice_lag.c
1253
teid = ctx->sched.vsi_node[tc]->info.node_teid;
drivers/net/ethernet/intel/ice/ice_lag.c
1255
parent_teid = ctx->sched.vsi_node[tc]->info.parent_teid;
drivers/net/ethernet/intel/ice/ice_lag.c
1274
valq = ice_lag_qbuf_recfg(hw, qbuf, vsi_num, numq, tc);
drivers/net/ethernet/intel/ice/ice_lag.c
1291
n_prt = ice_lag_get_sched_parent(hw, tc);
drivers/net/ethernet/intel/ice/ice_lag.c
1305
ice_sched_update_parent(n_prt, ctx->sched.vsi_node[tc]);
drivers/net/ethernet/intel/ice/ice_lag.c
1327
int i, tc;
drivers/net/ethernet/intel/ice/ice_lag.c
1335
ice_for_each_traffic_class(tc)
drivers/net/ethernet/intel/ice/ice_lag.c
1336
ice_lag_reclaim_vf_tc(lag, src_hw, i, tc);
drivers/net/ethernet/intel/ice/ice_lag.c
2450
u16 vsi_num, u8 tc)
drivers/net/ethernet/intel/ice/ice_lag.c
2469
if (!ctx->sched.vsi_node[tc])
drivers/net/ethernet/intel/ice/ice_lag.c
2472
numq = ctx->num_lan_q_entries[tc];
drivers/net/ethernet/intel/ice/ice_lag.c
2473
teid = ctx->sched.vsi_node[tc]->info.node_teid;
drivers/net/ethernet/intel/ice/ice_lag.c
2475
parent_teid = ctx->sched.vsi_node[tc]->info.parent_teid;
drivers/net/ethernet/intel/ice/ice_lag.c
2492
valq = ice_lag_qbuf_recfg(hw, qbuf, vsi_num, numq, tc);
drivers/net/ethernet/intel/ice/ice_lag.c
2509
n_prt = ice_lag_get_sched_parent(dest_hw, tc);
drivers/net/ethernet/intel/ice/ice_lag.c
2523
ice_sched_update_parent(n_prt, ctx->sched.vsi_node[tc]);
drivers/net/ethernet/intel/ice/ice_lag.c
2548
int i, tc;
drivers/net/ethernet/intel/ice/ice_lag.c
2556
ice_for_each_traffic_class(tc)
drivers/net/ethernet/intel/ice/ice_lag.c
2558
tc);
drivers/net/ethernet/intel/ice/ice_lag.c
517
u16 vsi_num, u16 numq, u8 tc)
drivers/net/ethernet/intel/ice/ice_lag.c
525
q_ctx = ice_get_lan_q_ctx(hw, vsi_num, tc, i);
drivers/net/ethernet/intel/ice/ice_lag.c
544
qbuf->queue_info[count].tc = tc;
drivers/net/ethernet/intel/ice/ice_lag.c
558
ice_lag_get_sched_parent(struct ice_hw *hw, u8 tc)
drivers/net/ethernet/intel/ice/ice_lag.c
569
tc_node = ice_sched_get_tc_node(pi, tc);
drivers/net/ethernet/intel/ice/ice_lag.c
631
u16 vsi_num, u8 tc)
drivers/net/ethernet/intel/ice/ice_lag.c
651
if (!ctx->sched.vsi_node[tc])
drivers/net/ethernet/intel/ice/ice_lag.c
661
numq = ctx->num_lan_q_entries[tc];
drivers/net/ethernet/intel/ice/ice_lag.c
662
teid = ctx->sched.vsi_node[tc]->info.node_teid;
drivers/net/ethernet/intel/ice/ice_lag.c
664
parent_teid = ctx->sched.vsi_node[tc]->info.parent_teid;
drivers/net/ethernet/intel/ice/ice_lag.c
686
valq = ice_lag_qbuf_recfg(&lag->pf->hw, qbuf, vsi_num, numq, tc);
drivers/net/ethernet/intel/ice/ice_lag.c
704
n_prt = ice_lag_get_sched_parent(new_hw, tc);
drivers/net/ethernet/intel/ice/ice_lag.c
718
ice_sched_update_parent(n_prt, ctx->sched.vsi_node[tc]);
drivers/net/ethernet/intel/ice/ice_lag.c
786
u8 tc;
drivers/net/ethernet/intel/ice/ice_lag.c
788
ice_for_each_traffic_class(tc)
drivers/net/ethernet/intel/ice/ice_lag.c
789
ice_lag_move_vf_node_tc(lag, oldport, newport, vsi_num, tc);
drivers/net/ethernet/intel/ice/ice_lag.c
966
qbuf->queue_info[0].tc = 0;
drivers/net/ethernet/intel/ice/ice_main.c
6116
u8 tc;
drivers/net/ethernet/intel/ice/ice_main.c
6126
tc = ice_dcb_get_tc(vsi, queue_index);
drivers/net/ethernet/intel/ice/ice_main.c
6137
status = ice_cfg_q_bw_dflt_lmt(vsi->port_info, vsi->idx, tc,
drivers/net/ethernet/intel/ice/ice_main.c
6140
status = ice_cfg_q_bw_lmt(vsi->port_info, vsi->idx, tc,
drivers/net/ethernet/intel/ice/ice_sched.c
1525
ice_sched_get_free_qparent(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.c
1540
vsi_node = vsi_ctx->sched.vsi_node[tc];
drivers/net/ethernet/intel/ice/ice_sched.c
1836
ice_sched_add_vsi_to_topo(struct ice_port_info *pi, u16 vsi_handle, u8 tc)
drivers/net/ethernet/intel/ice/ice_sched.c
1841
tc_node = ice_sched_get_tc_node(pi, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
1900
u8 tc, u16 new_numqs, u8 owner)
drivers/net/ethernet/intel/ice/ice_sched.c
1910
tc_node = ice_sched_get_tc_node(pi, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
1923
prev_numqs = vsi_ctx->sched.max_lanq[tc];
drivers/net/ethernet/intel/ice/ice_sched.c
1925
prev_numqs = vsi_ctx->sched.max_rdmaq[tc];
drivers/net/ethernet/intel/ice/ice_sched.c
1930
status = ice_alloc_lan_q_ctx(hw, vsi_handle, tc, new_numqs);
drivers/net/ethernet/intel/ice/ice_sched.c
1934
status = ice_alloc_rdma_q_ctx(hw, vsi_handle, tc, new_numqs);
drivers/net/ethernet/intel/ice/ice_sched.c
1963
vsi_ctx->sched.max_lanq[tc] = new_numqs;
drivers/net/ethernet/intel/ice/ice_sched.c
1965
vsi_ctx->sched.max_rdmaq[tc] = new_numqs;
drivers/net/ethernet/intel/ice/ice_sched.c
1984
ice_sched_cfg_vsi(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u16 maxqs,
drivers/net/ethernet/intel/ice/ice_sched.c
1993
tc_node = ice_sched_get_tc_node(pi, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2016
status = ice_sched_add_vsi_to_topo(pi, vsi_handle, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2024
vsi_ctx->sched.vsi_node[tc] = vsi_node;
drivers/net/ethernet/intel/ice/ice_sched.c
2030
vsi_ctx->sched.max_lanq[tc] = 0;
drivers/net/ethernet/intel/ice/ice_sched.c
2031
vsi_ctx->sched.max_rdmaq[tc] = 0;
drivers/net/ethernet/intel/ice/ice_sched.c
2035
status = ice_sched_update_vsi_child_nodes(pi, vsi_handle, tc, maxqs,
drivers/net/ethernet/intel/ice/ice_sched.c
2112
struct ice_sched_node *vsi_node, u8 owner, u8 tc)
drivers/net/ethernet/intel/ice/ice_sched.c
2122
ice_debug(pi->hw, ICE_DBG_SCHED, "VSI has leaf nodes in TC %d\n", tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2391
u8 tc)
drivers/net/ethernet/intel/ice/ice_sched.c
2400
tc_node = ice_sched_get_tc_node(pi, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2473
struct ice_sched_agg_info *agg_info, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.c
2485
if (!ice_is_tc_ena(agg_vsi_info->tc_bitmap[0], tc))
drivers/net/ethernet/intel/ice/ice_sched.c
2489
ICE_DFLT_AGG_ID, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2493
clear_bit(tc, agg_vsi_info->tc_bitmap);
drivers/net/ethernet/intel/ice/ice_sched.c
2536
ice_sched_rm_agg_cfg(struct ice_port_info *pi, u32 agg_id, u8 tc)
drivers/net/ethernet/intel/ice/ice_sched.c
2541
tc_node = ice_sched_get_tc_node(pi, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2585
u8 tc, bool rm_vsi_info)
drivers/net/ethernet/intel/ice/ice_sched.c
2590
if (!ice_is_tc_ena(agg_info->tc_bitmap[0], tc))
drivers/net/ethernet/intel/ice/ice_sched.c
2593
status = ice_move_all_vsi_to_dflt_agg(pi, agg_info, tc, rm_vsi_info);
drivers/net/ethernet/intel/ice/ice_sched.c
2598
status = ice_sched_rm_agg_cfg(pi, agg_info->agg_id, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2602
clear_bit(tc, agg_info->tc_bitmap);
drivers/net/ethernet/intel/ice/ice_sched.c
2640
ice_sched_add_agg_cfg(struct ice_port_info *pi, u32 agg_id, u8 tc)
drivers/net/ethernet/intel/ice/ice_sched.c
2650
tc_node = ice_sched_get_tc_node(pi, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2736
u8 tc;
drivers/net/ethernet/intel/ice/ice_sched.c
2757
ice_for_each_traffic_class(tc) {
drivers/net/ethernet/intel/ice/ice_sched.c
2758
if (!ice_is_tc_ena(*tc_bitmap, tc)) {
drivers/net/ethernet/intel/ice/ice_sched.c
2760
status = ice_rm_agg_cfg_tc(pi, agg_info, tc, false);
drivers/net/ethernet/intel/ice/ice_sched.c
2767
if (ice_is_tc_ena(agg_info->tc_bitmap[0], tc))
drivers/net/ethernet/intel/ice/ice_sched.c
2771
status = ice_sched_add_agg_cfg(pi, agg_id, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2776
set_bit(tc, agg_info->tc_bitmap);
drivers/net/ethernet/intel/ice/ice_sched.c
2898
u8 tc;
drivers/net/ethernet/intel/ice/ice_sched.c
2935
ice_for_each_traffic_class(tc) {
drivers/net/ethernet/intel/ice/ice_sched.c
2936
if (!ice_is_tc_ena(*tc_bitmap, tc))
drivers/net/ethernet/intel/ice/ice_sched.c
2940
status = ice_sched_move_vsi_to_agg(pi, vsi_handle, agg_id, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
2944
set_bit(tc, agg_vsi_info->tc_bitmap);
drivers/net/ethernet/intel/ice/ice_sched.c
2946
clear_bit(tc, old_agg_vsi_info->tc_bitmap);
drivers/net/ethernet/intel/ice/ice_sched.c
299
struct ice_sched_node *ice_sched_get_tc_node(struct ice_port_info *pi, u8 tc)
drivers/net/ethernet/intel/ice/ice_sched.c
306
if (pi->root->children[i]->tc_num == tc)
drivers/net/ethernet/intel/ice/ice_sched.c
3160
ice_sched_save_vsi_bw(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.c
3172
ice_set_clear_cir_bw(&vsi_ctx->sched.bw_t_info[tc], bw);
drivers/net/ethernet/intel/ice/ice_sched.c
3175
ice_set_clear_eir_bw(&vsi_ctx->sched.bw_t_info[tc], bw);
drivers/net/ethernet/intel/ice/ice_sched.c
3178
ice_set_clear_shared_bw(&vsi_ctx->sched.bw_t_info[tc], bw);
drivers/net/ethernet/intel/ice/ice_sched.c
3919
ice_sched_set_q_bw_lmt(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.c
3929
q_ctx = ice_get_lan_q_ctx(pi->hw, vsi_handle, tc, q_handle);
drivers/net/ethernet/intel/ice/ice_sched.c
3982
ice_cfg_q_bw_lmt(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.c
3985
return ice_sched_set_q_bw_lmt(pi, vsi_handle, tc, q_handle, rl_type,
drivers/net/ethernet/intel/ice/ice_sched.c
4000
ice_cfg_q_bw_dflt_lmt(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.c
4003
return ice_sched_set_q_bw_lmt(pi, vsi_handle, tc, q_handle, rl_type,
drivers/net/ethernet/intel/ice/ice_sched.c
4020
enum ice_agg_type agg_type, u8 tc)
drivers/net/ethernet/intel/ice/ice_sched.c
4035
node = vsi_ctx->sched.vsi_node[tc];
drivers/net/ethernet/intel/ice/ice_sched.c
4042
tc_node = ice_sched_get_tc_node(pi, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
4069
enum ice_agg_type agg_type, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.c
4082
node = ice_sched_get_node_by_id_type(pi, id, agg_type, tc);
drivers/net/ethernet/intel/ice/ice_sched.c
4109
ice_cfg_vsi_bw_lmt_per_tc(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.c
4116
tc, rl_type, bw);
drivers/net/ethernet/intel/ice/ice_sched.c
4119
status = ice_sched_save_vsi_bw(pi, vsi_handle, tc, rl_type, bw);
drivers/net/ethernet/intel/ice/ice_sched.c
4136
ice_cfg_vsi_bw_dflt_lmt_per_tc(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.c
4143
tc, rl_type,
drivers/net/ethernet/intel/ice/ice_sched.c
4147
status = ice_sched_save_vsi_bw(pi, vsi_handle, tc, rl_type,
drivers/net/ethernet/intel/ice/ice_sched.c
4296
u8 tc;
drivers/net/ethernet/intel/ice/ice_sched.c
4299
ice_for_each_traffic_class(tc)
drivers/net/ethernet/intel/ice/ice_sched.c
4300
if (ice_is_tc_ena(*tc_bitmap, tc) &&
drivers/net/ethernet/intel/ice/ice_sched.c
4301
(ice_sched_get_tc_node(pi, tc)))
drivers/net/ethernet/intel/ice/ice_sched.c
4302
set_bit(tc, ena_tc_bitmap);
drivers/net/ethernet/intel/ice/ice_sched.c
575
ice_alloc_lan_q_ctx(struct ice_hw *hw, u16 vsi_handle, u8 tc, u16 new_numqs)
drivers/net/ethernet/intel/ice/ice_sched.c
585
if (!vsi_ctx->lan_q_ctx[tc]) {
drivers/net/ethernet/intel/ice/ice_sched.c
596
vsi_ctx->lan_q_ctx[tc] = q_ctx;
drivers/net/ethernet/intel/ice/ice_sched.c
597
vsi_ctx->num_lan_q_entries[tc] = new_numqs;
drivers/net/ethernet/intel/ice/ice_sched.c
601
if (new_numqs > vsi_ctx->num_lan_q_entries[tc]) {
drivers/net/ethernet/intel/ice/ice_sched.c
602
u16 prev_num = vsi_ctx->num_lan_q_entries[tc];
drivers/net/ethernet/intel/ice/ice_sched.c
609
memcpy(q_ctx, vsi_ctx->lan_q_ctx[tc],
drivers/net/ethernet/intel/ice/ice_sched.c
611
devm_kfree(ice_hw_to_dev(hw), vsi_ctx->lan_q_ctx[tc]);
drivers/net/ethernet/intel/ice/ice_sched.c
618
vsi_ctx->lan_q_ctx[tc] = q_ctx;
drivers/net/ethernet/intel/ice/ice_sched.c
619
vsi_ctx->num_lan_q_entries[tc] = new_numqs;
drivers/net/ethernet/intel/ice/ice_sched.c
632
ice_alloc_rdma_q_ctx(struct ice_hw *hw, u16 vsi_handle, u8 tc, u16 new_numqs)
drivers/net/ethernet/intel/ice/ice_sched.c
641
if (!vsi_ctx->rdma_q_ctx[tc]) {
drivers/net/ethernet/intel/ice/ice_sched.c
642
vsi_ctx->rdma_q_ctx[tc] = devm_kcalloc(ice_hw_to_dev(hw),
drivers/net/ethernet/intel/ice/ice_sched.c
646
if (!vsi_ctx->rdma_q_ctx[tc])
drivers/net/ethernet/intel/ice/ice_sched.c
648
vsi_ctx->num_rdma_q_entries[tc] = new_numqs;
drivers/net/ethernet/intel/ice/ice_sched.c
652
if (new_numqs > vsi_ctx->num_rdma_q_entries[tc]) {
drivers/net/ethernet/intel/ice/ice_sched.c
653
u16 prev_num = vsi_ctx->num_rdma_q_entries[tc];
drivers/net/ethernet/intel/ice/ice_sched.c
659
memcpy(q_ctx, vsi_ctx->rdma_q_ctx[tc],
drivers/net/ethernet/intel/ice/ice_sched.c
661
devm_kfree(ice_hw_to_dev(hw), vsi_ctx->rdma_q_ctx[tc]);
drivers/net/ethernet/intel/ice/ice_sched.c
662
vsi_ctx->rdma_q_ctx[tc] = q_ctx;
drivers/net/ethernet/intel/ice/ice_sched.c
663
vsi_ctx->num_rdma_q_entries[tc] = new_numqs;
drivers/net/ethernet/intel/ice/ice_sched.h
126
struct ice_sched_node *ice_sched_get_tc_node(struct ice_port_info *pi, u8 tc);
drivers/net/ethernet/intel/ice/ice_sched.h
128
ice_sched_get_free_qparent(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.h
131
ice_sched_cfg_vsi(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u16 maxqs,
drivers/net/ethernet/intel/ice/ice_sched.h
144
ice_cfg_q_bw_lmt(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.h
147
ice_cfg_q_bw_dflt_lmt(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.h
150
ice_cfg_vsi_bw_lmt_per_tc(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_sched.h
153
ice_cfg_vsi_bw_dflt_lmt_per_tc(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1034
int num_tc, tc;
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1045
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1046
int qcount = vsi->mqprio_qopt.qopt.count[tc];
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1047
int offset = vsi->mqprio_qopt.qopt.offset[tc];
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1051
if (tc < ICE_CHNL_START_TC)
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1054
return vsi->tc_map_vsi[tc];
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1092
tc_class = tc_fltr->action.fwd.tc.tc_class;
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1200
tc_fltr->action.fwd.tc.tc_class,
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1268
tc_fltr->action.fwd.tc.tc_class, rule_added.rid,
drivers/net/ethernet/intel/ice/ice_tc_lib.c
2015
int tc = tc_classid_to_hwtc(vsi->netdev, cls_flower->classid);
drivers/net/ethernet/intel/ice/ice_tc_lib.c
2020
if (tc < ICE_CHNL_START_TC) {
drivers/net/ethernet/intel/ice/ice_tc_lib.c
2025
if (!(vsi->all_enatc & BIT(tc))) {
drivers/net/ethernet/intel/ice/ice_tc_lib.c
2031
fltr->action.fwd.tc.tc_class = tc;
drivers/net/ethernet/intel/ice/ice_tc_lib.h
196
return f->action.fwd.tc.tc_class >= ICE_CHNL_START_TC &&
drivers/net/ethernet/intel/ice/ice_tc_lib.h
197
f->action.fwd.tc.tc_class < ICE_CHNL_MAX_TC;
drivers/net/ethernet/intel/ice/ice_tc_lib.h
58
} tc;
drivers/net/ethernet/intel/ice/ice_type.h
24
static inline bool ice_is_tc_ena(unsigned long bitmap, u8 tc)
drivers/net/ethernet/intel/ice/ice_type.h
26
return test_bit(tc, &bitmap);
drivers/net/ethernet/intel/ice/ice_vf_lib.h
106
u8 tc;
drivers/net/ethernet/intel/ice/virt/fdir.c
986
input->ip.v6.tc = ((u8)(ip6h->priority) << 4) |
drivers/net/ethernet/intel/ice/virt/queues.c
100
ret = ice_cfg_q_bw_lmt(hw->port_info, vsi->idx, tc,
drivers/net/ethernet/intel/ice/virt/queues.c
104
ret = ice_cfg_q_bw_dflt_lmt(hw->port_info, vsi->idx, tc,
drivers/net/ethernet/intel/ice/virt/queues.c
644
if (qbw->cfg[i].tc >= ICE_MAX_TRAFFIC_CLASS) {
drivers/net/ethernet/intel/ice/virt/queues.c
656
vf->qs_bw[i].tc = qbw->cfg[i].tc;
drivers/net/ethernet/intel/ice/virt/queues.c
83
u8 tc;
drivers/net/ethernet/intel/ice/virt/queues.c
87
tc = vf->qs_bw[i].tc;
drivers/net/ethernet/intel/ice/virt/queues.c
89
ret = ice_cfg_q_bw_lmt(hw->port_info, vsi->idx, tc,
drivers/net/ethernet/intel/ice/virt/queues.c
93
ret = ice_cfg_q_bw_dflt_lmt(hw->port_info, vsi->idx, tc,
drivers/net/ethernet/intel/ice/virt/virtchnl.c
408
u8 numtc, tc;
drivers/net/ethernet/intel/ice/virt/virtchnl.c
448
tc = pi->qos_cfg.local_dcbx_cfg.etscfg.prio_table[i];
drivers/net/ethernet/intel/ice/virt/virtchnl.c
449
tc_prio[tc] |= BIT(i);
drivers/net/ethernet/intel/igb/igb.h
636
struct timecounter tc;
drivers/net/ethernet/intel/igb/igb_main.c
2706
int err, tc;
drivers/net/ethernet/intel/igb/igb_main.c
2708
tc = tc_classid_to_hwtc(adapter->netdev, cls_flower->classid);
drivers/net/ethernet/intel/igb/igb_main.c
2709
if (tc < 0) {
drivers/net/ethernet/intel/igb/igb_main.c
2718
err = igb_parse_cls_flower(adapter, cls_flower, tc, filter);
drivers/net/ethernet/intel/igb/igb_main.c
6967
now = timecounter_cyc2time(&adapter->tc, systim);
drivers/net/ethernet/intel/igb/igb_main.c
7041
ns = timecounter_cyc2time(&adapter->tc, ns);
drivers/net/ethernet/intel/igb/igb_ptp.c
1507
timecounter_init(&adapter->tc, &adapter->cc,
drivers/net/ethernet/intel/igb/igb_ptp.c
177
ns = timecounter_cyc2time(&adapter->tc, systim);
drivers/net/ethernet/intel/igb/igb_ptp.c
235
timecounter_adjtime(&igb->tc, delta);
drivers/net/ethernet/intel/igb/igb_ptp.c
277
ns = timecounter_cyc2time(&igb->tc, ((u64)hi << 32) | lo);
drivers/net/ethernet/intel/igb/igb_ptp.c
305
ns = timecounter_cyc2time(&igb->tc, ((u64)hi << 32) | lo);
drivers/net/ethernet/intel/igb/igb_ptp.c
348
timecounter_init(&igb->tc, &igb->cc, ns);
drivers/net/ethernet/intel/igb/igb_ptp.c
587
now = timecounter_cyc2time(&igb->tc, systim);
drivers/net/ethernet/intel/igb/igb_ptp.c
845
ts = ns_to_timespec64(timecounter_read(&igb->tc));
drivers/net/ethernet/intel/igc/igc.h
325
struct timecounter tc;
drivers/net/ethernet/intel/igc/igc_ptp.c
1377
timecounter_init(&adapter->tc, &adapter->cc,
drivers/net/ethernet/intel/ixgbe/ixgbe.h
1016
int ixgbe_setup_tc(struct net_device *dev, u8 tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
165
int tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
167
for (*pfc_en = 0, tc = 0; tc < MAX_TRAFFIC_CLASS; tc++) {
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
168
if (tc_config[tc].dcb_pfc != pfc_disabled)
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
169
*pfc_en |= BIT(tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
177
int tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
179
for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
180
refill[tc] = tc_config[tc].path[direction].data_credits_refill;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
186
int tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
188
for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
189
max[tc] = tc_config[tc].desc_credits_max;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
196
int tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
198
for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
199
bwgid[tc] = tc_config[tc].path[direction].bwg_id;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
206
int tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
208
for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
209
ptype[tc] = tc_config[tc].path[direction].prio_type;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
216
u8 tc = cfg->num_tcs.pg_tcs;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
219
if (!tc)
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
227
for (tc--; tc; tc--) {
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
228
if (prio_mask & tc_config[tc].path[direction].up_to_tc_bitmap)
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
232
return tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h
42
u8 tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h
98
u8 tc; /* Traffic class (TC) */
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
166
static void ixgbe_dcbnl_set_pg_tc_cfg_tx(struct net_device *netdev, int tc,
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
173
adapter->temp_dcb_cfg.tc_config[tc].path[0].prio_type = prio;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
175
adapter->temp_dcb_cfg.tc_config[tc].path[0].bwg_id = bwg_id;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
177
adapter->temp_dcb_cfg.tc_config[tc].path[0].bwg_percent =
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
180
adapter->temp_dcb_cfg.tc_config[tc].path[0].up_to_tc_bitmap =
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
192
static void ixgbe_dcbnl_set_pg_tc_cfg_rx(struct net_device *netdev, int tc,
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
199
adapter->temp_dcb_cfg.tc_config[tc].path[1].prio_type = prio;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
201
adapter->temp_dcb_cfg.tc_config[tc].path[1].bwg_id = bwg_id;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
203
adapter->temp_dcb_cfg.tc_config[tc].path[1].bwg_percent =
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
206
adapter->temp_dcb_cfg.tc_config[tc].path[1].up_to_tc_bitmap =
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
218
static void ixgbe_dcbnl_get_pg_tc_cfg_tx(struct net_device *netdev, int tc,
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
224
*prio = adapter->dcb_cfg.tc_config[tc].path[0].prio_type;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
225
*bwg_id = adapter->dcb_cfg.tc_config[tc].path[0].bwg_id;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
226
*bw_pct = adapter->dcb_cfg.tc_config[tc].path[0].bwg_percent;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
227
*up_map = adapter->dcb_cfg.tc_config[tc].path[0].up_to_tc_bitmap;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
238
static void ixgbe_dcbnl_get_pg_tc_cfg_rx(struct net_device *netdev, int tc,
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
244
*prio = adapter->dcb_cfg.tc_config[tc].path[1].prio_type;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
245
*bwg_id = adapter->dcb_cfg.tc_config[tc].path[1].bwg_id;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
246
*bw_pct = adapter->dcb_cfg.tc_config[tc].path[1].bwg_percent;
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
247
*up_map = adapter->dcb_cfg.tc_config[tc].path[1].up_to_tc_bitmap;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
102
*tx = tc << 2; /* 0, 4, 8, 12, 16, 20, 24, 28 */
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
103
*rx = tc << 3; /* 0, 8, 16, 24, 32, 40, 48, 56 */
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
117
*rx = tc << 4;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
118
if (tc < 3)
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
119
*tx = tc << 5; /* 0, 32, 64 */
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
120
else if (tc < 5)
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
121
*tx = (tc + 2) << 4; /* 80, 96 */
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
123
*tx = (tc + 8) << 3; /* 104, 112, 120 */
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
130
*rx = tc << 5;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
131
if (tc < 2)
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
132
*tx = tc << 6; /* 0, 64 */
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
134
*tx = (tc + 4) << 4; /* 96, 112 */
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
153
int tc, offset, rss_i, i;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
161
for (tc = 0, offset = 0; tc < num_tcs; tc++, offset += rss_i) {
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
162
ixgbe_get_first_reg_idx(adapter, tc, &tx_idx, &rx_idx);
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
167
adapter->tx_ring[offset + i]->dcb_tc = tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
168
adapter->rx_ring[offset + i]->dcb_tc = tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
472
u8 tc = ixgbe_fcoe_get_tc(adapter);
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
476
f->offset = rss_i * tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
90
static void ixgbe_get_first_reg_idx(struct ixgbe_adapter *adapter, u8 tc,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1004
tc = netdev_get_prio_tc_map(adapter->netdev, i);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1005
xoff[tc] += pxoffrxc;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1012
tc = tx_ring->dcb_tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1013
if (xoff[tc])
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1020
tc = xdp_ring->dcb_tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
1021
if (xoff[tc])
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5556
int link, tc, kb, marker;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5560
tc = link = dev->mtu + ETH_HLEN + ETH_FCS_LEN + IXGBE_ETH_FRAMING;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5564
if (dev->fcoe_mtu && tc < IXGBE_FCOE_JUMBO_FRAME_SIZE &&
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5566
tc = IXGBE_FCOE_JUMBO_FRAME_SIZE;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5576
dv_id = IXGBE_DV_X540(link, tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5579
dv_id = IXGBE_DV(link, tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5585
dv_id += IXGBE_B2BT(tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5601
marker = tc + 1;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5617
int tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5621
tc = dev->mtu + ETH_HLEN + ETH_FCS_LEN;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5625
if (dev->fcoe_mtu && tc < IXGBE_FCOE_JUMBO_FRAME_SIZE &&
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5627
tc = IXGBE_FCOE_JUMBO_FRAME_SIZE;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5637
dv_id = IXGBE_LOW_DV_X540(tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5640
dv_id = IXGBE_LOW_DV(tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5677
u8 tc = adapter->hw_tcs;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
5685
hw->mac.ops.set_rxpba(hw, tc, hdrm, PBA_STRATEGY_EQUAL);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6791
struct tc_configuration *tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6816
tc = &adapter->dcb_cfg.tc_config[j];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6817
tc->path[DCB_TX_CONFIG].bwg_id = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6818
tc->path[DCB_TX_CONFIG].bwg_percent = 12 + (j & 1);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6819
tc->path[DCB_RX_CONFIG].bwg_id = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6820
tc->path[DCB_RX_CONFIG].bwg_percent = 12 + (j & 1);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6821
tc->dcb_pfc = pfc_disabled;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6825
tc = &adapter->dcb_cfg.tc_config[0];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6826
tc->path[DCB_TX_CONFIG].up_to_tc_bitmap = 0xFF;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
6827
tc->path[DCB_RX_CONFIG].up_to_tc_bitmap = 0xFF;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9244
u8 tc = netdev_get_prio_tc_map(dev, skb->priority);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9247
txq = vdev->tc_to_txq[tc].offset;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9249
vdev->tc_to_txq[tc].count);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9759
static void ixgbe_validate_rtr(struct ixgbe_adapter *adapter, u8 tc)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9778
if (up2tc > tc)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
979
u8 tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9802
u8 tc = 0;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9805
tc = ixgbe_dcb_get_tc_from_up(dcb_cfg, 0, prio);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9807
tc = ets->prio_tc[prio];
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9809
netdev_set_prio_tc_map(dev, prio, tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9872
int ixgbe_setup_tc(struct net_device *dev, u8 tc)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9878
if (tc > adapter->dcb_cfg.num_tcs.pg_tcs)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9881
if (hw->mac.type == ixgbe_mac_82598EB && tc && tc < MAX_TRAFFIC_CLASS)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9896
if (tc) {
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9906
netdev_set_num_tc(dev, tc);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9909
adapter->hw_tcs = tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9923
adapter->hw_tcs = tc;
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
9929
ixgbe_validate_rtr(adapter, tc);
drivers/net/ethernet/marvell/mvneta.c
5244
int rxq, txq, tc, ret;
drivers/net/ethernet/marvell/mvneta.c
5265
for (tc = 0; tc < mqprio->qopt.num_tc; tc++) {
drivers/net/ethernet/marvell/mvneta.c
5266
netdev_set_tc_queue(dev, tc, mqprio->qopt.count[tc],
drivers/net/ethernet/marvell/mvneta.c
5267
mqprio->qopt.offset[tc]);
drivers/net/ethernet/marvell/mvneta.c
5269
for (rxq = mqprio->qopt.offset[tc];
drivers/net/ethernet/marvell/mvneta.c
5270
rxq < mqprio->qopt.count[tc] + mqprio->qopt.offset[tc];
drivers/net/ethernet/marvell/mvneta.c
5275
mvneta_map_vlan_prio_to_rxq(pp, tc, rxq);
drivers/net/ethernet/marvell/mvneta.c
5291
for (tc = 0; tc < mqprio->qopt.num_tc; tc++) {
drivers/net/ethernet/marvell/mvneta.c
5292
for (txq = mqprio->qopt.offset[tc];
drivers/net/ethernet/marvell/mvneta.c
5293
txq < mqprio->qopt.count[tc] + mqprio->qopt.offset[tc];
drivers/net/ethernet/marvell/mvneta.c
5299
mqprio->min_rate[tc],
drivers/net/ethernet/marvell/mvneta.c
5300
mqprio->max_rate[tc]);
drivers/net/ethernet/marvell/octeontx2/af/mbox.h
1718
u8 tc;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
2034
bool tc = !!(features & NETIF_F_HW_TC);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
2047
if ((changed & NETIF_F_HW_TC) && !tc &&
drivers/net/ethernet/mellanox/mlx4/en_clock.c
41
static u64 mlx4_en_read_clock(struct cyclecounter *tc)
drivers/net/ethernet/mellanox/mlx4/en_clock.c
44
container_of(tc, struct mlx4_en_dev, cycles);
drivers/net/ethernet/mellanox/mlx4/en_clock.c
47
return mlx4_read_clock(dev) & tc->mask;
drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c
167
int tc;
drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c
171
for (tc = 0; tc < CEE_DCBX_MAX_PRIO; tc++) {
drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c
172
u8 tc_mask = 1 << tc;
drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c
174
switch (priv->cee_config.dcb_pfc[tc]) {
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
108
new_prof.num_up = (tc == 0) ? MLX4_EN_NUM_UP_LOW :
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
138
err = mlx4_en_setup_tc(dev, tc);
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
92
int mlx4_en_alloc_tx_queue_per_tc(struct net_device *dev, u8 tc)
drivers/net/ethernet/mellanox/mlx4/fw.c
1528
int ts = 0, tc = 0;
drivers/net/ethernet/mellanox/mlx4/fw.c
1563
++tc;
drivers/net/ethernet/mellanox/mlx4/fw.c
1584
mlx4_dbg(dev, "Mapped %d chunks/%d KB for FW\n", tc, ts);
drivers/net/ethernet/mellanox/mlx4/fw.c
1587
mlx4_dbg(dev, "Mapped %d chunks/%d KB for ICM aux\n", tc, ts);
drivers/net/ethernet/mellanox/mlx4/fw.c
1591
tc, ts, (unsigned long long) virt - (ts << 10));
drivers/net/ethernet/mellanox/mlx4/fw_qos.c
127
struct mlx4_port_scheduler_tc_cfg_be *tc = &context->tc[i];
drivers/net/ethernet/mellanox/mlx4/fw_qos.c
133
tc->max_bw_units =
drivers/net/ethernet/mellanox/mlx4/fw_qos.c
137
tc->max_bw_units =
drivers/net/ethernet/mellanox/mlx4/fw_qos.c
140
tc->max_bw_value = htons(r);
drivers/net/ethernet/mellanox/mlx4/fw_qos.c
142
tc->max_bw_value = htons(MLX4_RATELIMIT_DEFAULT);
drivers/net/ethernet/mellanox/mlx4/fw_qos.c
143
tc->max_bw_units = htons(MLX4_RATELIMIT_1G_UNITS);
drivers/net/ethernet/mellanox/mlx4/fw_qos.c
146
tc->pg = htons(pg[i]);
drivers/net/ethernet/mellanox/mlx4/fw_qos.c
147
tc->bw_precentage = htons(tc_tx_bw[i]);
drivers/net/ethernet/mellanox/mlx4/fw_qos.c
63
struct mlx4_port_scheduler_tc_cfg_be tc[MLX4_NUM_TC];
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
768
int mlx4_en_alloc_tx_queue_per_tc(struct net_device *dev, u8 tc);
drivers/net/ethernet/mellanox/mlx5/core/en.h
1017
u8 lag_port, u8 tc);
drivers/net/ethernet/mellanox/mlx5/core/en.h
1028
u8 lag_port, u8 tc);
drivers/net/ethernet/mellanox/mlx5/core/en.h
1145
struct mlx5e_txqsq *sq, int tc, u16 qos_queue_group_id,
drivers/net/ethernet/mellanox/mlx5/core/en/channels.c
116
int i, tc;
drivers/net/ethernet/mellanox/mlx5/core/en/channels.c
119
for (tc = 0; tc < mlx5e_get_dcb_num_tc(&chs->params); tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/channels.c
129
if (!chs->c[i]->sq[tc].dim)
drivers/net/ethernet/mellanox/mlx5/core/en/channels.c
132
mlx5e_dim_tx_change(&chs->c[i]->sq[tc], false);
drivers/net/ethernet/mellanox/mlx5/core/en/channels.c
133
err = mlx5e_dim_tx_change(&chs->c[i]->sq[tc], true);
drivers/net/ethernet/mellanox/mlx5/core/en/channels.c
76
int i, tc;
drivers/net/ethernet/mellanox/mlx5/core/en/channels.c
79
for (tc = 0; tc < mlx5e_get_dcb_num_tc(&chs->params); tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/channels.c
80
int err = mlx5e_dim_tx_change(&chs->c[i]->sq[tc], enable);
drivers/net/ethernet/mellanox/mlx5/core/en/hv_vhca_stats.c
21
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en/hv_vhca_stats.c
27
for (tc = 0; tc < priv->max_opened_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/hv_vhca_stats.c
28
data->tx_packets += stats->sq[tc].packets;
drivers/net/ethernet/mellanox/mlx5/core/en/hv_vhca_stats.c
29
data->tx_bytes += stats->sq[tc].bytes;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
329
struct mlx5e_txqsq *sq, int tc,
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
349
sq->stats = &c->priv->ptp_stats.sq[tc];
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
466
int tc, struct mlx5e_ptpsq *ptpsq)
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
474
txqsq, tc, ptpsq);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
525
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
529
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
530
int txq_ix = ix_base + tc;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
534
c->lag_port, tc);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
535
err = mlx5e_ptp_open_txqsq(c, tisn, txq_ix, cparams, tc, &c->ptpsq[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
543
for (--tc; tc >= 0; tc--)
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
544
mlx5e_ptp_close_txqsq(&c->ptpsq[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
551
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
553
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
554
mlx5e_ptp_close_txqsq(&c->ptpsq[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
566
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
580
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
581
struct mlx5e_cq *cq = &c->ptpsq[tc].txqsq.cq;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
588
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
589
struct mlx5e_cq *cq = &c->ptpsq[tc].ts_cq;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
590
struct mlx5e_ptpsq *ptpsq = &c->ptpsq[tc];
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
596
ptpsq->cq_stats = &c->priv->ptp_stats.cq[tc];
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
602
for (--tc; tc >= 0; tc--)
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
603
mlx5e_close_cq(&c->ptpsq[tc].ts_cq);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
604
tc = num_tc;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
606
for (--tc; tc >= 0; tc--)
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
607
mlx5e_close_cq(&c->ptpsq[tc].txqsq.cq);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
635
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
637
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
638
mlx5e_close_cq(&c->ptpsq[tc].ts_cq);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
640
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
641
mlx5e_close_cq(&c->ptpsq[tc].txqsq.cq);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
941
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
946
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
947
mlx5e_activate_txqsq(&c->ptpsq[tc].txqsq);
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
959
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
967
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
968
mlx5e_deactivate_txqsq(&c->ptpsq[tc].txqsq);
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
475
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
496
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
499
max_average_bw = mlx5e_qos_bytes2mbits(mdev, max_rate[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
501
&rl->leaves_id[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
506
tc, rl->leaves_id[tc], max_average_bw);
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
511
while (--tc >= 0)
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
512
mlx5_qos_destroy_node(mdev, rl->leaves_id[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
521
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
523
for (tc = 0; tc < rl->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
524
mlx5_qos_destroy_node(rl->mdev, rl->leaves_id[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
529
int mlx5e_mqprio_rl_get_node_hw_id(struct mlx5e_mqprio_rl *rl, int tc, u32 *hw_id)
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
531
if (tc >= rl->num_tc)
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
534
*hw_id = rl->leaves_id[tc];
drivers/net/ethernet/mellanox/mlx5/core/en/qos.h
50
int mlx5e_mqprio_rl_get_node_hw_id(struct mlx5e_mqprio_rl *rl, int tc, u32 *hw_id);
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
264
struct mlx5e_txqsq *sq, int tc)
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
270
devlink_fmsg_u32_pair_put(fmsg, "tc", tc);
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
288
struct mlx5e_txqsq *sq, int tc)
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
292
mlx5e_tx_reporter_build_diagnose_output_sq_common(fmsg, sq, tc);
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
298
struct mlx5e_ptpsq *ptpsq, int tc)
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
302
mlx5e_tx_reporter_build_diagnose_output_sq_common(fmsg, &ptpsq->txqsq, tc);
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
364
u32 tc, i, tisn;
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
368
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
370
priv->profile, i, tc);
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
374
devlink_fmsg_u32_pair_put(fmsg, "tc", tc);
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
389
int i, tc;
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
403
for (tc = 0; tc < mlx5e_get_dcb_num_tc(&priv->channels.params); tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
404
struct mlx5e_txqsq *sq = &c->sq[tc];
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
406
mlx5e_tx_reporter_build_diagnose_output(fmsg, sq, tc);
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
413
for (tc = 0; tc < mlx5e_get_dcb_num_tc(&priv->channels.params); tc++)
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
415
&ptp_ch->ptpsq[tc],
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
416
tc);
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
481
int i, tc;
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
496
for (tc = 0; tc < mlx5e_get_dcb_num_tc(&priv->channels.params); tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
497
struct mlx5e_txqsq *sq = &c->sq[tc];
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
504
for (tc = 0; tc < mlx5e_get_dcb_num_tc(&priv->channels.params); tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
505
struct mlx5e_txqsq *sq = &ptp_ch->ptpsq[tc].txqsq;
drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/goto.c
15
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/goto.c
25
chains = is_esw ? esw_chains(esw) : mlx5e_nic_chains(tc);
drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/mpls.c
31
mpls_info->tc = act->mpls_push.tc;
drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h
46
struct mlx5_fs_chains *mlx5e_nic_chains(struct mlx5e_tc_table *tc);
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_mplsoudp.c
41
*mpls = mpls_entry_encode(mpls_info->label, mpls_info->ttl, mpls_info->tc, mpls_info->bos);
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
100
for (tc = 0; tc < MLX5_MAX_NUM_TC; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
101
mlx5e_destroy_tis(mdev, tisn[i][tc]);
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
111
int tc, i;
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
115
for (tc = 0; tc < MLX5_MAX_NUM_TC; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
121
MLX5_SET(tisc, tisc, prio, tc << 1);
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
126
err = mlx5e_create_tis(mdev, in, &tisn[i][tc]);
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
136
for (tc--; tc >= 0; tc--)
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
137
mlx5e_destroy_tis(mdev, tisn[i][tc]);
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
138
tc = MLX5_MAX_NUM_TC;
drivers/net/ethernet/mellanox/mlx5/core/en_common.c
97
int tc, i;
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
700
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
711
for (tc = 0; tc < c->num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
712
mlx5e_modify_cq_moderation(mdev, &c->sq[tc].cq.mcq,
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
868
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
904
for (tc = 0; tc < c->num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
905
err = mlx5e_dim_tx_change(&c->sq[tc], tx_dim_enabled);
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
923
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
924
mlx5_core_modify_cq_moderation(mdev, &c->sq[tc].cq.mcq,
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
1415
fs->tc = mlx5e_tc_table_alloc();
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
1416
if (IS_ERR(fs->tc))
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
1423
mlx5e_tc_table_free(fs->tc);
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
1428
return fs->tc;
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
56
struct mlx5e_tc_table *tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
1423
u8 lag_port, u8 tc)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
1426
return profile->get_tisn(mdev, priv, lag_port, tc);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
1428
return mdev->mlx5e_res.hw_objs.tisn[lag_port][tc];
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
1649
int tc)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
1827
struct mlx5e_txqsq *sq, int tc, u16 qos_queue_group_id,
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
1834
err = mlx5e_alloc_txqsq(c, txq_ix, params, param, sq, tc);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
1974
int i, tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
1977
for (tc = 0; tc < mlx5e_get_dcb_num_tc(&chs->params); tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
1979
dim_enabled = !!chs->c[i]->sq[tc].dim;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2324
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2326
for (tc = 0; tc < c->num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2328
ccp, &c->sq[tc].cq);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2336
for (tc--; tc >= 0; tc--)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2337
mlx5e_close_cq(&c->sq[tc].cq);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2344
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2346
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2347
mlx5e_close_cq(&c->sq[tc].cq);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2352
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2354
for (tc = 0; tc < TC_MAX_QUEUE; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2355
if (txq - tc_to_txq[tc].offset < tc_to_txq[tc].count)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2356
return tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2365
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2372
tc = mlx5e_mqprio_txq_to_tc(params->mqprio.tc_to_txq, txq_ix);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2373
if (tc < 0)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2374
return tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2376
if (tc >= params->mqprio.num_tc) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2378
tc, params->mqprio.num_tc);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2382
*hw_id = params->mqprio.channel.hw_id[tc];
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2390
int err, tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2392
for (tc = 0; tc < mlx5e_get_dcb_num_tc(params); tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2393
int txq_ix = c->ix + tc * params->num_channels;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2398
c->lag_port, tc);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2404
params, &cparam->txq_sq, &c->sq[tc], tc,
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2406
&c->priv->channel_stats[c->ix]->sq[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2414
for (tc--; tc >= 0; tc--)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2415
mlx5e_close_txqsq(&c->sq[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2422
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2424
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2425
mlx5e_close_txqsq(&c->sq[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2856
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2860
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2861
mlx5e_activate_txqsq(&c->sq[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2876
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2888
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2889
mlx5e_deactivate_txqsq(&c->sq[tc]);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3102
int tc, err;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3115
for (tc = 0; tc < ntc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3118
count = tc_to_txq[tc].count;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3119
offset = tc_to_txq[tc].offset;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3120
netdev_set_tc_queue(netdev, tc, count, offset);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3249
int i, ch, tc, num_tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3255
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3257
struct mlx5e_txqsq *sq = &c->sq[tc];
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3270
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3272
struct mlx5e_txqsq *sq = &c->ptpsq[tc].txqsq;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3696
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3703
for (tc = 0; tc < ntc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3704
tc_to_txq[tc] = (struct netdev_tc_txq) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3714
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3716
for (tc = 0; tc < TC_MAX_QUEUE; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3717
tc_to_txq[tc] = (struct netdev_tc_txq) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3718
.count = qopt->count[tc],
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3719
.offset = qopt->offset[tc],
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3735
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3737
for (tc = 0; tc < TC_MAX_QUEUE; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3741
mlx5e_mqprio_rl_get_node_hw_id(rl, tc, &hw_id);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3742
params->mqprio.channel.hw_id[tc] = hw_id;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3750
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3755
for (tc = 0; tc < TC_MAX_QUEUE; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3756
params->mqprio.channel.max_rate[tc] = mqprio->max_rate[tc];
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3771
u8 tc = mqprio->num_tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3776
if (tc && tc != MLX5_MAX_NUM_TC)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3780
mlx5e_params_mqprio_dcb_set(&new_params, tc ? tc : 1);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3851
int tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3853
for (tc = 0; tc < num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
3854
if (max_rate[tc])
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5465
int i, tc;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5513
tc = mlx5e_get_dcb_num_tc(&priv->channels.params);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5515
tc = 0;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5517
for (; tc < priv->max_opened_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5518
struct mlx5e_sq_stats *sq_stats = &channel_stats->sq[tc];
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5535
for (tc = 0; tc < priv->max_opened_tc; tc++) {
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
5536
struct mlx5e_sq_stats *sq_stats = &priv->ptp_stats.sq[tc];
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
577
int n, tc, nch, num_sqs = 0;
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
598
for (tc = 0; tc < c->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
599
sqs[num_sqs++] = c->sq[tc].sqn;
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
612
for (tc = 0; tc < ptp_ch->num_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
613
sqs[num_sqs++] = ptp_ch->ptpsq[tc].txqsq.sqn;
drivers/net/ethernet/mellanox/mlx5/core/en_rep.h
194
u8 tc;
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2521
int i, tc;
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2530
for (tc = 0; tc < priv->max_opened_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2534
tc);
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2536
for (tc = 0; tc < priv->max_opened_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2540
tc);
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2550
int i, tc;
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2561
for (tc = 0; tc < priv->max_opened_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2565
&priv->ptp_stats.sq[tc],
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2568
for (tc = 0; tc < priv->max_opened_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2572
&priv->ptp_stats.cq[tc],
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2603
int i, j, tc;
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2618
for (tc = 0; tc < priv->max_opened_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2622
i + tc * max_nch);
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2636
int i, j, tc;
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2663
for (tc = 0; tc < priv->max_opened_tc; tc++)
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
2669
&priv->channel_stats[i]->sq[tc],
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1044
struct mlx5e_tc_table *tc = data;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1049
mutex_lock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1050
hash_for_each(tc->hairpin_tbl, bkt, hpe, hairpin_hlist)
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1052
mutex_unlock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1064
struct mlx5e_tc_table *tc = file->private;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1068
mutex_lock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1069
hash_for_each(tc->hairpin_tbl, bkt, hpe, hairpin_hlist)
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1075
mutex_unlock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1081
static void mlx5e_tc_debugfs_init(struct mlx5e_tc_table *tc,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1087
tc->dfs_root = debugfs_create_dir("tc", dfs_root);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1089
debugfs_create_file("hairpin_num_active", 0444, tc->dfs_root, tc,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1091
debugfs_create_file("hairpin_table_dump", 0444, tc->dfs_root, tc,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1100
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1129
mutex_lock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1132
mutex_unlock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1144
mutex_unlock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1156
hash_add(tc->hairpin_tbl, &hpe->hairpin_hlist,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1158
mutex_unlock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1241
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1253
nic_chains = mlx5e_nic_chains(tc);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1296
mutex_lock(&tc->t_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1297
if (IS_ERR_OR_NULL(tc->t)) {
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1299
tc->t =
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1302
if (IS_ERR(tc->t)) {
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1303
mutex_unlock(&tc->t_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1306
rule = ERR_CAST(tc->t);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1310
mutex_unlock(&tc->t_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1401
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1404
nic_chains = mlx5e_nic_chains(tc);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1419
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1430
mutex_lock(&tc->t_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1432
!IS_ERR_OR_NULL(tc->t)) {
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1433
mlx5_chains_put_table(mlx5e_nic_chains(tc), 0, 1, MLX5E_TC_FT_LEVEL);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1434
tc->t = NULL;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
1436
mutex_unlock(&tc->t_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
154
struct mlx5e_tc_table *tc;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
156
tc = kvzalloc_obj(*tc);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
157
return tc ? tc : ERR_PTR(-ENOMEM);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
160
void mlx5e_tc_table_free(struct mlx5e_tc_table *tc)
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
162
kvfree(tc);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
165
struct mlx5_fs_chains *mlx5e_nic_chains(struct mlx5e_tc_table *tc)
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
167
return tc->chains;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
293
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
305
return tc->action_stats_handle;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
352
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
364
return tc->ct;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
387
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
399
return tc->post_act;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
4349
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
4356
return &tc->ht;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5154
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5166
mutex_lock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5167
hash_for_each(tc->hairpin_tbl, bkt, hpe, hairpin_hlist)
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5170
mutex_unlock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5186
struct mlx5e_tc_table *tc;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5194
tc = container_of(this, struct mlx5e_tc_table, netdevice_nb);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5195
priv = tc->priv;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5208
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5209
struct mlx5_flow_table **ft = &tc->miss_t;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5231
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5233
mlx5_destroy_flow_table(tc->miss_t);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5238
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5246
mlx5e_mod_hdr_tbl_init(&tc->mod_hdr);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5247
mutex_init(&tc->t_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5248
mutex_init(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5249
hash_init(tc->hairpin_tbl);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5250
tc->priv = priv;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5252
err = rhashtable_init(&tc->ht, &tc_ht_params);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5256
lockdep_set_class(&tc->ht.mutex, &tc_ht_lock_key);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5257
lockdep_init_map(&tc->ht.run_work.lockdep_map, "tc_ht_wq_key", &tc_ht_wq_key, 0);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5271
tc->mapping = chains_mapping;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5282
attr.default_ft = tc->miss_t;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5286
tc->chains = mlx5_chains_create(dev, &attr);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5287
if (IS_ERR(tc->chains)) {
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5288
err = PTR_ERR(tc->chains);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5292
mlx5_chains_print_info(tc->chains);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5294
tc->post_act = mlx5e_tc_post_act_init(priv, tc->chains, MLX5_FLOW_NAMESPACE_KERNEL);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5295
tc->ct = mlx5_tc_ct_init(priv, tc->chains, &tc->mod_hdr,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5296
MLX5_FLOW_NAMESPACE_KERNEL, tc->post_act);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5298
tc->netdevice_nb.notifier_call = mlx5e_tc_netdev_event;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5300
&tc->netdevice_nb,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5301
&tc->netdevice_nn);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5303
tc->netdevice_nb.notifier_call = NULL;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5308
mlx5e_tc_debugfs_init(tc, mlx5e_fs_get_debugfs_root(priv->fs));
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5310
tc->action_stats_handle = mlx5e_tc_act_stats_create();
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5311
if (IS_ERR(tc->action_stats_handle)) {
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5312
err = PTR_ERR(tc->action_stats_handle);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5320
&tc->netdevice_nb,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5321
&tc->netdevice_nn);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5323
mlx5_tc_ct_clean(tc->ct);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5324
mlx5e_tc_post_act_destroy(tc->post_act);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5325
mlx5_chains_destroy(tc->chains);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5331
rhashtable_destroy(&tc->ht);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5346
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5348
debugfs_remove_recursive(tc->dfs_root);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5350
if (tc->netdevice_nb.notifier_call)
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5352
&tc->netdevice_nb,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5353
&tc->netdevice_nn);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5355
mlx5e_mod_hdr_tbl_destroy(&tc->mod_hdr);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5356
mutex_destroy(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5358
rhashtable_free_and_destroy(&tc->ht, _mlx5e_tc_del_flow, NULL);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5360
if (!IS_ERR_OR_NULL(tc->t)) {
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5361
mlx5_chains_put_table(tc->chains, 0, 1, MLX5E_TC_FT_LEVEL);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5362
tc->t = NULL;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5364
mutex_destroy(&tc->t_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5366
mlx5_tc_ct_clean(tc->ct);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5367
mlx5e_tc_post_act_destroy(tc->post_act);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5368
mapping_destroy(tc->mapping);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5369
mlx5_chains_destroy(tc->chains);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5371
mlx5e_tc_act_stats_free(tc->action_stats_handle);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5812
struct mlx5e_tc_table *tc;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5815
tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5819
ct_priv = tc->ct;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5820
mapping_ctx = tc->mapping;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5829
struct mlx5e_tc_table *tc;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5837
tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
5838
ctx = tc->mapping;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
651
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
656
&tc->mod_hdr;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
968
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
972
hash_for_each_possible(tc->hairpin_tbl, hpe,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
986
struct mlx5e_tc_table *tc = mlx5e_fs_get_tc(priv->fs);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
988
if (!refcount_dec_and_mutex_lock(&hpe->refcnt, &tc->hairpin_tbl_lock))
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
991
mutex_unlock(&tc->hairpin_tbl_lock);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h
370
void mlx5e_tc_table_free(struct mlx5e_tc_table *tc);
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h
395
static inline void mlx5e_tc_table_free(struct mlx5e_tc_table *tc) {}
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h
57
struct mlx5_fs_chains *mlx5e_nic_chains(struct mlx5e_tc_table *tc);
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
104
u8 tc;
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
197
op, sched_node_type_str[node->type], node->tc, err);
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
204
node->vport->vport, node->tc, err);
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
503
MLX5_SET(vport_tc_element, attr, traffic_class, vport_tc_node->tc);
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
556
u8 tc, struct netlink_ext_ack *extack)
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
578
esw_warn(dev, "Failed to alloc vports TC node (tc=%d)\n", tc);
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
584
MLX5_SET(tsar_element, attr, traffic_class, tc);
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
594
vports_tc_node->tc = tc;
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
621
u8 tc = vports_tc_node->tc;
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
624
tc_arbiter_node->tc_bw[tc] = tc_bw[tc];
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
625
bw_share = tc_bw[tc] * fw_max_bw_share;
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
866
u8 tc = vports_tc_node->tc;
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
876
vport_tc_node->tc = tc;
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
884
vport->qos.sched_nodes[tc] = vport_tc_node;
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
508
u32 mlx5i_get_tisn(struct mlx5_core_dev *mdev, struct mlx5e_priv *priv, u8 lag_port, u8 tc)
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
512
if (WARN(lag_port || tc,
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
514
lag_port, tc))
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h
67
u32 mlx5i_get_tisn(struct mlx5_core_dev *mdev, struct mlx5e_priv *priv, u8 lag_port, u8 tc);
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
1224
timecounter_init(&timer->tc, &timer->cycles,
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
1277
info->nsec = timer->tc.nsec;
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
1278
info->cycles = timer->tc.cycle_last;
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
1282
info->frac = timer->tc.frac;
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
428
clock_info->cycles = timer->tc.cycle_last;
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
430
clock_info->nsec = timer->tc.nsec;
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
431
clock_info->frac = timer->tc.frac;
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
480
timecounter_read(&timer->tc);
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
519
timecounter_init(&timer->tc, &timer->cycles, timespec64_to_ns(ts));
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
632
timecounter_adjtime(&timer->tc, delta);
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
697
timecounter_read(&timer->tc);
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
787
nsec_now = timecounter_cyc2time(&timer->tc, cycles_now);
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.h
104
nsec = timecounter_cyc2time(&timer->tc, timestamp);
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.h
50
struct timecounter tc;
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
340
u8 prio, u8 *tc);
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
343
u8 tc, u8 *tc_group);
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
346
u8 tc, u8 *bw_pct);
drivers/net/ethernet/mellanox/mlx5/core/port.c
664
u8 prio, u8 *tc)
drivers/net/ethernet/mellanox/mlx5/core/port.c
679
*tc = MLX5_GET(qtct_reg, out, tclass);
drivers/net/ethernet/mellanox/mlx5/core/port.c
723
u8 tc, u8 *tc_group)
drivers/net/ethernet/mellanox/mlx5/core/port.c
734
tc_configuration[tc]);
drivers/net/ethernet/mellanox/mlx5/core/port.c
756
u8 tc, u8 *bw_pct)
drivers/net/ethernet/mellanox/mlx5/core/port.c
767
tc_configuration[tc]);
drivers/net/ethernet/mellanox/mlxsw/reg.h
6578
u8 priority, u8 tc)
drivers/net/ethernet/mellanox/mlxsw/reg.h
6596
mlxsw_reg_htgt_local_path_cpu_tclass_set(payload, tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
2442
u8 priority, tc;
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
2459
tc = 1;
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
2463
tc = MLXSW_REG_HTGT_DEFAULT_TC;
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
2474
mlxsw_reg_htgt_pack(htgt_pl, i, policer_id, priority, tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
617
static void mlxsw_sp_port_get_tc_strings(u8 **p, int tc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c
623
mlxsw_sp_port_hw_tc_stats[i].str, tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
153
static u64 mlxsw_sp1_ptp_ns2cycles(const struct timecounter *tc, u64 nsec)
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
157
cycles <<= tc->cc->shift;
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
158
cycles = div_u64(cycles, tc->cc->mult);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
176
cycles = mlxsw_sp1_ptp_ns2cycles(&clock->tc, next_sec_in_nsec);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
198
timecounter_read(&clock->tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
212
timecounter_adjtime(&clock->tc, delta);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
213
nsec = timecounter_read(&clock->tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
228
nsec = timecounter_cyc2time(&clock->tc, cycles);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
243
timecounter_init(&clock->tc, &clock->cycles, nsec);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
244
nsec = timecounter_read(&clock->tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
268
timecounter_read(&clock->tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
293
timecounter_init(&clock->tc, &clock->cycles, 0);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
624
nsec = timecounter_cyc2time(&clock->tc, timestamp);
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
86
struct timecounter tc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1273
struct mlxsw_sp_port *mlxsw_sp_port, u8 tc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1282
struct mlxsw_sp_port *mlxsw_sp_port, u8 tc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1322
u8 tc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1331
u8 tc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1404
u8 tc, bool enable)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1434
mlxsw_reg_momte_tclass_en_set(momte_pl, tc, enable);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1442
u8 tc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1445
mlxsw_sp_port, tc, true);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1452
u8 tc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1454
__mlxsw_sp2_span_trigger_global_enable(trigger_entry, mlxsw_sp_port, tc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1621
enum mlxsw_sp_span_trigger trigger, u8 tc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1634
return trigger_entry->ops->enable(trigger_entry, mlxsw_sp_port, tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1638
enum mlxsw_sp_span_trigger trigger, u8 tc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
1651
return trigger_entry->ops->disable(trigger_entry, mlxsw_sp_port, tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
66
struct mlxsw_sp_port *mlxsw_sp_port, u8 tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
68
struct mlxsw_sp_port *mlxsw_sp_port, u8 tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.h
115
enum mlxsw_sp_span_trigger trigger, u8 tc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.h
117
enum mlxsw_sp_span_trigger trigger, u8 tc);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
421
struct lan966x_port_tc tc;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
110
old_stats = &port->tc.mirror_stat;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
58
port->tc.ingress_mirror_id = mirror_id;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
60
port->tc.egress_mirror_id = mirror_id;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
96
port->tc.ingress_mirror_id = 0;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
98
port->tc.egress_mirror_id = 0;
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
117
if (port->tc.ingress_shared_block) {
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
123
if (port->tc.police_id && port->tc.police_id != police_id) {
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
168
port->tc.police_id = police_id;
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
171
old_stats = &port->tc.police_stat;
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
187
if (port->tc.police_id != police_id) {
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
201
port->tc.police_id = 0;
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
212
old_stats = &port->tc.police_stat;
drivers/net/ethernet/microchip/lan966x/lan966x_tc.c
106
port->tc.ingress_shared_block = f->block_shared;
drivers/net/ethernet/microchip/lan966x/lan966x_tc_matchall.c
43
if (f->cookie == port->tc.police_id) {
drivers/net/ethernet/microchip/lan966x/lan966x_tc_matchall.c
46
} else if (f->cookie == port->tc.ingress_mirror_id ||
drivers/net/ethernet/microchip/lan966x/lan966x_tc_matchall.c
47
f->cookie == port->tc.egress_mirror_id) {
drivers/net/ethernet/microchip/lan966x/lan966x_tc_matchall.c
61
if (f->cookie == port->tc.police_id) {
drivers/net/ethernet/microchip/lan966x/lan966x_tc_matchall.c
63
} else if (f->cookie == port->tc.ingress_mirror_id ||
drivers/net/ethernet/microchip/lan966x/lan966x_tc_matchall.c
64
f->cookie == port->tc.egress_mirror_id) {
drivers/net/ethernet/mscc/ocelot.c
2972
int tc, err;
drivers/net/ethernet/mscc/ocelot.c
2983
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/mscc/ocelot.c
2984
if (qopt->count[tc] != 1) {
drivers/net/ethernet/mscc/ocelot.c
2990
err = netdev_set_tc_queue(dev, tc, 1, qopt->offset[tc]);
drivers/net/ethernet/mscc/ocelot.h
51
struct ocelot_port_tc tc;
drivers/net/ethernet/mscc/ocelot_net.c
235
if (priv->tc.police_id && priv->tc.police_id != f->cookie) {
drivers/net/ethernet/mscc/ocelot_net.c
254
priv->tc.police_id = f->cookie;
drivers/net/ethernet/mscc/ocelot_net.c
255
priv->tc.offload_cnt++;
drivers/net/ethernet/mscc/ocelot_net.c
295
priv->tc.ingress_mirred_id = f->cookie;
drivers/net/ethernet/mscc/ocelot_net.c
297
priv->tc.egress_mirred_id = f->cookie;
drivers/net/ethernet/mscc/ocelot_net.c
298
priv->tc.offload_cnt++;
drivers/net/ethernet/mscc/ocelot_net.c
317
priv->tc.police_id = 0;
drivers/net/ethernet/mscc/ocelot_net.c
318
priv->tc.offload_cnt--;
drivers/net/ethernet/mscc/ocelot_net.c
333
priv->tc.ingress_mirred_id = 0;
drivers/net/ethernet/mscc/ocelot_net.c
335
priv->tc.egress_mirred_id = 0;
drivers/net/ethernet/mscc/ocelot_net.c
336
priv->tc.offload_cnt--;
drivers/net/ethernet/mscc/ocelot_net.c
356
if (priv->tc.block_shared) {
drivers/net/ethernet/mscc/ocelot_net.c
383
if (f->cookie == priv->tc.police_id)
drivers/net/ethernet/mscc/ocelot_net.c
385
else if (f->cookie == priv->tc.ingress_mirred_id ||
drivers/net/ethernet/mscc/ocelot_net.c
386
f->cookie == priv->tc.egress_mirred_id)
drivers/net/ethernet/mscc/ocelot_net.c
444
priv->tc.block_shared = f->block_shared;
drivers/net/ethernet/mscc/ocelot_net.c
896
priv->tc.offload_cnt) {
drivers/net/ethernet/netronome/nfp/flower/action.c
51
if (act->mpls_push.tc != ACT_MPLS_TC_NOT_SET)
drivers/net/ethernet/netronome/nfp/flower/action.c
52
mpls_lse |= act->mpls_push.tc << MPLS_LS_TC_SHIFT;
drivers/net/ethernet/netronome/nfp/flower/action.c
88
if (act->mpls_mangle.tc != ACT_MPLS_TC_NOT_SET) {
drivers/net/ethernet/netronome/nfp/flower/action.c
89
mpls_lse |= act->mpls_mangle.tc << MPLS_LS_TC_SHIFT;
drivers/net/ethernet/netronome/nfp/nic/dcb.c
403
u8 idx, tc;
drivers/net/ethernet/netronome/nfp/nic/dcb.c
412
tc = dcb->prio2tc[prio];
drivers/net/ethernet/netronome/nfp/nic/dcb.c
413
idx = dcb->tc2idx[tc];
drivers/net/ethernet/pensando/ionic/ionic_lif.h
254
struct timecounter tc;
drivers/net/ethernet/pensando/ionic/ionic_phc.c
323
ctx->cmd.lif_setphc.tick = cpu_to_le64(phc->tc.cycle_last);
drivers/net/ethernet/pensando/ionic/ionic_phc.c
324
ctx->cmd.lif_setphc.nsec = cpu_to_le64(phc->tc.nsec);
drivers/net/ethernet/pensando/ionic/ionic_phc.c
325
ctx->cmd.lif_setphc.frac = cpu_to_le64(phc->tc.frac);
drivers/net/ethernet/pensando/ionic/ionic_phc.c
356
timecounter_read(&phc->tc);
drivers/net/ethernet/pensando/ionic/ionic_phc.c
382
timecounter_adjtime(&phc->tc, delta);
drivers/net/ethernet/pensando/ionic/ionic_phc.c
411
timecounter_init(&phc->tc, &phc->cc, ns);
drivers/net/ethernet/pensando/ionic/ionic_phc.c
440
ns = timecounter_cyc2time(&phc->tc, tick);
drivers/net/ethernet/pensando/ionic/ionic_phc.c
468
timecounter_read(&phc->tc);
drivers/net/ethernet/pensando/ionic/ionic_phc.c
491
ns = timecounter_cyc2time(&lif->phc->tc, tick);
drivers/net/ethernet/pensando/ionic/ionic_phc.c
633
timecounter_init(&phc->tc, &phc->cc, ktime_get_real_ns());
drivers/net/ethernet/qlogic/qed/qed.h
482
u8 tc;
drivers/net/ethernet/qlogic/qed/qed.h
936
u16 qed_get_cm_pq_idx_mcos(struct qed_hwfn *p_hwfn, u8 tc);
drivers/net/ethernet/qlogic/qed/qed.h
938
u16 qed_get_cm_pq_idx_ofld_mtc(struct qed_hwfn *p_hwfn, u8 tc);
drivers/net/ethernet/qlogic/qed/qed.h
939
u16 qed_get_cm_pq_idx_llt_mtc(struct qed_hwfn *p_hwfn, u8 tc);
drivers/net/ethernet/qlogic/qed/qed.h
993
void qed_hw_info_set_offload_tc(struct qed_hw_info *p_info, u8 tc);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1349
static void qed_dcbnl_getpgtccfgtx(struct qed_dev *cdev, int tc, u8 *prio_type,
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1355
DP_VERBOSE(hwfn, QED_MSG_DCB, "tc = %d\n", tc);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1357
if (tc < 0 || tc >= QED_MAX_PFC_PRIORITIES) {
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1358
DP_INFO(hwfn, "Invalid tc %d\n", tc);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1366
*pgid = dcbx_info->operational.params.ets_pri_tc_tbl[tc];
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1391
static void qed_dcbnl_getpgtccfgrx(struct qed_dev *cdev, int tc, u8 *prio,
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1563
int tc,
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1573
tc, pri_type, pgid, bw_pct, up_map);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1575
if (tc < 0 || tc >= QED_MAX_PFC_PRIORITIES) {
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1576
DP_INFO(hwfn, "Invalid tc %d\n", tc);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
1586
dcbx_set.config.params.ets_pri_tc_tbl[tc] = pgid;
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
161
p_data->arr[id].tc, p_hwfn->hw_info.num_active_tc);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
168
bool app_tlv, bool enable, u8 prio, u8 tc,
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
175
p_data->arr[type].tc = tc;
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
186
qed_hw_info_set_offload_tc(&p_hwfn->hw_info, tc);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
200
bool app_tlv, bool enable, u8 prio, u8 tc,
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
216
prio, tc, type, personality);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
257
u8 tc, priority_map;
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
278
tc = QED_DCBX_PRIO2TC(pri_tc_tbl, priority);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
295
enable, priority, tc, type);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
301
p_data->arr[DCBX_PROTOCOL_ETH].tc = p_hwfn->ufp_info.tc;
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
309
tc = p_data->arr[DCBX_PROTOCOL_ETH].tc;
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
317
priority, tc, type);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
904
val = (0x1 << p_data->arr[DCBX_PROTOCOL_ROCE].tc) |
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
905
(0x1 << p_data->arr[DCBX_PROTOCOL_ROCE_V2].tc);
drivers/net/ethernet/qlogic/qed/qed_dcbx.c
937
p_data->dcb_tc = p_src->arr[type].tc;
drivers/net/ethernet/qlogic/qed/qed_dcbx.h
31
u8 tc; /* Traffic Class */
drivers/net/ethernet/qlogic/qed/qed_dev.c
1622
void qed_hw_info_set_offload_tc(struct qed_hw_info *p_info, u8 tc)
drivers/net/ethernet/qlogic/qed/qed_dev.c
1624
p_info->offload_tc = tc;
drivers/net/ethernet/qlogic/qed/qed_dev.c
1643
u8 tc, u32 pq_init_flags)
drivers/net/ethernet/qlogic/qed/qed_dev.c
1655
qm_info->qm_pq_params[pq_idx].tc_id = tc;
drivers/net/ethernet/qlogic/qed/qed_dev.c
1739
u16 qed_get_cm_pq_idx_mcos(struct qed_hwfn *p_hwfn, u8 tc)
drivers/net/ethernet/qlogic/qed/qed_dev.c
1749
if (tc > max_tc)
drivers/net/ethernet/qlogic/qed/qed_dev.c
1750
DP_ERR(p_hwfn, "tc %d must be smaller than %d\n", tc, max_tc);
drivers/net/ethernet/qlogic/qed/qed_dev.c
1752
return qed_get_cm_pq_idx(p_hwfn, PQ_FLAGS_MCOS) + (tc % max_tc);
drivers/net/ethernet/qlogic/qed/qed_dev.c
1771
u16 qed_get_cm_pq_idx_ofld_mtc(struct qed_hwfn *p_hwfn, u8 tc)
drivers/net/ethernet/qlogic/qed/qed_dev.c
1776
pq_offset = (tc < qed_init_qm_get_num_mtc_tcs(p_hwfn)) ?
drivers/net/ethernet/qlogic/qed/qed_dev.c
1777
tc : PQ_INIT_DEFAULT_TC;
drivers/net/ethernet/qlogic/qed/qed_dev.c
1782
u16 qed_get_cm_pq_idx_llt_mtc(struct qed_hwfn *p_hwfn, u8 tc)
drivers/net/ethernet/qlogic/qed/qed_dev.c
1787
pq_offset = (tc < qed_init_qm_get_num_mtc_tcs(p_hwfn)) ?
drivers/net/ethernet/qlogic/qed/qed_dev.c
1788
tc : PQ_INIT_DEFAULT_TC;
drivers/net/ethernet/qlogic/qed/qed_dev.c
1832
u8 tc;
drivers/net/ethernet/qlogic/qed/qed_dev.c
1835
for (tc = 0; tc < num_tcs; tc++)
drivers/net/ethernet/qlogic/qed/qed_dev.c
1838
p_hwfn->hw_info.offload_tc : tc,
drivers/net/ethernet/qlogic/qed/qed_dev.c
1965
int i, tc;
drivers/net/ethernet/qlogic/qed/qed_dev.c
2016
for (tc = 0; tc < NUM_OF_TCS; tc++)
drivers/net/ethernet/qlogic/qed/qed_dev.c
2019
"%d ", vport->first_tx_pq_id[tc]);
drivers/net/ethernet/qlogic/qed/qed_hsi.h
2379
#define VOQ(port, tc, max_phys_tcs_per_port) ((tc) == \
drivers/net/ethernet/qlogic/qed/qed_hsi.h
2383
(max_phys_tcs_per_port) + (tc))
drivers/net/ethernet/qlogic/qed/qed_hw.h
288
u8 tc;
drivers/net/ethernet/qlogic/qed/qed_hw.h
294
u8 tc;
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
1066
u8 tc;
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
1068
for (tc = 0; tc < NUM_OF_TCS && !result; tc++) {
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
1069
vport_pq_id = first_tx_pq_id[tc];
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
194
#define PQ_INFO_ELEMENT(vp, pf, tc, port, rl_valid, rl) \
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
195
(((vp) << 0) | ((pf) << 12) | ((tc) << 16) | ((port) << 20) | \
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
283
u8 port_id, u8 tc, u8 max_phys_tcs_per_port)
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
285
if (tc == PURE_LB_TC)
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
288
return port_id * max_phys_tcs_per_port + tc;
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
389
u8 tc, ext_voq, port_id, num_tcs_in_port;
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
410
for (tc = 0; tc < max_phys_tcs_per_port; tc++)
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
412
tc) & 0x1) == 1)
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
417
for (tc = 0; tc < max_phys_tcs_per_port; tc++) {
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
420
tc, max_phys_tcs_per_port);
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
422
tc) & 0x1) == 1)
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
463
u8 tc, ext_voq, port_id, num_tcs_in_port;
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
477
for (tc = 0; tc < NUM_OF_PHYS_TCS; tc++)
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
479
tc) & 0x1) == 1)
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
491
for (tc = 0; tc < NUM_OF_PHYS_TCS; tc++) {
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
493
tc) & 0x1) == 1) {
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
497
tc,
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
845
u8 tc;
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
850
for (tc = 0; tc < NUM_OF_TCS; tc++) {
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
852
vport_pq_id = vport_params[i].first_tx_pq_id[tc];
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
858
wfq = wfq ? wfq : vport_params[i].tc_wfq[tc];
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
989
u8 tc;
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
993
for (tc = 0; tc < NUM_OF_TCS; tc++)
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
994
vport_params[i].first_tx_pq_id[tc] = QM_INVALID_PQ_ID;
drivers/net/ethernet/qlogic/qed/qed_l2.c
1109
u8 tc,
drivers/net/ethernet/qlogic/qed/qed_l2.c
1117
qed_get_cm_pq_idx_mcos(p_hwfn, tc));
drivers/net/ethernet/qlogic/qed/qed_l2.c
1132
u8 tc,
drivers/net/ethernet/qlogic/qed/qed_l2.c
1145
rc = qed_eth_pf_tx_queue_start(p_hwfn, p_cid, tc,
drivers/net/ethernet/qlogic/qed/qed_l2.c
2566
p_params, p_params->tc,
drivers/net/ethernet/qlogic/qed/qed_mcp.c
1967
p_hwfn->ufp_info.tc = (u8)val;
drivers/net/ethernet/qlogic/qed/qed_mcp.c
1983
p_hwfn->ufp_info.mode, p_hwfn->ufp_info.tc,
drivers/net/ethernet/qlogic/qed/qed_mcp.c
1993
p_hwfn->qm_info.ooo_tc = p_hwfn->ufp_info.tc;
drivers/net/ethernet/qlogic/qed/qed_mcp.c
1995
p_hwfn->ufp_info.tc);
drivers/net/ethernet/qlogic/qed/qed_roce.c
208
u8 pri, tc = 0;
drivers/net/ethernet/qlogic/qed/qed_roce.c
212
tc = qed_dcbx_get_priority_tc(p_hwfn, pri);
drivers/net/ethernet/qlogic/qed/qed_roce.c
217
qp->icid, tc, qp->vlan_id ? "enabled" : "disabled");
drivers/net/ethernet/qlogic/qed/qed_roce.c
219
return tc;
drivers/net/ethernet/qlogic/qed/qed_roce.c
232
u8 tc;
drivers/net/ethernet/qlogic/qed/qed_roce.c
313
tc = qed_roce_get_qp_tc(p_hwfn, qp);
drivers/net/ethernet/qlogic/qed/qed_roce.c
314
regular_latency_queue = qed_get_cm_pq_idx_ofld_mtc(p_hwfn, tc);
drivers/net/ethernet/qlogic/qed/qed_roce.c
315
low_latency_queue = qed_get_cm_pq_idx_llt_mtc(p_hwfn, tc);
drivers/net/ethernet/qlogic/qed/qed_roce.c
370
u8 tc;
drivers/net/ethernet/qlogic/qed/qed_roce.c
448
tc = qed_roce_get_qp_tc(p_hwfn, qp);
drivers/net/ethernet/qlogic/qed/qed_roce.c
449
regular_latency_queue = qed_get_cm_pq_idx_ofld_mtc(p_hwfn, tc);
drivers/net/ethernet/qlogic/qed/qed_roce.c
450
low_latency_queue = qed_get_cm_pq_idx_llt_mtc(p_hwfn, tc);
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c
366
cpu_to_le16(((u16)p_hwfn->ufp_info.tc << 13));
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c
592
cpu_to_le16(((u16)p_hwfn->ufp_info.tc << 13));
drivers/net/ethernet/qlogic/qed/qed_sriov.c
3605
u8 port_id, tc, tc_id = 0, voq = 0;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
3614
for (tc = 0; tc < max_phys_tcs_per_port + 1; tc++) {
drivers/net/ethernet/qlogic/qed/qed_sriov.c
3615
tc_id = (tc < max_phys_tcs_per_port) ? tc : PURE_LB_TC;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
3627
tc = 0;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
3631
for (; tc < max_phys_tcs_per_port + 1; tc++) {
drivers/net/ethernet/qlogic/qed/qed_sriov.c
3632
tc_id = (tc < max_phys_tcs_per_port) ?
drivers/net/ethernet/qlogic/qed/qed_sriov.c
3633
tc : PURE_LB_TC;
drivers/net/ethernet/qlogic/qed/qed_sriov.c
3642
if (tc == max_phys_tcs_per_port + 1)
drivers/net/ethernet/qlogic/qed/qed_sriov.c
3643
tc = 0;
drivers/net/ethernet/qlogic/qede/qede_main.c
2189
params.tc = txq->cos;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
115
timecounter_init(&ptp->tc, &ptp->cc, ns);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
14
struct timecounter tc;
drivers/net/ethernet/qlogic/qede/qede_ptp.c
170
ns = timecounter_cyc2time(&ptp->tc, timestamp);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
439
timecounter_init(&ptp->tc, &ptp->cc, ktime_to_ns(ktime_get_real()));
drivers/net/ethernet/qlogic/qede/qede_ptp.c
555
ns = timecounter_cyc2time(&ptp->tc, timestamp);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
73
timecounter_adjtime(&ptp->tc, delta);
drivers/net/ethernet/qlogic/qede/qede_ptp.c
89
ns = timecounter_read(&ptp->tc);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
1100
struct qlcnic_dcb_tc_cfg *tc;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
1112
tc = &peer->tc_cfg[i];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
1113
prio = qlcnic_dcb_prio_count(tc->up_tc_map);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
660
u8 i, tc, pgid;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
663
tc = QLC_DCB_GET_TC_PRIO(mbx->prio_tc_map, i);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
664
tc_cfg = &type->tc_cfg[tc];
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
792
qlcnic_dcb_get_pg_tc_cfg_tx(struct net_device *netdev, int tc, u8 *prio,
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
807
if (tc < 0 || (tc >= QLC_DCB_MAX_TC))
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
810
tc_cfg = &type->tc_cfg[tc];
drivers/net/ethernet/sfc/falcon/tx.c
425
unsigned tc, num_tc;
drivers/net/ethernet/sfc/falcon/tx.c
441
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/sfc/falcon/tx.c
442
net_dev->tc_to_txq[tc].offset = tc * efx->n_tx_channels;
drivers/net/ethernet/sfc/falcon/tx.c
443
net_dev->tc_to_txq[tc].count = efx->n_tx_channels;
drivers/net/ethernet/sfc/mae.c
177
efx->tc->flush_gen[i] = MCDI_ARRAY_DWORD(outbuf,
drivers/net/ethernet/sfc/mae.c
182
efx->tc->flush_gen[i]);
drivers/net/ethernet/sfc/mae.c
185
efx->tc->flush_counters = true;
drivers/net/ethernet/sfc/mae.c
1900
efx_mae_table_populate_ipv4(efx->tc->meta_##_table.desc.keys \
drivers/net/ethernet/sfc/mae.c
1901
[efx->tc->meta_##_table.keys._field##_idx],\
drivers/net/ethernet/sfc/mae.c
1902
dst, efx->tc->meta_##_table.desc.key_width,\
drivers/net/ethernet/sfc/mae.c
1905
_TABLE_POPULATE(dst, efx->tc->meta_##_table.desc.key_width, \
drivers/net/ethernet/sfc/mae.c
1906
efx->tc->meta_##_table.desc.keys \
drivers/net/ethernet/sfc/mae.c
1907
[efx->tc->meta_##_table.keys._field##_idx], \
drivers/net/ethernet/sfc/mae.c
191
if (!wait_event_timeout(efx->tc->flush_wq,
drivers/net/ethernet/sfc/mae.c
1911
efx_mae_table_populate_bool(efx->tc->meta_##_table.desc.resps \
drivers/net/ethernet/sfc/mae.c
1912
[efx->tc->meta_##_table.resps._field##_idx],\
drivers/net/ethernet/sfc/mae.c
1913
dst, efx->tc->meta_##_table.desc.resp_width,\
drivers/net/ethernet/sfc/mae.c
1916
_TABLE_POPULATE(dst, efx->tc->meta_##_table.desc.resp_width, \
drivers/net/ethernet/sfc/mae.c
1917
efx->tc->meta_##_table.desc.resps \
drivers/net/ethernet/sfc/mae.c
1918
[efx->tc->meta_##_table.resps._field##_idx], \
drivers/net/ethernet/sfc/mae.c
192
efx_mae_counters_flushed(efx->tc->flush_gen,
drivers/net/ethernet/sfc/mae.c
1922
efx_mae_table_populate_u24(efx->tc->meta_##_table.desc.resps \
drivers/net/ethernet/sfc/mae.c
1923
[efx->tc->meta_##_table.resps._field##_idx],\
drivers/net/ethernet/sfc/mae.c
1924
dst, efx->tc->meta_##_table.desc.resp_width,\
drivers/net/ethernet/sfc/mae.c
193
efx->tc->seen_gen),
drivers/net/ethernet/sfc/mae.c
1969
if (!efx->tc->meta_ct.hooked)
drivers/net/ethernet/sfc/mae.c
1973
kw = DIV_ROUND_UP(efx->tc->meta_ct.desc.key_width, 32);
drivers/net/ethernet/sfc/mae.c
1974
rw = DIV_ROUND_UP(efx->tc->meta_ct.desc.resp_width, 32);
drivers/net/ethernet/sfc/mae.c
198
efx->tc->flush_counters = false;
drivers/net/ethernet/sfc/mae.c
2014
efx->tc->meta_ct.desc.key_width);
drivers/net/ethernet/sfc/mae.c
2017
efx->tc->meta_ct.desc.resp_width);
drivers/net/ethernet/sfc/mae.c
2041
if (!efx->tc->meta_ct.hooked)
drivers/net/ethernet/sfc/mae.c
2045
kw = DIV_ROUND_UP(efx->tc->meta_ct.desc.key_width, 32);
drivers/net/ethernet/sfc/mae.c
2064
efx->tc->meta_ct.desc.key_width);
drivers/net/ethernet/sfc/mae.c
403
efx->tc->meta_ct.hooked = false;
drivers/net/ethernet/sfc/mae.c
437
efx->tc->meta_ct.hooked = false;
drivers/net/ethernet/sfc/mae.c
439
rc = efx_mae_table_get_desc(efx, &efx->tc->meta_ct.desc,
drivers/net/ethernet/sfc/mae.c
448
rc = efx_mae_table_hook_ct(efx, &efx->tc->meta_ct);
drivers/net/ethernet/sfc/mae.c
464
efx_mae_table_free_desc(&efx->tc->meta_ct.desc);
drivers/net/ethernet/sfc/mae.c
465
efx->tc->meta_ct.hooked = false;
drivers/net/ethernet/sfc/mae.c
651
const u8 *supported_fields = efx->tc->caps->action_rule_fields;
drivers/net/ethernet/sfc/mae.c
745
const u8 *supported_fields = efx->tc->caps->outer_rule_fields;
drivers/net/ethernet/sfc/mae.c
819
u8 *supported_fields = efx->tc->caps->outer_rule_fields;
drivers/net/ethernet/sfc/mae.c
871
if (efx->tc->caps->encap_types & BIT(bit))
drivers/net/ethernet/sfc/net_driver.h
1183
struct efx_tc_state *tc;
drivers/net/ethernet/sfc/siena/tx.c
363
unsigned tc, num_tc;
drivers/net/ethernet/sfc/siena/tx.c
382
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/sfc/siena/tx.c
383
net_dev->tc_to_txq[tc].offset = tc * efx->n_tx_channels;
drivers/net/ethernet/sfc/siena/tx.c
384
net_dev->tc_to_txq[tc].count = efx->n_tx_channels;
drivers/net/ethernet/sfc/tc.c
1014
cnt = efx_tc_flower_get_counter_index(efx, tc->cookie,
drivers/net/ethernet/sfc/tc.c
133
old = rhashtable_lookup_get_insert_fast(&efx->tc->mac_ht,
drivers/net/ethernet/sfc/tc.c
1453
struct flow_cls_offload *tc,
drivers/net/ethernet/sfc/tc.c
1458
struct netlink_ext_ack *extack = tc->common.extack;
drivers/net/ethernet/sfc/tc.c
1513
rule->cookie = tc->cookie;
drivers/net/ethernet/sfc/tc.c
1515
old = rhashtable_lookup_get_insert_fast(&efx->tc->lhs_rule_ht,
drivers/net/ethernet/sfc/tc.c
1520
"Already offloaded rule (cookie %lx)\n", tc->cookie);
drivers/net/ethernet/sfc/tc.c
1527
rc = efx_tc_flower_handle_lhs_actions(efx, tc, fr, net_dev, rule);
drivers/net/ethernet/sfc/tc.c
1541
tc->cookie);
drivers/net/ethernet/sfc/tc.c
1547
rhashtable_remove_fast(&efx->tc->lhs_rule_ht, &rule->linkage,
drivers/net/ethernet/sfc/tc.c
1557
struct flow_cls_offload *tc,
drivers/net/ethernet/sfc/tc.c
1562
struct netlink_ext_ack *extack = tc->common.extack;
drivers/net/ethernet/sfc/tc.c
1567
if (tc->common.chain_index) {
drivers/net/ethernet/sfc/tc.c
157
rhashtable_remove_fast(&efx->tc->mac_ht, &ped->linkage,
drivers/net/ethernet/sfc/tc.c
1579
return efx_tc_flower_replace_foreign_lhs_ar(efx, tc, fr, match,
drivers/net/ethernet/sfc/tc.c
1626
rule->cookie = tc->cookie;
drivers/net/ethernet/sfc/tc.c
1627
old = rhashtable_lookup_get_insert_fast(&efx->tc->lhs_rule_ht,
drivers/net/ethernet/sfc/tc.c
1632
"Already offloaded rule (cookie %lx)\n", tc->cookie);
drivers/net/ethernet/sfc/tc.c
1639
rc = efx_tc_flower_handle_lhs_actions(efx, tc, fr, net_dev, rule);
drivers/net/ethernet/sfc/tc.c
1653
tc->cookie);
drivers/net/ethernet/sfc/tc.c
1659
rhashtable_remove_fast(&efx->tc->lhs_rule_ht, &rule->linkage,
drivers/net/ethernet/sfc/tc.c
1670
struct flow_cls_offload *tc)
drivers/net/ethernet/sfc/tc.c
1672
struct flow_rule *fr = flow_cls_offload_flow_rule(tc);
drivers/net/ethernet/sfc/tc.c
1673
struct netlink_ext_ack *extack = tc->common.extack;
drivers/net/ethernet/sfc/tc.c
168
rhashtable_remove_fast(&efx->tc->mac_ht, &ped->linkage,
drivers/net/ethernet/sfc/tc.c
1702
return efx_tc_flower_replace_foreign_lhs(efx, tc, fr, &match,
drivers/net/ethernet/sfc/tc.c
1705
if (tc->common.chain_index) {
drivers/net/ethernet/sfc/tc.c
1708
rid = efx_tc_get_recirc_id(efx, tc->common.chain_index, net_dev);
drivers/net/ethernet/sfc/tc.c
1712
tc->common.chain_index);
drivers/net/ethernet/sfc/tc.c
1789
} else if (!tc->common.chain_index) {
drivers/net/ethernet/sfc/tc.c
1803
rule->cookie = tc->cookie;
drivers/net/ethernet/sfc/tc.c
1804
old = rhashtable_lookup_get_insert_fast(&efx->tc->match_action_ht,
drivers/net/ethernet/sfc/tc.c
1813
tc->cookie);
drivers/net/ethernet/sfc/tc.c
1855
tc->cookie,
drivers/net/ethernet/sfc/tc.c
1953
tc->cookie);
drivers/net/ethernet/sfc/tc.c
1980
rhashtable_remove_fast(&efx->tc->match_action_ht,
drivers/net/ethernet/sfc/tc.c
1992
struct flow_cls_offload *tc,
drivers/net/ethernet/sfc/tc.c
1998
struct netlink_ext_ack *extack = tc->common.extack;
drivers/net/ethernet/sfc/tc.c
2002
if (tc->common.chain_index) {
drivers/net/ethernet/sfc/tc.c
2022
rule->cookie = tc->cookie;
drivers/net/ethernet/sfc/tc.c
2023
old = rhashtable_lookup_get_insert_fast(&efx->tc->lhs_rule_ht,
drivers/net/ethernet/sfc/tc.c
2031
"Already offloaded rule (cookie %lx)\n", tc->cookie);
drivers/net/ethernet/sfc/tc.c
2041
rc = efx_tc_flower_handle_lhs_actions(efx, tc, fr, efx->net_dev, rule);
drivers/net/ethernet/sfc/tc.c
2054
tc->cookie);
drivers/net/ethernet/sfc/tc.c
2060
rhashtable_remove_fast(&efx->tc->lhs_rule_ht, &rule->linkage,
drivers/net/ethernet/sfc/tc.c
2068
struct flow_cls_offload *tc,
drivers/net/ethernet/sfc/tc.c
2071
struct flow_rule *fr = flow_cls_offload_flow_rule(tc);
drivers/net/ethernet/sfc/tc.c
2072
struct netlink_ext_ack *extack = tc->common.extack;
drivers/net/ethernet/sfc/tc.c
2086
if (WARN_ON(!efx->tc))
drivers/net/ethernet/sfc/tc.c
2088
if (WARN_ON(!efx->tc->up))
drivers/net/ethernet/sfc/tc.c
2094
return efx_tc_flower_replace_foreign(efx, net_dev, tc);
drivers/net/ethernet/sfc/tc.c
2123
return efx_tc_flower_replace_lhs(efx, tc, fr, &match, efv,
drivers/net/ethernet/sfc/tc.c
2130
if (tc->common.chain_index) {
drivers/net/ethernet/sfc/tc.c
2143
rid = efx_tc_get_recirc_id(efx, tc->common.chain_index,
drivers/net/ethernet/sfc/tc.c
2148
tc->common.chain_index);
drivers/net/ethernet/sfc/tc.c
2186
rule->cookie = tc->cookie;
drivers/net/ethernet/sfc/tc.c
2187
old = rhashtable_lookup_get_insert_fast(&efx->tc->match_action_ht,
drivers/net/ethernet/sfc/tc.c
2195
"Already offloaded rule (cookie %lx)\n", tc->cookie);
drivers/net/ethernet/sfc/tc.c
2274
ctr = efx_tc_flower_get_counter_index(efx, tc->cookie,
drivers/net/ethernet/sfc/tc.c
2487
efx_mae_mport_mport(efx, efx->tc->reps_mport_id,
drivers/net/ethernet/sfc/tc.c
2501
tc->cookie);
drivers/net/ethernet/sfc/tc.c
2512
rule->fallback = &efx->tc->facts.pf;
drivers/net/ethernet/sfc/tc.c
2515
rule->fallback = &efx->tc->facts.reps;
drivers/net/ethernet/sfc/tc.c
2543
rhashtable_remove_fast(&efx->tc->match_action_ht,
drivers/net/ethernet/sfc/tc.c
2554
struct flow_cls_offload *tc)
drivers/net/ethernet/sfc/tc.c
2556
struct netlink_ext_ack *extack = tc->common.extack;
drivers/net/ethernet/sfc/tc.c
2560
lhs_rule = rhashtable_lookup_fast(&efx->tc->lhs_rule_ht, &tc->cookie,
drivers/net/ethernet/sfc/tc.c
2567
rhashtable_remove_fast(&efx->tc->lhs_rule_ht, &lhs_rule->linkage,
drivers/net/ethernet/sfc/tc.c
2577
rule = rhashtable_lookup_fast(&efx->tc->match_action_ht, &tc->cookie,
drivers/net/ethernet/sfc/tc.c
2587
"Filter %lx not found to remove\n", tc->cookie);
drivers/net/ethernet/sfc/tc.c
2595
rhashtable_remove_fast(&efx->tc->match_action_ht, &rule->linkage,
drivers/net/ethernet/sfc/tc.c
2603
struct flow_cls_offload *tc)
drivers/net/ethernet/sfc/tc.c
2605
struct netlink_ext_ack *extack = tc->common.extack;
drivers/net/ethernet/sfc/tc.c
2610
ctr = efx_tc_flower_find_counter_index(efx, tc->cookie);
drivers/net/ethernet/sfc/tc.c
2617
tc->cookie);
drivers/net/ethernet/sfc/tc.c
2629
flow_stats_update(&tc->stats, bytes - cnt->old_bytes,
drivers/net/ethernet/sfc/tc.c
2639
struct flow_cls_offload *tc, struct efx_rep *efv)
drivers/net/ethernet/sfc/tc.c
2643
if (!efx->tc)
drivers/net/ethernet/sfc/tc.c
2646
mutex_lock(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc.c
2647
switch (tc->command) {
drivers/net/ethernet/sfc/tc.c
2649
rc = efx_tc_flower_replace(efx, net_dev, tc, efv);
drivers/net/ethernet/sfc/tc.c
2652
rc = efx_tc_flower_destroy(efx, net_dev, tc);
drivers/net/ethernet/sfc/tc.c
2655
rc = efx_tc_flower_stats(efx, net_dev, tc);
drivers/net/ethernet/sfc/tc.c
2661
mutex_unlock(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc.c
2705
struct efx_tc_flow_rule *rule = &efx->tc->dflt.pf;
drivers/net/ethernet/sfc/tc.c
2715
struct efx_tc_flow_rule *rule = &efx->tc->dflt.wire;
drivers/net/ethernet/sfc/tc.c
2730
efx_mae_mport_mport(efx, efx->tc->reps_mport_id, &eg_port);
drivers/net/ethernet/sfc/tc.c
2772
struct efx_tc_action_set_list *acts = &efx->tc->facts.pf;
drivers/net/ethernet/sfc/tc.c
2781
struct efx_tc_action_set_list *acts = &efx->tc->facts.reps;
drivers/net/ethernet/sfc/tc.c
2784
efx_mae_mport_mport(efx, efx->tc->reps_mport_id, &eg_port);
drivers/net/ethernet/sfc/tc.c
2799
rc = efx_mae_allocate_mport(efx, &efx->tc->reps_mport_id, &rep_mport_label);
drivers/net/ethernet/sfc/tc.c
2803
efx->tc->reps_mport_id, rep_mport_label);
drivers/net/ethernet/sfc/tc.c
2805
efx_mae_mport_mport(efx, efx->tc->reps_mport_id,
drivers/net/ethernet/sfc/tc.c
2806
&efx->tc->reps_mport_vport_id);
drivers/net/ethernet/sfc/tc.c
2812
efx_mae_free_mport(efx, efx->tc->reps_mport_id);
drivers/net/ethernet/sfc/tc.c
2813
efx->tc->reps_mport_id = MAE_MPORT_SELECTOR_NULL;
drivers/net/ethernet/sfc/tc.c
2823
if (!efx->tc)
drivers/net/ethernet/sfc/tc.c
2827
efx_filter_set_vport_id(&promisc, efx->tc->reps_mport_vport_id);
drivers/net/ethernet/sfc/tc.c
2831
efx->tc->reps_filter_uc = rc;
drivers/net/ethernet/sfc/tc.c
2834
efx_filter_set_vport_id(&allmulti, efx->tc->reps_mport_vport_id);
drivers/net/ethernet/sfc/tc.c
2838
efx->tc->reps_filter_mc = rc;
drivers/net/ethernet/sfc/tc.c
2846
if (!efx->tc)
drivers/net/ethernet/sfc/tc.c
2848
if (efx->tc->reps_filter_mc >= 0)
drivers/net/ethernet/sfc/tc.c
2849
efx_filter_remove_id_safe(efx, EFX_FILTER_PRI_REQUIRED, efx->tc->reps_filter_mc);
drivers/net/ethernet/sfc/tc.c
2850
efx->tc->reps_filter_mc = -1;
drivers/net/ethernet/sfc/tc.c
2851
if (efx->tc->reps_filter_uc >= 0)
drivers/net/ethernet/sfc/tc.c
2852
efx_filter_remove_id_safe(efx, EFX_FILTER_PRI_REQUIRED, efx->tc->reps_filter_uc);
drivers/net/ethernet/sfc/tc.c
2853
efx->tc->reps_filter_uc = -1;
drivers/net/ethernet/sfc/tc.c
2860
rc = efx_mae_get_caps(efx, efx->tc->caps);
drivers/net/ethernet/sfc/tc.c
2863
if (efx->tc->caps->match_field_count > MAE_NUM_FIELDS)
drivers/net/ethernet/sfc/tc.c
2870
efx->tc->caps->match_field_count);
drivers/net/ethernet/sfc/tc.c
2871
if (efx->tc->caps->action_prios < EFX_TC_PRIO__NUM) {
drivers/net/ethernet/sfc/tc.c
2874
efx->tc->caps->action_prios, EFX_TC_PRIO__NUM);
drivers/net/ethernet/sfc/tc.c
2898
efx->tc->up = true;
drivers/net/ethernet/sfc/tc.c
2908
if (!efx->tc)
drivers/net/ethernet/sfc/tc.c
2910
if (efx->tc->up)
drivers/net/ethernet/sfc/tc.c
2913
efx_tc_deconfigure_default_rule(efx, &efx->tc->dflt.pf);
drivers/net/ethernet/sfc/tc.c
2914
efx_tc_deconfigure_default_rule(efx, &efx->tc->dflt.wire);
drivers/net/ethernet/sfc/tc.c
2915
efx_tc_deconfigure_fallback_acts(efx, &efx->tc->facts.pf);
drivers/net/ethernet/sfc/tc.c
2916
efx_tc_deconfigure_fallback_acts(efx, &efx->tc->facts.reps);
drivers/net/ethernet/sfc/tc.c
2917
efx->tc->up = false;
drivers/net/ethernet/sfc/tc.c
2939
ida_free(&efx->tc->recirc_ida, rid->fw_id);
drivers/net/ethernet/sfc/tc.c
2991
efx->tc = kzalloc_obj(*efx->tc);
drivers/net/ethernet/sfc/tc.c
2992
if (!efx->tc)
drivers/net/ethernet/sfc/tc.c
2994
efx->tc->caps = kzalloc_obj(struct mae_caps);
drivers/net/ethernet/sfc/tc.c
2995
if (!efx->tc->caps) {
drivers/net/ethernet/sfc/tc.c
2999
INIT_LIST_HEAD(&efx->tc->block_list);
drivers/net/ethernet/sfc/tc.c
3001
mutex_init(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc.c
3002
init_waitqueue_head(&efx->tc->flush_wq);
drivers/net/ethernet/sfc/tc.c
3009
rc = rhashtable_init(&efx->tc->mac_ht, &efx_tc_mac_ht_params);
drivers/net/ethernet/sfc/tc.c
3012
rc = rhashtable_init(&efx->tc->encap_match_ht, &efx_tc_encap_match_ht_params);
drivers/net/ethernet/sfc/tc.c
3015
rc = rhashtable_init(&efx->tc->match_action_ht, &efx_tc_match_action_ht_params);
drivers/net/ethernet/sfc/tc.c
3018
rc = rhashtable_init(&efx->tc->lhs_rule_ht, &efx_tc_lhs_rule_ht_params);
drivers/net/ethernet/sfc/tc.c
3024
rc = rhashtable_init(&efx->tc->recirc_ht, &efx_tc_recirc_ht_params);
drivers/net/ethernet/sfc/tc.c
3027
ida_init(&efx->tc->recirc_ida);
drivers/net/ethernet/sfc/tc.c
3028
efx->tc->reps_filter_uc = -1;
drivers/net/ethernet/sfc/tc.c
3029
efx->tc->reps_filter_mc = -1;
drivers/net/ethernet/sfc/tc.c
3030
INIT_LIST_HEAD(&efx->tc->dflt.pf.acts.list);
drivers/net/ethernet/sfc/tc.c
3031
efx->tc->dflt.pf.fw_id = MC_CMD_MAE_ACTION_RULE_INSERT_OUT_ACTION_RULE_ID_NULL;
drivers/net/ethernet/sfc/tc.c
3032
INIT_LIST_HEAD(&efx->tc->dflt.wire.acts.list);
drivers/net/ethernet/sfc/tc.c
3033
efx->tc->dflt.wire.fw_id = MC_CMD_MAE_ACTION_RULE_INSERT_OUT_ACTION_RULE_ID_NULL;
drivers/net/ethernet/sfc/tc.c
3034
INIT_LIST_HEAD(&efx->tc->facts.pf.list);
drivers/net/ethernet/sfc/tc.c
3035
efx->tc->facts.pf.fw_id = MC_CMD_MAE_ACTION_SET_ALLOC_OUT_ACTION_SET_ID_NULL;
drivers/net/ethernet/sfc/tc.c
3036
INIT_LIST_HEAD(&efx->tc->facts.reps.list);
drivers/net/ethernet/sfc/tc.c
3037
efx->tc->facts.reps.fw_id = MC_CMD_MAE_ACTION_SET_ALLOC_OUT_ACTION_SET_ID_NULL;
drivers/net/ethernet/sfc/tc.c
3043
rhashtable_destroy(&efx->tc->lhs_rule_ht);
drivers/net/ethernet/sfc/tc.c
3045
rhashtable_destroy(&efx->tc->match_action_ht);
drivers/net/ethernet/sfc/tc.c
3047
rhashtable_destroy(&efx->tc->encap_match_ht);
drivers/net/ethernet/sfc/tc.c
3049
rhashtable_destroy(&efx->tc->mac_ht);
drivers/net/ethernet/sfc/tc.c
3055
mutex_destroy(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc.c
3056
kfree(efx->tc->caps);
drivers/net/ethernet/sfc/tc.c
3058
kfree(efx->tc);
drivers/net/ethernet/sfc/tc.c
3059
efx->tc = NULL;
drivers/net/ethernet/sfc/tc.c
3065
if (!efx->tc)
drivers/net/ethernet/sfc/tc.c
3068
mutex_lock(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc.c
3069
EFX_WARN_ON_PARANOID(efx->tc->dflt.pf.fw_id !=
drivers/net/ethernet/sfc/tc.c
3071
EFX_WARN_ON_PARANOID(efx->tc->dflt.wire.fw_id !=
drivers/net/ethernet/sfc/tc.c
3073
EFX_WARN_ON_PARANOID(efx->tc->facts.pf.fw_id !=
drivers/net/ethernet/sfc/tc.c
3075
EFX_WARN_ON_PARANOID(efx->tc->facts.reps.fw_id !=
drivers/net/ethernet/sfc/tc.c
3077
rhashtable_free_and_destroy(&efx->tc->lhs_rule_ht, efx_tc_lhs_free, efx);
drivers/net/ethernet/sfc/tc.c
3078
rhashtable_free_and_destroy(&efx->tc->match_action_ht, efx_tc_flow_free,
drivers/net/ethernet/sfc/tc.c
3080
rhashtable_free_and_destroy(&efx->tc->encap_match_ht,
drivers/net/ethernet/sfc/tc.c
3083
rhashtable_free_and_destroy(&efx->tc->recirc_ht, efx_tc_recirc_free, efx);
drivers/net/ethernet/sfc/tc.c
3084
WARN_ON(!ida_is_empty(&efx->tc->recirc_ida));
drivers/net/ethernet/sfc/tc.c
3085
ida_destroy(&efx->tc->recirc_ida);
drivers/net/ethernet/sfc/tc.c
3086
rhashtable_free_and_destroy(&efx->tc->mac_ht, efx_tc_mac_free, NULL);
drivers/net/ethernet/sfc/tc.c
3089
mutex_unlock(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc.c
3090
mutex_destroy(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc.c
3091
kfree(efx->tc->caps);
drivers/net/ethernet/sfc/tc.c
3092
kfree(efx->tc);
drivers/net/ethernet/sfc/tc.c
3093
efx->tc = NULL;
drivers/net/ethernet/sfc/tc.c
482
rhashtable_remove_fast(&efx->tc->encap_match_ht, &encap->linkage,
drivers/net/ethernet/sfc/tc.c
595
old = rhashtable_lookup_get_insert_fast(&efx->tc->encap_match_ht,
drivers/net/ethernet/sfc/tc.c
681
rhashtable_remove_fast(&efx->tc->encap_match_ht, &encap->linkage,
drivers/net/ethernet/sfc/tc.c
706
old = rhashtable_lookup_get_insert_fast(&efx->tc->recirc_ht,
drivers/net/ethernet/sfc/tc.c
719
rc = ida_alloc_range(&efx->tc->recirc_ida, 1, U8_MAX, GFP_USER);
drivers/net/ethernet/sfc/tc.c
721
rhashtable_remove_fast(&efx->tc->recirc_ht,
drivers/net/ethernet/sfc/tc.c
737
rhashtable_remove_fast(&efx->tc->recirc_ht, &rid->linkage,
drivers/net/ethernet/sfc/tc.c
739
ida_free(&efx->tc->recirc_ida, rid->fw_id);
drivers/net/ethernet/sfc/tc.c
968
struct flow_cls_offload *tc,
drivers/net/ethernet/sfc/tc.c
974
struct netlink_ext_ack *extack = tc->common.extack;
drivers/net/ethernet/sfc/tc.h
348
struct flow_cls_offload *tc, struct efx_rep *efv);
drivers/net/ethernet/sfc/tc_bindings.c
129
!efx->tc->up, warn,
drivers/net/ethernet/sfc/tc_bindings.c
220
if (!efx->tc)
drivers/net/ethernet/sfc/tc_bindings.c
29
list_for_each_entry(binding, &efx->tc->block_list, list)
drivers/net/ethernet/sfc/tc_bindings.c
70
list_add(&binding->list, &efx->tc->block_list);
drivers/net/ethernet/sfc/tc_bindings.c
84
if (WARN_ON(!efx->tc))
drivers/net/ethernet/sfc/tc_conntrack.c
353
struct flow_cls_offload *tc)
drivers/net/ethernet/sfc/tc_conntrack.c
355
struct flow_rule *fr = flow_cls_offload_flow_rule(tc);
drivers/net/ethernet/sfc/tc_conntrack.c
363
if (WARN_ON(!efx->tc))
drivers/net/ethernet/sfc/tc_conntrack.c
365
if (WARN_ON(!efx->tc->up))
drivers/net/ethernet/sfc/tc_conntrack.c
371
conn->cookie = tc->cookie;
drivers/net/ethernet/sfc/tc_conntrack.c
372
old = rhashtable_lookup_get_insert_fast(&efx->tc->ct_ht,
drivers/net/ethernet/sfc/tc_conntrack.c
380
"Already offloaded conntrack (cookie %lx)\n", tc->cookie);
drivers/net/ethernet/sfc/tc_conntrack.c
449
rhashtable_remove_fast(&efx->tc->ct_ht, &conn->linkage,
drivers/net/ethernet/sfc/tc_conntrack.c
463
rhashtable_remove_fast(&efx->tc->ct_ht, &conn->linkage,
drivers/net/ethernet/sfc/tc_conntrack.c
486
struct flow_cls_offload *tc)
drivers/net/ethernet/sfc/tc_conntrack.c
491
conn = rhashtable_lookup_fast(&efx->tc->ct_ht, &tc->cookie,
drivers/net/ethernet/sfc/tc_conntrack.c
495
"Conntrack %lx not found to remove\n", tc->cookie);
drivers/net/ethernet/sfc/tc_conntrack.c
509
struct flow_cls_offload *tc)
drivers/net/ethernet/sfc/tc_conntrack.c
516
conn = rhashtable_lookup_fast(&efx->tc->ct_ht, &tc->cookie,
drivers/net/ethernet/sfc/tc_conntrack.c
520
"Conntrack %lx not found for stats\n", tc->cookie);
drivers/net/ethernet/sfc/tc_conntrack.c
528
flow_stats_update(&tc->stats, 0, 0, 0, cnt->touched,
drivers/net/ethernet/sfc/tc_conntrack.c
569
old = rhashtable_lookup_get_insert_fast(&efx->tc->ct_zone_ht,
drivers/net/ethernet/sfc/tc_conntrack.c
597
rhashtable_remove_fast(&efx->tc->ct_zone_ht, &ct_zone->linkage,
drivers/net/ethernet/sfc/tc_conntrack.c
611
rhashtable_remove_fast(&efx->tc->ct_zone_ht, &ct_zone->linkage,
drivers/net/ethernet/sfc/tc_conntrack.c
63
rc = rhashtable_init(&efx->tc->ct_zone_ht, &efx_tc_ct_zone_ht_params);
drivers/net/ethernet/sfc/tc_conntrack.c
66
rc = rhashtable_init(&efx->tc->ct_ht, &efx_tc_ct_ht_params);
drivers/net/ethernet/sfc/tc_conntrack.c
71
rhashtable_destroy(&efx->tc->ct_zone_ht);
drivers/net/ethernet/sfc/tc_conntrack.c
81
rhashtable_destroy(&efx->tc->ct_ht);
drivers/net/ethernet/sfc/tc_conntrack.c
82
rhashtable_destroy(&efx->tc->ct_zone_ht);
drivers/net/ethernet/sfc/tc_conntrack.c
87
rhashtable_free_and_destroy(&efx->tc->ct_zone_ht, efx_tc_ct_zone_free, NULL);
drivers/net/ethernet/sfc/tc_conntrack.c
88
rhashtable_free_and_destroy(&efx->tc->ct_ht, efx_tc_ct_free, efx);
drivers/net/ethernet/sfc/tc_counters.c
151
rc = rhashtable_insert_fast(&efx->tc->counter_ht, &cnt->linkage,
drivers/net/ethernet/sfc/tc_counters.c
177
rhashtable_remove_fast(&efx->tc->counter_ht, &cnt->linkage,
drivers/net/ethernet/sfc/tc_counters.c
205
return rhashtable_lookup_fast(&efx->tc->counter_ht, &key,
drivers/net/ethernet/sfc/tc_counters.c
216
rhashtable_remove_fast(&efx->tc->counter_id_ht, &ctr->linkage,
drivers/net/ethernet/sfc/tc_counters.c
233
old = rhashtable_lookup_get_insert_fast(&efx->tc->counter_id_ht,
drivers/net/ethernet/sfc/tc_counters.c
248
rhashtable_remove_fast(&efx->tc->counter_id_ht,
drivers/net/ethernet/sfc/tc_counters.c
266
return rhashtable_lookup_fast(&efx->tc->counter_id_ht, &key,
drivers/net/ethernet/sfc/tc_counters.c
543
efx->tc->seen_gen[type] = mark;
drivers/net/ethernet/sfc/tc_counters.c
544
if (efx->tc->flush_counters &&
drivers/net/ethernet/sfc/tc_counters.c
545
(s32)(efx->tc->flush_gen[type] - mark) <= 0)
drivers/net/ethernet/sfc/tc_counters.c
546
wake_up(&efx->tc->flush_wq);
drivers/net/ethernet/sfc/tc_counters.c
59
rc = rhashtable_init(&efx->tc->counter_id_ht, &efx_tc_counter_id_ht_params);
drivers/net/ethernet/sfc/tc_counters.c
62
rc = rhashtable_init(&efx->tc->counter_ht, &efx_tc_counter_ht_params);
drivers/net/ethernet/sfc/tc_counters.c
67
rhashtable_destroy(&efx->tc->counter_id_ht);
drivers/net/ethernet/sfc/tc_counters.c
77
rhashtable_destroy(&efx->tc->counter_ht);
drivers/net/ethernet/sfc/tc_counters.c
78
rhashtable_destroy(&efx->tc->counter_id_ht);
drivers/net/ethernet/sfc/tc_counters.c
83
rhashtable_free_and_destroy(&efx->tc->counter_id_ht, efx_tc_counter_id_free, NULL);
drivers/net/ethernet/sfc/tc_counters.c
84
rhashtable_free_and_destroy(&efx->tc->counter_ht, efx_tc_counter_free, NULL);
drivers/net/ethernet/sfc/tc_encap_actions.c
130
old = rhashtable_lookup_get_insert_fast(&efx->tc->neigh_ht,
drivers/net/ethernet/sfc/tc_encap_actions.c
217
rhashtable_remove_fast(&efx->tc->neigh_ht, &neigh->linkage,
drivers/net/ethernet/sfc/tc_encap_actions.c
229
rhashtable_remove_fast(&efx->tc->neigh_ht, &neigh->linkage,
drivers/net/ethernet/sfc/tc_encap_actions.c
448
fallback = &efx->tc->facts.pf;
drivers/net/ethernet/sfc/tc_encap_actions.c
512
mutex_lock(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc_encap_actions.c
518
mutex_unlock(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc_encap_actions.c
528
if (WARN_ON(!efx->tc))
drivers/net/ethernet/sfc/tc_encap_actions.c
56
rc = rhashtable_init(&efx->tc->neigh_ht, &efx_neigh_ht_params);
drivers/net/ethernet/sfc/tc_encap_actions.c
560
neigh = rhashtable_lookup_fast(&efx->tc->neigh_ht, &keys,
drivers/net/ethernet/sfc/tc_encap_actions.c
59
rc = rhashtable_init(&efx->tc->encap_ht, &efx_tc_encap_ht_params);
drivers/net/ethernet/sfc/tc_encap_actions.c
64
rhashtable_destroy(&efx->tc->neigh_ht);
drivers/net/ethernet/sfc/tc_encap_actions.c
641
old = rhashtable_lookup_get_insert_fast(&efx->tc->encap_ht,
drivers/net/ethernet/sfc/tc_encap_actions.c
687
rhashtable_remove_fast(&efx->tc->encap_ht, &encap->linkage,
drivers/net/ethernet/sfc/tc_encap_actions.c
699
rhashtable_remove_fast(&efx->tc->encap_ht, &encap->linkage,
drivers/net/ethernet/sfc/tc_encap_actions.c
722
mutex_lock(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc_encap_actions.c
723
rhashtable_walk_enter(&efx->tc->neigh_ht, &walk);
drivers/net/ethernet/sfc/tc_encap_actions.c
738
mutex_unlock(&efx->tc->mutex);
drivers/net/ethernet/sfc/tc_encap_actions.c
74
rhashtable_destroy(&efx->tc->encap_ht);
drivers/net/ethernet/sfc/tc_encap_actions.c
75
rhashtable_destroy(&efx->tc->neigh_ht);
drivers/net/ethernet/sfc/tc_encap_actions.c
80
rhashtable_free_and_destroy(&efx->tc->encap_ht, efx_tc_encap_free, NULL);
drivers/net/ethernet/sfc/tc_encap_actions.c
81
rhashtable_free_and_destroy(&efx->tc->neigh_ht, efx_neigh_free, NULL);
drivers/net/ethernet/stmicro/stmmac/common.h
624
const struct stmmac_tc_ops *tc;
drivers/net/ethernet/stmicro/stmmac/hwif.c
128
const void *tc;
drivers/net/ethernet/stmicro/stmmac/hwif.c
149
.tc = NULL,
drivers/net/ethernet/stmicro/stmmac/hwif.c
166
.tc = NULL,
drivers/net/ethernet/stmicro/stmmac/hwif.c
185
.tc = &dwmac4_tc_ops,
drivers/net/ethernet/stmicro/stmmac/hwif.c
206
.tc = &dwmac510_tc_ops,
drivers/net/ethernet/stmicro/stmmac/hwif.c
227
.tc = &dwmac510_tc_ops,
drivers/net/ethernet/stmicro/stmmac/hwif.c
248
.tc = &dwmac510_tc_ops,
drivers/net/ethernet/stmicro/stmmac/hwif.c
270
.tc = &dwmac510_tc_ops,
drivers/net/ethernet/stmicro/stmmac/hwif.c
292
.tc = &dwmac510_tc_ops,
drivers/net/ethernet/stmicro/stmmac/hwif.c
384
mac->tc = mac->tc ? : entry->tc;
drivers/net/ethernet/stmicro/stmmac/hwif.h
597
stmmac_do_callback(__priv, tc, init, __args)
drivers/net/ethernet/stmicro/stmmac/hwif.h
599
stmmac_do_callback(__priv, tc, setup_cls_u32, __args)
drivers/net/ethernet/stmicro/stmmac/hwif.h
601
stmmac_do_callback(__priv, tc, setup_cbs, __args)
drivers/net/ethernet/stmicro/stmmac/hwif.h
603
stmmac_do_callback(__priv, tc, setup_cls, __args)
drivers/net/ethernet/stmicro/stmmac/hwif.h
605
stmmac_do_callback(__priv, tc, setup_taprio, __args)
drivers/net/ethernet/stmicro/stmmac/hwif.h
607
stmmac_do_callback(__priv, tc, setup_etf, __args)
drivers/net/ethernet/stmicro/stmmac/hwif.h
609
stmmac_do_callback(__priv, tc, query_caps, __args)
drivers/net/ethernet/stmicro/stmmac/hwif.h
611
stmmac_do_callback(__priv, tc, setup_mqprio, __args)
drivers/net/ethernet/stmicro/stmmac/stmmac.h
218
int tc;
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
219
for (u32 tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
220
count = ndev->tc_to_txq[tc].count;
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
221
offset = ndev->tc_to_txq[tc].offset;
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
223
if (pclass & BIT(tc))
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
241
queue_weight, tc);
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
277
for (u32 tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
278
count = ndev->tc_to_txq[tc].count;
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
279
offset = ndev->tc_to_txq[tc].offset;
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
281
if (pclass & BIT(tc))
drivers/net/ethernet/stmicro/stmmac/stmmac_fpe.c
286
writel(u32_replace_bits(val, tc, XGMAC_Q2TCMAP),
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
103
static int tc = TC_DEFAULT;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
104
module_param(tc, int, 0644);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
105
MODULE_PARM_DESC(tc, "DMA threshold control value");
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2547
txmode = tc;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2548
rxmode = tc;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2561
txmode = tc;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2769
if (unlikely(priv->xstats.threshold != SF_DMA_MODE) && tc <= 256) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2770
tc += 64;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2773
stmmac_set_dma_operation_mode(priv, tc, tc, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2775
stmmac_set_dma_operation_mode(priv, tc, SF_DMA_MODE,
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2778
priv->xstats.threshold = tc;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7946
priv->xstats.threshold = tc;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
8338
if (kstrtoint(opt + 3, 0, &tc))
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
1234
for (u32 tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
1235
offset = qopt->offset[tc];
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
1236
count = qopt->count[tc];
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
1239
err = netdev_set_tc_queue(ndev, tc, count, offset);
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
659
int tc = tc_classid_to_hwtc(priv->dev, cls->classid);
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
676
if (tc < 0) {
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
692
stmmac_rx_queue_prio(priv, priv->hw, prio, tc);
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
696
entry->tc = tc;
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
712
stmmac_rx_queue_prio(priv, priv->hw, 0, entry->tc);
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
716
entry->tc = 0;
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
730
int tc = tc_classid_to_hwtc(priv->dev, cls->classid);
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
743
if (tc < 0) {
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
767
PACKET_DCBCPQ, tc);
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
778
PACKET_PTPQ, tc);
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
787
entry->tc = tc;
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
825
entry->tc = 0;
drivers/net/ethernet/ti/am65-cpsw-qos.c
210
int i, tc, offset, count, prio, ret;
drivers/net/ethernet/ti/am65-cpsw-qos.c
246
for (tc = 0; tc < num_tc; tc++) {
drivers/net/ethernet/ti/am65-cpsw-qos.c
247
prio = tc;
drivers/net/ethernet/ti/am65-cpsw-qos.c
252
for (i = qopt->offset[tc]; i < qopt->offset[tc] + qopt->count[tc]; i++)
drivers/net/ethernet/ti/am65-cpsw-qos.c
255
count = qopt->count[tc];
drivers/net/ethernet/ti/am65-cpsw-qos.c
256
offset = qopt->offset[tc];
drivers/net/ethernet/ti/am65-cpsw-qos.c
257
netdev_set_tc_queue(ndev, tc, count, offset);
drivers/net/ethernet/ti/am65-cpsw-qos.c
59
int tc, prio;
drivers/net/ethernet/ti/am65-cpsw-qos.c
80
for (tc = 0; tc < mqprio->qopt.num_tc; tc++) {
drivers/net/ethernet/ti/am65-cpsw-qos.c
81
prio = tc;
drivers/net/ethernet/ti/am65-cpsw-qos.c
83
rate_mbps = TO_MBPS(mqprio->min_rate[tc]);
drivers/net/ethernet/ti/am65-cpsw-qos.c
91
if (mqprio->max_rate[tc]) {
drivers/net/ethernet/ti/am65-cpsw-qos.c
92
rate_mbps = mqprio->max_rate[tc] - mqprio->min_rate[tc];
drivers/net/ethernet/ti/cpsw_priv.c
1064
int i, tc, fifo;
drivers/net/ethernet/ti/cpsw_priv.c
1071
tc = netdev_get_prio_tc_map(priv->ndev, i);
drivers/net/ethernet/ti/cpsw_priv.c
1072
fifo = CPSW_FIFO_SHAPERS_NUM - tc;
drivers/net/ethernet/ti/cpsw_priv.c
762
static int cpsw_tc_to_fifo(int tc, int num_tc)
drivers/net/ethernet/ti/cpsw_priv.c
764
if (tc == num_tc - 1)
drivers/net/ethernet/ti/cpsw_priv.c
767
return CPSW_FIFO_SHAPERS_NUM - tc;
drivers/net/ethernet/ti/cpsw_priv.c
919
int tc, ret, fifo;
drivers/net/ethernet/ti/cpsw_priv.c
922
tc = netdev_txq_to_tc(priv->ndev, qopt->queue);
drivers/net/ethernet/ti/cpsw_priv.c
928
fifo = cpsw_tc_to_fifo(tc, ndev->num_tc);
drivers/net/ethernet/ti/cpsw_priv.c
930
dev_err(priv->dev, "Last tc%d can't be rate limited", tc);
drivers/net/ethernet/ti/cpsw_priv.c
980
int i, tc, ret;
drivers/net/ethernet/ti/cpsw_priv.c
995
tc = mqprio->qopt.prio_tc_map[i];
drivers/net/ethernet/ti/cpsw_priv.c
996
fifo = cpsw_tc_to_fifo(tc, num_tc);
drivers/net/ethernet/ti/cpts.c
128
event->timestamp = timecounter_cyc2time(&cpts->tc, event->low);
drivers/net/ethernet/ti/cpts.c
136
timecounter_read(&cpts->tc);
drivers/net/ethernet/ti/cpts.c
235
timecounter_adjtime(&cpts->tc, delta);
drivers/net/ethernet/ti/cpts.c
252
ns = timecounter_read(&cpts->tc);
drivers/net/ethernet/ti/cpts.c
269
timecounter_init(&cpts->tc, &cpts->cc, ns);
drivers/net/ethernet/ti/cpts.c
402
ns = timecounter_read(&cpts->tc);
drivers/net/ethernet/ti/cpts.c
566
timecounter_init(&cpts->tc, &cpts->cc, ktime_get_real_ns());
drivers/net/ethernet/ti/cpts.h
110
struct timecounter tc;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
1380
int link, tc, kb, marker;
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_hw.c
1392
dv_id += WX_B2BT(tc);
drivers/net/ethernet/wangxun/libwx/wx_hw.c
1407
marker = tc + 1;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
1422
int tc;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
1425
tc = dev->mtu + ETH_HLEN + ETH_FCS_LEN;
drivers/net/ethernet/wangxun/libwx/wx_hw.c
1428
dv_id = WX_LOW_DV(tc);
drivers/net/ethernet/wangxun/libwx/wx_type.h
1374
int (*setup_tc)(struct net_device *netdev, u8 tc);
drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
556
int ngbe_setup_tc(struct net_device *dev, u8 tc)
drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
569
if (tc)
drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
570
netdev_set_num_tc(dev, tc);
drivers/net/ethernet/wangxun/ngbe/ngbe_type.h
144
int ngbe_setup_tc(struct net_device *dev, u8 tc);
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
571
int txgbe_setup_tc(struct net_device *dev, u8 tc)
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
586
if (tc)
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
587
netdev_set_num_tc(dev, tc);
drivers/net/ethernet/wangxun/txgbe/txgbe_type.h
315
int txgbe_setup_tc(struct net_device *dev, u8 tc);
drivers/net/fddi/defxx.c
3798
MODULE_DEVICE_TABLE(tc, dfx_tc_table);
drivers/net/fddi/defza.c
1542
MODULE_DEVICE_TABLE(tc, fza_tc_table);
drivers/net/hamradio/scc.c
721
static inline void set_brg(struct scc_channel *scc, unsigned int tc)
drivers/net/hamradio/scc.c
724
wr(scc,R12,tc & 255); /* brg rate LOW */
drivers/net/hamradio/scc.c
725
wr(scc,R13,tc >> 8); /* brg rate HIGH */
drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
188
u8 tc;
drivers/ntb/test/ntb_tool.c
1006
static void tool_clear_mws(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
1011
for (widx = 0; widx < tc->outmw_cnt; widx++)
drivers/ntb/test/ntb_tool.c
1012
tool_free_peer_mw(tc, widx);
drivers/ntb/test/ntb_tool.c
1015
for (pidx = 0; pidx < tc->peer_cnt; pidx++)
drivers/ntb/test/ntb_tool.c
1016
for (widx = 0; widx < tc->peers[pidx].inmw_cnt; widx++)
drivers/ntb/test/ntb_tool.c
1017
tool_free_mw(tc, pidx, widx);
drivers/ntb/test/ntb_tool.c
1028
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1030
return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read);
drivers/ntb/test/ntb_tool.c
1036
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1038
return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set,
drivers/ntb/test/ntb_tool.c
1039
tc->ntb->ops->db_clear);
drivers/ntb/test/ntb_tool.c
1049
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1051
return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_valid_mask);
drivers/ntb/test/ntb_tool.c
1061
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1063
return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read_mask);
drivers/ntb/test/ntb_tool.c
1069
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1071
return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set_mask,
drivers/ntb/test/ntb_tool.c
1072
tc->ntb->ops->db_clear_mask);
drivers/ntb/test/ntb_tool.c
1082
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1084
return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->peer_db_read);
drivers/ntb/test/ntb_tool.c
1090
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1092
return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->peer_db_set,
drivers/ntb/test/ntb_tool.c
1093
tc->ntb->ops->peer_db_clear);
drivers/ntb/test/ntb_tool.c
1103
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1105
return tool_fn_read(tc, ubuf, size, offp,
drivers/ntb/test/ntb_tool.c
1106
tc->ntb->ops->peer_db_read_mask);
drivers/ntb/test/ntb_tool.c
1113
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1115
return tool_fn_write(tc, ubuf, size, offp,
drivers/ntb/test/ntb_tool.c
1116
tc->ntb->ops->peer_db_set_mask,
drivers/ntb/test/ntb_tool.c
1117
tc->ntb->ops->peer_db_clear_mask);
drivers/ntb/test/ntb_tool.c
1128
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1136
if (wait_event_interruptible(tc->db_wq, ntb_db_read(tc->ntb) == val))
drivers/ntb/test/ntb_tool.c
1158
if (!spad->tc->ntb->ops->spad_read)
drivers/ntb/test/ntb_tool.c
1162
ntb_spad_read(spad->tc->ntb, spad->sidx));
drivers/ntb/test/ntb_tool.c
1174
if (!spad->tc->ntb->ops->spad_write) {
drivers/ntb/test/ntb_tool.c
1175
dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n");
drivers/ntb/test/ntb_tool.c
1183
ret = ntb_spad_write(spad->tc->ntb, spad->sidx, val);
drivers/ntb/test/ntb_tool.c
1199
if (!spad->tc->ntb->ops->peer_spad_read)
drivers/ntb/test/ntb_tool.c
1203
ntb_peer_spad_read(spad->tc->ntb, spad->pidx, spad->sidx));
drivers/ntb/test/ntb_tool.c
1215
if (!spad->tc->ntb->ops->peer_spad_write) {
drivers/ntb/test/ntb_tool.c
1216
dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n");
drivers/ntb/test/ntb_tool.c
1224
ret = ntb_peer_spad_write(spad->tc->ntb, spad->pidx, spad->sidx, val);
drivers/ntb/test/ntb_tool.c
1233
static int tool_init_spads(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
1238
tc->inspad_cnt = ntb_spad_count(tc->ntb);
drivers/ntb/test/ntb_tool.c
1239
tc->inspads = devm_kcalloc(&tc->ntb->dev, tc->inspad_cnt,
drivers/ntb/test/ntb_tool.c
1240
sizeof(*tc->inspads), GFP_KERNEL);
drivers/ntb/test/ntb_tool.c
1241
if (tc->inspads == NULL)
drivers/ntb/test/ntb_tool.c
1244
for (sidx = 0; sidx < tc->inspad_cnt; sidx++) {
drivers/ntb/test/ntb_tool.c
1245
tc->inspads[sidx].sidx = sidx;
drivers/ntb/test/ntb_tool.c
1246
tc->inspads[sidx].pidx = -1;
drivers/ntb/test/ntb_tool.c
1247
tc->inspads[sidx].tc = tc;
drivers/ntb/test/ntb_tool.c
1251
for (pidx = 0; pidx < tc->peer_cnt; pidx++) {
drivers/ntb/test/ntb_tool.c
1252
tc->peers[pidx].outspad_cnt = ntb_spad_count(tc->ntb);
drivers/ntb/test/ntb_tool.c
1253
tc->peers[pidx].outspads =
drivers/ntb/test/ntb_tool.c
1254
devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outspad_cnt,
drivers/ntb/test/ntb_tool.c
1255
sizeof(*tc->peers[pidx].outspads), GFP_KERNEL);
drivers/ntb/test/ntb_tool.c
1256
if (tc->peers[pidx].outspads == NULL)
drivers/ntb/test/ntb_tool.c
1259
for (sidx = 0; sidx < tc->peers[pidx].outspad_cnt; sidx++) {
drivers/ntb/test/ntb_tool.c
1260
tc->peers[pidx].outspads[sidx].sidx = sidx;
drivers/ntb/test/ntb_tool.c
1261
tc->peers[pidx].outspads[sidx].pidx = pidx;
drivers/ntb/test/ntb_tool.c
1262
tc->peers[pidx].outspads[sidx].tc = tc;
drivers/ntb/test/ntb_tool.c
1283
data = ntb_msg_read(msg->tc->ntb, &pidx, msg->midx);
drivers/ntb/test/ntb_tool.c
1306
ret = ntb_peer_msg_write(msg->tc->ntb, msg->pidx, msg->midx, val);
drivers/ntb/test/ntb_tool.c
1318
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1320
return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_read_sts);
drivers/ntb/test/ntb_tool.c
1326
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1328
return tool_fn_write(tc, ubuf, size, offp, NULL,
drivers/ntb/test/ntb_tool.c
1329
tc->ntb->ops->msg_clear_sts);
drivers/ntb/test/ntb_tool.c
1339
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1341
return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_inbits);
drivers/ntb/test/ntb_tool.c
1351
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1353
return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_outbits);
drivers/ntb/test/ntb_tool.c
1363
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1365
return tool_fn_write(tc, ubuf, size, offp,
drivers/ntb/test/ntb_tool.c
1366
tc->ntb->ops->msg_set_mask,
drivers/ntb/test/ntb_tool.c
1367
tc->ntb->ops->msg_clear_mask);
drivers/ntb/test/ntb_tool.c
1378
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
1386
if (wait_event_interruptible(tc->msg_wq,
drivers/ntb/test/ntb_tool.c
1387
ntb_msg_read_sts(tc->ntb) == val))
drivers/ntb/test/ntb_tool.c
1397
static int tool_init_msgs(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
1402
tc->inmsg_cnt = ntb_msg_count(tc->ntb);
drivers/ntb/test/ntb_tool.c
1403
tc->inmsgs = devm_kcalloc(&tc->ntb->dev, tc->inmsg_cnt,
drivers/ntb/test/ntb_tool.c
1404
sizeof(*tc->inmsgs), GFP_KERNEL);
drivers/ntb/test/ntb_tool.c
1405
if (tc->inmsgs == NULL)
drivers/ntb/test/ntb_tool.c
1408
for (midx = 0; midx < tc->inmsg_cnt; midx++) {
drivers/ntb/test/ntb_tool.c
1409
tc->inmsgs[midx].midx = midx;
drivers/ntb/test/ntb_tool.c
1410
tc->inmsgs[midx].pidx = -1;
drivers/ntb/test/ntb_tool.c
1411
tc->inmsgs[midx].tc = tc;
drivers/ntb/test/ntb_tool.c
1415
for (pidx = 0; pidx < tc->peer_cnt; pidx++) {
drivers/ntb/test/ntb_tool.c
1416
tc->peers[pidx].outmsg_cnt = ntb_msg_count(tc->ntb);
drivers/ntb/test/ntb_tool.c
1417
tc->peers[pidx].outmsgs =
drivers/ntb/test/ntb_tool.c
1418
devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmsg_cnt,
drivers/ntb/test/ntb_tool.c
1419
sizeof(*tc->peers[pidx].outmsgs), GFP_KERNEL);
drivers/ntb/test/ntb_tool.c
1420
if (tc->peers[pidx].outmsgs == NULL)
drivers/ntb/test/ntb_tool.c
1423
for (midx = 0; midx < tc->peers[pidx].outmsg_cnt; midx++) {
drivers/ntb/test/ntb_tool.c
1424
tc->peers[pidx].outmsgs[midx].midx = midx;
drivers/ntb/test/ntb_tool.c
1425
tc->peers[pidx].outmsgs[midx].pidx = pidx;
drivers/ntb/test/ntb_tool.c
1426
tc->peers[pidx].outmsgs[midx].tc = tc;
drivers/ntb/test/ntb_tool.c
1440
struct tool_ctx *tc;
drivers/ntb/test/ntb_tool.c
1442
tc = devm_kzalloc(&ntb->dev, sizeof(*tc), GFP_KERNEL);
drivers/ntb/test/ntb_tool.c
1443
if (tc == NULL)
drivers/ntb/test/ntb_tool.c
1446
tc->ntb = ntb;
drivers/ntb/test/ntb_tool.c
1447
init_waitqueue_head(&tc->link_wq);
drivers/ntb/test/ntb_tool.c
1448
init_waitqueue_head(&tc->db_wq);
drivers/ntb/test/ntb_tool.c
1449
init_waitqueue_head(&tc->msg_wq);
drivers/ntb/test/ntb_tool.c
1457
return tc;
drivers/ntb/test/ntb_tool.c
1460
static void tool_clear_data(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
1462
wake_up(&tc->link_wq);
drivers/ntb/test/ntb_tool.c
1463
wake_up(&tc->db_wq);
drivers/ntb/test/ntb_tool.c
1464
wake_up(&tc->msg_wq);
drivers/ntb/test/ntb_tool.c
1467
static int tool_init_ntb(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
1469
return ntb_set_ctx(tc->ntb, tc, &tool_ops);
drivers/ntb/test/ntb_tool.c
1472
static void tool_clear_ntb(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
1474
ntb_clear_ctx(tc->ntb);
drivers/ntb/test/ntb_tool.c
1475
ntb_link_disable(tc->ntb);
drivers/ntb/test/ntb_tool.c
1478
static void tool_setup_dbgfs(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
1485
tc->dbgfs_dir = NULL;
drivers/ntb/test/ntb_tool.c
1489
tc->dbgfs_dir = debugfs_create_dir(dev_name(&tc->ntb->dev),
drivers/ntb/test/ntb_tool.c
1492
debugfs_create_file("port", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1493
tc, &tool_port_fops);
drivers/ntb/test/ntb_tool.c
1495
debugfs_create_file("link", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1496
tc, &tool_link_fops);
drivers/ntb/test/ntb_tool.c
1498
debugfs_create_file("db", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1499
tc, &tool_db_fops);
drivers/ntb/test/ntb_tool.c
1501
debugfs_create_file("db_valid_mask", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1502
tc, &tool_db_valid_mask_fops);
drivers/ntb/test/ntb_tool.c
1504
debugfs_create_file("db_mask", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1505
tc, &tool_db_mask_fops);
drivers/ntb/test/ntb_tool.c
1507
debugfs_create_file("db_event", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1508
tc, &tool_db_event_fops);
drivers/ntb/test/ntb_tool.c
1510
debugfs_create_file("peer_db", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1511
tc, &tool_peer_db_fops);
drivers/ntb/test/ntb_tool.c
1513
debugfs_create_file("peer_db_mask", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1514
tc, &tool_peer_db_mask_fops);
drivers/ntb/test/ntb_tool.c
1516
if (tc->inspad_cnt != 0) {
drivers/ntb/test/ntb_tool.c
1517
for (sidx = 0; sidx < tc->inspad_cnt; sidx++) {
drivers/ntb/test/ntb_tool.c
1520
debugfs_create_file(buf, 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1521
&tc->inspads[sidx], &tool_spad_fops);
drivers/ntb/test/ntb_tool.c
1525
if (tc->inmsg_cnt != 0) {
drivers/ntb/test/ntb_tool.c
1526
for (midx = 0; midx < tc->inmsg_cnt; midx++) {
drivers/ntb/test/ntb_tool.c
1528
debugfs_create_file(buf, 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1529
&tc->inmsgs[midx], &tool_inmsg_fops);
drivers/ntb/test/ntb_tool.c
1532
debugfs_create_file("msg_sts", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1533
tc, &tool_msg_sts_fops);
drivers/ntb/test/ntb_tool.c
1535
debugfs_create_file("msg_inbits", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1536
tc, &tool_msg_inbits_fops);
drivers/ntb/test/ntb_tool.c
1538
debugfs_create_file("msg_outbits", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1539
tc, &tool_msg_outbits_fops);
drivers/ntb/test/ntb_tool.c
1541
debugfs_create_file("msg_mask", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1542
tc, &tool_msg_mask_fops);
drivers/ntb/test/ntb_tool.c
1544
debugfs_create_file("msg_event", 0600, tc->dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1545
tc, &tool_msg_event_fops);
drivers/ntb/test/ntb_tool.c
1548
for (pidx = 0; pidx < tc->peer_cnt; pidx++) {
drivers/ntb/test/ntb_tool.c
1550
tc->peers[pidx].dbgfs_dir =
drivers/ntb/test/ntb_tool.c
1551
debugfs_create_dir(buf, tc->dbgfs_dir);
drivers/ntb/test/ntb_tool.c
1554
tc->peers[pidx].dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1555
&tc->peers[pidx], &tool_peer_port_fops);
drivers/ntb/test/ntb_tool.c
1558
tc->peers[pidx].dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1559
&tc->peers[pidx], &tool_peer_link_fops);
drivers/ntb/test/ntb_tool.c
1562
tc->peers[pidx].dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1563
&tc->peers[pidx], &tool_peer_link_event_fops);
drivers/ntb/test/ntb_tool.c
1565
for (widx = 0; widx < tc->peers[pidx].inmw_cnt; widx++) {
drivers/ntb/test/ntb_tool.c
1568
tc->peers[pidx].dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1569
&tc->peers[pidx].inmws[widx],
drivers/ntb/test/ntb_tool.c
1573
for (widx = 0; widx < tc->peers[pidx].outmw_cnt; widx++) {
drivers/ntb/test/ntb_tool.c
1576
tc->peers[pidx].dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1577
&tc->peers[pidx].outmws[widx],
drivers/ntb/test/ntb_tool.c
1581
for (sidx = 0; sidx < tc->peers[pidx].outspad_cnt; sidx++) {
drivers/ntb/test/ntb_tool.c
1585
tc->peers[pidx].dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1586
&tc->peers[pidx].outspads[sidx],
drivers/ntb/test/ntb_tool.c
1590
for (midx = 0; midx < tc->peers[pidx].outmsg_cnt; midx++) {
drivers/ntb/test/ntb_tool.c
1593
tc->peers[pidx].dbgfs_dir,
drivers/ntb/test/ntb_tool.c
1594
&tc->peers[pidx].outmsgs[midx],
drivers/ntb/test/ntb_tool.c
1600
static void tool_clear_dbgfs(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
1602
debugfs_remove_recursive(tc->dbgfs_dir);
drivers/ntb/test/ntb_tool.c
1607
struct tool_ctx *tc;
drivers/ntb/test/ntb_tool.c
1610
tc = tool_create_data(ntb);
drivers/ntb/test/ntb_tool.c
1611
if (IS_ERR(tc))
drivers/ntb/test/ntb_tool.c
1612
return PTR_ERR(tc);
drivers/ntb/test/ntb_tool.c
1614
ret = tool_init_peers(tc);
drivers/ntb/test/ntb_tool.c
1618
ret = tool_init_mws(tc);
drivers/ntb/test/ntb_tool.c
1622
ret = tool_init_spads(tc);
drivers/ntb/test/ntb_tool.c
1626
ret = tool_init_msgs(tc);
drivers/ntb/test/ntb_tool.c
1630
ret = tool_init_ntb(tc);
drivers/ntb/test/ntb_tool.c
1634
tool_setup_dbgfs(tc);
drivers/ntb/test/ntb_tool.c
1639
tool_clear_mws(tc);
drivers/ntb/test/ntb_tool.c
1642
tool_clear_data(tc);
drivers/ntb/test/ntb_tool.c
1649
struct tool_ctx *tc = ntb->ctx;
drivers/ntb/test/ntb_tool.c
1651
tool_clear_dbgfs(tc);
drivers/ntb/test/ntb_tool.c
1653
tool_clear_ntb(tc);
drivers/ntb/test/ntb_tool.c
1655
tool_clear_mws(tc);
drivers/ntb/test/ntb_tool.c
1657
tool_clear_data(tc);
drivers/ntb/test/ntb_tool.c
208
struct tool_ctx *tc;
drivers/ntb/test/ntb_tool.c
233
struct tool_ctx *tc;
drivers/ntb/test/ntb_tool.c
239
struct tool_ctx *tc;
drivers/ntb/test/ntb_tool.c
244
struct tool_ctx *tc;
drivers/ntb/test/ntb_tool.c
291
struct tool_ctx *tc = ctx;
drivers/ntb/test/ntb_tool.c
296
up = ntb_link_is_up(tc->ntb, &speed, &width);
drivers/ntb/test/ntb_tool.c
298
dev_dbg(&tc->ntb->dev, "link is %s speed %d width %d\n",
drivers/ntb/test/ntb_tool.c
301
wake_up(&tc->link_wq);
drivers/ntb/test/ntb_tool.c
306
struct tool_ctx *tc = ctx;
drivers/ntb/test/ntb_tool.c
309
db_mask = ntb_db_vector_mask(tc->ntb, vec);
drivers/ntb/test/ntb_tool.c
310
db_bits = ntb_db_read(tc->ntb);
drivers/ntb/test/ntb_tool.c
312
dev_dbg(&tc->ntb->dev, "doorbell vec %d mask %#llx bits %#llx\n",
drivers/ntb/test/ntb_tool.c
315
wake_up(&tc->db_wq);
drivers/ntb/test/ntb_tool.c
320
struct tool_ctx *tc = ctx;
drivers/ntb/test/ntb_tool.c
323
msg_sts = ntb_msg_read_sts(tc->ntb);
drivers/ntb/test/ntb_tool.c
325
dev_dbg(&tc->ntb->dev, "message bits %#llx\n", msg_sts);
drivers/ntb/test/ntb_tool.c
327
wake_up(&tc->msg_wq);
drivers/ntb/test/ntb_tool.c
341
static ssize_t tool_fn_read(struct tool_ctx *tc, char __user *ubuf,
drivers/ntb/test/ntb_tool.c
354
pos = scnprintf(buf, buf_size, "%#llx\n", fn_read(tc->ntb));
drivers/ntb/test/ntb_tool.c
359
static ssize_t tool_fn_write(struct tool_ctx *tc,
drivers/ntb/test/ntb_tool.c
387
ret = fn_set(tc->ntb, bits);
drivers/ntb/test/ntb_tool.c
392
ret = fn_clear(tc->ntb, bits);
drivers/ntb/test/ntb_tool.c
408
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
412
pos = scnprintf(buf, sizeof(buf), "%d\n", ntb_port_number(tc->ntb));
drivers/ntb/test/ntb_tool.c
425
struct tool_ctx *tc = peer->tc;
drivers/ntb/test/ntb_tool.c
430
ntb_peer_port_number(tc->ntb, peer->pidx));
drivers/ntb/test/ntb_tool.c
439
static int tool_init_peers(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
443
tc->peer_cnt = ntb_peer_port_count(tc->ntb);
drivers/ntb/test/ntb_tool.c
444
tc->peers = devm_kcalloc(&tc->ntb->dev, tc->peer_cnt,
drivers/ntb/test/ntb_tool.c
445
sizeof(*tc->peers), GFP_KERNEL);
drivers/ntb/test/ntb_tool.c
446
if (tc->peers == NULL)
drivers/ntb/test/ntb_tool.c
449
for (pidx = 0; pidx < tc->peer_cnt; pidx++) {
drivers/ntb/test/ntb_tool.c
450
tc->peers[pidx].pidx = pidx;
drivers/ntb/test/ntb_tool.c
451
tc->peers[pidx].tc = tc;
drivers/ntb/test/ntb_tool.c
465
struct tool_ctx *tc = filep->private_data;
drivers/ntb/test/ntb_tool.c
474
ret = ntb_link_enable(tc->ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO);
drivers/ntb/test/ntb_tool.c
476
ret = ntb_link_disable(tc->ntb);
drivers/ntb/test/ntb_tool.c
492
struct tool_ctx *tc = peer->tc;
drivers/ntb/test/ntb_tool.c
495
if (ntb_link_is_up(tc->ntb, NULL, NULL) & BIT(peer->pidx))
drivers/ntb/test/ntb_tool.c
514
struct tool_ctx *tc = peer->tc;
drivers/ntb/test/ntb_tool.c
525
if (wait_event_interruptible(tc->link_wq,
drivers/ntb/test/ntb_tool.c
526
!!(ntb_link_is_up(tc->ntb, NULL, NULL) & link_msk) == val))
drivers/ntb/test/ntb_tool.c
569
static int tool_setup_mw(struct tool_ctx *tc, int pidx, int widx,
drivers/ntb/test/ntb_tool.c
573
struct tool_mw *inmw = &tc->peers[pidx].inmws[widx];
drivers/ntb/test/ntb_tool.c
580
ret = ntb_mw_get_align(tc->ntb, pidx, widx, &addr_align,
drivers/ntb/test/ntb_tool.c
588
inmw->mm_base = dma_alloc_coherent(&tc->ntb->pdev->dev, inmw->size,
drivers/ntb/test/ntb_tool.c
598
ret = ntb_mw_set_trans(tc->ntb, pidx, widx, inmw->dma_base, inmw->size);
drivers/ntb/test/ntb_tool.c
604
tc->peers[pidx].dbgfs_dir, inmw,
drivers/ntb/test/ntb_tool.c
610
dma_free_coherent(&tc->ntb->pdev->dev, inmw->size, inmw->mm_base,
drivers/ntb/test/ntb_tool.c
619
static void tool_free_mw(struct tool_ctx *tc, int pidx, int widx)
drivers/ntb/test/ntb_tool.c
621
struct tool_mw *inmw = &tc->peers[pidx].inmws[widx];
drivers/ntb/test/ntb_tool.c
626
ntb_mw_clear_trans(tc->ntb, pidx, widx);
drivers/ntb/test/ntb_tool.c
627
dma_free_coherent(&tc->ntb->pdev->dev, inmw->size,
drivers/ntb/test/ntb_tool.c
654
ret = ntb_mw_get_align(inmw->tc->ntb, inmw->pidx, inmw->widx,
drivers/ntb/test/ntb_tool.c
665
ntb_peer_port_number(inmw->tc->ntb, inmw->pidx),
drivers/ntb/test/ntb_tool.c
710
tool_free_mw(inmw->tc, inmw->pidx, inmw->widx);
drivers/ntb/test/ntb_tool.c
712
ret = tool_setup_mw(inmw->tc, inmw->pidx, inmw->widx, val);
drivers/ntb/test/ntb_tool.c
804
static int tool_setup_peer_mw(struct tool_ctx *tc, int pidx, int widx,
drivers/ntb/test/ntb_tool.c
807
struct tool_mw *outmw = &tc->outmws[widx];
drivers/ntb/test/ntb_tool.c
816
ret = ntb_peer_mw_get_addr(tc->ntb, widx, &map_base, &map_size);
drivers/ntb/test/ntb_tool.c
820
ret = ntb_peer_mw_set_trans(tc->ntb, pidx, widx, req_addr, req_size);
drivers/ntb/test/ntb_tool.c
836
tc->peers[pidx].dbgfs_dir, outmw,
drivers/ntb/test/ntb_tool.c
842
ntb_peer_mw_clear_trans(tc->ntb, pidx, widx);
drivers/ntb/test/ntb_tool.c
847
static void tool_free_peer_mw(struct tool_ctx *tc, int widx)
drivers/ntb/test/ntb_tool.c
849
struct tool_mw *outmw = &tc->outmws[widx];
drivers/ntb/test/ntb_tool.c
854
iounmap(tc->outmws[widx].io_base);
drivers/ntb/test/ntb_tool.c
855
ntb_peer_mw_clear_trans(tc->ntb, outmw->pidx, widx);
drivers/ntb/test/ntb_tool.c
877
ret = ntb_peer_mw_get_addr(outmw->tc->ntb, outmw->widx,
drivers/ntb/test/ntb_tool.c
894
ntb_peer_port_number(outmw->tc->ntb, outmw->pidx),
drivers/ntb/test/ntb_tool.c
943
tool_free_peer_mw(outmw->tc, outmw->widx);
drivers/ntb/test/ntb_tool.c
945
ret = tool_setup_peer_mw(outmw->tc, outmw_wrap->pidx,
drivers/ntb/test/ntb_tool.c
958
static int tool_init_mws(struct tool_ctx *tc)
drivers/ntb/test/ntb_tool.c
963
tc->outmw_cnt = ntb_peer_mw_count(tc->ntb);
drivers/ntb/test/ntb_tool.c
964
tc->outmws = devm_kcalloc(&tc->ntb->dev, tc->outmw_cnt,
drivers/ntb/test/ntb_tool.c
965
sizeof(*tc->outmws), GFP_KERNEL);
drivers/ntb/test/ntb_tool.c
966
if (tc->outmws == NULL)
drivers/ntb/test/ntb_tool.c
969
for (widx = 0; widx < tc->outmw_cnt; widx++) {
drivers/ntb/test/ntb_tool.c
970
tc->outmws[widx].widx = widx;
drivers/ntb/test/ntb_tool.c
971
tc->outmws[widx].pidx = -1;
drivers/ntb/test/ntb_tool.c
972
tc->outmws[widx].tc = tc;
drivers/ntb/test/ntb_tool.c
976
for (pidx = 0; pidx < tc->peer_cnt; pidx++) {
drivers/ntb/test/ntb_tool.c
977
tc->peers[pidx].inmw_cnt = ntb_mw_count(tc->ntb, pidx);
drivers/ntb/test/ntb_tool.c
978
tc->peers[pidx].inmws =
drivers/ntb/test/ntb_tool.c
979
devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].inmw_cnt,
drivers/ntb/test/ntb_tool.c
980
sizeof(*tc->peers[pidx].inmws), GFP_KERNEL);
drivers/ntb/test/ntb_tool.c
981
if (tc->peers[pidx].inmws == NULL)
drivers/ntb/test/ntb_tool.c
984
for (widx = 0; widx < tc->peers[pidx].inmw_cnt; widx++) {
drivers/ntb/test/ntb_tool.c
985
tc->peers[pidx].inmws[widx].widx = widx;
drivers/ntb/test/ntb_tool.c
986
tc->peers[pidx].inmws[widx].pidx = pidx;
drivers/ntb/test/ntb_tool.c
987
tc->peers[pidx].inmws[widx].tc = tc;
drivers/ntb/test/ntb_tool.c
990
tc->peers[pidx].outmw_cnt = ntb_peer_mw_count(tc->ntb);
drivers/ntb/test/ntb_tool.c
991
tc->peers[pidx].outmws =
drivers/ntb/test/ntb_tool.c
992
devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmw_cnt,
drivers/ntb/test/ntb_tool.c
993
sizeof(*tc->peers[pidx].outmws), GFP_KERNEL);
drivers/ntb/test/ntb_tool.c
994
if (tc->peers[pidx].outmws == NULL)
drivers/ntb/test/ntb_tool.c
997
for (widx = 0; widx < tc->peers[pidx].outmw_cnt; widx++) {
drivers/ntb/test/ntb_tool.c
998
tc->peers[pidx].outmws[widx].pidx = pidx;
drivers/ntb/test/ntb_tool.c
999
tc->peers[pidx].outmws[widx].mw = &tc->outmws[widx];
drivers/perf/hisilicon/hns3_pmu.c
321
#define FILTER_CONDITION_PORT_TC(port, tc) (((port) << 3) | ((tc) & 0x07))
drivers/perf/hisilicon/hns3_pmu.c
335
HNS3_PMU_FILTER_ATTR(tc, config1, 4, 7);
drivers/perf/hisilicon/hns3_pmu.c
656
HNS3_PMU_FORMAT_ATTR(tc, "config1:4-7"),
drivers/platform/surface/aggregator/bus.c
397
u8 d, tc, tid, iid, fn;
drivers/platform/surface/aggregator/bus.c
400
n = sscanf(str, "%hhx:%hhx:%hhx:%hhx:%hhx", &d, &tc, &tid, &iid, &fn);
drivers/platform/surface/aggregator/bus.c
405
uid->category = tc;
drivers/platform/surface/aggregator/controller.c
996
item->event.target_category = cmd->tc;
drivers/platform/surface/aggregator/ssh_parser.c
225
(*command)->tc, (*command)->cid);
drivers/platform/surface/aggregator/trace.h
199
return get_unaligned_le16(&p->data.ptr[SSH_MSGOFFSET_COMMAND(tc)]);
drivers/platform/surface/aggregator/trace.h
278
#define ssam_show_ssh_tc(tc) \
drivers/platform/surface/aggregator/trace.h
279
__print_symbolic(tc, \
drivers/platform/surface/aggregator/trace.h
361
__field(u8, tc)
drivers/platform/surface/aggregator/trace.h
370
__entry->tc = cmd->tc;
drivers/platform/surface/aggregator/trace.h
380
ssam_show_ssh_tc(__entry->tc),
drivers/platform/surface/aggregator/trace.h
479
__field(u8, tc)
drivers/platform/surface/aggregator/trace.h
495
__entry->tc = ssam_trace_get_request_tc(p);
drivers/platform/surface/aggregator/trace.h
507
ssam_show_ssh_tc(__entry->tc),
drivers/platform/surface/aggregator/trace.h
529
__field(u8, tc)
drivers/platform/surface/aggregator/trace.h
546
__entry->tc = ssam_trace_get_request_tc(p);
drivers/platform/surface/aggregator/trace.h
558
ssam_show_ssh_tc(__entry->tc),
drivers/platform/surface/surface_acpi_notify.c
418
u8 tc; /* Target category. */
drivers/platform/surface/surface_acpi_notify.c
575
rqst.target_category = gsb_rqst->tc;
drivers/platform/surface/surface_acpi_notify.c
616
evt.category = gsb_rqsg->tc;
drivers/platform/surface/surface_aggregator_cdev.c
135
static int ssam_cdev_notifier_register(struct ssam_cdev_client *client, u8 tc, int priority)
drivers/platform/surface/surface_aggregator_cdev.c
137
const u16 rqid = ssh_tc_to_rqid(tc);
drivers/platform/surface/surface_aggregator_cdev.c
172
nf->nf.event.id.target_category = tc;
drivers/platform/surface/surface_aggregator_cdev.c
187
static int ssam_cdev_notifier_unregister(struct ssam_cdev_client *client, u8 tc)
drivers/platform/surface/surface_aggregator_cdev.c
189
const u16 rqid = ssh_tc_to_rqid(tc);
drivers/ptp/ptp_mock.c
148
timecounter_init(&phc->tc, &phc->cc, 0);
drivers/ptp/ptp_mock.c
39
struct timecounter tc;
drivers/ptp/ptp_mock.c
58
timecounter_read(&phc->tc);
drivers/ptp/ptp_mock.c
70
timecounter_adjtime(&phc->tc, delta);
drivers/ptp/ptp_mock.c
83
timecounter_init(&phc->tc, &phc->cc, ns);
drivers/ptp/ptp_mock.c
95
ns = timecounter_read(&phc->tc);
drivers/ptp/ptp_private.h
83
struct timecounter tc;
drivers/ptp/ptp_vclock.c
103
ns = timecounter_cyc2time(&vclock->tc, timespec64_to_ns(&pts));
drivers/ptp/ptp_vclock.c
119
timecounter_init(&vclock->tc, &vclock->cc, ns);
drivers/ptp/ptp_vclock.c
139
ns = timecounter_cyc2time(&vclock->tc, ktime_to_ns(xtstamp->device));
drivers/ptp/ptp_vclock.c
223
timecounter_init(&vclock->tc, &vclock->cc, 0);
drivers/ptp/ptp_vclock.c
292
vclock_ns = timecounter_cyc2time(&vclock->tc, ns);
drivers/ptp/ptp_vclock.c
53
timecounter_read(&vclock->tc);
drivers/ptp/ptp_vclock.c
66
timecounter_adjtime(&vclock->tc, delta);
drivers/ptp/ptp_vclock.c
80
ns = timecounter_read(&vclock->tc);
drivers/s390/block/dasd_eer.c
599
int tc,rc;
drivers/s390/block/dasd_eer.c
621
tc = 0;
drivers/s390/block/dasd_eer.c
622
while (!tc) {
drivers/s390/block/dasd_eer.c
623
tc = dasd_eer_read_buffer(eerb, (char *) &tailcount,
drivers/s390/block/dasd_eer.c
625
if (!tc) {
drivers/s390/block/dasd_eer.c
641
WARN_ON(tc != sizeof(tailcount));
drivers/s390/block/dasd_eer.c
646
tc = dasd_eer_read_buffer(eerb, readbuffer, effective_count);
drivers/s390/block/dasd_eer.c
647
WARN_ON(tc != effective_count);
drivers/scsi/initio.c
2662
struct target_control *tc;
drivers/scsi/initio.c
2665
tc = &host->targets[sdev->id];
drivers/scsi/initio.c
2667
if (tc->heads) {
drivers/scsi/initio.c
2668
info_array[0] = tc->heads;
drivers/scsi/initio.c
2669
info_array[1] = tc->sectors;
drivers/scsi/initio.c
2670
info_array[2] = (unsigned long)capacity / tc->heads / tc->sectors;
drivers/scsi/initio.c
2672
if (tc->drv_flags & TCF_DRV_255_63) {
drivers/scsi/isci/host.c
2286
ireq->tc = &ihost->task_context_table[i];
drivers/scsi/isci/port.c
889
struct scu_task_context *tc;
drivers/scsi/isci/port.c
892
tc = &ihost->task_context_table[ISCI_TAG_TCI(tag)];
drivers/scsi/isci/port.c
893
tc->abort = 0;
drivers/scsi/isci/port.c
914
struct scu_task_context *tc;
drivers/scsi/isci/port.c
917
tc = &ihost->task_context_table[ISCI_TAG_TCI(tag)];
drivers/scsi/isci/port.c
918
tc->abort = 1;
drivers/scsi/isci/request.c
1320
struct scu_task_context *task_context = ireq->tc;
drivers/scsi/isci/request.c
1644
struct scu_task_context *task_context = ireq->tc;
drivers/scsi/isci/request.c
1661
struct scu_task_context *task_context = ireq->tc;
drivers/scsi/isci/request.c
296
struct scu_task_context *tc = ireq->tc;
drivers/scsi/isci/request.c
300
tc->block_guard_enable = 1;
drivers/scsi/isci/request.c
3007
ireq->tc->abort = 1;
drivers/scsi/isci/request.c
301
tc->blk_prot_en = 1;
drivers/scsi/isci/request.c
302
tc->blk_sz = blk_sz;
drivers/scsi/isci/request.c
304
tc->blk_prot_func = 0x2;
drivers/scsi/isci/request.c
306
tc->transfer_length_bytes += scu_dif_bytes(tc->transfer_length_bytes,
drivers/scsi/isci/request.c
3098
memset(ireq->tc, 0, offsetof(struct scu_task_context, sgl_pair_ab));
drivers/scsi/isci/request.c
310
tc->interm_crc_val = 0;
drivers/scsi/isci/request.c
3115
memset(ireq->tc, 0, sizeof(struct scu_task_context));
drivers/scsi/isci/request.c
312
tc->init_crc_seed = 0;
drivers/scsi/isci/request.c
313
tc->app_tag_verify = 0;
drivers/scsi/isci/request.c
314
tc->app_tag_gen = 0;
drivers/scsi/isci/request.c
315
tc->ref_tag_seed_verify = 0;
drivers/scsi/isci/request.c
3166
ireq->tc->type.stp.ncq_tag = qc->tag;
drivers/scsi/isci/request.c
318
tc->UD_bytes_immed_val = scmd->device->sector_size;
drivers/scsi/isci/request.c
320
tc->reserved_DC_0 = 0;
drivers/scsi/isci/request.c
3221
task_context = ireq->tc;
drivers/scsi/isci/request.c
323
tc->DIF_bytes_immed_val = 8;
drivers/scsi/isci/request.c
325
tc->reserved_DC_1 = 0;
drivers/scsi/isci/request.c
326
tc->bgc_blk_sz = scmd->device->sector_size;
drivers/scsi/isci/request.c
327
tc->reserved_E0_0 = 0;
drivers/scsi/isci/request.c
328
tc->app_tag_gen_mask = 0;
drivers/scsi/isci/request.c
331
tc->bgctl = 0;
drivers/scsi/isci/request.c
334
tc->bgctl_f.op = 0x2;
drivers/scsi/isci/request.c
336
tc->app_tag_verify_mask = 0;
drivers/scsi/isci/request.c
339
tc->blk_guard_err = 0;
drivers/scsi/isci/request.c
341
tc->reserved_E8_0 = 0;
drivers/scsi/isci/request.c
344
tc->ref_tag_seed_gen = scsi_prot_ref_tag(scmd);
drivers/scsi/isci/request.c
346
tc->ref_tag_seed_gen = 0;
drivers/scsi/isci/request.c
351
struct scu_task_context *tc = ireq->tc;
drivers/scsi/isci/request.c
355
tc->block_guard_enable = 1;
drivers/scsi/isci/request.c
356
tc->blk_prot_en = 1;
drivers/scsi/isci/request.c
357
tc->blk_sz = blk_sz;
drivers/scsi/isci/request.c
359
tc->blk_prot_func = 0x1;
drivers/scsi/isci/request.c
361
tc->transfer_length_bytes += scu_dif_bytes(tc->transfer_length_bytes,
drivers/scsi/isci/request.c
365
tc->interm_crc_val = 0;
drivers/scsi/isci/request.c
367
tc->init_crc_seed = 0;
drivers/scsi/isci/request.c
368
tc->app_tag_verify = 0;
drivers/scsi/isci/request.c
369
tc->app_tag_gen = 0;
drivers/scsi/isci/request.c
372
tc->ref_tag_seed_verify = scsi_prot_ref_tag(scmd);
drivers/scsi/isci/request.c
374
tc->ref_tag_seed_verify = 0;
drivers/scsi/isci/request.c
377
tc->UD_bytes_immed_val = scmd->device->sector_size;
drivers/scsi/isci/request.c
379
tc->reserved_DC_0 = 0;
drivers/scsi/isci/request.c
382
tc->DIF_bytes_immed_val = 8;
drivers/scsi/isci/request.c
384
tc->reserved_DC_1 = 0;
drivers/scsi/isci/request.c
385
tc->bgc_blk_sz = scmd->device->sector_size;
drivers/scsi/isci/request.c
386
tc->reserved_E0_0 = 0;
drivers/scsi/isci/request.c
387
tc->app_tag_gen_mask = 0;
drivers/scsi/isci/request.c
390
tc->bgctl = 0;
drivers/scsi/isci/request.c
393
tc->bgctl_f.crc_verify = 1;
drivers/scsi/isci/request.c
394
tc->bgctl_f.op = 0x1;
drivers/scsi/isci/request.c
396
tc->bgctl_f.ref_tag_chk = 1;
drivers/scsi/isci/request.c
397
tc->bgctl_f.app_f_detect = 1;
drivers/scsi/isci/request.c
399
tc->bgctl_f.app_ref_f_detect = 1;
drivers/scsi/isci/request.c
401
tc->app_tag_verify_mask = 0;
drivers/scsi/isci/request.c
404
tc->blk_guard_err = 0;
drivers/scsi/isci/request.c
406
tc->reserved_E8_0 = 0;
drivers/scsi/isci/request.c
407
tc->ref_tag_seed_gen = 0;
drivers/scsi/isci/request.c
417
struct scu_task_context *task_context = ireq->tc;
drivers/scsi/isci/request.c
467
struct scu_task_context *task_context = ireq->tc;
drivers/scsi/isci/request.c
558
struct scu_task_context *task_context = ireq->tc;
drivers/scsi/isci/request.c
608
struct scu_task_context *task_context = ireq->tc;
drivers/scsi/isci/request.c
78
return &ireq->tc->sgl_pair_ab;
drivers/scsi/isci/request.c
80
return &ireq->tc->sgl_pair_cd;
drivers/scsi/isci/request.c
803
struct scu_task_context *tc = ireq->tc;
drivers/scsi/isci/request.c
814
tc->task_index = ISCI_TAG_TCI(ireq->io_tag);
drivers/scsi/isci/request.c
816
switch (tc->protocol_type) {
drivers/scsi/isci/request.c
820
tc->type.ssp.tag = ireq->io_tag;
drivers/scsi/isci/request.c
821
tc->type.ssp.target_port_transfer_tag = 0xFFFF;
drivers/scsi/isci/request.c
93
offset = (void *) &ireq->tc->sgl_pair_ab -
drivers/scsi/isci/request.c
97
offset = (void *) &ireq->tc->sgl_pair_cd -
drivers/scsi/isci/request.h
121
struct scu_task_context *tc;
drivers/scsi/qla2xxx/qla_init.c
3729
void *tc;
drivers/scsi/qla2xxx/qla_init.c
3747
tc = dma_alloc_coherent(&ha->pdev->dev, FCE_SIZE, &tc_dma,
drivers/scsi/qla2xxx/qla_init.c
3749
if (!tc) {
drivers/scsi/qla2xxx/qla_init.c
3760
ha->fce = tc;
drivers/scsi/qla2xxx/qla_init.c
3778
void *tc;
drivers/scsi/qla2xxx/qla_init.c
3792
tc = dma_alloc_coherent(&ha->pdev->dev, EFT_SIZE, &tc_dma,
drivers/scsi/qla2xxx/qla_init.c
3794
if (!tc) {
drivers/scsi/qla2xxx/qla_init.c
3805
ha->eft = tc;
drivers/scsi/qla2xxx/qla_iocb.c
1007
&(tc->ctx->dsd_list));
drivers/scsi/qla2xxx/qla_iocb.c
1008
*tc->ctx_dsd_alloced = 1;
drivers/scsi/qla2xxx/qla_iocb.c
1030
struct dsd64 *cur_dsd, uint16_t tot_dsds, struct qla_tgt_cmd *tc)
drivers/scsi/qla2xxx/qla_iocb.c
1053
} else if (tc) {
drivers/scsi/qla2xxx/qla_iocb.c
1054
vha = tc->vha;
drivers/scsi/qla2xxx/qla_iocb.c
1055
sgl = tc->prot_sg;
drivers/scsi/qla2xxx/qla_iocb.c
1056
difctx = tc->ctx;
drivers/scsi/qla2xxx/qla_iocb.c
1057
direction_to_device = tc->dma_data_direction == DMA_TO_DEVICE;
drivers/scsi/qla2xxx/qla_iocb.c
1190
tc->prot_flags = DIF_BUNDL_DMA_VALID;
drivers/scsi/qla2xxx/qla_iocb.c
1247
tc->ctx_dsd_alloced = 1;
drivers/scsi/qla2xxx/qla_iocb.c
1305
tc->ctx_dsd_alloced = 1;
drivers/scsi/qla2xxx/qla_iocb.c
836
struct dsd64 *dsd, uint16_t tot_dsds, struct qla_tc_param *tc)
drivers/scsi/qla2xxx/qla_iocb.c
862
} else if (tc) {
drivers/scsi/qla2xxx/qla_iocb.c
863
prot_int = tc->blk_sz;
drivers/scsi/qla2xxx/qla_iocb.c
864
sgx.tot_bytes = tc->bufflen;
drivers/scsi/qla2xxx/qla_iocb.c
865
sgx.cur_sg = tc->sg;
drivers/scsi/qla2xxx/qla_iocb.c
866
sg_prot = tc->prot_sg;
drivers/scsi/qla2xxx/qla_iocb.c
910
&(tc->ctx->dsd_list));
drivers/scsi/qla2xxx/qla_iocb.c
911
*tc->ctx_dsd_alloced = 1;
drivers/scsi/qla2xxx/qla_iocb.c
950
struct dsd64 *dsd, uint16_t tot_dsds, struct qla_tc_param *tc)
drivers/scsi/qla2xxx/qla_iocb.c
965
} else if (tc) {
drivers/scsi/qla2xxx/qla_iocb.c
966
sgl = tc->sg;
drivers/scsi/qla2xxx/qla_target.c
3009
struct qla_tc_param tc;
drivers/scsi/qla2xxx/qla_target.c
3162
memset((uint8_t *)&tc, 0 , sizeof(tc));
drivers/scsi/qla2xxx/qla_target.c
3163
tc.vha = vha;
drivers/scsi/qla2xxx/qla_target.c
3164
tc.blk_sz = cmd->blk_sz;
drivers/scsi/qla2xxx/qla_target.c
3165
tc.bufflen = cmd->bufflen;
drivers/scsi/qla2xxx/qla_target.c
3166
tc.sg = cmd->sg;
drivers/scsi/qla2xxx/qla_target.c
3167
tc.prot_sg = cmd->prot_sg;
drivers/scsi/qla2xxx/qla_target.c
3168
tc.ctx = crc_ctx_pkt;
drivers/scsi/qla2xxx/qla_target.c
3169
tc.ctx_dsd_alloced = &cmd->ctx_dsd_alloced;
drivers/scsi/qla2xxx/qla_target.c
3176
prm->tot_dsds, &tc))
drivers/scsi/qla2xxx/qla_target.c
3179
(prm->tot_dsds - prm->prot_seg_cnt), &tc))
drivers/scsi/raid_class.c
47
struct transport_container *tc = \
drivers/scsi/raid_class.c
49
tc_to_raid_internal(tc); \
drivers/scsi/raid_class.c
77
static int raid_setup(struct transport_container *tc, struct device *dev,
drivers/scsi/raid_class.c
94
static int raid_remove(struct transport_container *tc, struct device *dev,
drivers/scsi/scsi_transport_fc.c
357
static int fc_target_setup(struct transport_container *tc, struct device *dev,
drivers/scsi/scsi_transport_fc.c
387
static int fc_host_setup(struct transport_container *tc, struct device *dev,
drivers/scsi/scsi_transport_fc.c
458
static int fc_host_remove(struct transport_container *tc, struct device *dev,
drivers/scsi/scsi_transport_iscsi.c
1559
static int iscsi_setup_host(struct transport_container *tc, struct device *dev,
drivers/scsi/scsi_transport_iscsi.c
1574
static int iscsi_remove_host(struct transport_container *tc,
drivers/scsi/scsi_transport_sas.c
225
static int sas_host_setup(struct transport_container *tc, struct device *dev,
drivers/scsi/scsi_transport_sas.c
250
static int sas_host_remove(struct transport_container *tc, struct device *dev,
drivers/scsi/scsi_transport_sas.c
651
static int sas_phy_setup(struct transport_container *tc, struct device *dev,
drivers/scsi/scsi_transport_spi.c
1447
static int spi_host_configure(struct transport_container *tc,
drivers/scsi/scsi_transport_spi.c
1558
static int spi_target_configure(struct transport_container *tc,
drivers/scsi/scsi_transport_spi.c
170
static int spi_host_setup(struct transport_container *tc, struct device *dev,
drivers/scsi/scsi_transport_spi.c
180
static int spi_host_configure(struct transport_container *tc,
drivers/scsi/scsi_transport_spi.c
206
static int spi_target_configure(struct transport_container *tc,
drivers/scsi/scsi_transport_spi.c
210
static int spi_device_configure(struct transport_container *tc,
drivers/scsi/scsi_transport_spi.c
239
static int spi_setup_transport_attrs(struct transport_container *tc,
drivers/scsi/scsi_transport_srp.c
104
static int srp_host_setup(struct transport_container *tc, struct device *dev,
drivers/spi/spi-atcspi200.c
189
unsigned int tc = 0;
drivers/spi/spi-atcspi200.c
192
tc |= TRANS_CMD_EN;
drivers/spi/spi-atcspi200.c
194
tc |= TRANS_ADDR_EN;
drivers/spi/spi-atcspi200.c
196
tc |= TRANS_ADDR_FMT;
drivers/spi/spi-atcspi200.c
205
tc |= TRANS_DUAL_QUAD(width_code);
drivers/spi/spi-atcspi200.c
209
tc |= TRANS_MODE_DMY_READ |
drivers/spi/spi-atcspi200.c
212
tc |= TRANS_MODE_R_ONLY;
drivers/spi/spi-atcspi200.c
213
tc |= TRANS_RD_TRANS_CNT(op->data.nbytes);
drivers/spi/spi-atcspi200.c
215
tc |= TRANS_MODE_W_ONLY |
drivers/spi/spi-atcspi200.c
219
tc |= TRANS_MODE_NONE_DATA;
drivers/spi/spi-atcspi200.c
221
regmap_write(spi->regmap, ATCSPI_TRANS_CTRL, tc);
drivers/staging/fbtft/fb_pcd8544.c
26
static unsigned int tc;
drivers/staging/fbtft/fb_pcd8544.c
27
module_param(tc, uint, 0000);
drivers/staging/fbtft/fb_pcd8544.c
28
MODULE_PARM_DESC(tc, "TC[1:0] Temperature coefficient: 0-3 (default: 0)");
drivers/staging/fbtft/fb_pcd8544.c
53
write_reg(par, 0x04 | (tc & 0x3));
drivers/staging/media/meson/vdec/vdec.h
40
struct v4l2_timecode tc;
drivers/staging/media/meson/vdec/vdec_helpers.c
231
struct v4l2_timecode tc, u32 offset, u32 vbuf_flags)
drivers/staging/media/meson/vdec/vdec_helpers.c
241
new_ts->tc = tc;
drivers/staging/media/meson/vdec/vdec_helpers.c
346
timecode = tmp->tc;
drivers/staging/media/meson/vdec/vdec_helpers.c
393
timecode = match->tc;
drivers/staging/media/meson/vdec/vdec_helpers.h
60
struct v4l2_timecode tc, u32 offset, u32 flags);
drivers/tty/serial/8250/8250_pci.c
1218
u8 tc;
drivers/tty/serial/8250/8250_pci.c
1220
tc = p[i][0];
drivers/tty/serial/8250/8250_pci.c
1222
spre = tc * cp;
drivers/tty/serial/8250/8250_pci.c
1230
tcr = tc;
drivers/tty/serial/8250/8250_pci.c
1236
tcr = tc;
drivers/tty/vt/vt.c
2958
static bool vc_is_control(struct vc_data *vc, int tc, int c)
drivers/tty/vt/vt.c
2977
if (!tc)
drivers/tty/vt/vt.c
3018
static int vc_process_ucs(struct vc_data *vc, int *c, int *tc)
drivers/tty/vt/vt.c
3046
*tc = ' ';
drivers/tty/vt/vt.c
3060
*tc = ' ';
drivers/tty/vt/vt.c
3068
*tc = *c = prev_c;
drivers/tty/vt/vt.c
3076
static int vc_get_glyph(struct vc_data *vc, int tc)
drivers/tty/vt/vt.c
3078
int glyph = conv_uni_to_pc(vc, tc);
drivers/tty/vt/vt.c
3088
if ((!vc->vc_utf || vc->vc_disp_ctrl || tc < 128) && !(tc & ~charmask)) {
drivers/tty/vt/vt.c
3095
return tc;
drivers/tty/vt/vt.c
3107
tc = ucs_get_fallback(tc);
drivers/tty/vt/vt.c
3108
if (tc)
drivers/tty/vt/vt.c
3109
return vc_get_glyph(vc, tc);
drivers/tty/vt/vt.c
3115
static int vc_con_write_normal(struct vc_data *vc, int tc, int c,
drivers/tty/vt/vt.c
3125
width = vc_process_ucs(vc, &c, &tc);
drivers/tty/vt/vt.c
3131
tc = vc_get_glyph(vc, tc);
drivers/tty/vt/vt.c
3132
if (tc == -1)
drivers/tty/vt/vt.c
3134
if (tc < 0) {
drivers/tty/vt/vt.c
3136
tc = conv_uni_to_pc(vc, '?');
drivers/tty/vt/vt.c
3137
if (tc < 0)
drivers/tty/vt/vt.c
3138
tc = '?';
drivers/tty/vt/vt.c
3157
tc = ((tc & 0x100) ? himask : 0) |
drivers/tty/vt/vt.c
3158
(tc & 0xff);
drivers/tty/vt/vt.c
3159
tc |= (vc_attr << 8) & ~himask;
drivers/tty/vt/vt.c
3161
scr_writew(tc, (u16 *)vc->vc_pos);
drivers/tty/vt/vt.c
3179
tc = conv_uni_to_pc(vc, ' ');
drivers/tty/vt/vt.c
3180
if (tc < 0)
drivers/tty/vt/vt.c
3181
tc = ' ';
drivers/tty/vt/vt.c
3204
int c, tc, n = 0;
drivers/tty/vt/vt.c
3237
tc = vc_translate(vc, &c, &rescan);
drivers/tty/vt/vt.c
3238
if (tc == -1)
drivers/tty/vt/vt.c
3241
param.c = tc;
drivers/tty/vt/vt.c
3246
if (vc_is_control(vc, tc, c)) {
drivers/tty/vt/vt.c
3252
if (vc_con_write_normal(vc, tc, c, &draw) < 0)
drivers/video/fbdev/pmag-aa-fb.c
270
MODULE_DEVICE_TABLE(tc, pmagaafb_tc_table);
drivers/video/fbdev/pmag-ba-fb.c
260
MODULE_DEVICE_TABLE(tc, pmagbafb_tc_table);
drivers/video/fbdev/pmagb-b-fb.c
378
MODULE_DEVICE_TABLE(tc, pmagbbfb_tc_table);
drivers/video/fbdev/tgafb.c
139
MODULE_DEVICE_TABLE(tc, tgafb_tc_table);
drivers/xen/efi.c
44
static efi_status_t xen_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc)
drivers/xen/efi.c
56
if (tc) {
drivers/xen/efi.c
57
tc->resolution = efi_data(op).u.get_time.resolution;
drivers/xen/efi.c
58
tc->accuracy = efi_data(op).u.get_time.accuracy;
drivers/xen/efi.c
59
tc->sets_to_zero = !!(efi_data(op).misc &
fs/smb/server/mgmt/tree_connect.c
157
struct ksmbd_tree_connect *tc;
fs/smb/server/mgmt/tree_connect.c
164
xa_for_each(&sess->tree_conns, id, tc) {
fs/smb/server/mgmt/tree_connect.c
165
if (tc->t_state == TREE_DISCONNECTED) {
fs/smb/server/mgmt/tree_connect.c
169
tc->t_state = TREE_DISCONNECTED;
fs/smb/server/mgmt/tree_connect.c
171
xa_erase(&sess->tree_conns, tc->id);
fs/smb/server/mgmt/tree_connect.c
172
ret |= __ksmbd_tree_conn_disconnect(sess, tc);
fs/unicode/mkutf8data.c
2435
unsigned int tc = 28;
fs/unicode/mkutf8data.c
2436
unsigned int nc = (vc * tc);
fs/unicode/mkutf8data.c
2451
unsigned int vi = (si % nc) / tc;
fs/unicode/mkutf8data.c
2452
unsigned int ti = si % tc;
include/linux/avf/virtchnl.h
1635
u8 tc;
include/linux/efi.h
284
typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc);
include/linux/greybus/greybus_protocols.h
1011
__u8 tc;
include/linux/net/intel/i40e_client.h
57
u8 tc; /* TC mapped to prio */
include/linux/net/intel/iidc_rdma_ice.h
27
u8 tc;
include/linux/netdevice.h
2614
int netdev_set_prio_tc_map(struct net_device *dev, u8 prio, u8 tc)
include/linux/netdevice.h
2616
if (tc >= dev->num_tc)
include/linux/netdevice.h
2619
dev->prio_tc_map[prio & TC_BITMASK] = tc & TC_BITMASK;
include/linux/netdevice.h
2625
int netdev_set_tc_queue(struct net_device *dev, u8 tc, u16 count, u16 offset);
include/linux/netdevice.h
2654
u8 tc, u16 count, u16 offset);
include/linux/qed/qed_eth_if.h
31
u8 tc;
include/linux/qed/qed_if.h
1410
#define TX_PI(tc) (RX_PI + 1 + tc)
include/linux/surface_aggregator/controller.h
906
#define SSAM_EVENT_REGISTRY(tc, tid, cid_en, cid_dis) \
include/linux/surface_aggregator/controller.h
908
.target_category = (tc), \
include/linux/surface_aggregator/serial_hub.h
244
static inline u16 ssh_tc_to_rqid(u8 tc)
include/linux/surface_aggregator/serial_hub.h
246
return tc;
include/linux/surface_aggregator/serial_hub.h
98
u8 tc;
include/linux/timecounter.h
102
extern void timecounter_init(struct timecounter *tc,
include/linux/timecounter.h
116
extern u64 timecounter_read(struct timecounter *tc);
include/linux/timecounter.h
143
static inline u64 timecounter_cyc2time(const struct timecounter *tc, u64 cycle_tstamp)
include/linux/timecounter.h
145
const struct cyclecounter *cc = tc->cc;
include/linux/timecounter.h
146
u64 delta = (cycle_tstamp - tc->cycle_last) & cc->mask;
include/linux/timecounter.h
147
u64 nsec = tc->nsec, frac = tc->frac;
include/linux/timecounter.h
155
delta = (tc->cycle_last - cycle_tstamp) & cc->mask;
include/linux/timecounter.h
158
nsec += cyclecounter_cyc2ns(cc, delta, tc->mask, &frac);
include/linux/timecounter.h
87
static inline void timecounter_adjtime(struct timecounter *tc, s64 delta)
include/linux/timecounter.h
89
tc->nsec += delta;
include/linux/transport_class.h
91
static inline void transport_container_register(struct transport_container *tc)
include/linux/transport_class.h
93
attribute_container_register(&tc->ac);
include/linux/transport_class.h
96
static inline void transport_container_unregister(struct transport_container *tc)
include/linux/transport_class.h
98
if (unlikely(attribute_container_unregister(&tc->ac)))
include/net/9p/client.h
88
struct p9_fcall tc;
include/net/flow_offload.h
308
u8 tc;
include/net/flow_offload.h
317
u8 tc;
include/net/mpls.h
32
unsigned int tc,
include/net/mpls.h
39
(tc << MPLS_LS_TC_SHIFT) |
include/net/netfilter/nf_flow_table.h
170
} tc;
include/scsi/scsi_transport.h
48
#define transport_class_to_shost(tc) \
include/scsi/scsi_transport.h
49
dev_to_shost((tc)->parent)
include/sound/hdaudio.h
561
struct timecounter tc;
kernel/time/timecounter.c
12
tc->cc = cc;
kernel/time/timecounter.c
13
tc->cycle_last = cc->read(cc);
kernel/time/timecounter.c
14
tc->nsec = start_tstamp;
kernel/time/timecounter.c
15
tc->mask = (1ULL << cc->shift) - 1;
kernel/time/timecounter.c
16
tc->frac = 0;
kernel/time/timecounter.c
31
static u64 timecounter_read_delta(struct timecounter *tc)
kernel/time/timecounter.c
37
cycle_now = tc->cc->read(tc->cc);
kernel/time/timecounter.c
40
cycle_delta = (cycle_now - tc->cycle_last) & tc->cc->mask;
kernel/time/timecounter.c
43
ns_offset = cyclecounter_cyc2ns(tc->cc, cycle_delta,
kernel/time/timecounter.c
44
tc->mask, &tc->frac);
kernel/time/timecounter.c
47
tc->cycle_last = cycle_now;
kernel/time/timecounter.c
52
u64 timecounter_read(struct timecounter *tc)
kernel/time/timecounter.c
57
nsec = timecounter_read_delta(tc);
kernel/time/timecounter.c
58
nsec += tc->nsec;
kernel/time/timecounter.c
59
tc->nsec = nsec;
kernel/time/timecounter.c
8
void timecounter_init(struct timecounter *tc,
kernel/trace/blktrace.c
1404
int tc = t->action >> BLK_TC_SHIFT;
kernel/trace/blktrace.c
1411
if (tc & BLK_TC_FLUSH)
kernel/trace/blktrace.c
1414
if (tc & BLK_TC_DISCARD)
kernel/trace/blktrace.c
1416
else if (tc & BLK_TC_WRITE_ZEROES) {
kernel/trace/blktrace.c
1419
} else if (tc & BLK_TC_WRITE)
kernel/trace/blktrace.c
1426
if (tc & BLK_TC_FUA)
kernel/trace/blktrace.c
1428
if (tc & BLK_TC_AHEAD)
kernel/trace/blktrace.c
1430
if (tc & BLK_TC_SYNC)
kernel/trace/blktrace.c
1432
if (tc & BLK_TC_META)
lib/kunit/test.c
245
struct kunit_case *tc;
lib/kunit/test.c
248
kunit_suite_for_each_test_case(suite, tc) {
lib/kunit/test.c
249
if (tc == test_case)
lib/math/tests/gcd_kunit.c
28
static void get_desc(const struct test_case_params *tc, char *desc)
lib/math/tests/gcd_kunit.c
30
strscpy(desc, tc->name, KUNIT_PARAM_DESC_SIZE);
lib/math/tests/gcd_kunit.c
37
const struct test_case_params *tc = (const struct test_case_params *)test->param_value;
lib/math/tests/gcd_kunit.c
39
KUNIT_EXPECT_EQ(test, tc->expected_result, gcd(tc->val1, tc->val2));
lib/math/tests/int_log_kunit.c
36
static void get_desc(const struct test_case_params *tc, char *desc)
lib/math/tests/int_log_kunit.c
38
strscpy(desc, tc->name, KUNIT_PARAM_DESC_SIZE);
lib/math/tests/int_log_kunit.c
46
const struct test_case_params *tc = (const struct test_case_params *)test->param_value;
lib/math/tests/int_log_kunit.c
48
KUNIT_EXPECT_EQ(test, tc->expected_result, intlog2(tc->value));
lib/math/tests/int_log_kunit.c
55
const struct test_case_params *tc = (const struct test_case_params *)test->param_value;
lib/math/tests/int_log_kunit.c
57
KUNIT_EXPECT_EQ(test, tc->expected_result, intlog10(tc->value));
lib/math/tests/int_pow_kunit.c
25
static void get_desc(const struct test_case_params *tc, char *desc)
lib/math/tests/int_pow_kunit.c
27
strscpy(desc, tc->name, KUNIT_PARAM_DESC_SIZE);
lib/math/tests/int_pow_kunit.c
34
const struct test_case_params *tc = (const struct test_case_params *)test->param_value;
lib/math/tests/int_pow_kunit.c
36
KUNIT_EXPECT_EQ(test, tc->expected_result, int_pow(tc->base, tc->exponent));
lib/math/tests/int_sqrt_kunit.c
39
static void get_desc(const struct test_case_params *tc, char *desc)
lib/math/tests/int_sqrt_kunit.c
41
strscpy(desc, tc->name, KUNIT_PARAM_DESC_SIZE);
lib/math/tests/int_sqrt_kunit.c
48
const struct test_case_params *tc = (const struct test_case_params *)test->param_value;
lib/math/tests/int_sqrt_kunit.c
50
KUNIT_EXPECT_EQ(test, tc->expected_result, int_sqrt(tc->x));
lib/tests/ffs_kunit.c
212
const struct ffs_test_case *tc = &basic_test_cases[i];
lib/tests/ffs_kunit.c
215
validate_ffs_result(test, tc->input, ffs(tc->input),
lib/tests/ffs_kunit.c
216
tc->expected_ffs, "ffs", tc->description);
lib/tests/ffs_kunit.c
219
validate_ffs_result(test, tc->input, fls(tc->input),
lib/tests/ffs_kunit.c
220
tc->expected_fls, "fls", tc->description);
lib/tests/ffs_kunit.c
223
if (tc->input != 0) {
lib/tests/ffs_kunit.c
225
unsigned int expected_ffs_0based = tc->expected_ffs - 1;
lib/tests/ffs_kunit.c
226
validate_ffs_result(test, tc->input, __ffs(tc->input),
lib/tests/ffs_kunit.c
227
expected_ffs_0based, "__ffs", tc->description);
lib/tests/ffs_kunit.c
231
if (tc->input != 0) {
lib/tests/ffs_kunit.c
233
unsigned int expected_fls_0based = tc->expected_fls - 1;
lib/tests/ffs_kunit.c
234
validate_ffs_result(test, tc->input, __fls(tc->input),
lib/tests/ffs_kunit.c
235
expected_fls_0based, "__fls", tc->description);
lib/tests/ffs_kunit.c
248
const struct ffs64_test_case *tc = &ffs64_test_cases[i];
lib/tests/ffs_kunit.c
251
validate_ffs64_result(test, tc->input, fls64(tc->input),
lib/tests/ffs_kunit.c
252
tc->expected_fls64, "fls64", tc->description);
lib/tests/ffs_kunit.c
255
if (tc->input != 0) {
lib/tests/ffs_kunit.c
256
validate_ffs64_result(test, tc->input, __ffs64(tc->input),
lib/tests/ffs_kunit.c
257
tc->expected_ffs64_0based, "__ffs64",
lib/tests/ffs_kunit.c
258
tc->description);
lib/tests/ffs_kunit.c
387
const struct ffz_test_case *tc = &ffz_test_cases[i];
lib/tests/ffs_kunit.c
388
unsigned long result = ffz(tc->input);
lib/tests/ffs_kunit.c
390
KUNIT_EXPECT_EQ_MSG(test, result, tc->expected_ffz,
lib/tests/ffs_kunit.c
392
tc->input, tc->description, tc->expected_ffz, result);
net/6lowpan/iphc.c
1020
u8 tc = lowpan_iphc_get_tc(hdr), tf[4], val;
net/6lowpan/iphc.c
1023
pr_debug("tc 0x%02x\n", tc);
net/6lowpan/iphc.c
1026
if (!tc) {
net/6lowpan/iphc.c
1037
lowpan_push_hc_data(hc_ptr, &tc, sizeof(tc));
net/6lowpan/iphc.c
1042
if (!(tc & 0x3f)) {
net/6lowpan/iphc.c
1055
tf[0] |= (tc & 0xc0);
net/6lowpan/iphc.c
1068
memcpy(&tf[0], &tc, sizeof(tc));
net/9p/client.c
175
if (p9_fcall_init(c, &req->tc, alloc_tsize))
net/9p/client.c
180
p9pdu_reset(&req->tc);
net/9p/client.c
199
req->tc.tag = tag;
net/9p/client.c
220
p9_fcall_fini(&req->tc);
net/9p/client.c
250
if (req->tc.tag != tag) {
net/9p/client.c
271
u16 tag = r->tc.tag;
net/9p/client.c
284
p9_fcall_fini(&r->tc);
net/9p/client.c
310
req->tc.tag);
net/9p/client.c
324
p9_debug(P9_DEBUG_MUX, " tag %d\n", req->tc.tag);
net/9p/client.c
333
p9_debug(P9_DEBUG_MUX, "wakeup: %d\n", req->tc.tag);
net/9p/client.c
480
err = p9_parse_header(&oldreq->tc, NULL, NULL, &oldtag, 1);
net/9p/client.c
527
p9pdu_prepare(&req->tc, req->tc.tag, type);
net/9p/client.c
528
err = p9pdu_vwritef(&req->tc, c->proto_version, fmt, ap);
net/9p/client.c
531
p9pdu_finalize(c, &req->tc);
net/9p/client.c
532
trace_9p_client_req(c, type, req->tc.tag);
net/9p/client.c
573
req->tc.zc = false;
net/9p/client.c
675
req->tc.zc = true;
net/9p/trans_fd.c
438
m->wbuf = req->tc.sdata;
net/9p/trans_fd.c
439
m->wsize = req->tc.size;
net/9p/trans_fd.c
638
m, current, &req->tc, req->tc.id);
net/9p/trans_rdma.c
237
c->busa, c->req->tc.size,
net/9p/trans_rdma.c
374
c->req->tc.sdata, c->req->tc.size,
net/9p/trans_rdma.c
384
sge.length = c->req->tc.size;
net/9p/trans_rdma.c
413
c->req->tc.size, DMA_TO_DEVICE);
net/9p/trans_usbg.c
102
req->buf = p9_tx_req->tc.sdata;
net/9p/trans_usbg.c
103
req->length = p9_tx_req->tc.size;
net/9p/trans_usbg.c
99
if (!(p9_tx_req->tc.size % usb9pfs->in_ep->maxpacket))
net/9p/trans_virtio.c
272
VIRTQUEUE_NUM, req->tc.sdata, req->tc.size);
net/9p/trans_virtio.c
447
memcpy(&req->tc.sdata[req->tc.size - 4], &v, 4);
net/9p/trans_virtio.c
454
sz = cpu_to_le32(req->tc.size + outlen);
net/9p/trans_virtio.c
455
memcpy(&req->tc.sdata[0], &sz, sizeof(sz));
net/9p/trans_virtio.c
466
memcpy(&req->tc.sdata[req->tc.size - 4], &v, 4);
net/9p/trans_virtio.c
478
VIRTQUEUE_NUM, req->tc.sdata, req->tc.size);
net/9p/trans_xen.c
122
u32 size = p9_req->tc.size;
net/9p/trans_xen.c
135
num = p9_req->tc.tag % XEN_9PFS_NUM_RINGS;
net/9p/trans_xen.c
157
xen_9pfs_write_packet(ring->data.out, p9_req->tc.sdata, size,
net/core/dev.c
2630
struct netdev_tc_txq *tc = &dev->tc_to_txq[0];
net/core/dev.c
2633
if (tc->offset + tc->count > txq) {
net/core/dev.c
2643
tc = &dev->tc_to_txq[q];
net/core/dev.c
2644
if (tc->offset + tc->count > txq) {
net/core/dev.c
2655
struct netdev_tc_txq *tc = &dev->tc_to_txq[0];
net/core/dev.c
2659
for (i = 0; i < TC_MAX_QUEUE; i++, tc++) {
net/core/dev.c
2660
if ((txq - tc->offset) < tc->count)
net/core/dev.c
2832
int tc, bool skip_tc)
net/core/dev.c
2839
if (i == tc && skip_tc)
net/core/dev.c
2856
int maps_sz, num_tc = 1, tc = 0;
net/core/dev.c
2871
tc = netdev_txq_to_tc(dev, index);
net/core/dev.c
2872
if (tc < 0)
net/core/dev.c
2915
tci = j * num_tc + tc;
net/core/dev.c
2938
tci = j * num_tc + tc;
net/core/dev.c
2963
xps_copy_dev_maps(dev_maps, new_dev_maps, j, tc,
net/core/dev.c
3011
if (i == tc &&
net/core/dev.c
3092
int netdev_set_tc_queue(struct net_device *dev, u8 tc, u16 count, u16 offset)
net/core/dev.c
3094
if (tc >= dev->num_tc)
net/core/dev.c
3100
dev->tc_to_txq[tc].count = count;
net/core/dev.c
3101
dev->tc_to_txq[tc].offset = offset;
net/core/dev.c
3141
u8 tc, u16 count, u16 offset)
net/core/dev.c
3144
if (sb_dev->num_tc >= 0 || tc >= dev->num_tc)
net/core/dev.c
3152
sb_dev->tc_to_txq[tc].count = count;
net/core/dev.c
3153
sb_dev->tc_to_txq[tc].offset = offset;
net/core/dev.c
3518
u8 tc = netdev_get_prio_tc_map(dev, skb->priority);
net/core/dev.c
3520
qoffset = sb_dev->tc_to_txq[tc].offset;
net/core/dev.c
3521
qcount = sb_dev->tc_to_txq[tc].count;
net/core/dev.c
3524
sb_dev->name, qoffset, tc);
net/core/dev.c
4586
int tc = netdev_get_prio_tc_map(dev, skb->priority);
net/core/dev.c
4590
if (tc >= dev_maps->num_tc || tci >= dev_maps->nr_ids)
net/core/dev.c
4594
tci += tc;
net/core/net-sysfs.c
1442
int num_tc, tc, index, ret;
net/core/net-sysfs.c
1457
tc = netdev_txq_to_tc(dev, index);
net/core/net-sysfs.c
1461
if (tc < 0)
net/core/net-sysfs.c
1471
return num_tc < 0 ? sysfs_emit(buf, "%d%d\n", tc, num_tc) :
net/core/net-sysfs.c
1472
sysfs_emit(buf, "%d\n", tc);
net/core/net-sysfs.c
1714
int tc, char *buf, enum xps_map_type type)
net/core/net-sysfs.c
1736
if (!dev_maps || tc >= dev_maps->num_tc)
net/core/net-sysfs.c
1740
int i, tci = j * dev_maps->num_tc + tc;
net/core/net-sysfs.c
1768
int len, tc, ret;
net/core/net-sysfs.c
1782
tc = netdev_txq_to_tc(dev, index);
net/core/net-sysfs.c
1783
if (tc < 0) {
net/core/net-sysfs.c
1794
len = xps_queue_show(dev, index, tc, buf, XPS_CPUS);
net/core/net-sysfs.c
1848
int tc, ret;
net/core/net-sysfs.c
1856
tc = netdev_txq_to_tc(dev, index);
net/core/net-sysfs.c
1864
ret = tc >= 0 ? xps_queue_show(dev, index, tc, buf, XPS_RXQS) : -EINVAL;
net/ipv6/datagram.c
1013
int tc;
net/ipv6/datagram.c
1019
tc = *(int *)CMSG_DATA(cmsg);
net/ipv6/datagram.c
1020
if (tc < -1 || tc > 0xff)
net/ipv6/datagram.c
1024
ipc6->tclass = tc;
net/mpls/af_mpls.c
1813
if (dec.tc) {
net/mpls/internal.h
14
u8 tc;
net/mpls/internal.h
182
result.tc = (entry & MPLS_LS_TC_MASK) >> MPLS_LS_TC_SHIFT;
net/netfilter/nf_flow_table_offload.c
116
key->meta.ingress_ifindex = tuple->tc.iifidx;
net/rds/tcp.c
101
return tcp_sk(tc->t_sock->sk)->snd_una;
net/rds/tcp.c
105
struct rds_tcp_connection *tc)
net/rds/tcp.c
107
rdsdebug("restoring sock %p callbacks from tc %p\n", sock, tc);
net/rds/tcp.c
112
list_del_init(&tc->t_list_item);
net/rds/tcp.c
116
if (!tc->t_cpath->cp_conn->c_isv6)
net/rds/tcp.c
120
tc->t_sock = NULL;
net/rds/tcp.c
122
sock->sk->sk_write_space = tc->t_orig_write_space;
net/rds/tcp.c
123
sock->sk->sk_data_ready = tc->t_orig_data_ready;
net/rds/tcp.c
124
sock->sk->sk_state_change = tc->t_orig_state_change;
net/rds/tcp.c
142
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp.c
143
struct socket *osock = tc->t_sock;
net/rds/tcp.c
174
if (tc->t_tinc) {
net/rds/tcp.c
175
rds_inc_put(&tc->t_tinc->ti_inc);
net/rds/tcp.c
176
tc->t_tinc = NULL;
net/rds/tcp.c
178
tc->t_tinc_hdr_rem = sizeof(struct rds_header);
net/rds/tcp.c
179
tc->t_tinc_data_rem = 0;
net/rds/tcp.c
180
rds_tcp_restore_callbacks(osock, tc);
net/rds/tcp.c
196
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp.c
198
rdsdebug("setting sock %p callbacks to tc %p\n", sock, tc);
net/rds/tcp.c
203
list_add_tail(&tc->t_list_item, &rds_tcp_tc_list);
net/rds/tcp.c
207
if (!tc->t_cpath->cp_conn->c_isv6)
net/rds/tcp.c
215
tc->t_sock = sock;
net/rds/tcp.c
216
if (!tc->t_rtn)
net/rds/tcp.c
217
tc->t_rtn = net_generic(sock_net(sock->sk), rds_tcp_netid);
net/rds/tcp.c
218
tc->t_cpath = cp;
net/rds/tcp.c
219
tc->t_orig_data_ready = sock->sk->sk_data_ready;
net/rds/tcp.c
220
tc->t_orig_write_space = sock->sk->sk_write_space;
net/rds/tcp.c
221
tc->t_orig_state_change = sock->sk->sk_state_change;
net/rds/tcp.c
239
struct rds_tcp_connection *tc;
net/rds/tcp.c
247
list_for_each_entry(tc, &rds_tcp_tc_list, t_list_item) {
net/rds/tcp.c
248
struct inet_sock *inet = inet_sk(tc->t_sock->sk);
net/rds/tcp.c
250
if (tc->t_cpath->cp_conn->c_isv6)
net/rds/tcp.c
258
tsinfo.hdr_rem = tc->t_tinc_hdr_rem;
net/rds/tcp.c
259
tsinfo.data_rem = tc->t_tinc_data_rem;
net/rds/tcp.c
260
tsinfo.last_sent_nxt = tc->t_last_sent_nxt;
net/rds/tcp.c
261
tsinfo.last_expected_una = tc->t_last_expected_una;
net/rds/tcp.c
262
tsinfo.last_seen_una = tc->t_last_seen_una;
net/rds/tcp.c
263
tsinfo.tos = tc->t_cpath->cp_conn->c_tos;
net/rds/tcp.c
285
struct rds_tcp_connection *tc;
net/rds/tcp.c
293
list_for_each_entry(tc, &rds_tcp_tc_list, t_list_item) {
net/rds/tcp.c
294
struct sock *sk = tc->t_sock->sk;
net/rds/tcp.c
302
tsinfo6.hdr_rem = tc->t_tinc_hdr_rem;
net/rds/tcp.c
303
tsinfo6.data_rem = tc->t_tinc_data_rem;
net/rds/tcp.c
304
tsinfo6.last_sent_nxt = tc->t_last_sent_nxt;
net/rds/tcp.c
305
tsinfo6.last_expected_una = tc->t_last_expected_una;
net/rds/tcp.c
306
tsinfo6.last_seen_una = tc->t_last_seen_una;
net/rds/tcp.c
356
struct rds_tcp_connection *tc = arg;
net/rds/tcp.c
359
rdsdebug("freeing tc %p\n", tc);
net/rds/tcp.c
362
if (!tc->t_tcp_node_detached)
net/rds/tcp.c
363
list_del(&tc->t_tcp_node);
net/rds/tcp.c
366
kmem_cache_free(rds_tcp_conn_slab, tc);
net/rds/tcp.c
371
struct rds_tcp_connection *tc;
net/rds/tcp.c
376
tc = kmem_cache_zalloc(rds_tcp_conn_slab, gfp);
net/rds/tcp.c
377
if (!tc) {
net/rds/tcp.c
381
mutex_init(&tc->t_conn_path_lock);
net/rds/tcp.c
382
tc->t_sock = NULL;
net/rds/tcp.c
383
tc->t_rtn = NULL;
net/rds/tcp.c
384
tc->t_tinc = NULL;
net/rds/tcp.c
385
tc->t_tinc_hdr_rem = sizeof(struct rds_header);
net/rds/tcp.c
386
tc->t_tinc_data_rem = 0;
net/rds/tcp.c
387
init_waitqueue_head(&tc->t_recv_done_waitq);
net/rds/tcp.c
389
conn->c_path[i].cp_transport_data = tc;
net/rds/tcp.c
390
tc->t_cpath = &conn->c_path[i];
net/rds/tcp.c
391
tc->t_tcp_node_detached = true;
net/rds/tcp.c
398
tc = conn->c_path[i].cp_transport_data;
net/rds/tcp.c
399
tc->t_tcp_node_detached = false;
net/rds/tcp.c
400
list_add_tail(&tc->t_tcp_node, &rds_tcp_conn_list);
net/rds/tcp.c
413
struct rds_tcp_connection *tc, *_tc;
net/rds/tcp.c
415
list_for_each_entry_safe(tc, _tc, list, t_tcp_node) {
net/rds/tcp.c
416
if (tc->t_cpath->cp_conn == conn)
net/rds/tcp.c
434
struct rds_tcp_connection *tc, *_tc;
net/rds/tcp.c
439
list_for_each_entry_safe(tc, _tc, &rds_tcp_conn_list, t_tcp_node) {
net/rds/tcp.c
440
if (!list_has_conn(&tmp_list, tc->t_cpath->cp_conn))
net/rds/tcp.c
441
list_move_tail(&tc->t_tcp_node, &tmp_list);
net/rds/tcp.c
445
list_for_each_entry_safe(tc, _tc, &tmp_list, t_tcp_node)
net/rds/tcp.c
446
rds_conn_destroy(tc->t_cpath->cp_conn);
net/rds/tcp.c
605
struct rds_tcp_connection *tc, *_tc;
net/rds/tcp.c
615
list_for_each_entry_safe(tc, _tc, &rds_tcp_conn_list, t_tcp_node) {
net/rds/tcp.c
616
struct net *c_net = read_pnet(&tc->t_cpath->cp_conn->c_net);
net/rds/tcp.c
620
if (!list_has_conn(&tmp_list, tc->t_cpath->cp_conn)) {
net/rds/tcp.c
621
list_move_tail(&tc->t_tcp_node, &tmp_list);
net/rds/tcp.c
623
list_del(&tc->t_tcp_node);
net/rds/tcp.c
624
tc->t_tcp_node_detached = true;
net/rds/tcp.c
628
list_for_each_entry_safe(tc, _tc, &tmp_list, t_tcp_node)
net/rds/tcp.c
629
rds_conn_destroy(tc->t_cpath->cp_conn);
net/rds/tcp.c
670
struct rds_tcp_connection *tc, *_tc;
net/rds/tcp.c
673
list_for_each_entry_safe(tc, _tc, &rds_tcp_conn_list, t_tcp_node) {
net/rds/tcp.c
674
struct net *c_net = read_pnet(&tc->t_cpath->cp_conn->c_net);
net/rds/tcp.c
676
if (net != c_net || !tc->t_sock)
net/rds/tcp.c
680
rds_conn_path_drop(tc->t_cpath, false);
net/rds/tcp.c
93
u32 rds_tcp_write_seq(struct rds_tcp_connection *tc)
net/rds/tcp.c
96
return tcp_sk(tc->t_sock->sk)->write_seq;
net/rds/tcp.c
99
u32 rds_tcp_snd_una(struct rds_tcp_connection *tc)
net/rds/tcp.h
77
struct rds_tcp_connection *tc);
net/rds/tcp.h
78
u32 rds_tcp_write_seq(struct rds_tcp_connection *tc);
net/rds/tcp.h
79
u32 rds_tcp_snd_una(struct rds_tcp_connection *tc);
net/rds/tcp_connect.c
110
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp_connect.c
118
mutex_lock(&tc->t_conn_path_lock);
net/rds/tcp_connect.c
121
mutex_unlock(&tc->t_conn_path_lock);
net/rds/tcp_connect.c
165
if (++tc->t_client_port_group >= port_groups)
net/rds/tcp_connect.c
166
tc->t_client_port_group = 0;
net/rds/tcp_connect.c
168
tc->t_client_port_group * RDS_MPATH_WORKERS +
net/rds/tcp_connect.c
218
mutex_unlock(&tc->t_conn_path_lock);
net/rds/tcp_connect.c
235
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp_connect.c
236
struct socket *sock = tc->t_sock;
net/rds/tcp_connect.c
241
cp->cp_conn, tc, sock);
net/rds/tcp_connect.c
270
} while (!wait_event_timeout(tc->t_recv_done_waitq,
net/rds/tcp_connect.c
282
tc->t_last_seen_una = rds_tcp_snd_una(tc);
net/rds/tcp_connect.c
283
rds_send_path_drop_acked(cp, rds_tcp_snd_una(tc),
net/rds/tcp_connect.c
286
rds_tcp_restore_callbacks(sock, tc); /* tc->tc_sock = NULL */
net/rds/tcp_connect.c
292
if (tc->t_tinc) {
net/rds/tcp_connect.c
293
rds_inc_put(&tc->t_tinc->ti_inc);
net/rds/tcp_connect.c
294
tc->t_tinc = NULL;
net/rds/tcp_connect.c
296
tc->t_tinc_hdr_rem = sizeof(struct rds_header);
net/rds/tcp_connect.c
297
tc->t_tinc_data_rem = 0;
net/rds/tcp_connect.c
44
struct rds_tcp_connection *tc;
net/rds/tcp_connect.c
52
tc = cp->cp_transport_data;
net/rds/tcp_connect.c
53
state_change = tc->t_orig_state_change;
net/rds/tcp_connect.c
55
rdsdebug("sock %p state_change to %d\n", tc->t_sock, sk->sk_state);
net/rds/tcp_connect.c
80
if (wq_has_sleeper(&tc->t_recv_done_waitq))
net/rds/tcp_connect.c
81
wake_up(&tc->t_recv_done_waitq);
net/rds/tcp_connect.c
86
if (wq_has_sleeper(&tc->t_recv_done_waitq))
net/rds/tcp_connect.c
87
wake_up(&tc->t_recv_done_waitq);
net/rds/tcp_listen.c
110
struct rds_tcp_connection *tc;
net/rds/tcp_listen.c
118
tc = conn->c_path->cp_transport_data;
net/rds/tcp_listen.c
119
rtn = tc->t_rtn;
net/rds/tcp_listen.c
123
sock = tc->t_sock;
net/rds/tcp_recv.c
160
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp_recv.c
161
struct rds_tcp_incoming *tinc = tc->t_tinc;
net/rds/tcp_recv.c
165
rdsdebug("tcp data tc %p skb %p offset %u len %zu\n", tc, skb, offset,
net/rds/tcp_recv.c
180
tc->t_tinc = tinc;
net/rds/tcp_recv.c
194
if (left && tc->t_tinc_hdr_rem) {
net/rds/tcp_recv.c
195
to_copy = min(tc->t_tinc_hdr_rem, left);
net/rds/tcp_recv.c
201
tc->t_tinc_hdr_rem,
net/rds/tcp_recv.c
203
tc->t_tinc_hdr_rem -= to_copy;
net/rds/tcp_recv.c
207
if (tc->t_tinc_hdr_rem == 0) {
net/rds/tcp_recv.c
209
tc->t_tinc_data_rem =
net/rds/tcp_recv.c
216
if (left && tc->t_tinc_data_rem) {
net/rds/tcp_recv.c
217
to_copy = min(tc->t_tinc_data_rem, left);
net/rds/tcp_recv.c
232
tc->t_tinc_data_rem -= to_copy;
net/rds/tcp_recv.c
237
if (tc->t_tinc_hdr_rem == 0 && tc->t_tinc_data_rem == 0) {
net/rds/tcp_recv.c
248
tc->t_tinc_hdr_rem = sizeof(struct rds_header);
net/rds/tcp_recv.c
249
tc->t_tinc_data_rem = 0;
net/rds/tcp_recv.c
250
tc->t_tinc = NULL;
net/rds/tcp_recv.c
258
skb_queue_len(&tc->t_sock->sk->sk_receive_queue));
net/rds/tcp_recv.c
265
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp_recv.c
266
struct socket *sock = tc->t_sock;
net/rds/tcp_recv.c
278
rdsdebug("tcp_read_sock for tc %p gfp 0x%x returned %d\n", tc, gfp,
net/rds/tcp_recv.c
282
wq_has_sleeper(&tc->t_recv_done_waitq))
net/rds/tcp_recv.c
283
wake_up(&tc->t_recv_done_waitq);
net/rds/tcp_recv.c
297
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp_recv.c
298
struct socket *sock = tc->t_sock;
net/rds/tcp_recv.c
302
cp->cp_index, tc, sock);
net/rds/tcp_recv.c
315
struct rds_tcp_connection *tc;
net/rds/tcp_recv.c
327
tc = cp->cp_transport_data;
net/rds/tcp_recv.c
328
ready = tc->t_orig_data_ready;
net/rds/tcp_send.c
103
set_bit(SOCK_NOSPACE, &tc->t_sock->sk->sk_socket->flags);
net/rds/tcp_send.c
105
ret = rds_tcp_sendmsg(tc->t_sock,
net/rds/tcp_send.c
125
ret = sock_sendmsg(tc->t_sock, &msg);
net/rds/tcp_send.c
183
struct rds_tcp_connection *tc;
net/rds/tcp_send.c
192
tc = cp->cp_transport_data;
net/rds/tcp_send.c
193
rdsdebug("write_space for tc %p\n", tc);
net/rds/tcp_send.c
194
write_space = tc->t_orig_write_space;
net/rds/tcp_send.c
197
rdsdebug("tcp una %u\n", rds_tcp_snd_una(tc));
net/rds/tcp_send.c
198
tc->t_last_seen_una = rds_tcp_snd_una(tc);
net/rds/tcp_send.c
199
rds_send_path_drop_acked(cp, rds_tcp_snd_una(tc), rds_tcp_is_acked);
net/rds/tcp_send.c
43
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp_send.c
45
tcp_sock_set_cork(tc->t_sock->sk, true);
net/rds/tcp_send.c
50
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp_send.c
52
tcp_sock_set_cork(tc->t_sock->sk, false);
net/rds/tcp_send.c
74
struct rds_tcp_connection *tc = cp->cp_transport_data;
net/rds/tcp_send.c
85
tc->t_last_sent_nxt = rds_tcp_write_seq(tc);
net/rds/tcp_send.c
86
rm->m_ack_seq = tc->t_last_sent_nxt +
net/rds/tcp_send.c
91
tc->t_last_expected_una = rm->m_ack_seq + 1;
net/rds/tcp_send.c
97
rm, rds_tcp_write_seq(tc),
net/sched/act_ct.c
406
entry->tuplehash[dir].tuple.tc.iifidx = act_ct_ext->ifindex[dir];
net/sched/act_mpls.c
394
entry->mpls_push.tc = tcf_mpls_tc(act);
net/sched/act_mpls.c
405
entry->mpls_mangle.tc = tcf_mpls_tc(act);
net/sched/cls_flower.c
1058
u8 tc = nla_get_u8(tb[TCA_FLOWER_KEY_MPLS_TC]);
net/sched/cls_flower.c
1060
if (tc & ~MPLS_TC_MASK) {
net/sched/cls_flower.c
1066
lse_val->mpls_tc = tc;
net/sched/cls_flower.c
949
u8 tc = nla_get_u8(tb[TCA_FLOWER_KEY_MPLS_OPT_LSE_TC]);
net/sched/cls_flower.c
951
if (tc & ~MPLS_TC_MASK) {
net/sched/cls_flower.c
957
lse_val->mpls_tc = tc;
net/sched/cls_u32.c
353
struct tc_u_common *tc;
net/sched/cls_u32.c
354
hlist_for_each_entry(tc, tc_u_hash(key), hnode) {
net/sched/cls_u32.c
355
if (tc->ptr == key)
net/sched/cls_u32.c
356
return tc;
net/sched/sch_mqprio.c
175
int err, tc;
net/sched/sch_mqprio.c
187
tc = nla_get_u32(tb[TCA_MQPRIO_TC_ENTRY_INDEX]);
net/sched/sch_mqprio.c
188
if (*seen_tcs & BIT(tc)) {
net/sched/sch_mqprio.c
194
*seen_tcs |= BIT(tc);
net/sched/sch_mqprio.c
197
fp[tc] = nla_get_u32(tb[TCA_MQPRIO_TC_ENTRY_FP]);
net/sched/sch_mqprio.c
212
int tc, rem;
net/sched/sch_mqprio.c
215
for (tc = 0; tc < TC_QOPT_MAX_QUEUE; tc++)
net/sched/sch_mqprio.c
216
fp[tc] = priv->fp[tc];
net/sched/sch_mqprio.c
225
for (tc = 0; tc < TC_QOPT_MAX_QUEUE; tc++) {
net/sched/sch_mqprio.c
226
priv->fp[tc] = fp[tc];
net/sched/sch_mqprio.c
227
if (fp[tc] == TC_FP_PREEMPTIBLE)
net/sched/sch_mqprio.c
355
int len, tc;
net/sched/sch_mqprio.c
373
for (tc = 0; tc < TC_QOPT_MAX_QUEUE; tc++)
net/sched/sch_mqprio.c
374
priv->fp[tc] = TC_FP_EXPRESS;
net/sched/sch_mqprio.c
529
int tc;
net/sched/sch_mqprio.c
531
for (tc = 0; tc < TC_QOPT_MAX_QUEUE; tc++) {
net/sched/sch_mqprio.c
536
if (nla_put_u32(skb, TCA_MQPRIO_TC_ENTRY_INDEX, tc))
net/sched/sch_mqprio.c
539
if (nla_put_u32(skb, TCA_MQPRIO_TC_ENTRY_FP, priv->fp[tc]))
net/sched/sch_mqprio.c
646
int tc = netdev_txq_to_tc(dev, cl - 1);
net/sched/sch_mqprio.c
648
tcm->tcm_parent = (tc < 0) ? 0 :
net/sched/sch_mqprio.c
650
TC_H_MIN(tc + TC_H_MIN_PRIORITY));
net/sched/sch_mqprio.c
671
struct netdev_tc_txq tc = dev->tc_to_txq[cl & TC_BITMASK];
net/sched/sch_mqprio.c
682
for (i = tc.offset; i < tc.offset + tc.count; i++) {
net/sched/sch_mqprio_lib.c
105
int tc, num_tc = netdev_get_num_tc(dev);
net/sched/sch_mqprio_lib.c
110
for (tc = 0; tc < num_tc; tc++) {
net/sched/sch_mqprio_lib.c
111
qopt->count[tc] = dev->tc_to_txq[tc].count;
net/sched/sch_mqprio_lib.c
112
qopt->offset[tc] = dev->tc_to_txq[tc].offset;
net/sched/sch_mqprio_lib.c
121
int tc;
net/sched/sch_mqprio_lib.c
123
for (tc = 0; tc < TC_QOPT_MAX_QUEUE; tc++)
net/sched/sch_mqprio_lib.c
124
if (fp[tc] == TC_FP_PREEMPTIBLE)
net/sched/sch_mqprio_lib.c
125
preemptible_tcs |= BIT(tc);
net/sched/sch_taprio.c
1247
int tc;
net/sched/sch_taprio.c
125
int tc;
net/sched/sch_taprio.c
1260
for (tc = 0; tc < num_tc; tc++) {
net/sched/sch_taprio.c
1261
if (first->gate_duration[tc] == sched->cycle_time)
net/sched/sch_taprio.c
1262
first->gate_close_time[tc] = KTIME_MAX;
net/sched/sch_taprio.c
1264
first->gate_close_time[tc] = ktime_add_ns(base, first->gate_duration[tc]);
net/sched/sch_taprio.c
140
for (tc = 0; tc < num_tc; tc++) {
net/sched/sch_taprio.c
141
if (!(gates_still_open & BIT(tc)))
net/sched/sch_taprio.c
144
if (cur->gate_mask & BIT(tc))
net/sched/sch_taprio.c
145
entry->gate_duration[tc] += cur->interval;
net/sched/sch_taprio.c
147
gates_still_open &= ~BIT(tc);
net/sched/sch_taprio.c
1522
int tc, err = 0;
net/sched/sch_taprio.c
1534
for (tc = 0; tc < TC_MAX_QUEUE; tc++) {
net/sched/sch_taprio.c
1535
if (q->max_sdu[tc]) {
net/sched/sch_taprio.c
1556
for (tc = 0; tc < TC_MAX_QUEUE; tc++)
net/sched/sch_taprio.c
1557
offload->max_sdu[tc] = q->max_sdu[tc];
net/sched/sch_taprio.c
157
for (tc = 0; tc < num_tc; tc++)
net/sched/sch_taprio.c
158
if (entry->gate_duration[tc] &&
net/sched/sch_taprio.c
159
sched->max_open_gate_duration[tc] < entry->gate_duration[tc])
net/sched/sch_taprio.c
160
sched->max_open_gate_duration[tc] = entry->gate_duration[tc];
net/sched/sch_taprio.c
165
struct sched_entry *entry, int tc)
net/sched/sch_taprio.c
167
return ktime_before(skb_end_time, entry->gate_close_time[tc]);
net/sched/sch_taprio.c
1708
int err, tc;
net/sched/sch_taprio.c
1721
tc = nla_get_u32(tb[TCA_TAPRIO_TC_ENTRY_INDEX]);
net/sched/sch_taprio.c
1722
if (*seen_tcs & BIT(tc)) {
net/sched/sch_taprio.c
1728
*seen_tcs |= BIT(tc);
net/sched/sch_taprio.c
1737
max_sdu[tc] = val;
net/sched/sch_taprio.c
1741
fp[tc] = nla_get_u32(tb[TCA_TAPRIO_TC_ENTRY_FP]);
net/sched/sch_taprio.c
1757
int tc, rem;
net/sched/sch_taprio.c
1760
for (tc = 0; tc < TC_QOPT_MAX_QUEUE; tc++) {
net/sched/sch_taprio.c
1761
max_sdu[tc] = q->max_sdu[tc];
net/sched/sch_taprio.c
1762
fp[tc] = q->fp[tc];
net/sched/sch_taprio.c
1772
for (tc = 0; tc < TC_QOPT_MAX_QUEUE; tc++) {
net/sched/sch_taprio.c
1773
q->max_sdu[tc] = max_sdu[tc];
net/sched/sch_taprio.c
1774
q->fp[tc] = fp[tc];
net/sched/sch_taprio.c
1775
if (fp[tc] != TC_FP_EXPRESS)
net/sched/sch_taprio.c
2067
int i, tc;
net/sched/sch_taprio.c
2119
for (tc = 0; tc < TC_QOPT_MAX_QUEUE; tc++)
net/sched/sch_taprio.c
2120
q->fp[tc] = TC_FP_EXPRESS;
net/sched/sch_taprio.c
2286
int tc;
net/sched/sch_taprio.c
2288
for (tc = 0; tc < TC_MAX_QUEUE; tc++) {
net/sched/sch_taprio.c
2293
if (nla_put_u32(skb, TCA_TAPRIO_TC_ENTRY_INDEX, tc))
net/sched/sch_taprio.c
2297
sched->max_sdu[tc]))
net/sched/sch_taprio.c
2300
if (nla_put_u32(skb, TCA_TAPRIO_TC_ENTRY_FP, q->fp[tc]))
net/sched/sch_taprio.c
280
int tc;
net/sched/sch_taprio.c
282
for (tc = 0; tc < num_tc; tc++) {
net/sched/sch_taprio.c
283
max_sdu_from_user = q->max_sdu[tc] ?: U32_MAX;
net/sched/sch_taprio.c
288
if (sched->max_open_gate_duration[tc] == sched->cycle_time) {
net/sched/sch_taprio.c
293
max_frm_len = duration_to_length(q, sched->max_open_gate_duration[tc]);
net/sched/sch_taprio.c
310
sched->max_frm_len[tc] = max_sdu + dev->hard_header_len;
net/sched/sch_taprio.c
311
sched->max_sdu[tc] = max_sdu;
net/sched/sch_taprio.c
313
sched->max_frm_len[tc] = U32_MAX; /* never oversized */
net/sched/sch_taprio.c
314
sched->max_sdu[tc] = 0;
net/sched/sch_taprio.c
339
int tc, n;
net/sched/sch_taprio.c
341
tc = netdev_get_prio_tc_map(dev, skb->priority);
net/sched/sch_taprio.c
363
if (!(entry->gate_mask & BIT(tc)) ||
net/sched/sch_taprio.c
548
u8 tc;
net/sched/sch_taprio.c
550
tc = netdev_get_prio_tc_map(dev, prio);
net/sched/sch_taprio.c
554
if (sched && skb->len > sched->max_frm_len[tc])
net/sched/sch_taprio.c
668
int tc, budget;
net/sched/sch_taprio.c
670
for (tc = 0; tc < num_tc; tc++) {
net/sched/sch_taprio.c
672
if (entry->gate_duration[tc] == sched->cycle_time)
net/sched/sch_taprio.c
675
budget = div64_u64((u64)entry->gate_duration[tc] * PSEC_PER_NSEC,
net/sched/sch_taprio.c
678
atomic_set(&entry->budget[tc], budget);
net/sched/sch_taprio.c
686
int tc, budget, new_budget = 0;
net/sched/sch_taprio.c
688
for (tc = 0; tc < num_tc; tc++) {
net/sched/sch_taprio.c
689
budget = atomic_read(&entry->budget[tc]);
net/sched/sch_taprio.c
692
if (tc == tc_consumed)
net/sched/sch_taprio.c
697
if (tc == tc_consumed)
net/sched/sch_taprio.c
698
new_budget = atomic_sub_return(len, &entry->budget[tc]);
net/sched/sch_taprio.c
700
atomic_sub(len, &entry->budget[tc]);
net/sched/sch_taprio.c
718
u8 tc;
net/sched/sch_taprio.c
731
tc = netdev_get_prio_tc_map(dev, prio);
net/sched/sch_taprio.c
733
if (!(gate_mask & BIT(tc)))
net/sched/sch_taprio.c
743
!taprio_entry_allows_tx(guard, entry, tc))
net/sched/sch_taprio.c
748
taprio_update_budgets(entry, len, tc, num_tc) < 0)
net/sched/sch_taprio.c
763
static void taprio_next_tc_txq(struct net_device *dev, int tc, int *txq)
net/sched/sch_taprio.c
765
int offset = dev->tc_to_txq[tc].offset;
net/sched/sch_taprio.c
766
int count = dev->tc_to_txq[tc].count;
net/sched/sch_taprio.c
784
int tc;
net/sched/sch_taprio.c
786
for (tc = num_tc - 1; tc >= 0; tc--) {
net/sched/sch_taprio.c
787
int first_txq = q->cur_txq[tc];
net/sched/sch_taprio.c
789
if (!(gate_mask & BIT(tc)))
net/sched/sch_taprio.c
793
skb = taprio_dequeue_from_txq(sch, q->cur_txq[tc],
net/sched/sch_taprio.c
796
taprio_next_tc_txq(dev, tc, &q->cur_txq[tc]);
net/sched/sch_taprio.c
798
if (q->cur_txq[tc] >= dev->num_tx_queues)
net/sched/sch_taprio.c
799
q->cur_txq[tc] = first_txq;
net/sched/sch_taprio.c
803
} while (q->cur_txq[tc] != first_txq);
net/sched/sch_taprio.c
928
int tc;
net/sched/sch_taprio.c
966
for (tc = 0; tc < num_tc; tc++) {
net/sched/sch_taprio.c
967
if (next->gate_duration[tc] == oper->cycle_time)
net/sched/sch_taprio.c
968
next->gate_close_time[tc] = KTIME_MAX;
net/sched/sch_taprio.c
970
next->gate_close_time[tc] = ktime_add_ns(entry->end_time,
net/sched/sch_taprio.c
971
next->gate_duration[tc]);
security/apparmor/lsm.c
1023
const struct cred *tc;
security/apparmor/lsm.c
1028
tc = get_task_cred(target);
security/apparmor/lsm.c
1029
tl = aa_get_newest_cred_label(tc);
security/apparmor/lsm.c
1035
error = aa_may_signal(cred, cl, tc, tl, sig);
security/apparmor/lsm.c
1039
error = aa_may_signal(current_cred(), cl, tc, tl, sig);
security/apparmor/lsm.c
1043
put_cred(tc);
sound/hda/common/controller.c
503
nsec = timecounter_read(&azx_dev->core.tc);
sound/hda/core/stream.c
645
struct timecounter *tc = &azx_dev->tc;
sound/hda/core/stream.c
660
timecounter_init(tc, cc, nsec);
sound/hda/core/stream.c
666
tc->cycle_last = last;
sound/hda/core/stream.c
698
cycle_last = s->tc.cycle_last;
sound/pci/rme9652/hdspm.c
4067
unsigned int tc[4] = { 0, 0, 0, 0};
sound/pci/rme9652/hdspm.c
4071
tc[2] |= HDSPM_TCO2_set_input_MSB;
sound/pci/rme9652/hdspm.c
4074
tc[2] |= HDSPM_TCO2_set_input_LSB;
sound/pci/rme9652/hdspm.c
4082
tc[1] |= HDSPM_TCO1_LTC_Format_LSB;
sound/pci/rme9652/hdspm.c
4085
tc[1] |= HDSPM_TCO1_LTC_Format_MSB;
sound/pci/rme9652/hdspm.c
4088
tc[1] |= HDSPM_TCO1_LTC_Format_MSB +
sound/pci/rme9652/hdspm.c
4092
tc[1] |= HDSPM_TCO1_LTC_Format_LSB +
sound/pci/rme9652/hdspm.c
4096
tc[1] |= HDSPM_TCO1_LTC_Format_LSB +
sound/pci/rme9652/hdspm.c
4106
tc[2] |= HDSPM_TCO2_WCK_IO_ratio_LSB;
sound/pci/rme9652/hdspm.c
4109
tc[2] |= HDSPM_TCO2_WCK_IO_ratio_MSB;
sound/pci/rme9652/hdspm.c
4117
tc[2] |= HDSPM_TCO2_set_freq;
sound/pci/rme9652/hdspm.c
4120
tc[2] |= HDSPM_TCO2_set_freq_from_app;
sound/pci/rme9652/hdspm.c
4128
tc[2] |= HDSPM_TCO2_set_pull_up;
sound/pci/rme9652/hdspm.c
4131
tc[2] |= HDSPM_TCO2_set_pull_down;
sound/pci/rme9652/hdspm.c
4134
tc[2] |= HDSPM_TCO2_set_pull_up + HDSPM_TCO2_set_01_4;
sound/pci/rme9652/hdspm.c
4137
tc[2] |= HDSPM_TCO2_set_pull_down + HDSPM_TCO2_set_01_4;
sound/pci/rme9652/hdspm.c
4144
tc[2] |= HDSPM_TCO2_set_term_75R;
sound/pci/rme9652/hdspm.c
4147
hdspm_write(hdspm, HDSPM_WR_TCO, tc[0]);
sound/pci/rme9652/hdspm.c
4148
hdspm_write(hdspm, HDSPM_WR_TCO+4, tc[1]);
sound/pci/rme9652/hdspm.c
4149
hdspm_write(hdspm, HDSPM_WR_TCO+8, tc[2]);
sound/pci/rme9652/hdspm.c
4150
hdspm_write(hdspm, HDSPM_WR_TCO+12, tc[3]);
sound/soc/soc-topology.c
611
struct snd_kcontrol_new *kc, struct snd_soc_tplg_ctl_hdr *tc)
sound/soc/soc-topology.c
614
u32 access = le32_to_cpu(tc->access);
sound/soc/soc-topology.c
620
tplg_tlv = &tc->tlv;
tools/lib/bpf/netlink.c
538
req->tc.tcm_parent = TC_H_CLSACT;
tools/lib/bpf/netlink.c
539
req->tc.tcm_handle = TC_H_MAKE(TC_H_CLSACT, 0);
tools/lib/bpf/netlink.c
548
req->tc.tcm_parent = OPTS_GET(hook, parent, TC_H_ROOT);
tools/lib/bpf/netlink.c
549
req->tc.tcm_handle = OPTS_GET(hook, handle, 0);
tools/lib/bpf/netlink.c
611
req.tc.tcm_family = AF_UNSPEC;
tools/lib/bpf/netlink.c
612
req.tc.tcm_ifindex = OPTS_GET(hook, ifindex, 0);
tools/lib/bpf/netlink.c
672
static int __get_tc_info(void *cookie, struct tcmsg *tc, struct nlattr **tb,
tools/lib/bpf/netlink.c
690
OPTS_SET(info->opts, handle, tc->tcm_handle);
tools/lib/bpf/netlink.c
691
OPTS_SET(info->opts, priority, TC_H_MAJ(tc->tcm_info) >> 16);
tools/lib/bpf/netlink.c
700
struct tcmsg *tc = NLMSG_DATA(nh);
tools/lib/bpf/netlink.c
704
(struct nlattr *)((void *)tc + NLMSG_ALIGN(sizeof(*tc))),
tools/lib/bpf/netlink.c
705
NLMSG_PAYLOAD(nh, sizeof(*tc)), NULL);
tools/lib/bpf/netlink.c
708
return __get_tc_info(cookie, tc, tb, nh->nlmsg_flags & NLM_F_ECHO);
tools/lib/bpf/netlink.c
772
req.tc.tcm_family = AF_UNSPEC;
tools/lib/bpf/netlink.c
773
req.tc.tcm_ifindex = ifindex;
tools/lib/bpf/netlink.c
774
req.tc.tcm_handle = handle;
tools/lib/bpf/netlink.c
775
req.tc.tcm_info = TC_H_MAKE(priority << 16, htons(protocol));
tools/lib/bpf/netlink.c
780
req.tc.tcm_parent = parent;
tools/lib/bpf/netlink.c
848
req.tc.tcm_family = AF_UNSPEC;
tools/lib/bpf/netlink.c
849
req.tc.tcm_ifindex = ifindex;
tools/lib/bpf/netlink.c
851
req.tc.tcm_handle = handle;
tools/lib/bpf/netlink.c
852
req.tc.tcm_info = TC_H_MAKE(priority << 16, htons(protocol));
tools/lib/bpf/netlink.c
858
req.tc.tcm_parent = parent;
tools/lib/bpf/netlink.c
915
req.tc.tcm_family = AF_UNSPEC;
tools/lib/bpf/netlink.c
916
req.tc.tcm_ifindex = ifindex;
tools/lib/bpf/netlink.c
917
req.tc.tcm_handle = handle;
tools/lib/bpf/netlink.c
918
req.tc.tcm_info = TC_H_MAKE(priority << 16, htons(protocol));
tools/lib/bpf/netlink.c
923
req.tc.tcm_parent = parent;
tools/lib/bpf/nlattr.h
61
struct tcmsg tc;
tools/lib/thermal/commands.c
410
thermal_error_t thermal_cmd_get_cdev(struct thermal_handler *th, struct thermal_cdev **tc)
tools/lib/thermal/commands.c
413
NLM_F_DUMP | NLM_F_ACK, tc);
tools/lib/thermal/include/thermal.h
140
struct thermal_cdev **tc);
tools/perf/arch/x86/util/intel-bts.c
71
struct perf_tsc_conversion tc = { .time_mult = 0, };
tools/perf/arch/x86/util/intel-bts.c
83
err = perf_read_tsc_conversion(pc, &tc);
tools/perf/arch/x86/util/intel-bts.c
88
cap_user_time_zero = tc.time_mult != 0;
tools/perf/arch/x86/util/intel-bts.c
96
auxtrace_info->priv[INTEL_BTS_TIME_SHIFT] = tc.time_shift;
tools/perf/arch/x86/util/intel-bts.c
97
auxtrace_info->priv[INTEL_BTS_TIME_MULT] = tc.time_mult;
tools/perf/arch/x86/util/intel-bts.c
98
auxtrace_info->priv[INTEL_BTS_TIME_ZERO] = tc.time_zero;
tools/perf/arch/x86/util/intel-pt.c
328
struct perf_tsc_conversion tc = { .time_mult = 0, };
tools/perf/arch/x86/util/intel-pt.c
365
err = perf_read_tsc_conversion(pc, &tc);
tools/perf/arch/x86/util/intel-pt.c
370
cap_user_time_zero = tc.time_mult != 0;
tools/perf/arch/x86/util/intel-pt.c
380
auxtrace_info->priv[INTEL_PT_TIME_SHIFT] = tc.time_shift;
tools/perf/arch/x86/util/intel-pt.c
381
auxtrace_info->priv[INTEL_PT_TIME_MULT] = tc.time_mult;
tools/perf/arch/x86/util/intel-pt.c
382
auxtrace_info->priv[INTEL_PT_TIME_ZERO] = tc.time_zero;
tools/perf/builtin-inject.c
1598
static void get_tsc_conv(struct perf_tsc_conversion *tc, struct perf_record_time_conv *time_conv)
tools/perf/builtin-inject.c
1600
tc->time_shift = time_conv->time_shift;
tools/perf/builtin-inject.c
1601
tc->time_mult = time_conv->time_mult;
tools/perf/builtin-inject.c
1602
tc->time_zero = time_conv->time_zero;
tools/perf/builtin-inject.c
1603
tc->time_cycles = time_conv->time_cycles;
tools/perf/builtin-inject.c
1604
tc->time_mask = time_conv->time_mask;
tools/perf/builtin-inject.c
1605
tc->cap_user_time_zero = time_conv->cap_user_time_zero;
tools/perf/builtin-inject.c
1606
tc->cap_user_time_short = time_conv->cap_user_time_short;
tools/perf/tests/perf-time-to-tsc.c
127
ret = perf_read_tsc_conversion(pc, &tc);
tools/perf/tests/perf-time-to-tsc.c
182
test_time = tsc_to_perf_time(test_tsc, &tc);
tools/perf/tests/perf-time-to-tsc.c
183
comm1_tsc = perf_time_to_tsc(comm1_time, &tc);
tools/perf/tests/perf-time-to-tsc.c
184
comm2_tsc = perf_time_to_tsc(comm2_time, &tc);
tools/perf/tests/perf-time-to-tsc.c
85
struct perf_tsc_conversion tc;
tools/perf/util/arm-spe.c
1405
timestamp = perf_time_to_tsc(sample->time, &spe->tc);
tools/perf/util/arm-spe.c
1892
struct perf_record_time_conv *tc = &session->time_conv;
tools/perf/util/arm-spe.c
1943
spe->tc.time_shift = tc->time_shift;
tools/perf/util/arm-spe.c
1944
spe->tc.time_mult = tc->time_mult;
tools/perf/util/arm-spe.c
1945
spe->tc.time_zero = tc->time_zero;
tools/perf/util/arm-spe.c
1947
if (event_contains(*tc, time_cycles)) {
tools/perf/util/arm-spe.c
1948
spe->tc.time_cycles = tc->time_cycles;
tools/perf/util/arm-spe.c
1949
spe->tc.time_mask = tc->time_mask;
tools/perf/util/arm-spe.c
1950
spe->tc.cap_user_time_zero = tc->cap_user_time_zero;
tools/perf/util/arm-spe.c
1951
spe->tc.cap_user_time_short = tc->cap_user_time_short;
tools/perf/util/arm-spe.c
374
sample->time = tsc_to_perf_time(record->timestamp, &spe->tc);
tools/perf/util/arm-spe.c
69
struct perf_tsc_conversion tc;
tools/perf/util/cs-etm.c
1545
return tsc_to_perf_time(cs_timestamp, &etm->tc);
tools/perf/util/cs-etm.c
3355
struct perf_record_time_conv *tc = &session->time_conv;
tools/perf/util/cs-etm.c
3496
etm->tc.time_shift = tc->time_shift;
tools/perf/util/cs-etm.c
3497
etm->tc.time_mult = tc->time_mult;
tools/perf/util/cs-etm.c
3498
etm->tc.time_zero = tc->time_zero;
tools/perf/util/cs-etm.c
3499
if (event_contains(*tc, time_cycles)) {
tools/perf/util/cs-etm.c
3500
etm->tc.time_cycles = tc->time_cycles;
tools/perf/util/cs-etm.c
3501
etm->tc.time_mask = tc->time_mask;
tools/perf/util/cs-etm.c
3502
etm->tc.cap_user_time_zero = tc->cap_user_time_zero;
tools/perf/util/cs-etm.c
3503
etm->tc.cap_user_time_short = tc->cap_user_time_short;
tools/perf/util/cs-etm.c
48
struct perf_tsc_conversion tc;
tools/perf/util/intel-bts.c
55
struct perf_tsc_conversion tc;
tools/perf/util/intel-bts.c
612
timestamp = perf_time_to_tsc(sample->time, &bts->tc);
tools/perf/util/intel-bts.c
852
bts->tc.time_shift = auxtrace_info->priv[INTEL_BTS_TIME_SHIFT];
tools/perf/util/intel-bts.c
853
bts->tc.time_mult = auxtrace_info->priv[INTEL_BTS_TIME_MULT];
tools/perf/util/intel-bts.c
854
bts->tc.time_zero = auxtrace_info->priv[INTEL_BTS_TIME_ZERO];
tools/perf/util/intel-pt.c
1206
quot = ns / pt->tc.time_mult;
tools/perf/util/intel-pt.c
1207
rem = ns % pt->tc.time_mult;
tools/perf/util/intel-pt.c
1208
return (quot << pt->tc.time_shift) + (rem << pt->tc.time_shift) /
tools/perf/util/intel-pt.c
1209
pt->tc.time_mult;
tools/perf/util/intel-pt.c
1720
sample->time = tsc_to_perf_time(ptq->timestamp, &pt->tc);
tools/perf/util/intel-pt.c
2461
sample.time = tsc_to_perf_time(timestamp, &pt->tc);
tools/perf/util/intel-pt.c
2737
tm = pt->timeless_decoding ? 0 : tsc_to_perf_time(tm, &pt->tc);
tools/perf/util/intel-pt.c
3397
&pt->tc);
tools/perf/util/intel-pt.c
3434
&pt->tc));
tools/perf/util/intel-pt.c
3557
perf_time_to_tsc(sample->time, &pt->tc));
tools/perf/util/intel-pt.c
3718
timestamp = perf_time_to_tsc(sample->time, &pt->tc);
tools/perf/util/intel-pt.c
3904
timestamp = perf_time_to_tsc(sample->time, &pt->tc);
tools/perf/util/intel-pt.c
4225
tsc = perf_time_to_tsc(ns, &pt->tc);
tools/perf/util/intel-pt.c
4228
tm = tsc_to_perf_time(tsc, &pt->tc);
tools/perf/util/intel-pt.c
4235
tm = tsc_to_perf_time(++tsc, &pt->tc);
tools/perf/util/intel-pt.c
4245
tsc = perf_time_to_tsc(ns, &pt->tc);
tools/perf/util/intel-pt.c
4248
tm = tsc_to_perf_time(tsc, &pt->tc);
tools/perf/util/intel-pt.c
4255
tm = tsc_to_perf_time(--tsc, &pt->tc);
tools/perf/util/intel-pt.c
4459
pt->tc.time_shift = auxtrace_info->priv[INTEL_PT_TIME_SHIFT];
tools/perf/util/intel-pt.c
4460
pt->tc.time_mult = auxtrace_info->priv[INTEL_PT_TIME_MULT];
tools/perf/util/intel-pt.c
4461
pt->tc.time_zero = auxtrace_info->priv[INTEL_PT_TIME_ZERO];
tools/perf/util/intel-pt.c
4537
if (pt->timeless_decoding && !pt->tc.time_mult)
tools/perf/util/intel-pt.c
4538
pt->tc.time_mult = 1;
tools/perf/util/intel-pt.c
4614
if (pt->tc.time_mult) {
tools/perf/util/intel-pt.c
93
struct perf_tsc_conversion tc;
tools/perf/util/jitdump.c
396
struct perf_tsc_conversion tc = { .time_shift = 0, };
tools/perf/util/jitdump.c
402
tc.time_shift = time_conv->time_shift;
tools/perf/util/jitdump.c
403
tc.time_mult = time_conv->time_mult;
tools/perf/util/jitdump.c
404
tc.time_zero = time_conv->time_zero;
tools/perf/util/jitdump.c
413
tc.time_cycles = time_conv->time_cycles;
tools/perf/util/jitdump.c
414
tc.time_mask = time_conv->time_mask;
tools/perf/util/jitdump.c
415
tc.cap_user_time_zero = time_conv->cap_user_time_zero;
tools/perf/util/jitdump.c
416
tc.cap_user_time_short = time_conv->cap_user_time_short;
tools/perf/util/jitdump.c
418
if (!tc.cap_user_time_zero)
tools/perf/util/jitdump.c
422
return tsc_to_perf_time(timestamp, &tc);
tools/perf/util/term.c
32
struct termios tc;
tools/perf/util/term.c
35
tc = *old;
tools/perf/util/term.c
36
tc.c_lflag &= ~(ICANON | ECHO);
tools/perf/util/term.c
37
tc.c_cc[VMIN] = 0;
tools/perf/util/term.c
38
tc.c_cc[VTIME] = 0;
tools/perf/util/term.c
39
tcsetattr(0, TCSANOW, &tc);
tools/perf/util/tsc.c
100
event.time_conv.time_mult = tc.time_mult;
tools/perf/util/tsc.c
101
event.time_conv.time_shift = tc.time_shift;
tools/perf/util/tsc.c
102
event.time_conv.time_zero = tc.time_zero;
tools/perf/util/tsc.c
103
event.time_conv.time_cycles = tc.time_cycles;
tools/perf/util/tsc.c
104
event.time_conv.time_mask = tc.time_mask;
tools/perf/util/tsc.c
105
event.time_conv.cap_user_time_zero = tc.cap_user_time_zero;
tools/perf/util/tsc.c
106
event.time_conv.cap_user_time_short = tc.cap_user_time_short;
tools/perf/util/tsc.c
118
struct perf_record_time_conv *tc = (struct perf_record_time_conv *)event;
tools/perf/util/tsc.c
121
ret = fprintf(fp, "\n... Time Shift %" PRI_lu64 "\n", tc->time_shift);
tools/perf/util/tsc.c
122
ret += fprintf(fp, "... Time Multiplier %" PRI_lu64 "\n", tc->time_mult);
tools/perf/util/tsc.c
123
ret += fprintf(fp, "... Time Zero %" PRI_lu64 "\n", tc->time_zero);
tools/perf/util/tsc.c
130
if (event_contains(*tc, time_cycles)) {
tools/perf/util/tsc.c
132
tc->time_cycles);
tools/perf/util/tsc.c
134
tc->time_mask);
tools/perf/util/tsc.c
136
tc->cap_user_time_zero);
tools/perf/util/tsc.c
138
tc->cap_user_time_short);
tools/perf/util/tsc.c
18
u64 perf_time_to_tsc(u64 ns, struct perf_tsc_conversion *tc)
tools/perf/util/tsc.c
22
t = ns - tc->time_zero;
tools/perf/util/tsc.c
23
quot = t / tc->time_mult;
tools/perf/util/tsc.c
24
rem = t % tc->time_mult;
tools/perf/util/tsc.c
25
return (quot << tc->time_shift) +
tools/perf/util/tsc.c
26
(rem << tc->time_shift) / tc->time_mult;
tools/perf/util/tsc.c
29
u64 tsc_to_perf_time(u64 cyc, struct perf_tsc_conversion *tc)
tools/perf/util/tsc.c
33
if (tc->cap_user_time_short)
tools/perf/util/tsc.c
34
cyc = tc->time_cycles +
tools/perf/util/tsc.c
35
((cyc - tc->time_cycles) & tc->time_mask);
tools/perf/util/tsc.c
37
quot = cyc >> tc->time_shift;
tools/perf/util/tsc.c
38
rem = cyc & (((u64)1 << tc->time_shift) - 1);
tools/perf/util/tsc.c
39
return tc->time_zero + quot * tc->time_mult +
tools/perf/util/tsc.c
40
((rem * tc->time_mult) >> tc->time_shift);
tools/perf/util/tsc.c
44
struct perf_tsc_conversion *tc)
tools/perf/util/tsc.c
52
tc->time_mult = pc->time_mult;
tools/perf/util/tsc.c
53
tc->time_shift = pc->time_shift;
tools/perf/util/tsc.c
54
tc->time_zero = pc->time_zero;
tools/perf/util/tsc.c
55
tc->time_cycles = pc->time_cycles;
tools/perf/util/tsc.c
56
tc->time_mask = pc->time_mask;
tools/perf/util/tsc.c
57
tc->cap_user_time_zero = pc->cap_user_time_zero;
tools/perf/util/tsc.c
58
tc->cap_user_time_short = pc->cap_user_time_short;
tools/perf/util/tsc.c
68
if (!tc->cap_user_time_zero)
tools/perf/util/tsc.c
87
struct perf_tsc_conversion tc;
tools/perf/util/tsc.c
92
err = perf_read_tsc_conversion(pc, &tc);
tools/perf/util/tsc.h
23
struct perf_tsc_conversion *tc);
tools/perf/util/tsc.h
25
u64 perf_time_to_tsc(u64 ns, struct perf_tsc_conversion *tc);
tools/perf/util/tsc.h
26
u64 tsc_to_perf_time(u64 cyc, struct perf_tsc_conversion *tc);
tools/testing/selftests/arm64/mte/check_mmap_options.c
247
const char *format_test_name(struct check_mmap_testcase *tc)
tools/testing/selftests/arm64/mte/check_mmap_options.c
258
switch (tc->check_type) {
tools/testing/selftests/arm64/mte/check_mmap_options.c
273
switch (tc->mem_type) {
tools/testing/selftests/arm64/mte/check_mmap_options.c
285
switch (tc->mte_sync) {
tools/testing/selftests/arm64/mte/check_mmap_options.c
300
switch (tc->mapping) {
tools/testing/selftests/arm64/mte/check_mmap_options.c
312
switch (tc->tag_check) {
tools/testing/selftests/arm64/mte/check_mmap_options.c
324
switch (tc->atag_check) {
tools/testing/selftests/arm64/mte/check_mmap_options.c
341
switch (tc->tag_op) {
tools/testing/selftests/bpf/prog_tests/sk_assign.c
34
FILE *tc;
tools/testing/selftests/bpf/prog_tests/sk_assign.c
37
tc = popen("tc -V", "r");
tools/testing/selftests/bpf/prog_tests/sk_assign.c
38
if (CHECK_FAIL(!tc))
tools/testing/selftests/bpf/prog_tests/sk_assign.c
40
if (CHECK_FAIL(!fgets(tc_version, sizeof(tc_version), tc))) {
tools/testing/selftests/bpf/prog_tests/sk_assign.c
41
pclose(tc);
tools/testing/selftests/bpf/prog_tests/sk_assign.c
48
if (CHECK_FAIL(pclose(tc)))
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
775
static void do_resume_test(struct test_case *tc)
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
787
if (tc->ehash_buckets) {
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
790
tc->ehash_buckets);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
798
counts = calloc(tc->max_socks, sizeof(*counts));
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
806
addr = tc->family == AF_INET6 ? "::1" : "127.0.0.1";
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
807
fds = start_reuseport_server(tc->family, tc->sock_type, addr, port, 0,
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
808
tc->init_socks);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
811
if (tc->connections) {
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
812
established_fds = connect_to_server(tc->family, tc->sock_type,
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
814
tc->connections, fds,
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
815
tc->init_socks);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
821
skel->rodata->sf = tc->family;
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
839
tc->test(tc->family, tc->sock_type, addr, port, fds, tc->init_socks,
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
840
established_fds, tc->connections*2, counts, tc->max_socks,
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
847
free_fds(fds, tc->init_socks);
tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c
848
free_fds(established_fds, tc->connections*2);
tools/testing/selftests/bpf/prog_tests/xdp_vlan.c
102
tc_opts.prog_fd = bpf_program__fd(tc);
tools/testing/selftests/bpf/prog_tests/xdp_vlan.c
71
static void xdp_vlan(struct bpf_program *xdp, struct bpf_program *tc, u32 flags)
tools/testing/selftests/bpf/xdp_hw_metadata.c
746
int tc = 0;
tools/testing/selftests/bpf/xdp_hw_metadata.c
767
tc = i;
tools/testing/selftests/bpf/xdp_hw_metadata.c
769
if (asprintf(&buf, "%d ", tc) == -1) {
tools/testing/selftests/bpf/xdp_hw_metadata.c
787
for (i = 0; i <= tc; i++) {
tools/testing/selftests/bpf/xdp_hw_metadata.c
807
ifname, tc + 1, map, que);
tools/testing/selftests/bpf/xdp_synproxy.c
119
*tc = false;
tools/testing/selftests/bpf/xdp_synproxy.c
165
*tc = true;
tools/testing/selftests/bpf/xdp_synproxy.c
188
static int syncookie_attach(const char *argv0, unsigned int ifindex, bool tc)
tools/testing/selftests/bpf/xdp_synproxy.c
212
prog = bpf_object__find_program_by_name(obj, tc ? "syncookie_tc" : "syncookie_xdp");
tools/testing/selftests/bpf/xdp_synproxy.c
226
attached_tc = tc;
tools/testing/selftests/bpf/xdp_synproxy.c
230
if (tc) {
tools/testing/selftests/bpf/xdp_synproxy.c
370
bool tc;
tools/testing/selftests/bpf/xdp_synproxy.c
373
&single, &tc);
tools/testing/selftests/bpf/xdp_synproxy.c
376
if (!tc) {
tools/testing/selftests/bpf/xdp_synproxy.c
385
err = syncookie_attach(argv[0], ifindex, tc);
tools/testing/selftests/bpf/xdp_synproxy.c
92
__u64 *tcpipopts, char **ports, bool *single, bool *tc)
tools/testing/selftests/mm/uffd-wp-mremap.c
364
const struct testcase *tc = &testcases[i];
tools/testing/selftests/mm/uffd-wp-mremap.c
366
for (j = 0; j < *tc->nr_sizes; j++)
tools/testing/selftests/mm/uffd-wp-mremap.c
367
test_one_folio(&gopts, tc->sizes[j], tc->private,
tools/testing/selftests/mm/uffd-wp-mremap.c
368
tc->swapout, tc->hugetlb);
tools/testing/selftests/sched_ext/exit.c
18
enum exit_test_case tc;
tools/testing/selftests/sched_ext/exit.c
20
for (tc = 0; tc < NUM_EXITS; tc++) {
tools/testing/selftests/sched_ext/exit.c
30
if (tc == EXIT_SELECT_CPU && libbpf_num_possible_cpus() == 1)
tools/testing/selftests/sched_ext/exit.c
35
skel->rodata->exit_point = tc;
tools/testing/selftests/sched_ext/exit.c
49
SCX_EQ(skel->data->uei.exit_code, tc);
tools/testing/selftests/sched_ext/exit.c
50
sprintf(buf, "%d", tc);
tools/testing/selftests/vfio/lib/drivers/dsa/registers.h
566
u64 tc:8;