Symbol: lan966x
drivers/net/ethernet/microchip/lan966x/lan966x_cbs.c
42
lan966x, QSYS_SE_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_cbs.c
46
lan966x, QSYS_CIR_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_cbs.c
54
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_cbs.c
63
lan966x, QSYS_SE_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_cbs.c
67
lan966x, QSYS_CIR_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_cbs.c
8
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_dcb.c
124
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_dcb.c
128
port = lan966x->ports[i];
drivers/net/ethernet/microchip/lan966x/lan966x_dcb.c
345
void lan966x_dcb_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_dcb.c
347
for (int p = 0; p < lan966x->num_phys_ports; ++p) {
drivers/net/ethernet/microchip/lan966x/lan966x_dcb.c
350
port = lan966x->ports[p];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
293
static void lan966x_stats_update(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
297
spin_lock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
299
for (i = 0; i < lan966x->num_phys_ports; i++) {
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
300
uint idx = i * lan966x->num_stats;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
303
lan966x, SYS_STAT_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
305
for (j = 0; j < lan966x->num_stats; j++) {
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
306
u32 offset = lan966x->stats_layout[j].offset;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
308
lan966x_add_cnt(&lan966x->stats[idx++],
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
309
lan_rd(lan966x, SYS_CNT(offset)));
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
313
spin_unlock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
319
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
324
return lan966x->num_stats;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
330
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
336
for (i = 0; i < lan966x->num_stats; i++)
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
338
lan966x->stats_layout[i].name, ETH_GSTRING_LEN);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
345
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
349
lan966x_stats_update(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
352
for (i = 0; i < lan966x->num_stats; i++)
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
353
*data++ = lan966x->stats[port->chip_port *
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
354
lan966x->num_stats + i];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
361
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
364
lan966x_stats_update(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
366
idx = port->chip_port * lan966x->num_stats;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
368
spin_lock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
371
lan966x->stats[idx + SYS_COUNT_TX_UC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
372
lan966x->stats[idx + SYS_COUNT_TX_MC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
373
lan966x->stats[idx + SYS_COUNT_TX_BC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
374
lan966x->stats[idx + SYS_COUNT_TX_PMAC_UC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
375
lan966x->stats[idx + SYS_COUNT_TX_PMAC_MC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
376
lan966x->stats[idx + SYS_COUNT_TX_PMAC_BC];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
378
lan966x->stats[idx + SYS_COUNT_TX_COL];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
380
lan966x->stats[idx + SYS_COUNT_RX_UC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
381
lan966x->stats[idx + SYS_COUNT_RX_MC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
382
lan966x->stats[idx + SYS_COUNT_RX_BC];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
384
lan966x->stats[idx + SYS_COUNT_RX_CRC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
385
lan966x->stats[idx + SYS_COUNT_RX_CRC];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
387
lan966x->stats[idx + SYS_COUNT_TX_OCT] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
388
lan966x->stats[idx + SYS_COUNT_TX_PMAC_OCT];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
390
lan966x->stats[idx + SYS_COUNT_TX_MM_HOLD];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
392
lan966x->stats[idx + SYS_COUNT_RX_OCT];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
394
lan966x->stats[idx + SYS_COUNT_TX_MC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
395
lan966x->stats[idx + SYS_COUNT_TX_PMAC_MC];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
397
lan966x->stats[idx + SYS_COUNT_TX_BC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
398
lan966x->stats[idx + SYS_COUNT_TX_PMAC_BC];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
400
lan966x->stats[idx + SYS_COUNT_RX_MC];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
402
lan966x->stats[idx + SYS_COUNT_RX_BC];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
404
lan966x->stats[idx + SYS_COUNT_RX_FRAG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
405
lan966x->stats[idx + SYS_COUNT_RX_JABBER] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
406
lan966x->stats[idx + SYS_COUNT_RX_CRC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
407
lan966x->stats[idx + SYS_COUNT_RX_PMAC_FRAG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
408
lan966x->stats[idx + SYS_COUNT_RX_PMAC_JABBER] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
409
lan966x->stats[idx + SYS_COUNT_RX_PMAC_CRC];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
411
lan966x->stats[idx + SYS_COUNT_RX_SHORT] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
412
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SHORT] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
413
lan966x->stats[idx + SYS_COUNT_RX_LONG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
414
lan966x->stats[idx + SYS_COUNT_RX_PMAC_LONG];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
416
lan966x->stats[idx + SYS_COUNT_RX_LONG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
417
lan966x->stats[idx + SYS_COUNT_RX_PMAC_LONG];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
419
spin_unlock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
438
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
441
lan966x_stats_update(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
443
idx = port->chip_port * lan966x->num_stats;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
445
spin_lock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
448
lan966x->stats[idx + SYS_COUNT_RX_SHORT] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
449
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SHORT];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
451
lan966x->stats[idx + SYS_COUNT_RX_LONG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
452
lan966x->stats[idx + SYS_COUNT_RX_PMAC_LONG];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
454
lan966x->stats[idx + SYS_COUNT_RX_FRAG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
455
lan966x->stats[idx + SYS_COUNT_RX_PMAC_FRAG];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
457
lan966x->stats[idx + SYS_COUNT_RX_JABBER] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
458
lan966x->stats[idx + SYS_COUNT_RX_PMAC_JABBER];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
460
lan966x->stats[idx + SYS_COUNT_RX_SZ_64] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
461
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_64];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
463
lan966x->stats[idx + SYS_COUNT_RX_SZ_65_127] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
464
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_65_127];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
466
lan966x->stats[idx + SYS_COUNT_RX_SZ_128_255] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
467
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_128_255];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
469
lan966x->stats[idx + SYS_COUNT_RX_SZ_256_511] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
470
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_256_511];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
472
lan966x->stats[idx + SYS_COUNT_RX_SZ_512_1023] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
473
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_512_1023];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
475
lan966x->stats[idx + SYS_COUNT_RX_SZ_1024_1526] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
476
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_1024_1526];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
478
lan966x->stats[idx + SYS_COUNT_RX_SZ_1024_1526] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
479
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_1024_1526];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
482
lan966x->stats[idx + SYS_COUNT_TX_SZ_64] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
483
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_64];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
485
lan966x->stats[idx + SYS_COUNT_TX_SZ_65_127] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
486
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_65_127];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
488
lan966x->stats[idx + SYS_COUNT_TX_SZ_128_255] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
489
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_128_255];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
491
lan966x->stats[idx + SYS_COUNT_TX_SZ_256_511] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
492
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_256_511];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
494
lan966x->stats[idx + SYS_COUNT_TX_SZ_512_1023] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
495
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_512_1023];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
497
lan966x->stats[idx + SYS_COUNT_TX_SZ_1024_1526] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
498
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_1024_1526];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
500
lan966x->stats[idx + SYS_COUNT_TX_SZ_1024_1526] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
501
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_1024_1526];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
503
spin_unlock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
544
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
547
if (!lan966x->ptp)
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
550
phc = &lan966x->phc[LAN966X_PHC_PORT];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
587
struct lan966x *lan966x = container_of(del_work, struct lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
590
lan966x_stats_update(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
592
queue_delayed_work(lan966x->stats_queue, &lan966x->stats_work,
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
600
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
604
idx = port->chip_port * lan966x->num_stats;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
606
spin_lock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
608
stats->rx_bytes = lan966x->stats[idx + SYS_COUNT_RX_OCT] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
609
lan966x->stats[idx + SYS_COUNT_RX_PMAC_OCT];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
611
stats->rx_packets = lan966x->stats[idx + SYS_COUNT_RX_SHORT] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
612
lan966x->stats[idx + SYS_COUNT_RX_FRAG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
613
lan966x->stats[idx + SYS_COUNT_RX_JABBER] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
614
lan966x->stats[idx + SYS_COUNT_RX_CRC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
615
lan966x->stats[idx + SYS_COUNT_RX_SYMBOL_ERR] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
616
lan966x->stats[idx + SYS_COUNT_RX_SZ_64] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
617
lan966x->stats[idx + SYS_COUNT_RX_SZ_65_127] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
618
lan966x->stats[idx + SYS_COUNT_RX_SZ_128_255] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
619
lan966x->stats[idx + SYS_COUNT_RX_SZ_256_511] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
620
lan966x->stats[idx + SYS_COUNT_RX_SZ_512_1023] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
621
lan966x->stats[idx + SYS_COUNT_RX_SZ_1024_1526] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
622
lan966x->stats[idx + SYS_COUNT_RX_SZ_JUMBO] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
623
lan966x->stats[idx + SYS_COUNT_RX_LONG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
624
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SHORT] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
625
lan966x->stats[idx + SYS_COUNT_RX_PMAC_FRAG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
626
lan966x->stats[idx + SYS_COUNT_RX_PMAC_JABBER] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
627
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_64] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
628
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_65_127] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
629
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_128_255] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
630
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_256_511] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
631
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_512_1023] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
632
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_1024_1526] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
633
lan966x->stats[idx + SYS_COUNT_RX_PMAC_SZ_JUMBO];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
635
stats->multicast = lan966x->stats[idx + SYS_COUNT_RX_MC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
636
lan966x->stats[idx + SYS_COUNT_RX_PMAC_MC];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
638
stats->rx_errors = lan966x->stats[idx + SYS_COUNT_RX_SHORT] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
639
lan966x->stats[idx + SYS_COUNT_RX_FRAG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
640
lan966x->stats[idx + SYS_COUNT_RX_JABBER] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
641
lan966x->stats[idx + SYS_COUNT_RX_CRC] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
642
lan966x->stats[idx + SYS_COUNT_RX_SYMBOL_ERR] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
643
lan966x->stats[idx + SYS_COUNT_RX_LONG];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
646
lan966x->stats[idx + SYS_COUNT_RX_LONG] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
647
lan966x->stats[idx + SYS_COUNT_DR_LOCAL] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
648
lan966x->stats[idx + SYS_COUNT_DR_TAIL] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
649
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_0] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
650
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_1] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
651
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_2] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
652
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_3] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
653
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_4] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
654
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_5] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
655
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_6] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
656
lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_7];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
660
(lan966x->stats[idx + SYS_COUNT_DR_YELLOW_PRIO_0 + i] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
661
lan966x->stats[idx + SYS_COUNT_DR_GREEN_PRIO_0 + i]);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
665
stats->tx_bytes = lan966x->stats[idx + SYS_COUNT_TX_OCT] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
666
lan966x->stats[idx + SYS_COUNT_TX_PMAC_OCT];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
668
stats->tx_packets = lan966x->stats[idx + SYS_COUNT_TX_SZ_64] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
669
lan966x->stats[idx + SYS_COUNT_TX_SZ_65_127] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
670
lan966x->stats[idx + SYS_COUNT_TX_SZ_128_255] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
671
lan966x->stats[idx + SYS_COUNT_TX_SZ_256_511] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
672
lan966x->stats[idx + SYS_COUNT_TX_SZ_512_1023] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
673
lan966x->stats[idx + SYS_COUNT_TX_SZ_1024_1526] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
674
lan966x->stats[idx + SYS_COUNT_TX_SZ_JUMBO] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
675
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_64] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
676
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_65_127] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
677
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_128_255] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
678
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_256_511] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
679
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_512_1023] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
680
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_1024_1526] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
681
lan966x->stats[idx + SYS_COUNT_TX_PMAC_SZ_JUMBO];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
683
stats->tx_dropped = lan966x->stats[idx + SYS_COUNT_TX_DROP] +
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
684
lan966x->stats[idx + SYS_COUNT_TX_AGED];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
686
stats->collisions = lan966x->stats[idx + SYS_COUNT_TX_COL];
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
688
spin_unlock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
691
int lan966x_stats_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
695
lan966x->stats_layout = lan966x_stats_layout;
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
696
lan966x->num_stats = ARRAY_SIZE(lan966x_stats_layout);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
697
lan966x->stats = devm_kcalloc(lan966x->dev, lan966x->num_phys_ports *
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
698
lan966x->num_stats,
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
700
if (!lan966x->stats)
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
704
spin_lock_init(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
706
dev_name(lan966x->dev));
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
707
lan966x->stats_queue = create_singlethread_workqueue(queue_name);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
708
if (!lan966x->stats_queue)
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
711
INIT_DELAYED_WORK(&lan966x->stats_work, lan966x_check_stats_work);
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
712
queue_delayed_work(lan966x->stats_queue, &lan966x->stats_work,
drivers/net/ethernet/microchip/lan966x/lan966x_ets.c
22
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ets.c
65
lan966x, QSYS_SE_DWRR_CFG(se_idx, 7 - i));
drivers/net/ethernet/microchip/lan966x/lan966x_ets.c
72
lan966x, QSYS_SE_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_ets.c
80
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ets.c
87
lan_wr(0, lan966x, QSYS_SE_DWRR_CFG(se_idx, i));
drivers/net/ethernet/microchip/lan966x/lan966x_ets.c
93
lan966x, QSYS_SE_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
101
lan966x_mac_cpu_forget(lan966x, fdb_entry->mac, fdb_entry->vid);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
105
static void lan966x_fdb_purge_entries(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
109
list_for_each_entry_safe(fdb_entry, tmp, &lan966x->fdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
115
int lan966x_fdb_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
117
INIT_LIST_HEAD(&lan966x->fdb_entries);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
118
lan966x->fdb_work = alloc_ordered_workqueue("lan966x_order", 0);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
119
if (!lan966x->fdb_work)
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
12
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
125
void lan966x_fdb_deinit(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
127
destroy_workqueue(lan966x->fdb_work);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
128
lan966x_fdb_purge_entries(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
131
void lan966x_fdb_flush_workqueue(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
133
flush_workqueue(lan966x->fdb_work);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
140
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
142
lan966x = fdb_work->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
150
lan966x_mac_add_entry(lan966x, port, fdb_info->addr,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
156
lan966x_mac_del_entry(lan966x, fdb_info->addr,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
165
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
168
lan966x = fdb_work->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
181
lan966x_fdb_add_entry(lan966x, fdb_info);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
182
if (!lan966x_vlan_cpu_member_cpu_vlan_mask(lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
186
lan966x_mac_cpu_learn(lan966x, fdb_info->addr,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
190
ret = lan966x_fdb_del_entry(lan966x, fdb_info);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
191
if (!lan966x_vlan_cpu_member_cpu_vlan_mask(lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
196
lan966x_mac_cpu_forget(lan966x, fdb_info->addr,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
206
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
211
lan966x = fdb_work->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
219
lan966x_mac_add_entry(lan966x, port, fdb_info->addr,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
225
lan966x_mac_del_entry(lan966x, fdb_info->addr, fdb_info->vid);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
24
lan966x_fdb_find_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
252
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
271
fdb_work->lan966x = lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
281
queue_work(lan966x->fdb_work, &fdb_work->work);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
29
list_for_each_entry(fdb_entry, &lan966x->fdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
38
static void lan966x_fdb_add_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
43
fdb_entry = lan966x_fdb_find_entry(lan966x, fdb_info);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
56
list_add_tail(&fdb_entry->list, &lan966x->fdb_entries);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
59
static bool lan966x_fdb_del_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
64
list_for_each_entry_safe(fdb_entry, tmp, &lan966x->fdb_entries,
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
81
void lan966x_fdb_write_entries(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
85
list_for_each_entry(fdb_entry, &lan966x->fdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
89
lan966x_mac_cpu_learn(lan966x, fdb_entry->mac, fdb_entry->vid);
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
93
void lan966x_fdb_erase_entries(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
97
list_for_each_entry(fdb_entry, &lan966x->fdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
101
port = lan966x->ports[i];
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
112
struct lan966x *lan966x = rx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
119
err = fdma_alloc_coherent(lan966x->dev, fdma);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
12
struct lan966x *lan966x = (struct lan966x *)fdma->priv;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
13
struct lan966x_rx *rx = &lan966x->rx;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
131
struct lan966x *lan966x = rx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
138
lan_wr(lower_32_bits((u64)fdma->dma), lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
140
lan_wr(upper_32_bits((u64)fdma->dma), lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
147
lan966x, FDMA_CH_CFG(fdma->channel_id));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
152
lan966x, FDMA_PORT_CTRL(0));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
155
mask = lan_rd(lan966x, FDMA_INTR_DB_ENA);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
160
lan966x, FDMA_INTR_DB_ENA);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
165
lan966x, FDMA_CH_ACTIVATE);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
170
struct lan966x *lan966x = rx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
177
lan966x, FDMA_CH_DISABLE);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
179
readx_poll_timeout_atomic(lan966x_fdma_channel_active, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
185
lan966x, FDMA_CH_DB_DISCARD);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
190
struct lan966x *lan966x = rx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
194
lan966x, FDMA_CH_RELOAD);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
199
struct lan966x *lan966x = tx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
207
err = fdma_alloc_coherent(lan966x->dev, fdma);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
222
struct lan966x *lan966x = tx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
225
fdma_free_coherent(lan966x->dev, &tx->fdma);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
230
struct lan966x *lan966x = tx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
237
lan_wr(lower_32_bits((u64)fdma->dma), lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
239
lan_wr(upper_32_bits((u64)fdma->dma), lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
246
lan966x, FDMA_CH_CFG(fdma->channel_id));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
251
lan966x, FDMA_PORT_CTRL(0));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
254
mask = lan_rd(lan966x, FDMA_INTR_DB_ENA);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
259
lan966x, FDMA_INTR_DB_ENA);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
264
lan966x, FDMA_CH_ACTIVATE);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
269
struct lan966x *lan966x = tx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
276
lan966x, FDMA_CH_DISABLE);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
278
readx_poll_timeout_atomic(lan966x_fdma_channel_active, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
284
lan966x, FDMA_CH_DB_DISCARD);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
29
struct lan966x *lan966x = (struct lan966x *)fdma->priv;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
291
struct lan966x *lan966x = tx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
296
lan966x, FDMA_CH_RELOAD);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
299
static void lan966x_fdma_wakeup_netdev(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
304
for (i = 0; i < lan966x->num_phys_ports; ++i) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
305
port = lan966x->ports[i];
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
31
*dataptr = lan966x->tx.dcbs_buf[dcb].dma_addr;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
314
static void lan966x_fdma_stop_netdev(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
319
for (i = 0; i < lan966x->num_phys_ports; ++i) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
320
port = lan966x->ports[i];
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
328
static void lan966x_fdma_tx_clear_buf(struct lan966x *lan966x, int weight)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
330
struct lan966x_tx *tx = &lan966x->tx;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
331
struct lan966x_rx *rx = &lan966x->rx;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
342
spin_lock_irqsave(&lan966x->tx_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
358
dma_unmap_single(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
367
dma_unmap_single(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
385
lan966x_fdma_wakeup_netdev(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
387
spin_unlock_irqrestore(&lan966x->tx_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
39
struct lan966x *lan966x = (struct lan966x *)fdma->priv;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
392
struct lan966x *lan966x = rx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
403
dma_sync_single_for_cpu(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
41
*dataptr = lan966x->tx.dcbs_buf[dcb].dma_addr + XDP_PACKET_HEADROOM;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
410
if (WARN_ON(*src_port >= lan966x->num_phys_ports))
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
413
port = lan966x->ports[*src_port];
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
423
struct lan966x *lan966x = rx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
445
skb->dev = lan966x->ports[src_port]->dev;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
451
lan966x_ptp_rxtstamp(lan966x, skb, src_port, timestamp);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
454
if (lan966x->bridge_mask & BIT(src_port)) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
458
if (!lan966x_hw_offload(lan966x, src_port, skb))
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
46
static int lan966x_fdma_channel_active(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
475
struct lan966x *lan966x = container_of(napi, struct lan966x, napi);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
476
struct lan966x_rx *rx = &lan966x->rx;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
48
return lan_rd(lan966x, FDMA_CH_ACTIVE);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
485
lan966x_fdma_tx_clear_buf(lan966x, weight);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
518
napi_gro_receive(&lan966x->napi, skb);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
538
lan_wr(0xff, lan966x, FDMA_INTR_DB_ENA);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
545
struct lan966x *lan966x = args;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
548
db = lan_rd(lan966x, FDMA_INTR_DB);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
549
err = lan_rd(lan966x, FDMA_INTR_ERR);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
552
lan_wr(0, lan966x, FDMA_INTR_DB_ENA);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
553
lan_wr(db, lan966x, FDMA_INTR_DB);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
555
napi_schedule(&lan966x->napi);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
559
err_type = lan_rd(lan966x, FDMA_ERRORS);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
563
lan_wr(err, lan966x, FDMA_INTR_ERR);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
564
lan_wr(err_type, lan966x, FDMA_ERRORS);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
588
struct lan966x *lan966x = tx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
590
if (likely(lan966x->tx.activated)) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
594
lan966x->tx.activated = true;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
601
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
603
struct lan966x_tx *tx = &lan966x->tx;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
611
spin_lock(&lan966x->tx_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
638
dma_addr = dma_map_single(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
642
if (dma_mapping_error(lan966x->dev, dma_addr)) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
658
dma_sync_single_for_device(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
690
spin_unlock(&lan966x->tx_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
698
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
700
struct lan966x_tx *tx = &lan966x->tx;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
737
dma_addr = dma_map_single(lan966x->dev, skb->data, skb->len,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
739
if (dma_mapping_error(lan966x->dev, dma_addr)) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
77
struct lan966x *lan966x = rx->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
783
static int lan966x_fdma_get_max_mtu(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
788
for (i = 0; i < lan966x->num_phys_ports; ++i) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
792
port = lan966x->ports[i];
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
796
mtu = lan_rd(lan966x, DEV_MAC_MAXLEN_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
804
static int lan966x_qsys_sw_status(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
806
return lan_rd(lan966x, QSYS_SW_STATUS(CPU_PORT));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
809
static int lan966x_fdma_reload(struct lan966x *lan966x, int new_mtu)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
816
memcpy(&fdma_rx_old, &lan966x->rx.fdma, sizeof(struct fdma));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
817
page_pool = lan966x->rx.page_pool;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
819
napi_synchronize(&lan966x->napi);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
820
napi_disable(&lan966x->napi);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
821
lan966x_fdma_stop_netdev(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
823
lan966x_fdma_rx_disable(&lan966x->rx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
824
lan966x_fdma_rx_free_pages(&lan966x->rx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
825
lan966x->rx.page_order = round_up(new_mtu, PAGE_SIZE) / PAGE_SIZE - 1;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
826
lan966x->rx.max_mtu = new_mtu;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
827
err = lan966x_fdma_rx_alloc(&lan966x->rx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
83
.dev = lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
830
lan966x_fdma_rx_start(&lan966x->rx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
832
fdma_free_coherent(lan966x->dev, &fdma_rx_old);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
836
lan966x_fdma_wakeup_netdev(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
837
napi_enable(&lan966x->napi);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
841
lan966x->rx.page_pool = page_pool;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
842
memcpy(&lan966x->rx.fdma, &fdma_rx_old, sizeof(struct fdma));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
843
lan966x_fdma_rx_start(&lan966x->rx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
848
static int lan966x_fdma_get_max_frame(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
850
return lan966x_fdma_get_max_mtu(lan966x) +
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
857
static int __lan966x_fdma_reload(struct lan966x *lan966x, int max_mtu)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
865
lan966x, QSYS_SW_PORT_MODE(CPU_PORT));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
868
readx_poll_timeout(lan966x_qsys_sw_status, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
877
err = lan966x_fdma_reload(lan966x, max_mtu);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
882
lan966x, QSYS_SW_PORT_MODE(CPU_PORT));
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
887
int lan966x_fdma_change_mtu(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
891
max_mtu = lan966x_fdma_get_max_frame(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
892
if (max_mtu == lan966x->rx.max_mtu)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
895
return __lan966x_fdma_reload(lan966x, max_mtu);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
898
int lan966x_fdma_reload_page_pool(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
90
if (lan966x_xdp_present(lan966x))
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
902
max_mtu = lan966x_fdma_get_max_frame(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
903
return __lan966x_fdma_reload(lan966x, max_mtu);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
906
void lan966x_fdma_netdev_init(struct lan966x *lan966x, struct net_device *dev)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
908
if (lan966x->fdma_ndev)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
911
lan966x->fdma_ndev = dev;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
912
netif_napi_add(dev, &lan966x->napi, lan966x_fdma_napi_poll);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
913
napi_enable(&lan966x->napi);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
916
void lan966x_fdma_netdev_deinit(struct lan966x *lan966x, struct net_device *dev)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
918
if (lan966x->fdma_ndev == dev) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
919
netif_napi_del(&lan966x->napi);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
920
lan966x->fdma_ndev = NULL;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
924
int lan966x_fdma_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
928
if (!lan966x->fdma)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
931
lan966x->rx.lan966x = lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
932
lan966x->rx.fdma.channel_id = FDMA_XTR_CHANNEL;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
933
lan966x->rx.fdma.n_dcbs = FDMA_DCB_MAX;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
934
lan966x->rx.fdma.n_dbs = FDMA_RX_DCB_MAX_DBS;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
935
lan966x->rx.fdma.priv = lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
936
lan966x->rx.fdma.size = fdma_get_size(&lan966x->rx.fdma);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
937
lan966x->rx.fdma.db_size = PAGE_SIZE << lan966x->rx.page_order;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
938
lan966x->rx.fdma.ops.nextptr_cb = &fdma_nextptr_cb;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
939
lan966x->rx.fdma.ops.dataptr_cb = &lan966x_fdma_rx_dataptr_cb;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
940
lan966x->rx.max_mtu = lan966x_fdma_get_max_frame(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
941
lan966x->tx.lan966x = lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
942
lan966x->tx.fdma.channel_id = FDMA_INJ_CHANNEL;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
943
lan966x->tx.fdma.n_dcbs = FDMA_DCB_MAX;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
944
lan966x->tx.fdma.n_dbs = FDMA_TX_DCB_MAX_DBS;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
945
lan966x->tx.fdma.priv = lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
946
lan966x->tx.fdma.size = fdma_get_size(&lan966x->tx.fdma);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
947
lan966x->tx.fdma.db_size = PAGE_SIZE << lan966x->rx.page_order;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
948
lan966x->tx.fdma.ops.nextptr_cb = &fdma_nextptr_cb;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
949
lan966x->tx.fdma.ops.dataptr_cb = &lan966x_fdma_tx_dataptr_cb;
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
95
for (int i = 0; i < lan966x->num_phys_ports; ++i) {
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
951
err = lan966x_fdma_rx_alloc(&lan966x->rx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
955
err = lan966x_fdma_tx_alloc(&lan966x->tx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
957
fdma_free_coherent(lan966x->dev, &lan966x->rx.fdma);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
961
lan966x_fdma_rx_start(&lan966x->rx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
966
void lan966x_fdma_deinit(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
968
if (!lan966x->fdma)
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
971
lan966x_fdma_rx_disable(&lan966x->rx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
972
lan966x_fdma_tx_disable(&lan966x->tx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
974
napi_synchronize(&lan966x->napi);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
975
napi_disable(&lan966x->napi);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
977
lan966x_fdma_rx_free_pages(&lan966x->rx);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
978
fdma_free_coherent(lan966x->dev, &lan966x->rx.fdma);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
979
page_pool_destroy(lan966x->rx.page_pool);
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
98
if (!lan966x->ports[i])
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
980
lan966x_fdma_tx_free(&lan966x->tx);
drivers/net/ethernet/microchip/lan966x/lan966x_goto.c
11
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_goto.c
14
err = vcap_enable_lookups(lan966x->vcap_ctrl, port->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_goto.c
39
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_goto.c
42
err = vcap_enable_lookups(lan966x->vcap_ctrl, port->dev, 0, 0,
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
100
for (p = 0; p < lan966x->num_phys_ports; ++p) {
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
101
port = lan966x->ports[p];
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
107
bond_mask = lan966x_lag_get_mask(lan966x, port->bond);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
113
lan966x, ANA_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
117
static void lan966x_lag_update_ids(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
119
lan966x_lag_set_port_ids(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
120
lan966x_update_fwd_mask(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
121
lan966x_lag_set_aggr_pgids(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
129
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
13
for (p = 0; p < lan966x->num_phys_ports; ++p)
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
135
bond_mask = lan966x_lag_get_mask(lan966x, bond);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
140
lan966x_lag_update_ids(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
15
lan966x, ANA_PGID(p));
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
153
lan966x_mac_lag_replace_port_entry(lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
154
lan966x->ports[lag_id],
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
161
lan966x_lag_update_ids(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
168
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
173
bond_mask = lan966x_lag_get_mask(lan966x, port->bond);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
177
lan966x_mac_lag_replace_port_entry(lan966x, port,
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
178
lan966x->ports[lag_id]);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
180
lan966x_mac_lag_remove_port_entry(lan966x, port);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
185
lan966x_lag_update_ids(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
189
static bool lan966x_lag_port_check_hash_types(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
19
lan966x, ANA_PGID(p));
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
194
for (p = 0; p < lan966x->num_phys_ports; ++p) {
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
195
struct lan966x_port *port = lan966x->ports[p];
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
211
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
228
if (!lan966x_lag_port_check_hash_types(lan966x, lui->hash_type)) {
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
238
lan966x, ANA_AGGR_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
244
lan966x, ANA_AGGR_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
251
lan966x, ANA_AGGR_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
269
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
280
lan966x_lag_set_aggr_pgids(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
29
for (p = 0; p < lan966x->num_phys_ports; ++p) {
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
30
struct lan966x_port *port = lan966x->ports[p];
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
336
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
342
bond_mask = lan966x_lag_get_mask(lan966x, lag);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
349
u32 lan966x_lag_get_mask(struct lan966x *lan966x, struct net_device *bond)
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
358
for (p = 0; p < lan966x->num_phys_ports; p++) {
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
359
port = lan966x->ports[p];
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
39
for (lag = 0; lag < lan966x->num_phys_ports; ++lag) {
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
40
struct lan966x_port *port = lan966x->ports[lag];
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
50
bond_mask = lan966x_lag_get_mask(lan966x, bond);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
52
for_each_set_bit(p, &bond_mask, lan966x->num_phys_ports) {
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
53
struct lan966x_port *port = lan966x->ports[p];
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
59
lan966x, ANA_PGID(p));
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
67
ac = lan_rd(lan966x, ANA_PGID(i));
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
7
static void lan966x_lag_set_aggr_pgids(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
75
lan966x, ANA_PGID(i));
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
81
for (p = lag; p < lan966x->num_phys_ports; p++) {
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
82
struct lan966x_port *port = lan966x->ports[p];
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
9
u32 visited = GENMASK(lan966x->num_phys_ports - 1, 0);
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c
93
static void lan966x_lag_set_port_ids(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
103
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
104
ret = __lan966x_mac_learn_locked(lan966x, pgid, cpu_copy, mac, vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
105
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
113
int lan966x_mac_ip_learn(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
121
return __lan966x_mac_learn(lan966x, 0, cpu_copy, mac, vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
124
int lan966x_mac_learn(struct lan966x *lan966x, int port,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
131
return __lan966x_mac_learn(lan966x, port, false, mac, vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
134
static int lan966x_mac_learn_locked(struct lan966x *lan966x, int port,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
141
return __lan966x_mac_learn_locked(lan966x, port, false, mac, vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
144
static int lan966x_mac_forget_locked(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
149
lockdep_assert_held(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
151
lan966x_mac_select(lan966x, mac, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
156
lan966x, ANA_MACACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
158
return lan966x_mac_wait_for_completion(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
161
int lan966x_mac_forget(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
168
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
169
ret = lan966x_mac_forget_locked(lan966x, mac, vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
170
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
175
int lan966x_mac_cpu_learn(struct lan966x *lan966x, const char *addr, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
177
return lan966x_mac_learn(lan966x, PGID_CPU, addr, vid, ENTRYTYPE_LOCKED);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
180
int lan966x_mac_cpu_forget(struct lan966x *lan966x, const char *addr, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
182
return lan966x_mac_forget(lan966x, addr, vid, ENTRYTYPE_LOCKED);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
185
void lan966x_mac_set_ageing(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
190
lan966x, ANA_AUTOAGE);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
193
void lan966x_mac_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
196
lan_wr(MACACCESS_CMD_INIT, lan966x, ANA_MACACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
197
lan966x_mac_wait_for_completion(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
199
spin_lock_init(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
200
INIT_LIST_HEAD(&lan966x->mac_entries);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
221
static struct lan966x_mac_entry *lan966x_mac_find_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
228
list_for_each_entry(mac_entry, &lan966x->mac_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
240
static int lan966x_mac_lookup(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
246
lan966x_mac_select(lan966x, mac, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
252
lan966x, ANA_MACACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
254
ret = lan966x_mac_wait_for_completion(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
258
return ANA_MACACCESS_VALID_GET(lan_rd(lan966x, ANA_MACACCESS));
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
273
int lan966x_mac_add_entry(struct lan966x *lan966x, struct lan966x_port *port,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
278
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
279
if (lan966x_mac_lookup(lan966x, addr, vid, ENTRYTYPE_NORMAL)) {
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
280
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
290
mac_entry = lan966x_mac_find_entry(lan966x, addr, vid, port->chip_port);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
292
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
298
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
302
list_add_tail(&mac_entry->list, &lan966x->mac_entries);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
303
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
309
lan966x_mac_learn(lan966x, port->chip_port, addr, vid, ENTRYTYPE_LOCKED);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
314
int lan966x_mac_del_entry(struct lan966x *lan966x, const unsigned char *addr,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
319
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
320
list_for_each_entry_safe(mac_entry, tmp, &lan966x->mac_entries,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
324
lan966x_mac_forget_locked(lan966x, mac_entry->mac,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
332
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
337
void lan966x_mac_lag_replace_port_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
343
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
344
list_for_each_entry(mac_entry, &lan966x->mac_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
347
lan966x_mac_forget_locked(lan966x, mac_entry->mac,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
35
static int lan966x_mac_get_status(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
351
lan966x_mac_learn_locked(lan966x, dst->chip_port,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
357
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
360
void lan966x_mac_lag_remove_port_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
365
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
366
list_for_each_entry_safe(mac_entry, tmp, &lan966x->mac_entries,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
37
return lan_rd(lan966x, ANA_MACACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
370
lan966x_mac_forget_locked(lan966x, mac_entry->mac,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
378
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
381
void lan966x_mac_purge_entries(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
385
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
386
list_for_each_entry_safe(mac_entry, tmp, &lan966x->mac_entries,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
388
lan966x_mac_forget_locked(lan966x, mac_entry->mac,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
394
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
40
static int lan966x_mac_wait_for_completion(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
420
static void lan966x_mac_irq_process(struct lan966x *lan966x, u32 row,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
433
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
434
list_for_each_entry_safe(mac_entry, tmp, &lan966x->mac_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
45
lan966x, val,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
450
if (WARN_ON(dest_idx >= lan966x->num_phys_ports))
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
473
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
479
port = lan966x->ports[mac_entry->port_index];
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
504
if (WARN_ON(dest_idx >= lan966x->num_phys_ports))
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
507
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
508
mac_entry = lan966x_mac_find_entry(lan966x, mac, vid, dest_idx);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
510
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
514
port = lan966x->ports[dest_idx];
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
517
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
52
static void lan966x_mac_select(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
522
list_add_tail(&mac_entry->list, &lan966x->mac_entries);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
523
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
530
irqreturn_t lan966x_mac_irq_handler(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
540
lan966x, ANA_MACTINDX);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
543
spin_lock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
546
lan966x, ANA_MACACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
547
lan966x_mac_wait_for_completion(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
549
val = lan_rd(lan966x, ANA_MACTINDX);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
568
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
572
entry[column].mach = lan_rd(lan966x, ANA_MACHDATA);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
573
entry[column].macl = lan_rd(lan966x, ANA_MACLDATA);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
574
entry[column].maca = lan_rd(lan966x, ANA_MACACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
575
spin_unlock(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
579
lan966x_mac_irq_process(lan966x, index, entry);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
589
lan966x, ANA_ANAINTR);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
69
lan_wr(macl, lan966x, ANA_MACLDATA);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
70
lan_wr(mach, lan966x, ANA_MACHDATA);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
73
static int __lan966x_mac_learn_locked(struct lan966x *lan966x, int pgid,
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
79
lockdep_assert_held(&lan966x->mac_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
81
lan966x_mac_select(lan966x, mac, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
90
lan966x, ANA_MACACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
92
return lan966x_mac_wait_for_completion(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
95
static int __lan966x_mac_learn(struct lan966x *lan966x, int pgid,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1002
lan966x, ANA_PGID(PGID_CPU));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1005
lan_rmw(GENMASK(lan966x->num_phys_ports - 1, 0),
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1007
lan966x, ANA_PGID(PGID_MC));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
101
lan966x->regs[iomap->id] = begin[iomap->range] + iomap->offset;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1010
lan_rmw(GENMASK(lan966x->num_phys_ports - 1, 0),
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1012
lan966x, ANA_PGID(PGID_MCIPV4));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1014
lan_rmw(GENMASK(lan966x->num_phys_ports - 1, 0),
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1016
lan966x, ANA_PGID(PGID_MCIPV6));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1019
lan_rmw(GENMASK(lan966x->num_phys_ports - 1, 0),
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1021
lan966x, ANA_PGID(PGID_UC));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1024
lan_rmw(ANA_PGID_PGID_SET(BIT(CPU_PORT) | GENMASK(lan966x->num_phys_ports - 1, 0)),
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1026
lan966x, ANA_PGID(PGID_BC));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1029
lan966x, REW_PORT_CFG(CPU_PORT));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1033
lan966x, ANA_ANAINTR);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1035
spin_lock_init(&lan966x->tx_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1037
lan966x_taprio_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1040
static int lan966x_ram_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1042
return lan_rd(lan966x, SYS_RAM_INIT);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1045
static int lan966x_reset_switch(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1051
switch_reset = devm_reset_control_get_optional_shared(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1054
return dev_err_probe(lan966x->dev, PTR_ERR(switch_reset),
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1066
if (lan_rd(lan966x, SYS_RESET_CFG) & SYS_RESET_CFG_CORE_ENA)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1069
lan_wr(SYS_RESET_CFG_CORE_ENA_SET(0), lan966x, SYS_RESET_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1070
lan_wr(SYS_RAM_INIT_RAM_INIT_SET(1), lan966x, SYS_RAM_INIT);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1071
ret = readx_poll_timeout(lan966x_ram_init, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1077
lan_wr(SYS_RESET_CFG_CORE_ENA_SET(1), lan966x, SYS_RESET_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1085
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1089
lan966x = devm_kzalloc(&pdev->dev, sizeof(*lan966x), GFP_KERNEL);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1090
if (!lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1093
platform_set_drvdata(pdev, lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1094
lan966x->dev = &pdev->dev;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1097
ether_addr_copy(lan966x->base_mac, mac_addr);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
110
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1100
eth_random_addr(lan966x->base_mac);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1101
lan966x->base_mac[5] &= 0xf0;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1104
err = lan966x_create_targets(pdev, lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1109
err = lan966x_reset_switch(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1113
lan966x->num_phys_ports = NUM_PHYS_PORTS;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1114
lan966x->ports = devm_kcalloc(&pdev->dev, lan966x->num_phys_ports,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1117
if (!lan966x->ports)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1121
lan966x->shared_queue_sz = LAN966X_BUFFER_MEMORY;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1124
lan966x->xtr_irq = platform_get_irq_byname(pdev, "xtr");
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1125
if (lan966x->xtr_irq < 0)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1126
return lan966x->xtr_irq;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1128
err = devm_request_threaded_irq(&pdev->dev, lan966x->xtr_irq, NULL,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
113
for (p = 0; p < lan966x->num_phys_ports; ++p) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1130
"frame extraction", lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1136
lan966x->ana_irq = platform_get_irq_byname(pdev, "ana");
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1137
if (lan966x->ana_irq > 0) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1138
err = devm_request_threaded_irq(&pdev->dev, lan966x->ana_irq, NULL,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
114
port = lan966x->ports[p];
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1140
"ana irq", lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1145
lan966x->ptp_irq = platform_get_irq_byname(pdev, "ptp");
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1146
if (lan966x->ptp_irq > 0) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1147
err = devm_request_threaded_irq(&pdev->dev, lan966x->ptp_irq, NULL,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1149
"ptp irq", lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1153
lan966x->ptp = 1;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1156
lan966x->fdma_irq = platform_get_irq_byname(pdev, "fdma");
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1157
if (lan966x->fdma_irq > 0) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1158
err = devm_request_irq(&pdev->dev, lan966x->fdma_irq,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1160
"fdma irq", lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1164
lan966x->fdma = true;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1167
if (lan966x->ptp) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1168
lan966x->ptp_ext_irq = platform_get_irq_byname(pdev, "ptp-ext");
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1169
if (lan966x->ptp_ext_irq > 0) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1171
lan966x->ptp_ext_irq, NULL,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1174
"ptp-ext irq", lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1186
lan966x->debugfs_root = debugfs_create_dir("lan966x", NULL);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1189
lan966x_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1190
lan966x_stats_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1202
err = lan966x_probe_port(lan966x, p, phy_mode, portnp);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1207
lan966x->ports[p]->config.portmode = phy_mode;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1208
lan966x->ports[p]->fwnode = fwnode_handle_get(portnp);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1210
serdes = devm_of_phy_optional_get(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1216
lan966x->ports[p]->serdes = serdes;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1218
lan966x_port_init(lan966x->ports[p]);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1219
err = lan966x_xdp_port_init(lan966x->ports[p]);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1226
lan966x_mdb_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1227
err = lan966x_fdb_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1231
err = lan966x_ptp_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1235
err = lan966x_fdma_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1239
err = lan966x_vcap_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1243
lan966x_dcb_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1248
lan966x_fdma_deinit(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1251
lan966x_ptp_deinit(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1254
lan966x_fdb_deinit(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1260
lan966x_cleanup_ports(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1262
cancel_delayed_work_sync(&lan966x->stats_work);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1263
destroy_workqueue(lan966x->stats_queue);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1265
debugfs_remove_recursive(lan966x->debugfs_root);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1272
struct lan966x *lan966x = platform_get_drvdata(pdev);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1274
lan966x_taprio_deinit(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1275
lan966x_vcap_deinit(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1276
lan966x_fdma_deinit(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1277
lan966x_cleanup_ports(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1279
cancel_delayed_work_sync(&lan966x->stats_work);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
128
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1280
destroy_workqueue(lan966x->stats_queue);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1282
lan966x_mac_purge_entries(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1283
lan966x_mdb_deinit(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1284
lan966x_fdb_deinit(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1285
lan966x_ptp_deinit(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
1287
debugfs_remove_recursive(lan966x->debugfs_root);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
136
ret = lan966x_mac_cpu_learn(lan966x, addr->sa_data, HOST_PVID);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
147
ret = lan966x_mac_cpu_forget(lan966x, dev->dev_addr, HOST_PVID);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
172
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
184
lan966x, ANA_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
208
static int lan966x_port_inj_status(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
210
return lan_rd(lan966x, QS_INJ_STATUS);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
213
static int lan966x_port_inj_ready(struct lan966x *lan966x, u8 grp)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
217
if (lan_rd(lan966x, QS_INJ_STATUS) & QS_INJ_STATUS_FIFO_RDY_SET(BIT(grp)))
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
220
return readx_poll_timeout_atomic(lan966x_port_inj_status, lan966x, val,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
230
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
236
val = lan_rd(lan966x, QS_INJ_STATUS);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
244
lan966x, QS_INJ_CTRL(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
249
err = lan966x_port_inj_ready(lan966x, grp);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
253
lan_wr((__force u32)ifh[i], lan966x, QS_INJ_WR(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
261
err = lan966x_port_inj_ready(lan966x, grp);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
265
lan_wr(((u32 *)skb->data)[i], lan966x, QS_INJ_WR(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
271
err = lan966x_port_inj_ready(lan966x, grp);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
275
lan_wr(0, lan966x, QS_INJ_WR(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
284
lan966x, QS_INJ_CTRL(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
287
lan_wr(0, lan966x, QS_INJ_WR(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
370
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
382
if (port->lan966x->ptp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
392
spin_lock(&lan966x->tx_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
393
if (port->lan966x->fdma)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
397
spin_unlock(&lan966x->tx_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
405
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
410
lan966x, DEV_MAC_MAXLEN_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
413
if (!lan966x->fdma)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
416
err = lan966x_fdma_change_mtu(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
419
lan966x, DEV_MAC_MAXLEN_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
429
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
431
return lan966x_mac_forget(lan966x, addr, HOST_PVID, ENTRYTYPE_LOCKED);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
437
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
439
return lan966x_mac_cpu_learn(lan966x, addr, HOST_PVID);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
451
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
453
ppid->id_len = sizeof(lan966x->base_mac);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
454
memcpy(&ppid->id, &lan966x->base_mac, ppid->id_len);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
464
if (!port->lan966x->ptp)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
483
if (cfg->source == HWTSTAMP_SOURCE_NETDEV && !port->lan966x->ptp)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
524
bool lan966x_hw_offload(struct lan966x *lan966x, u32 port, struct sk_buff *skb)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
532
val = lan_rd(lan966x, ANA_CPU_FWD_CFG(port));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
556
static int lan966x_port_xtr_status(struct lan966x *lan966x, u8 grp)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
558
return lan_rd(lan966x, QS_XTR_RD(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
561
static int lan966x_port_xtr_ready(struct lan966x *lan966x, u8 grp)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
568
lan966x, grp);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
571
static int lan966x_rx_frame_word(struct lan966x *lan966x, u8 grp, u32 *rval)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
577
val = lan_rd(lan966x, QS_XTR_RD(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
579
err = lan966x_port_xtr_ready(lan966x, grp);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
593
val = lan_rd(lan966x, QS_XTR_RD(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
595
*rval = lan_rd(lan966x, QS_XTR_RD(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
601
*rval = lan_rd(lan966x, QS_XTR_RD(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
647
struct lan966x *lan966x = args;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
650
if (!(lan_rd(lan966x, QS_XTR_DATA_PRESENT) & BIT(grp)))
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
663
err = lan966x_rx_frame_word(lan966x, grp, &ifh[i]);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
674
WARN_ON(src_port >= lan966x->num_phys_ports);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
676
dev = lan966x->ports[src_port]->dev;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
68
struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
687
sz = lan966x_rx_frame_word(lan966x, grp, &val);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
698
sz = lan966x_rx_frame_word(lan966x, grp, &val);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
712
lan966x_ptp_rxtstamp(lan966x, skb, src_port, timestamp);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
715
if (lan966x->bridge_mask & BIT(src_port)) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
719
if (!lan966x_hw_offload(lan966x, src_port, skb))
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
731
lan_rd(lan966x, QS_XTR_RD(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
733
} while (lan_rd(lan966x, QS_XTR_DATA_PRESENT) & BIT(grp));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
740
struct lan966x *lan966x = args;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
742
return lan966x_mac_irq_handler(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
745
static void lan966x_cleanup_ports(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
750
for (p = 0; p < lan966x->num_phys_ports; p++) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
751
port = lan966x->ports[p];
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
759
if (lan966x->fdma && lan966x->fdma_ndev == port->dev)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
760
lan966x_fdma_netdev_deinit(lan966x, port->dev);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
774
disable_irq(lan966x->xtr_irq);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
775
lan966x->xtr_irq = -ENXIO;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
777
if (lan966x->ana_irq > 0) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
778
disable_irq(lan966x->ana_irq);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
779
lan966x->ana_irq = -ENXIO;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
782
if (lan966x->fdma)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
783
devm_free_irq(lan966x->dev, lan966x->fdma_irq, lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
785
if (lan966x->ptp_irq > 0)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
786
devm_free_irq(lan966x->dev, lan966x->ptp_irq, lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
788
if (lan966x->ptp_ext_irq > 0)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
789
devm_free_irq(lan966x->dev, lan966x->ptp_ext_irq, lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
792
static int lan966x_probe_port(struct lan966x *lan966x, u32 p,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
801
if (p >= lan966x->num_phys_ports)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
804
dev = devm_alloc_etherdev_mqs(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
810
SET_NETDEV_DEV(dev, lan966x->dev);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
813
port->lan966x = lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
815
lan966x->ports[p] = port;
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
828
eth_hw_addr_gen(dev, lan966x->base_mac, p + 1);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
830
lan966x_mac_learn(lan966x, PGID_CPU, dev->dev_addr, HOST_PVID,
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
868
if (lan966x->fdma)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
875
dev_err(lan966x->dev, "register_netdev failed\n");
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
887
static void lan966x_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
892
lan966x_mac_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
894
lan966x_vlan_init(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
897
lan_wr(lan_rd(lan966x, QS_XTR_FLUSH) |
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
899
lan966x, QS_XTR_FLUSH);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
905
lan_wr(lan_rd(lan966x, QS_XTR_FLUSH) &
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
907
lan966x, QS_XTR_FLUSH);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
913
lan966x, ANA_AUTOAGE);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
918
lan966x, ANA_ADVLEARN);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
923
lan966x, SYS_FRM_AGING);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
926
lan_wr(0, lan966x, QSYS_CPU_GROUP_MAP);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
931
lan_wr(QS_XTR_GRP_CFG_MODE_SET(lan966x->fdma ? 2 : 1) |
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
933
lan966x, QS_XTR_GRP_CFG(0));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
936
lan_wr(QS_INJ_GRP_CFG_MODE_SET(lan966x->fdma ? 2 : 1) |
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
938
lan966x, QS_INJ_GRP_CFG(0));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
942
lan966x, QS_INJ_CTRL(0));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
947
lan966x, SYS_PORT_MODE(CPU_PORT));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
954
lan966x, ANA_FLOODING_IPMC);
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
964
lan966x, ANA_FLOODING(i));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
970
lan966x, ANA_PGID_CFG(i));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
972
for (p = 0; p < lan966x->num_phys_ports; p++) {
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
976
lan966x, ANA_PGID(p + PGID_SRC));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
981
lan_wr(0xffff, lan966x, ANA_CPU_FWD_BPDU_CFG(p));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
986
lan_wr(1500 / 64, lan966x, QSYS_RES_CFG(i));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
987
lan_wr(1500 / 64, lan966x, QSYS_RES_CFG(512 + i));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
994
lan966x, QSYS_SW_PORT_MODE(CPU_PORT));
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
999
lan966x, ANA_PGID(CPU_PORT));
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
199
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
235
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
255
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
395
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
438
bool lan966x_hw_offload(struct lan966x *lan966x, u32 port, struct sk_buff *skb);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
447
int lan966x_stats_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
462
int lan966x_mac_ip_learn(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
467
int lan966x_mac_learn(struct lan966x *lan966x, int port,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
471
int lan966x_mac_forget(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
475
int lan966x_mac_cpu_learn(struct lan966x *lan966x, const char *addr, u16 vid);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
476
int lan966x_mac_cpu_forget(struct lan966x *lan966x, const char *addr, u16 vid);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
477
void lan966x_mac_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
478
void lan966x_mac_set_ageing(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
480
int lan966x_mac_del_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
483
int lan966x_mac_add_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
487
void lan966x_mac_lag_replace_port_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
490
void lan966x_mac_lag_remove_port_entry(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
492
void lan966x_mac_purge_entries(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
493
irqreturn_t lan966x_mac_irq_handler(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
495
void lan966x_vlan_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
497
bool lan966x_vlan_cpu_member_cpu_vlan_mask(struct lan966x *lan966x, u16 vid);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
510
void lan966x_vlan_cpu_add_vlan(struct lan966x *lan966x, u16 vid);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
511
void lan966x_vlan_cpu_del_vlan(struct lan966x *lan966x, u16 vid);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
513
void lan966x_fdb_write_entries(struct lan966x *lan966x, u16 vid);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
514
void lan966x_fdb_erase_entries(struct lan966x *lan966x, u16 vid);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
515
int lan966x_fdb_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
516
void lan966x_fdb_deinit(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
517
void lan966x_fdb_flush_workqueue(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
523
void lan966x_mdb_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
524
void lan966x_mdb_deinit(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
529
void lan966x_mdb_erase_entries(struct lan966x *lan966x, u16 vid);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
530
void lan966x_mdb_write_entries(struct lan966x *lan966x, u16 vid);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
531
void lan966x_mdb_clear_entries(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
532
void lan966x_mdb_restore_entries(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
534
int lan966x_ptp_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
535
void lan966x_ptp_deinit(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
541
void lan966x_ptp_rxtstamp(struct lan966x *lan966x, struct sk_buff *skb,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
557
int lan966x_fdma_change_mtu(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
558
void lan966x_fdma_netdev_init(struct lan966x *lan966x, struct net_device *dev);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
559
void lan966x_fdma_netdev_deinit(struct lan966x *lan966x, struct net_device *dev);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
560
int lan966x_fdma_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
561
void lan966x_fdma_deinit(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
563
int lan966x_fdma_reload_page_pool(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
579
u32 lan966x_lag_get_mask(struct lan966x *lan966x, struct net_device *bond);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
590
void lan966x_update_fwd_mask(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
598
void lan966x_taprio_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
599
void lan966x_taprio_deinit(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
658
bool lan966x_xdp_present(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
664
int lan966x_vcap_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
665
void lan966x_vcap_deinit(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
692
void lan966x_dcb_init(struct lan966x *lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
694
static inline void lan966x_dcb_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
714
static inline u32 lan_rd(struct lan966x *lan966x, int id, int tinst, int tcnt,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
718
return readl(lan_addr(lan966x->regs, id, tinst, tcnt, gbase, ginst,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
722
static inline void lan_wr(u32 val, struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
727
writel(val, lan_addr(lan966x->regs, id, tinst, tcnt,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
732
static inline void lan_rmw(u32 val, u32 mask, struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
739
nval = readl(lan_addr(lan966x->regs, id, tinst, tcnt, gbase, ginst,
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
742
writel(nval, lan_addr(lan966x->regs, id, tinst, tcnt, gbase, ginst,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
110
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
115
mdb_entry = lan966x_mdb_entry_get(lan966x, mdb->addr, mdb->vid);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
117
mdb_entry = lan966x_mdb_entry_add(lan966x, mdb);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
122
lan966x_mac_forget(lan966x, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
131
if (lan966x_vlan_cpu_member_cpu_vlan_mask(lan966x, mdb_entry->vid) &&
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
136
return lan966x_mac_ip_learn(lan966x, cpu_copy,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
145
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
150
mdb_entry = lan966x_mdb_entry_get(lan966x, mdb->addr, mdb->vid);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
167
lan966x_mac_forget(lan966x, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
178
return lan966x_mac_ip_learn(lan966x, mdb_entry->cpu_copy,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
183
lan966x_pgid_entry_add(struct lan966x *lan966x, int index, u16 ports)
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
195
list_add_tail(&pgid_entry->list, &lan966x->pgid_entries);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
201
lan966x_pgid_entry_get(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
210
list_for_each_entry(pgid_entry, &lan966x->pgid_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
223
list_for_each_entry(pgid_entry, &lan966x->pgid_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
23
void lan966x_mdb_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
231
return lan966x_pgid_entry_add(lan966x, index,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
238
static void lan966x_pgid_entry_del(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
25
INIT_LIST_HEAD(&lan966x->mdb_entries);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
253
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
258
mdb_entry = lan966x_mdb_entry_get(lan966x, mdb->addr, mdb->vid);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
26
INIT_LIST_HEAD(&lan966x->pgid_entries);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
260
mdb_entry = lan966x_mdb_entry_add(lan966x, mdb);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
264
lan966x_pgid_entry_del(lan966x, mdb_entry->pgid);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
266
lan966x_mac_forget(lan966x, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
276
pgid_entry = lan966x_pgid_entry_get(lan966x, mdb_entry);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
285
if (!lan966x_vlan_cpu_member_cpu_vlan_mask(lan966x, mdb_entry->vid) &&
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
29
static void lan966x_mdb_purge_mdb_entries(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
291
lan966x, ANA_PGID(pgid_entry->index));
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
293
return lan966x_mac_learn(lan966x, pgid_entry->index, mdb_entry->mac,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
302
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
308
mdb_entry = lan966x_mdb_entry_get(lan966x, mdb->addr, mdb->vid);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
327
lan966x_mac_forget(lan966x, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
328
lan966x_pgid_entry_del(lan966x, mdb_entry->pgid);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
33
list_for_each_entry_safe(mdb_entry, tmp, &lan966x->mdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
338
pgid_entry = lan966x_pgid_entry_get(lan966x, mdb_entry);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
348
lan966x, ANA_PGID(pgid_entry->index));
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
350
return lan966x_mac_learn(lan966x, pgid_entry->index, mdb_entry->mac,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
39
static void lan966x_mdb_purge_pgid_entries(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
398
static void lan966x_mdb_ip_cpu_copy(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
405
lan966x_mac_forget(lan966x, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
406
lan966x_mac_ip_learn(lan966x, true, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
409
static void lan966x_mdb_l2_cpu_copy(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
416
lan966x_pgid_entry_del(lan966x, mdb_entry->pgid);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
418
lan966x_mac_forget(lan966x, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
422
pgid_entry = lan966x_pgid_entry_get(lan966x, mdb_entry);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
43
list_for_each_entry_safe(pgid_entry, tmp, &lan966x->pgid_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
430
lan966x, ANA_PGID(pgid_entry->index));
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
432
lan966x_mac_learn(lan966x, pgid_entry->index, mdb_entry->mac,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
436
void lan966x_mdb_write_entries(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
441
list_for_each_entry(mdb_entry, &lan966x->mdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
447
lan966x_mdb_ip_cpu_copy(lan966x, mdb_entry, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
449
lan966x_mdb_l2_cpu_copy(lan966x, mdb_entry, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
453
static void lan966x_mdb_ip_cpu_remove(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
460
lan966x_mac_forget(lan966x, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
461
lan966x_mac_ip_learn(lan966x, false, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
464
static void lan966x_mdb_l2_cpu_remove(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
471
lan966x_pgid_entry_del(lan966x, mdb_entry->pgid);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
473
lan966x_mac_forget(lan966x, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
477
pgid_entry = lan966x_pgid_entry_get(lan966x, mdb_entry);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
485
lan966x, ANA_PGID(pgid_entry->index));
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
487
lan966x_mac_learn(lan966x, pgid_entry->index, mdb_entry->mac,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
49
void lan966x_mdb_deinit(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
491
void lan966x_mdb_erase_entries(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
496
list_for_each_entry(mdb_entry, &lan966x->mdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
502
lan966x_mdb_ip_cpu_remove(lan966x, mdb_entry, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
504
lan966x_mdb_l2_cpu_remove(lan966x, mdb_entry, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
508
void lan966x_mdb_clear_entries(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
51
lan966x_mdb_purge_mdb_entries(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
514
list_for_each_entry(mdb_entry, &lan966x->mdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
52
lan966x_mdb_purge_pgid_entries(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
521
lan966x_mac_forget(lan966x, mac, mdb_entry->vid, type);
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
525
void lan966x_mdb_restore_entries(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
532
list_for_each_entry(mdb_entry, &lan966x->mdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
538
if (lan966x_vlan_cpu_member_cpu_vlan_mask(lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
543
lan966x_mac_ip_learn(lan966x, cpu_copy, mac,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
546
lan966x_mac_learn(lan966x, mdb_entry->pgid->index,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
56
lan966x_mdb_entry_get(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
62
list_for_each_entry(mdb_entry, &lan966x->mdb_entries, list) {
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
72
lan966x_mdb_entry_add(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
84
list_add_tail(&mdb_entry->list, &lan966x->mdb_entries);
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
11
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
22
if (lan966x->mirror_mask[ingress] & BIT(port->chip_port)) {
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
28
if (lan966x->mirror_monitor &&
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
29
lan966x->mirror_monitor != monitor_port) {
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
41
lan966x->mirror_mask[ingress] |= BIT(port->chip_port);
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
43
lan966x->mirror_monitor = monitor_port;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
44
lan_wr(BIT(monitor_port->chip_port), lan966x, ANA_MIRRORPORTS);
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
49
lan966x, ANA_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
51
lan_wr(lan966x->mirror_mask[0], lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
55
lan966x->mirror_count++;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
69
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
71
if (!(lan966x->mirror_mask[ingress] & BIT(port->chip_port))) {
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
77
lan966x->mirror_mask[ingress] &= ~BIT(port->chip_port);
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
82
lan966x, ANA_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
84
lan_wr(lan966x->mirror_mask[0], lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
88
lan966x->mirror_count--;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
90
if (lan966x->mirror_count == 0) {
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
91
lan966x->mirror_monitor = NULL;
drivers/net/ethernet/microchip/lan966x/lan966x_mirror.c
92
lan_wr(0, lan966x, ANA_MIRRORPORTS);
drivers/net/ethernet/microchip/lan966x/lan966x_phylink.c
73
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_phylink.c
82
lan966x, DEV_CLOCK_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
139
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
166
lan966x, ANA_POL_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
185
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
199
lan966x, ANA_POL_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
22
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
40
lan966x, ANA_POL_MODE(pol_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
43
lan966x, ANA_POL_PIR_STATE(pol_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
47
lan966x, ANA_POL_PIR_CFG(pol_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
54
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
61
lan966x, ANA_POL_MODE(pol_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
64
lan966x, ANA_POL_PIR_STATE(pol_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_police.c
68
lan966x, ANA_POL_PIR_CFG(pol_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
103
val = lan_rd(lan966x, QSYS_SW_STATUS(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
118
lan966x, DEV_MAC_ENA_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
122
lan966x, DEV_CLOCK_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
132
lan966x, DEV_CLOCK_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
137
lan966x, QSYS_SW_PORT_MODE(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
147
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
178
lan966x, DEV_MAC_MODE_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
186
lan966x, DEV_MAC_IFG_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
192
lan966x, DEV_MAC_HDX_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
198
lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
203
lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
209
lan966x, ANA_PFC_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
213
lan966x, DEV_PCS1G_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
217
lan966x, DEV_PCS1G_SD_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
223
lan966x, SYS_PAUSE_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
226
lan_wr(0, lan966x, DEV_FC_MAC_LOW_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
227
lan_wr(0, lan966x, DEV_FC_MAC_HIGH_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
242
lan966x, SYS_MAC_FC_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
245
atop_wm = lan966x->shared_queue_sz;
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
250
lan_wr(lan966x_wm_enc(atop_wm / lan966x->num_phys_ports + 1), lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
252
lan_wr(lan966x_wm_enc(atop_wm), lan966x, SYS_ATOP_TOT_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
258
lan966x, DEV_MAC_ENA_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
262
lan966x, DEV_CLOCK_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
268
lan966x, QSYS_SW_PORT_MODE(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
27
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
274
lan966x, AFI_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
290
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
296
val = lan_rd(lan966x, DEV_PCS1G_STICKY(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
299
lan_wr(val, lan966x, DEV_PCS1G_STICKY(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
302
val = lan_rd(lan966x, DEV_PCS1G_LINK_STATUS(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
308
val = lan_rd(lan966x, DEV_PCS1G_ANEG_STATUS(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
334
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
35
lan966x, AFI_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
364
lan966x, DEV_PCS1G_MODE_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
368
lan966x, DEV_PCS1G_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
379
lan966x, DEV_PCS1G_ANEG_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
381
lan_wr(0, lan966x, DEV_PCS1G_ANEG_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
39
val = lan_rd(lan966x, AFI_PORT_FRM_OUT(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
391
lan966x, DEV_CLOCK_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
406
port->lan966x, ANA_QOS_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
417
port->lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
425
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
430
lan966x, ANA_QOS_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
438
lan966x, ANA_DSCP_CFG(i));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
444
lan966x, ANA_DSCP_CFG(i));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
455
port->lan966x, ANA_QOS_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
462
port->lan966x, ANA_VLAN_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
483
port->lan966x, REW_TAG_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
497
port->lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
517
port->lan966x, REW_DSCP_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
525
port->lan966x, ANA_DSCP_REWR_CFG(i));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
534
port->lan966x, ANA_QOS_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
550
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
554
lan966x, ANA_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
558
if (lan966x->fdma)
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
559
lan966x_fdma_netdev_init(lan966x, port->dev);
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
56
lan966x, DEV_CLOCK_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
570
lan966x, DEV_CLOCK_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
61
lan966x, DEV_MAC_ENA_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
66
lan966x, QSYS_SW_PORT_MODE(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
71
lan966x, QSYS_PORT_MODE(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
76
lan966x, SYS_PAUSE_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
81
lan966x, QSYS_SW_PORT_MODE(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
89
lan966x, SYS_FRONT_PORT_MODE(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
94
lan966x, QSYS_SW_PORT_MODE(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_port.c
99
lan966x, QSYS_PORT_MODE(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1003
static int lan966x_ptp_phc_init(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1007
struct lan966x_phc *phc = &lan966x->phc[index];
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1021
phc->clock = ptp_clock_register(&phc->info, lan966x->dev);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1026
phc->lan966x = lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1031
int lan966x_ptp_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1037
if (!lan966x->ptp)
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1041
err = lan966x_ptp_phc_init(lan966x, i, &lan966x_ptp_clock_info);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1046
spin_lock_init(&lan966x->ptp_clock_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1047
spin_lock_init(&lan966x->ptp_ts_id_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1048
mutex_init(&lan966x->ptp_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1051
lan_wr(PTP_DOM_CFG_ENA_SET(0), lan966x, PTP_DOM_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1056
lan966x, PTP_DOM_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1059
lan_wr((u32)tod_adj & 0xFFFFFFFF, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
106
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1061
lan_wr((u32)(tod_adj >> 32), lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1067
lan966x, PTP_DOM_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1070
lan_wr(PTP_DOM_CFG_ENA_SET(0x7), lan966x, PTP_DOM_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1072
for (i = 0; i < lan966x->num_phys_ports; i++) {
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1073
port = lan966x->ports[i];
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1083
void lan966x_ptp_deinit(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1088
if (!lan966x->ptp)
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1091
for (i = 0; i < lan966x->num_phys_ports; i++) {
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1092
port = lan966x->ports[i];
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1100
ptp_clock_unregister(lan966x->phc[i].clock);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1103
void lan966x_ptp_rxtstamp(struct lan966x *lan966x, struct sk_buff *skb,
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
111
vrule = vcap_get_rule(lan966x->vcap_ctrl, rule_id);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1111
if (!lan966x->ptp ||
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1112
!lan966x->ports[src_port]->ptp_rx_cmd)
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
1115
phc = &lan966x->phc[LAN966X_PHC_PORT];
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
119
if (mask == GENMASK(lan966x->num_phys_ports, 0)) {
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
120
err = vcap_del_rule(lan966x->vcap_ctrl, port->dev, rule_id);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
267
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
310
mutex_lock(&lan966x->ptp_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
311
phc = &lan966x->phc[LAN966X_PHC_PORT];
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
313
mutex_unlock(&lan966x->ptp_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
321
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
324
phc = &lan966x->phc[LAN966X_PHC_PORT];
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
399
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
413
spin_lock_irqsave(&lan966x->ptp_ts_id_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
414
if (lan966x->ptp_skbs == LAN966X_MAX_PTP_ID) {
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
415
spin_unlock_irqrestore(&lan966x->ptp_ts_id_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
425
lan966x->ptp_skbs++;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
430
spin_unlock_irqrestore(&lan966x->ptp_ts_id_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
438
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
441
spin_lock_irqsave(&lan966x->ptp_ts_id_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
443
lan966x->ptp_skbs--;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
445
spin_unlock_irqrestore(&lan966x->ptp_ts_id_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
448
static void lan966x_get_hwtimestamp(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
456
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
464
lan966x, PTP_PIN_CFG(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
466
ts->tv_sec = lan_rd(lan966x, PTP_TOD_SEC_LSB(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
467
curr_nsec = lan_rd(lan966x, PTP_TOD_NSEC(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
475
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
481
struct lan966x *lan966x = args;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
492
val = lan_rd(lan966x, PTP_TWOSTEP_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
507
port = lan966x->ports[txport];
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
510
delay = lan_rd(lan966x, PTP_TWOSTEP_STAMP);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
518
lan966x, PTP_TWOSTEP_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
520
val = lan_rd(lan966x, PTP_TWOSTEP_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
527
id = lan_rd(lan966x, PTP_TWOSTEP_STAMP);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
543
lan966x, PTP_TWOSTEP_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
548
spin_lock_irqsave(&lan966x->ptp_ts_id_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
549
lan966x->ptp_skbs--;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
550
spin_unlock_irqrestore(&lan966x->ptp_ts_id_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
553
lan966x_get_hwtimestamp(lan966x, &ts, delay);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
567
struct lan966x *lan966x = args;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
575
if (!(lan_rd(lan966x, PTP_PIN_INTR)))
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
582
phc = &lan966x->phc[i];
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
587
if (!(lan_rd(lan966x, PTP_PIN_INTR) & BIT(pin)))
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
590
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
595
lan_wr(BIT(pin), lan966x, PTP_PIN_INTR);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
598
s = lan_rd(lan966x, PTP_TOD_SEC_MSB(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
60
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
600
s |= lan_rd(lan966x, PTP_TOD_SEC_LSB(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
601
ns = lan_rd(lan966x, PTP_TOD_NSEC(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
604
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
625
struct lan966x *lan966x = phc->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
64
vrule = vcap_get_rule(lan966x->vcap_ctrl, rule_id);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
649
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
653
lan966x, PTP_DOM_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
655
lan_wr((u32)tod_inc & 0xFFFFFFFF, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
657
lan_wr((u32)(tod_inc >> 32), lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
662
lan966x, PTP_DOM_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
664
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
673
struct lan966x *lan966x = phc->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
676
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
685
lan966x, PTP_PIN_CFG(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
689
lan966x, PTP_TOD_SEC_MSB(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
691
lan966x, PTP_TOD_SEC_LSB(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
692
lan_wr(ts->tv_nsec, lan966x, PTP_TOD_NSEC(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
701
lan966x, PTP_PIN_CFG(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
703
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
711
struct lan966x *lan966x = phc->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
716
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
724
lan966x, PTP_PIN_CFG(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
726
s = lan_rd(lan966x, PTP_TOD_SEC_MSB(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
728
s |= lan_rd(lan966x, PTP_TOD_SEC_LSB(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
729
ns = lan_rd(lan966x, PTP_TOD_NSEC(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
732
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
748
struct lan966x *lan966x = phc->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
753
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
762
lan966x, PTP_PIN_CFG(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
765
lan966x, PTP_TOD_NSEC(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
774
lan966x, PTP_PIN_CFG(TOD_ACC_PIN));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
776
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
79
vrule = vcap_alloc_rule(lan966x->vcap_ctrl, port->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
797
struct lan966x *lan966x = phc->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
819
info = &lan966x->phc[i].info;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
837
struct lan966x *lan966x = phc->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
849
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
856
lan966x, PTP_PIN_CFG(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
857
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
874
dev_warn(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
891
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
893
lan966x, PTP_WF_LOW_PERIOD(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
895
lan966x, PTP_WF_HIGH_PERIOD(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
902
lan966x, PTP_PIN_CFG(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
903
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
913
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
915
lan966x, PTP_WF_LOW_PERIOD(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
917
lan966x, PTP_WF_HIGH_PERIOD(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
924
lan966x, PTP_PIN_CFG(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
925
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
934
struct lan966x *lan966x = phc->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
939
if (lan966x->ptp_ext_irq <= 0)
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
946
spin_lock_irqsave(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
955
lan966x, PTP_PIN_CFG(pin));
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
957
val = lan_rd(lan966x, PTP_PIN_INTR_ENA);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
962
lan_wr(val, lan966x, PTP_PIN_INTR_ENA);
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
964
spin_unlock_irqrestore(&lan966x->ptp_clock_lock, flags);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
13
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
133
void lan966x_update_fwd_mask(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
137
for (i = 0; i < lan966x->num_phys_ports; i++) {
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
138
struct lan966x_port *port = lan966x->ports[i];
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
141
if (port && lan966x->bridge_fwd_mask & BIT(i)) {
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
142
mask = lan966x->bridge_fwd_mask & ~BIT(i);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
145
mask &= ~lan966x_lag_get_mask(lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
152
lan966x, ANA_PGID(PGID_SRC + i));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
158
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
16
flood_mask_ip = lan_rd(lan966x, ANA_PGID(pgid_ip));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
166
lan966x->bridge_fwd_mask |= BIT(port->chip_port);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
168
lan966x->bridge_fwd_mask &= ~BIT(port->chip_port);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
172
lan966x, ANA_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
174
lan966x_update_fwd_mask(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
183
lan966x_mac_set_ageing(port->lan966x, ageing_time);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
188
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
192
lan966x_mdb_restore_entries(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
194
lan966x_mdb_clear_entries(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
202
lan966x, ANA_CPU_FWD_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
25
flood_mask = lan_rd(lan966x, ANA_PGID(PGID_MC));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
252
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
256
if (!lan966x->bridge_mask) {
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
257
lan966x->bridge = bridge;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
259
if (lan966x->bridge != bridge) {
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
272
lan966x->bridge_mask |= BIT(port->chip_port);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
285
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
291
lan966x->bridge_mask &= ~BIT(port->chip_port);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
293
if (!lan966x->bridge_mask)
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
294
lan966x->bridge = NULL;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
343
lan966x_fdb_flush_workqueue(port->lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
352
lan966x_fdb_flush_workqueue(port->lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
363
struct lan966x *lan966x = NULL;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
375
if (lan966x) {
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
38
lan966x, ANA_PGID(pgid_ip));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
380
if (port->lan966x != lan966x) {
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
389
lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
44
u32 val = lan_rd(port->lan966x, ANA_PGID(PGID_MC));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
492
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
496
if (lan966x->bridge == foreign_dev)
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
500
for (i = 0; i < lan966x->num_phys_ports; ++i)
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
501
if (lan966x->ports[i] &&
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
502
lan966x->ports[i]->bond == foreign_dev)
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
536
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
54
port->lan966x, ANA_PGID(PGID_MC));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
543
lan966x_vlan_cpu_add_vlan(lan966x, v->vid);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
578
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
583
lan966x_vlan_cpu_del_vlan(lan966x, v->vid);
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
65
u32 val = lan_rd(port->lan966x, ANA_PGID(PGID_UC));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
75
port->lan966x, ANA_PGID(PGID_UC));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
81
u32 val = lan_rd(port->lan966x, ANA_PGID(PGID_BC));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
91
port->lan966x, ANA_PGID(PGID_BC));
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
98
port->lan966x, ANA_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
141
lan966x, QSYS_TAS_GS_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
144
lan966x, QSYS_TAS_GATE_STATE);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
271
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
282
max_list = lan966x->num_phys_ports * LAN966X_TAPRIO_ENTRIES_PER_PORT;
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
288
base = lan_rd(lan966x, QSYS_TAS_LIST_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
298
lan966x, QSYS_TAS_CFG_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
300
next = lan_rd(lan966x, QSYS_TAS_GCL_CT_CFG2);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
312
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
318
lan966x, QSYS_TAS_GCL_CT_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
322
lan966x, QSYS_TAS_GCL_CT_CFG2);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
324
lan_wr(entry->interval, lan966x, QSYS_TAS_GCL_TM_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
332
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
341
lan966x, QSYS_TAS_CFG_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
347
lan966x, QSYS_TAS_LIST_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
354
lan966x, QSYS_TAS_CFG_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
372
static void lan966x_taprio_new_base_time(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
381
lan966x_ptp_gettime64(&lan966x->phc[LAN966X_PHC_PORT].info, &ts);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
414
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
436
lan966x, QSYS_TAS_PROFILE_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
444
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
461
lan966x_taprio_new_base_time(lan966x, qopt->cycle_time,
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
466
lan966x, QSYS_TAS_BT_NSEC);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
469
lan966x, QSYS_TAS_BT_SEC_LSB);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
472
lan966x, QSYS_TAS_BT_SEC_MSB);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
474
lan_wr(qopt->cycle_time, lan966x, QSYS_TAS_CT_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
478
lan966x, QSYS_TAS_STARTUP_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
48
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
483
lan966x, QSYS_TAS_LST);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
493
void lan966x_taprio_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
500
lan966x, QSYS_TAS_STM_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
502
num_taprio_lists = lan966x->num_phys_ports *
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
51
val = lan_rd(lan966x, QSYS_TAS_LST);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
510
lan966x, QSYS_TAS_CFG_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
512
for (p = 0; p < lan966x->num_phys_ports; p++)
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
515
lan966x, QSYS_TAS_PROFILE_CFG(p));
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
518
void lan966x_taprio_deinit(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
522
for (p = 0; p < lan966x->num_phys_ports; ++p) {
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
523
if (!lan966x->ports[p])
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
526
lan966x_taprio_del(lan966x->ports[p]);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
58
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
62
lan966x, QSYS_TAS_CFG_CTRL);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
70
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
74
lan966x, QSYS_TAS_LST);
drivers/net/ethernet/microchip/lan966x/lan966x_taprio.c
80
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_tbf.c
46
lan966x, QSYS_SE_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_tbf.c
50
lan966x, QSYS_CIR_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_tbf.c
58
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_tbf.c
78
lan966x, QSYS_SE_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_tbf.c
8
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_tbf.c
82
lan966x, QSYS_CIR_CFG(se_idx));
drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c
458
err = lan966x_tc_flower_action_check(port->lan966x->vcap_ctrl,
drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c
463
vrule = vcap_alloc_rule(port->lan966x->vcap_ctrl, port->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c
508
err = lan966x_tc_add_rule_link(port->lan966x->vcap_ctrl,
drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c
566
vctrl = port->lan966x->vcap_ctrl;
drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c
590
err = vcap_get_rule_count_by_cookie(port->lan966x->vcap_ctrl,
drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c
607
admin = vcap_find_admin(port->lan966x->vcap_ctrl,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_debugfs.c
12
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_debugfs.c
129
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_debugfs.c
135
val = lan_rd(lan966x, ANA_VCAP_S2_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_debugfs.c
18
val = lan_rd(lan966x, ANA_VCAP_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_debugfs.c
199
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_debugfs.c
205
val = lan_rd(lan966x, REW_PORT_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_debugfs.c
220
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_debugfs.c
224
vctrl = lan966x->vcap_ctrl;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_debugfs.c
28
val = lan_rd(lan966x, ANA_VCAP_S1_CFG(port->chip_port, l));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
129
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
132
val = lan_rd(lan966x, ANA_VCAP_S1_CFG(port->chip_port, lookup));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
189
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
193
val = lan_rd(lan966x, ANA_VCAP_S2_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
400
static void lan966x_es0_read_esdx_counter(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
406
spin_lock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
407
lan_wr(SYS_STAT_CFG_STAT_VIEW_SET(id), lan966x, SYS_STAT_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
408
counter = lan_rd(lan966x, SYS_CNT(LAN966X_STAT_ESDX_GRN_PKTS)) +
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
409
lan_rd(lan966x, SYS_CNT(LAN966X_STAT_ESDX_YEL_PKTS));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
410
spin_unlock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
415
static void lan966x_es0_write_esdx_counter(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
420
spin_lock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
421
lan_wr(SYS_STAT_CFG_STAT_VIEW_SET(id), lan966x, SYS_STAT_CFG);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
422
lan_wr(0, lan966x, SYS_CNT(LAN966X_STAT_ESDX_GRN_BYTES));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
423
lan_wr(admin->cache.counter, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
425
lan_wr(0, lan966x, SYS_CNT(LAN966X_STAT_ESDX_YEL_BYTES));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
426
lan_wr(0, lan966x, SYS_CNT(LAN966X_STAT_ESDX_YEL_PKTS));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
427
spin_unlock(&lan966x->stats_lock);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
437
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
447
lan_wr(keystr[i] & mskstr[i], lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
449
lan_wr(~mskstr[i], lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
455
lan_wr(actstr[i], lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
460
lan_wr(admin->cache.counter, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
464
lan966x_es0_write_esdx_counter(lan966x, admin, start);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
478
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
489
lan_rd(lan966x, VCAP_ENTRY_DAT(instance, i));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
491
~lan_rd(lan966x, VCAP_MASK_DAT(instance, i));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
498
lan_rd(lan966x, VCAP_ACTION_DAT(instance, i));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
502
lan_rd(lan966x, VCAP_CNT_DAT(instance, 0));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
506
lan966x_es0_read_esdx_counter(lan966x, admin, start);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
516
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
518
__lan966x_vcap_range_init(lan966x, admin, addr, count);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
528
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
535
lan966x, VCAP_MV_CFG(admin->tgt_inst));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
544
lan966x, VCAP_UPDATE_CTRL(admin->tgt_inst));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
546
lan966x_vcap_wait_update(lan966x, admin->tgt_inst);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
554
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
570
lan966x, VCAP_MV_CFG(admin->tgt_inst));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
579
lan966x, VCAP_UPDATE_CTRL(admin->tgt_inst));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
58
struct lan966x *lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
581
lan966x_vcap_wait_update(lan966x, admin->tgt_inst);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
609
lan966x_vcap_admin_alloc(struct lan966x *lan966x, struct vcap_control *ctrl,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
64
return lan_rd(cb->lan966x, VCAP_UPDATE_CTRL(cb->instance));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
648
static void lan966x_vcap_block_init(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
657
lan966x, VCAP_CORE_IDX(admin->tgt_inst));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
659
lan966x, VCAP_CORE_MAP(admin->tgt_inst));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
661
__lan966x_vcap_range_init(lan966x, admin, admin->first_valid_addr,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
666
static void lan966x_vcap_port_key_deselection(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
67
static void lan966x_vcap_wait_update(struct lan966x *lan966x, int instance)
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
677
for (int p = 0; p < lan966x->num_phys_ports; ++p) {
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
678
if (!lan966x->ports[p])
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
682
lan_wr(val, lan966x, ANA_VCAP_S1_CFG(p, l));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
685
ANA_VCAP_CFG_S1_ENA, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
69
const struct lan966x_vcap_cmd_cb cb = { .lan966x = lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
691
for (int p = 0; p < lan966x->num_phys_ports; ++p)
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
692
lan_wr(0, lan966x, ANA_VCAP_S2_CFG(p));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
696
for (int p = 0; p < lan966x->num_phys_ports; ++p)
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
698
REW_PORT_CFG_ES0_EN, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
708
int lan966x_vcap_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
727
admin = lan966x_vcap_admin_alloc(lan966x, ctrl, cfg);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
731
lan966x_vcap_block_init(lan966x, admin, cfg);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
732
lan966x_vcap_port_key_deselection(lan966x, admin);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
737
dir = vcap_debugfs(lan966x->dev, lan966x->debugfs_root, ctrl);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
738
for (int p = 0; p < lan966x->num_phys_ports; ++p) {
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
739
if (lan966x->ports[p]) {
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
740
vcap_port_debugfs(lan966x->dev, dir, ctrl,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
741
lan966x->ports[p]->dev);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
744
ANA_VCAP_S2_CFG_ENA, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
745
ANA_VCAP_S2_CFG(lan966x->ports[p]->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
748
ANA_VCAP_CFG_S1_ENA, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
749
ANA_VCAP_CFG(lan966x->ports[p]->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
752
REW_PORT_CFG_ES0_EN, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
753
REW_PORT_CFG(lan966x->ports[p]->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
759
REW_STAT_CFG_STAT_MODE, lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
762
lan966x->vcap_ctrl = ctrl;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
767
void lan966x_vcap_deinit(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
772
ctrl = lan966x->vcap_ctrl;
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
777
lan966x_vcap_port_key_deselection(lan966x, admin);
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
78
static void __lan966x_vcap_range_init(struct lan966x *lan966x,
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
85
lan966x, VCAP_MV_CFG(admin->tgt_inst));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
94
lan966x, VCAP_UPDATE_CTRL(admin->tgt_inst));
drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
96
lan966x_vcap_wait_update(lan966x, admin->tgt_inst);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
10
static int lan966x_vlan_get_status(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
101
return test_bit(vid, lan966x->cpu_vlan_mask);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
106
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
108
if (!(lan966x->bridge_mask & BIT(port->chip_port)))
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
117
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
12
return lan_rd(lan966x, ANA_VLANACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
122
dev_err(lan966x->dev,
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
15
static int lan966x_vlan_wait_for_completion(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
161
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
170
lan966x, REW_TAG_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
175
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
191
lan966x, ANA_VLAN_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
197
lan966x, DEV_MAC_TAGS_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
20
lan966x, val,
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
209
lan_wr(val, lan966x, ANA_DROP_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
224
lan966x, REW_TAG_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
231
lan966x, REW_PORT_VLAN_CFG(port->chip_port));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
239
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
246
if (lan966x_vlan_cpu_member_cpu_vlan_mask(lan966x, vid)) {
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
247
lan966x_vlan_cpu_add_vlan_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
248
lan966x_fdb_write_entries(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
249
lan966x_mdb_write_entries(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
259
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
26
static void lan966x_vlan_set_mask(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
269
if (!lan966x_vlan_port_any_vlan_mask(lan966x, vid)) {
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
270
lan966x_vlan_cpu_del_vlan_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
271
lan966x_fdb_erase_entries(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
272
lan966x_mdb_erase_entries(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
276
void lan966x_vlan_cpu_add_vlan(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
28
u16 mask = lan966x->vlan_mask[vid];
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
286
if (lan966x_vlan_port_any_vlan_mask(lan966x, vid)) {
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
287
lan966x_vlan_cpu_add_vlan_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
288
lan966x_mdb_write_entries(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
291
lan966x_vlan_cpu_add_cpu_vlan_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
292
lan966x_fdb_write_entries(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
295
void lan966x_vlan_cpu_del_vlan(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
298
lan966x_vlan_cpu_del_cpu_vlan_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
299
lan966x_vlan_cpu_del_vlan_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
300
lan966x_fdb_erase_entries(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
301
lan966x_mdb_erase_entries(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
304
void lan966x_vlan_init(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
311
lan966x, ANA_VLANACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
312
lan966x_vlan_wait_for_completion(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
315
lan966x->vlan_mask[vid] = 0;
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
316
lan966x_vlan_set_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
320
lan966x->vlan_mask[HOST_PVID] =
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
321
GENMASK(lan966x->num_phys_ports - 1, 0) | BIT(CPU_PORT);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
322
lan966x_vlan_set_mask(lan966x, HOST_PVID);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
324
lan966x->vlan_mask[UNAWARE_PVID] =
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
325
GENMASK(lan966x->num_phys_ports - 1, 0) | BIT(CPU_PORT);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
326
lan966x_vlan_set_mask(lan966x, UNAWARE_PVID);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
328
lan966x_vlan_cpu_add_cpu_vlan_mask(lan966x, UNAWARE_PVID);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
334
lan966x, ANA_VLAN_CFG(CPU_PORT));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
337
lan_wr(GENMASK(lan966x->num_phys_ports, 0),
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
338
lan966x, ANA_VLANMASK);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
340
for (port = 0; port < lan966x->num_phys_ports; port++) {
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
341
lan_wr(0, lan966x, REW_PORT_VLAN_CFG(port));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
342
lan_wr(0, lan966x, REW_TAG_CFG(port));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
38
lan966x, ANA_VLANTIDX);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
43
lan966x, ANA_VLAN_PORT_MASK);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
48
lan966x, ANA_VLANACCESS);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
50
if (lan966x_vlan_wait_for_completion(lan966x))
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
51
dev_err(lan966x->dev, "Vlan set mask failed\n");
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
56
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
59
lan966x->vlan_mask[vid] |= BIT(p);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
60
lan966x_vlan_set_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
65
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
68
lan966x->vlan_mask[vid] &= ~BIT(p);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
69
lan966x_vlan_set_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
72
static bool lan966x_vlan_port_any_vlan_mask(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
74
return !!(lan966x->vlan_mask[vid] & ~BIT(CPU_PORT));
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
77
static void lan966x_vlan_cpu_add_vlan_mask(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
79
lan966x->vlan_mask[vid] |= BIT(CPU_PORT);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
80
lan966x_vlan_set_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
83
static void lan966x_vlan_cpu_del_vlan_mask(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
85
lan966x->vlan_mask[vid] &= ~BIT(CPU_PORT);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
86
lan966x_vlan_set_mask(lan966x, vid);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
89
static void lan966x_vlan_cpu_add_cpu_vlan_mask(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
91
__set_bit(vid, lan966x->cpu_vlan_mask);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
94
static void lan966x_vlan_cpu_del_cpu_vlan_mask(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
96
__clear_bit(vid, lan966x->cpu_vlan_mask);
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c
99
bool lan966x_vlan_cpu_member_cpu_vlan_mask(struct lan966x *lan966x, u16 vid)
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
111
bool lan966x_xdp_present(struct lan966x *lan966x)
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
113
for (int p = 0; p < lan966x->num_phys_ports; ++p) {
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
114
if (!lan966x->ports[p])
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
117
if (lan966x_xdp_port_present(lan966x->ports[p]))
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
12
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
126
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
129
lan966x->napi.napi_id);
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
17
if (!lan966x->fdma) {
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
23
old_xdp = lan966x_xdp_present(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
25
new_xdp = lan966x_xdp_present(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
30
err = lan966x_fdma_reload_page_pool(lan966x);
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
78
struct lan966x *lan966x = port->lan966x;
drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
82
xdp_init_buff(&xdp, PAGE_SIZE << lan966x->rx.page_order,