arch/mips/lantiq/clk.c
30
unsigned long io, unsigned long ppe)
arch/mips/lantiq/clk.c
35
cpu_clk_generic[3].rate = ppe;
arch/mips/lantiq/clk.h
73
unsigned long io, unsigned long ppe);
block/partitions/aix.c
242
if (numpps > ARRAY_SIZE(pvd->ppe))
block/partitions/aix.c
243
numpps = ARRAY_SIZE(pvd->ppe);
block/partitions/aix.c
246
struct ppe *p = pvd->ppe + i;
block/partitions/aix.c
64
struct ppe ppe[1016];
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
689
unsigned int ppe = 1;
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
693
vp_width = pipe_src_param->viewport_width_c / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
698
vp_width = pipe_src_param->viewport_width / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20v2.c
689
unsigned int ppe = 1;
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20v2.c
693
vp_width = pipe_src_param->viewport_width_c / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20v2.c
698
vp_width = pipe_src_param->viewport_width / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn21/display_rq_dlg_calc_21.c
698
unsigned int ppe = 1;
drivers/gpu/drm/amd/display/dc/dml/dcn21/display_rq_dlg_calc_21.c
702
vp_width = pipe_param->src.viewport_width_c / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn21/display_rq_dlg_calc_21.c
707
vp_width = pipe_param->src.viewport_width / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_rq_dlg_calc_30.c
665
unsigned int ppe = 1;
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_rq_dlg_calc_30.c
669
vp_width = pipe_param->src.viewport_width_c / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_rq_dlg_calc_30.c
675
vp_width = pipe_param->src.viewport_width / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn31/display_rq_dlg_calc_31.c
660
unsigned int ppe = 1;
drivers/gpu/drm/amd/display/dc/dml/dcn31/display_rq_dlg_calc_31.c
664
vp_width = pipe_param->src.viewport_width_c / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn31/display_rq_dlg_calc_31.c
670
vp_width = pipe_param->src.viewport_width / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn314/display_rq_dlg_calc_314.c
748
unsigned int ppe = 1;
drivers/gpu/drm/amd/display/dc/dml/dcn314/display_rq_dlg_calc_314.c
752
vp_width = pipe_param->src.viewport_width_c / ppe;
drivers/gpu/drm/amd/display/dc/dml/dcn314/display_rq_dlg_calc_314.c
758
vp_width = pipe_param->src.viewport_width / ppe;
drivers/gpu/drm/amd/display/dc/dml/dml1_display_rq_dlg_calc.c
569
unsigned int ppe = 1;
drivers/gpu/drm/amd/display/dc/dml/dml1_display_rq_dlg_calc.c
627
vp_width = pipe_src_param->viewport_width_c / ppe;
drivers/gpu/drm/amd/display/dc/dml/dml1_display_rq_dlg_calc.c
632
vp_width = pipe_src_param->viewport_width / ppe;
drivers/media/platform/nvidia/tegra-vde/h264.c
281
tegra_vde_set_bits(vde, 0x000A, vde->ppe, 0x14);
drivers/media/platform/nvidia/tegra-vde/h264.c
282
tegra_vde_set_bits(vde, 0x000A, vde->ppe, 0x28);
drivers/media/platform/nvidia/tegra-vde/vde.c
253
vde->ppe = devm_platform_ioremap_resource_byname(pdev, "ppe");
drivers/media/platform/nvidia/tegra-vde/vde.c
254
if (IS_ERR(vde->ppe))
drivers/media/platform/nvidia/tegra-vde/vde.c
255
return PTR_ERR(vde->ppe);
drivers/media/platform/nvidia/tegra-vde/vde.h
218
if (vde->ppe == base)
drivers/media/platform/nvidia/tegra-vde/vde.h
98
void __iomem *ppe;
drivers/net/ethernet/airoha/airoha_eth.c
2995
return airoha_ppe_setup_tc_block_cb(ð->ppe->dev, type_data);
drivers/net/ethernet/airoha/airoha_eth.c
753
airoha_ppe_check_skb(ð->ppe->dev, q->skb, hash,
drivers/net/ethernet/airoha/airoha_eth.h
648
struct airoha_ppe *ppe;
drivers/net/ethernet/airoha/airoha_eth.h
723
u32 airoha_ppe_get_total_num_entries(struct airoha_ppe *ppe);
drivers/net/ethernet/airoha/airoha_eth.h
724
struct airoha_foe_entry *airoha_ppe_foe_get_entry(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_eth.h
726
void airoha_ppe_foe_entry_get_stats(struct airoha_ppe *ppe, u32 hash,
drivers/net/ethernet/airoha/airoha_eth.h
730
int airoha_ppe_debugfs_init(struct airoha_ppe *ppe);
drivers/net/ethernet/airoha/airoha_eth.h
732
static inline int airoha_ppe_debugfs_init(struct airoha_ppe *ppe)
drivers/net/ethernet/airoha/airoha_ppe.c
1000
airoha_ppe_foe_flow_l2_entry_update(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
1003
int min_idle = airoha_ppe_get_entry_idle_time(ppe, e->data.ib1);
drivers/net/ethernet/airoha/airoha_ppe.c
1014
hwe = airoha_ppe_foe_get_entry_locked(ppe, iter->hash);
drivers/net/ethernet/airoha/airoha_ppe.c
1022
airoha_ppe_foe_remove_flow(ppe, iter);
drivers/net/ethernet/airoha/airoha_ppe.c
1026
idle = airoha_ppe_get_entry_idle_time(ppe, ib1);
drivers/net/ethernet/airoha/airoha_ppe.c
1036
static void airoha_ppe_foe_flow_entry_update(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
1044
airoha_ppe_foe_flow_l2_entry_update(ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
1051
hwe_p = airoha_ppe_foe_get_entry_locked(ppe, e->hash);
drivers/net/ethernet/airoha/airoha_ppe.c
1066
static int airoha_ppe_entry_idle_time(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
1069
airoha_ppe_foe_flow_entry_update(ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
1071
return airoha_ppe_get_entry_idle_time(ppe, e->data.ib1);
drivers/net/ethernet/airoha/airoha_ppe.c
1255
err = airoha_ppe_foe_flow_commit_entry(eth->ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
1267
airoha_ppe_foe_flow_remove_entry(eth->ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
127
static void airoha_ppe_hw_init(struct airoha_ppe *ppe)
drivers/net/ethernet/airoha/airoha_ppe.c
1284
airoha_ppe_foe_flow_remove_entry(eth->ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
1292
void airoha_ppe_foe_entry_get_stats(struct airoha_ppe *ppe, u32 hash,
drivers/net/ethernet/airoha/airoha_ppe.c
1295
struct airoha_eth *eth = ppe->eth;
drivers/net/ethernet/airoha/airoha_ppe.c
1300
ppe_num_stats_entries = airoha_ppe_get_total_num_stats_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1304
if (airoha_ppe_foe_get_flow_stats_index(ppe, hash, &index))
drivers/net/ethernet/airoha/airoha_ppe.c
131
struct airoha_eth *eth = ppe->eth;
drivers/net/ethernet/airoha/airoha_ppe.c
1314
u64 packets = ppe->foe_stats[index].packets;
drivers/net/ethernet/airoha/airoha_ppe.c
1315
u64 bytes = ppe->foe_stats[index].bytes;
drivers/net/ethernet/airoha/airoha_ppe.c
1338
idle = airoha_ppe_entry_idle_time(eth->ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
134
sram_num_entries = airoha_ppe_get_total_sram_num_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1344
airoha_ppe_foe_entry_get_stats(eth->ppe, e->hash, &stats);
drivers/net/ethernet/airoha/airoha_ppe.c
1370
static int airoha_ppe_flush_sram_entries(struct airoha_ppe *ppe)
drivers/net/ethernet/airoha/airoha_ppe.c
1372
u32 sram_num_entries = airoha_ppe_get_total_sram_num_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1373
struct airoha_foe_entry *hwe = ppe->foe;
drivers/net/ethernet/airoha/airoha_ppe.c
138
sram_num_stats_entries = airoha_ppe_get_num_stats_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1380
err = airoha_ppe_foe_commit_sram_entry(ppe, i);
drivers/net/ethernet/airoha/airoha_ppe.c
1426
struct airoha_ppe *ppe = eth->ppe;
drivers/net/ethernet/airoha/airoha_ppe.c
1441
ppe_num_stats_entries = airoha_ppe_get_total_num_stats_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1443
err = npu->ops.ppe_init_stats(npu, ppe->foe_stats_dma,
drivers/net/ethernet/airoha/airoha_ppe.c
1449
airoha_ppe_hw_init(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1450
airoha_ppe_foe_flow_stats_reset(ppe, npu);
drivers/net/ethernet/airoha/airoha_ppe.c
146
ppe->foe_dma + sram_tb_size);
drivers/net/ethernet/airoha/airoha_ppe.c
1465
struct airoha_ppe *ppe = dev->priv;
drivers/net/ethernet/airoha/airoha_ppe.c
1466
struct airoha_eth *eth = ppe->eth;
drivers/net/ethernet/airoha/airoha_ppe.c
1491
struct airoha_ppe *ppe = dev->priv;
drivers/net/ethernet/airoha/airoha_ppe.c
1492
u32 ppe_hash_mask = airoha_ppe_get_total_num_entries(ppe) - 1;
drivers/net/ethernet/airoha/airoha_ppe.c
1499
diff = now - ppe->foe_check_time[hash];
drivers/net/ethernet/airoha/airoha_ppe.c
1503
ppe->foe_check_time[hash] = now;
drivers/net/ethernet/airoha/airoha_ppe.c
1504
airoha_ppe_foe_insert_entry(ppe, skb, hash, rx_wlan);
drivers/net/ethernet/airoha/airoha_ppe.c
1561
return ð->ppe->dev;
drivers/net/ethernet/airoha/airoha_ppe.c
1574
struct airoha_ppe *ppe = dev->priv;
drivers/net/ethernet/airoha/airoha_ppe.c
1575
struct airoha_eth *eth = ppe->eth;
drivers/net/ethernet/airoha/airoha_ppe.c
1586
struct airoha_ppe *ppe;
drivers/net/ethernet/airoha/airoha_ppe.c
1588
ppe = devm_kzalloc(eth->dev, sizeof(*ppe), GFP_KERNEL);
drivers/net/ethernet/airoha/airoha_ppe.c
1589
if (!ppe)
drivers/net/ethernet/airoha/airoha_ppe.c
1592
ppe->dev.ops.setup_tc_block_cb = airoha_ppe_setup_tc_block_cb;
drivers/net/ethernet/airoha/airoha_ppe.c
1593
ppe->dev.ops.check_skb = airoha_ppe_check_skb;
drivers/net/ethernet/airoha/airoha_ppe.c
1594
ppe->dev.priv = ppe;
drivers/net/ethernet/airoha/airoha_ppe.c
1595
ppe->eth = eth;
drivers/net/ethernet/airoha/airoha_ppe.c
1596
eth->ppe = ppe;
drivers/net/ethernet/airoha/airoha_ppe.c
1598
ppe_num_entries = airoha_ppe_get_total_num_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1600
ppe->foe = dmam_alloc_coherent(eth->dev, foe_size, &ppe->foe_dma,
drivers/net/ethernet/airoha/airoha_ppe.c
1602
if (!ppe->foe)
drivers/net/ethernet/airoha/airoha_ppe.c
1605
ppe->foe_flow = devm_kzalloc(eth->dev,
drivers/net/ethernet/airoha/airoha_ppe.c
1606
ppe_num_entries * sizeof(*ppe->foe_flow),
drivers/net/ethernet/airoha/airoha_ppe.c
1608
if (!ppe->foe_flow)
drivers/net/ethernet/airoha/airoha_ppe.c
1611
ppe_num_stats_entries = airoha_ppe_get_total_num_stats_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1613
foe_size = ppe_num_stats_entries * sizeof(*ppe->foe_stats);
drivers/net/ethernet/airoha/airoha_ppe.c
1614
ppe->foe_stats = dmam_alloc_coherent(eth->dev, foe_size,
drivers/net/ethernet/airoha/airoha_ppe.c
1615
&ppe->foe_stats_dma,
drivers/net/ethernet/airoha/airoha_ppe.c
1617
if (!ppe->foe_stats)
drivers/net/ethernet/airoha/airoha_ppe.c
1621
ppe->foe_check_time = devm_kzalloc(eth->dev,
drivers/net/ethernet/airoha/airoha_ppe.c
1622
ppe_num_entries * sizeof(*ppe->foe_check_time),
drivers/net/ethernet/airoha/airoha_ppe.c
1624
if (!ppe->foe_check_time)
drivers/net/ethernet/airoha/airoha_ppe.c
1627
err = airoha_ppe_flush_sram_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1635
err = rhashtable_init(&ppe->l2_flows, &airoha_l2_flow_table_params);
drivers/net/ethernet/airoha/airoha_ppe.c
1639
err = airoha_ppe_debugfs_init(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
1646
rhashtable_destroy(&ppe->l2_flows);
drivers/net/ethernet/airoha/airoha_ppe.c
1669
rhashtable_destroy(ð->ppe->l2_flows);
drivers/net/ethernet/airoha/airoha_ppe.c
1671
debugfs_remove(eth->ppe->debugfs_dir);
drivers/net/ethernet/airoha/airoha_ppe.c
35
static int airoha_ppe_get_num_stats_entries(struct airoha_ppe *ppe)
drivers/net/ethernet/airoha/airoha_ppe.c
40
if (airoha_is_7583(ppe->eth))
drivers/net/ethernet/airoha/airoha_ppe.c
46
static int airoha_ppe_get_total_num_stats_entries(struct airoha_ppe *ppe)
drivers/net/ethernet/airoha/airoha_ppe.c
48
int num_stats = airoha_ppe_get_num_stats_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
51
struct airoha_eth *eth = ppe->eth;
drivers/net/ethernet/airoha/airoha_ppe.c
529
static u32 airoha_ppe_foe_get_entry_hash(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
533
u32 ppe_hash_mask = airoha_ppe_get_total_num_entries(ppe) - 1;
drivers/net/ethernet/airoha/airoha_ppe.c
583
static int airoha_ppe_foe_get_flow_stats_index(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
588
ppe_num_stats_entries = airoha_ppe_get_total_num_stats_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
59
static u32 airoha_ppe_get_total_sram_num_entries(struct airoha_ppe *ppe)
drivers/net/ethernet/airoha/airoha_ppe.c
598
static void airoha_ppe_foe_flow_stat_entry_reset(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
603
memset(&ppe->foe_stats[index], 0, sizeof(*ppe->foe_stats));
drivers/net/ethernet/airoha/airoha_ppe.c
606
static void airoha_ppe_foe_flow_stats_reset(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
61
struct airoha_eth *eth = ppe->eth;
drivers/net/ethernet/airoha/airoha_ppe.c
611
ppe_num_stats_entries = airoha_ppe_get_total_num_stats_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
616
airoha_ppe_foe_flow_stat_entry_reset(ppe, npu, i);
drivers/net/ethernet/airoha/airoha_ppe.c
619
static void airoha_ppe_foe_flow_stats_update(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
629
ppe_num_stats_entries = airoha_ppe_get_total_num_stats_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
633
if (airoha_ppe_foe_get_flow_stats_index(ppe, hash, &index))
drivers/net/ethernet/airoha/airoha_ppe.c
657
airoha_ppe_foe_flow_stat_entry_reset(ppe, npu, index);
drivers/net/ethernet/airoha/airoha_ppe.c
66
u32 airoha_ppe_get_total_num_entries(struct airoha_ppe *ppe)
drivers/net/ethernet/airoha/airoha_ppe.c
675
airoha_ppe_foe_get_entry_locked(struct airoha_ppe *ppe, u32 hash)
drivers/net/ethernet/airoha/airoha_ppe.c
677
u32 sram_num_entries = airoha_ppe_get_total_sram_num_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
68
u32 sram_num_entries = airoha_ppe_get_total_sram_num_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
682
u32 *hwe = ppe->foe + hash * sizeof(struct airoha_foe_entry);
drivers/net/ethernet/airoha/airoha_ppe.c
684
struct airoha_eth *eth = ppe->eth;
drivers/net/ethernet/airoha/airoha_ppe.c
688
airoha_fe_wr(ppe->eth, REG_PPE_RAM_CTRL(ppe2),
drivers/net/ethernet/airoha/airoha_ppe.c
703
return ppe->foe + hash * sizeof(struct airoha_foe_entry);
drivers/net/ethernet/airoha/airoha_ppe.c
706
struct airoha_foe_entry *airoha_ppe_foe_get_entry(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
712
hwe = airoha_ppe_foe_get_entry_locked(ppe, hash);
drivers/net/ethernet/airoha/airoha_ppe.c
735
static int airoha_ppe_foe_commit_sram_entry(struct airoha_ppe *ppe, u32 hash)
drivers/net/ethernet/airoha/airoha_ppe.c
737
struct airoha_foe_entry *hwe = ppe->foe + hash * sizeof(*hwe);
drivers/net/ethernet/airoha/airoha_ppe.c
743
airoha_fe_wr(ppe->eth, REG_PPE_RAM_ENTRY(ppe2, i), ptr[i]);
drivers/net/ethernet/airoha/airoha_ppe.c
746
airoha_fe_wr(ppe->eth, REG_PPE_RAM_CTRL(ppe2),
drivers/net/ethernet/airoha/airoha_ppe.c
752
10, 100, false, ppe->eth,
drivers/net/ethernet/airoha/airoha_ppe.c
756
static int airoha_ppe_foe_commit_entry(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
760
u32 sram_num_entries = airoha_ppe_get_total_sram_num_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
761
struct airoha_foe_entry *hwe = ppe->foe + hash * sizeof(*hwe);
drivers/net/ethernet/airoha/airoha_ppe.c
762
u32 ts = airoha_ppe_get_timestamp(ppe);
drivers/net/ethernet/airoha/airoha_ppe.c
763
struct airoha_eth *eth = ppe->eth;
drivers/net/ethernet/airoha/airoha_ppe.c
783
airoha_ppe_foe_flow_stats_update(ppe, npu, hwe, hash);
drivers/net/ethernet/airoha/airoha_ppe.c
786
err = airoha_ppe_foe_commit_sram_entry(ppe, hash);
drivers/net/ethernet/airoha/airoha_ppe.c
793
static void airoha_ppe_foe_remove_flow(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
803
airoha_ppe_foe_commit_entry(ppe, &e->data, e->hash, false);
drivers/net/ethernet/airoha/airoha_ppe.c
81
static u32 airoha_ppe_get_timestamp(struct airoha_ppe *ppe)
drivers/net/ethernet/airoha/airoha_ppe.c
812
static void airoha_ppe_foe_remove_l2_flow(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
820
rhashtable_remove_fast(&ppe->l2_flows, &e->l2_node,
drivers/net/ethernet/airoha/airoha_ppe.c
823
airoha_ppe_foe_remove_flow(ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
826
static void airoha_ppe_foe_flow_remove_entry(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
83
return airoha_fe_get(ppe->eth, REG_FE_FOE_TS,
drivers/net/ethernet/airoha/airoha_ppe.c
832
airoha_ppe_foe_remove_l2_flow(ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
834
airoha_ppe_foe_remove_flow(ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
840
airoha_ppe_foe_commit_subflow_entry(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
849
hwe_p = airoha_ppe_foe_get_entry_locked(ppe, hash);
drivers/net/ethernet/airoha/airoha_ppe.c
883
airoha_ppe_foe_commit_entry(ppe, &hwe, hash, rx_wlan);
drivers/net/ethernet/airoha/airoha_ppe.c
888
static void airoha_ppe_foe_insert_entry(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
901
hwe = airoha_ppe_foe_get_entry_locked(ppe, hash);
drivers/net/ethernet/airoha/airoha_ppe.c
909
index = airoha_ppe_foe_get_entry_hash(ppe, hwe);
drivers/net/ethernet/airoha/airoha_ppe.c
910
hlist_for_each_entry_safe(e, n, &ppe->foe_flow[index], list) {
drivers/net/ethernet/airoha/airoha_ppe.c
915
airoha_ppe_foe_remove_flow(ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
923
airoha_ppe_foe_commit_entry(ppe, &e->data, hash, rx_wlan);
drivers/net/ethernet/airoha/airoha_ppe.c
932
e = rhashtable_lookup_fast(&ppe->l2_flows, &br,
drivers/net/ethernet/airoha/airoha_ppe.c
935
airoha_ppe_foe_commit_subflow_entry(ppe, e, hash, rx_wlan);
drivers/net/ethernet/airoha/airoha_ppe.c
941
airoha_ppe_foe_l2_flow_commit_entry(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
947
prev = rhashtable_lookup_get_insert_fast(&ppe->l2_flows, &e->l2_node,
drivers/net/ethernet/airoha/airoha_ppe.c
955
return rhashtable_replace_fast(&ppe->l2_flows, &prev->l2_node,
drivers/net/ethernet/airoha/airoha_ppe.c
960
static int airoha_ppe_foe_flow_commit_entry(struct airoha_ppe *ppe,
drivers/net/ethernet/airoha/airoha_ppe.c
967
return airoha_ppe_foe_l2_flow_commit_entry(ppe, e);
drivers/net/ethernet/airoha/airoha_ppe.c
969
hash = airoha_ppe_foe_get_entry_hash(ppe, &e->data);
drivers/net/ethernet/airoha/airoha_ppe.c
974
hlist_add_head(&e->list, &ppe->foe_flow[hash]);
drivers/net/ethernet/airoha/airoha_ppe.c
980
static int airoha_ppe_get_entry_idle_time(struct airoha_ppe *ppe, u32 ib1)
drivers/net/ethernet/airoha/airoha_ppe.c
983
u32 ts, ts_mask, now = airoha_ppe_get_timestamp(ppe);
drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
147
airoha_ppe_foe_entry_get_stats(ppe, i, &stats);
drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
176
int airoha_ppe_debugfs_init(struct airoha_ppe *ppe)
drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
178
ppe->debugfs_dir = debugfs_create_dir("ppe", NULL);
drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
179
debugfs_create_file("entries", 0444, ppe->debugfs_dir, ppe,
drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
181
debugfs_create_file("bind", 0444, ppe->debugfs_dir, ppe,
drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
55
struct airoha_ppe *ppe = m->private;
drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
56
u32 ppe_num_entries = airoha_ppe_get_total_num_entries(ppe);
drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
71
hwe = airoha_ppe_foe_get_entry(ppe, i);
drivers/net/ethernet/mediatek/mtk_eth_soc.c
2384
mtk_ppe_check_skb(eth->ppe[ppe_idx], skb, hash);
drivers/net/ethernet/mediatek/mtk_eth_soc.c
3630
for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
drivers/net/ethernet/mediatek/mtk_eth_soc.c
3631
mtk_ppe_start(eth->ppe[i]);
drivers/net/ethernet/mediatek/mtk_eth_soc.c
3655
for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
drivers/net/ethernet/mediatek/mtk_eth_soc.c
3656
mtk_ppe_update_mtu(eth->ppe[i], mtu);
drivers/net/ethernet/mediatek/mtk_eth_soc.c
3759
for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
drivers/net/ethernet/mediatek/mtk_eth_soc.c
3760
mtk_ppe_stop(eth->ppe[i]);
drivers/net/ethernet/mediatek/mtk_eth_soc.c
4363
for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
drivers/net/ethernet/mediatek/mtk_eth_soc.c
4364
mtk_ppe_update_mtu(eth->ppe[i], max_mtu);
drivers/net/ethernet/mediatek/mtk_eth_soc.c
4403
for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
drivers/net/ethernet/mediatek/mtk_eth_soc.c
4404
mtk_ppe_prepare_reset(eth->ppe[i]);
drivers/net/ethernet/mediatek/mtk_eth_soc.c
5305
ppe_num = min_t(u8, ARRAY_SIZE(eth->ppe), ppe_num);
drivers/net/ethernet/mediatek/mtk_eth_soc.c
5310
eth->ppe[i] = mtk_ppe_init(eth, eth->base + ppe_addr, i);
drivers/net/ethernet/mediatek/mtk_eth_soc.c
5312
if (!eth->ppe[i]) {
drivers/net/ethernet/mediatek/mtk_eth_soc.h
1345
struct mtk_ppe *ppe[3];
drivers/net/ethernet/mediatek/mtk_eth_soc.h
1402
mtk_foe_get_entry(struct mtk_ppe *ppe, u16 hash)
drivers/net/ethernet/mediatek/mtk_eth_soc.h
1404
const struct mtk_soc_data *soc = ppe->eth->soc;
drivers/net/ethernet/mediatek/mtk_eth_soc.h
1406
return ppe->foe_table + hash * soc->foe_entry_size;
drivers/net/ethernet/mediatek/mtk_ppe.c
1003
ppe_w32(ppe, MTK_PPE_VLAN_MTU1, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1006
void mtk_ppe_start(struct mtk_ppe *ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
1010
if (!ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
1013
mtk_ppe_init_foe_table(ppe);
drivers/net/ethernet/mediatek/mtk_ppe.c
1014
ppe_w32(ppe, MTK_PPE_TB_BASE, ppe->foe_phys);
drivers/net/ethernet/mediatek/mtk_ppe.c
102
ppe_w32(ppe, MTK_PPE_MIB_SER_CR, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1030
if (mtk_is_netsys_v2_or_greater(ppe->eth))
drivers/net/ethernet/mediatek/mtk_ppe.c
1032
if (!mtk_is_netsys_v3_or_greater(ppe->eth))
drivers/net/ethernet/mediatek/mtk_ppe.c
1034
ppe_w32(ppe, MTK_PPE_TB_CFG, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1036
ppe_w32(ppe, MTK_PPE_IP_PROTO_CHK,
drivers/net/ethernet/mediatek/mtk_ppe.c
1039
mtk_ppe_cache_enable(ppe, true);
drivers/net/ethernet/mediatek/mtk_ppe.c
104
ret = mtk_ppe_mib_wait_busy(ppe);
drivers/net/ethernet/mediatek/mtk_ppe.c
1048
if (mtk_is_netsys_v2_or_greater(ppe->eth))
drivers/net/ethernet/mediatek/mtk_ppe.c
1056
ppe_w32(ppe, MTK_PPE_FLOW_CFG, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1060
ppe_w32(ppe, MTK_PPE_UNBIND_AGE, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1064
ppe_w32(ppe, MTK_PPE_BIND_AGE0, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1068
ppe_w32(ppe, MTK_PPE_BIND_AGE1, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1071
ppe_w32(ppe, MTK_PPE_BIND_LIMIT0, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1075
ppe_w32(ppe, MTK_PPE_BIND_LIMIT1, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1079
ppe_w32(ppe, MTK_PPE_BIND_RATE, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
108
cnt_r0 = readl(ppe->base + MTK_PPE_MIB_SER_R0);
drivers/net/ethernet/mediatek/mtk_ppe.c
1086
ppe_w32(ppe, MTK_PPE_GLO_CFG, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1088
ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT, 0);
drivers/net/ethernet/mediatek/mtk_ppe.c
109
cnt_r1 = readl(ppe->base + MTK_PPE_MIB_SER_R1);
drivers/net/ethernet/mediatek/mtk_ppe.c
1090
if (mtk_is_netsys_v2_or_greater(ppe->eth)) {
drivers/net/ethernet/mediatek/mtk_ppe.c
1091
ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT1, 0xcb777);
drivers/net/ethernet/mediatek/mtk_ppe.c
1092
ppe_w32(ppe, MTK_PPE_SBW_CTRL, 0x7f);
drivers/net/ethernet/mediatek/mtk_ppe.c
1095
if (ppe->accounting && ppe->mib_phys) {
drivers/net/ethernet/mediatek/mtk_ppe.c
1096
ppe_w32(ppe, MTK_PPE_MIB_TB_BASE, ppe->mib_phys);
drivers/net/ethernet/mediatek/mtk_ppe.c
1097
ppe_m32(ppe, MTK_PPE_MIB_CFG, MTK_PPE_MIB_CFG_EN,
drivers/net/ethernet/mediatek/mtk_ppe.c
1099
ppe_m32(ppe, MTK_PPE_MIB_CFG, MTK_PPE_MIB_CFG_RD_CLR,
drivers/net/ethernet/mediatek/mtk_ppe.c
110
cnt_r2 = readl(ppe->base + MTK_PPE_MIB_SER_R2);
drivers/net/ethernet/mediatek/mtk_ppe.c
1101
ppe_m32(ppe, MTK_PPE_MIB_CACHE_CTL, MTK_PPE_MIB_CACHE_CTL_EN,
drivers/net/ethernet/mediatek/mtk_ppe.c
1106
int mtk_ppe_stop(struct mtk_ppe *ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
1111
if (!ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
1115
struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, i);
drivers/net/ethernet/mediatek/mtk_ppe.c
112
if (mtk_is_netsys_v3_or_greater(ppe->eth)) {
drivers/net/ethernet/mediatek/mtk_ppe.c
1121
mtk_ppe_cache_enable(ppe, false);
drivers/net/ethernet/mediatek/mtk_ppe.c
1130
ppe_clear(ppe, MTK_PPE_TB_CFG, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
1132
if (mtk_ppe_wait_busy(ppe))
drivers/net/ethernet/mediatek/mtk_ppe.c
1136
ppe_clear(ppe, MTK_PPE_GLO_CFG, MTK_PPE_GLO_CFG_EN);
drivers/net/ethernet/mediatek/mtk_ppe.c
1137
ppe_w32(ppe, MTK_PPE_FLOW_CFG, 0);
drivers/net/ethernet/mediatek/mtk_ppe.c
114
u32 cnt_r3 = readl(ppe->base + MTK_PPE_MIB_SER_R3);
drivers/net/ethernet/mediatek/mtk_ppe.c
130
static void mtk_ppe_cache_clear(struct mtk_ppe *ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
132
ppe_set(ppe, MTK_PPE_CACHE_CTL, MTK_PPE_CACHE_CTL_CLEAR);
drivers/net/ethernet/mediatek/mtk_ppe.c
133
ppe_clear(ppe, MTK_PPE_CACHE_CTL, MTK_PPE_CACHE_CTL_CLEAR);
drivers/net/ethernet/mediatek/mtk_ppe.c
136
static void mtk_ppe_cache_enable(struct mtk_ppe *ppe, bool enable)
drivers/net/ethernet/mediatek/mtk_ppe.c
138
mtk_ppe_cache_clear(ppe);
drivers/net/ethernet/mediatek/mtk_ppe.c
140
ppe_m32(ppe, MTK_PPE_CACHE_CTL, MTK_PPE_CACHE_CTL_EN,
drivers/net/ethernet/mediatek/mtk_ppe.c
29
static void ppe_w32(struct mtk_ppe *ppe, u32 reg, u32 val)
drivers/net/ethernet/mediatek/mtk_ppe.c
31
writel(val, ppe->base + reg);
drivers/net/ethernet/mediatek/mtk_ppe.c
34
static u32 ppe_r32(struct mtk_ppe *ppe, u32 reg)
drivers/net/ethernet/mediatek/mtk_ppe.c
36
return readl(ppe->base + reg);
drivers/net/ethernet/mediatek/mtk_ppe.c
39
static u32 ppe_m32(struct mtk_ppe *ppe, u32 reg, u32 mask, u32 set)
drivers/net/ethernet/mediatek/mtk_ppe.c
43
val = ppe_r32(ppe, reg);
drivers/net/ethernet/mediatek/mtk_ppe.c
46
ppe_w32(ppe, reg, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
501
__mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
drivers/net/ethernet/mediatek/mtk_ppe.c
507
rhashtable_remove_fast(&ppe->l2_flows, &entry->l2_node,
drivers/net/ethernet/mediatek/mtk_ppe.c
51
static u32 ppe_set(struct mtk_ppe *ppe, u32 reg, u32 val)
drivers/net/ethernet/mediatek/mtk_ppe.c
512
__mtk_foe_entry_clear(ppe, entry);
drivers/net/ethernet/mediatek/mtk_ppe.c
518
struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash);
drivers/net/ethernet/mediatek/mtk_ppe.c
523
mtk_ppe_cache_clear(ppe);
drivers/net/ethernet/mediatek/mtk_ppe.c
525
if (ppe->accounting) {
drivers/net/ethernet/mediatek/mtk_ppe.c
528
acct = ppe->acct_table + entry->hash * sizeof(*acct);
drivers/net/ethernet/mediatek/mtk_ppe.c
53
return ppe_m32(ppe, reg, 0, val);
drivers/net/ethernet/mediatek/mtk_ppe.c
542
static int __mtk_foe_entry_idle_time(struct mtk_ppe *ppe, u32 ib1)
drivers/net/ethernet/mediatek/mtk_ppe.c
544
u32 ib1_ts_mask = mtk_get_ib1_ts_mask(ppe->eth);
drivers/net/ethernet/mediatek/mtk_ppe.c
545
u16 now = mtk_eth_timestamp(ppe->eth);
drivers/net/ethernet/mediatek/mtk_ppe.c
555
mtk_flow_entry_update_l2(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
drivers/net/ethernet/mediatek/mtk_ppe.c
557
u32 ib1_ts_mask = mtk_get_ib1_ts_mask(ppe->eth);
drivers/net/ethernet/mediatek/mtk_ppe.c
56
static u32 ppe_clear(struct mtk_ppe *ppe, u32 reg, u32 val)
drivers/net/ethernet/mediatek/mtk_ppe.c
563
idle = __mtk_foe_entry_idle_time(ppe, entry->data.ib1);
drivers/net/ethernet/mediatek/mtk_ppe.c
568
hwe = mtk_foe_get_entry(ppe, cur->hash);
drivers/net/ethernet/mediatek/mtk_ppe.c
573
__mtk_foe_entry_clear(ppe, cur);
drivers/net/ethernet/mediatek/mtk_ppe.c
577
cur_idle = __mtk_foe_entry_idle_time(ppe, ib1);
drivers/net/ethernet/mediatek/mtk_ppe.c
58
return ppe_m32(ppe, reg, val, 0);
drivers/net/ethernet/mediatek/mtk_ppe.c
588
mtk_flow_entry_update(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
drivers/net/ethernet/mediatek/mtk_ppe.c
596
mtk_flow_entry_update_l2(ppe, entry);
drivers/net/ethernet/mediatek/mtk_ppe.c
603
hwe = mtk_foe_get_entry(ppe, entry->hash);
drivers/net/ethernet/mediatek/mtk_ppe.c
604
memcpy(&foe, hwe, ppe->eth->soc->foe_entry_size);
drivers/net/ethernet/mediatek/mtk_ppe.c
605
if (!mtk_flow_entry_match(ppe->eth, entry, &foe)) {
drivers/net/ethernet/mediatek/mtk_ppe.c
617
__mtk_foe_entry_commit(struct mtk_ppe *ppe, struct mtk_foe_entry *entry,
drivers/net/ethernet/mediatek/mtk_ppe.c
620
struct mtk_eth *eth = ppe->eth;
drivers/net/ethernet/mediatek/mtk_ppe.c
635
hwe = mtk_foe_get_entry(ppe, hash);
drivers/net/ethernet/mediatek/mtk_ppe.c
640
if (ppe->accounting) {
drivers/net/ethernet/mediatek/mtk_ppe.c
650
mtk_ppe_cache_clear(ppe);
drivers/net/ethernet/mediatek/mtk_ppe.c
653
void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
drivers/net/ethernet/mediatek/mtk_ppe.c
656
__mtk_foe_entry_clear(ppe, entry);
drivers/net/ethernet/mediatek/mtk_ppe.c
66
static int mtk_ppe_wait_busy(struct mtk_ppe *ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
661
mtk_foe_entry_commit_l2(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
drivers/net/ethernet/mediatek/mtk_ppe.c
667
prev = rhashtable_lookup_get_insert_fast(&ppe->l2_flows, &entry->l2_node,
drivers/net/ethernet/mediatek/mtk_ppe.c
675
return rhashtable_replace_fast(&ppe->l2_flows, &prev->l2_node,
drivers/net/ethernet/mediatek/mtk_ppe.c
679
int mtk_foe_entry_commit(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
drivers/net/ethernet/mediatek/mtk_ppe.c
681
const struct mtk_soc_data *soc = ppe->eth->soc;
drivers/net/ethernet/mediatek/mtk_ppe.c
682
int type = mtk_get_ib1_pkt_type(ppe->eth, entry->data.ib1);
drivers/net/ethernet/mediatek/mtk_ppe.c
686
return mtk_foe_entry_commit_l2(ppe, entry);
drivers/net/ethernet/mediatek/mtk_ppe.c
688
hash = mtk_ppe_hash_entry(ppe->eth, &entry->data);
drivers/net/ethernet/mediatek/mtk_ppe.c
691
hlist_add_head(&entry->list, &ppe->foe_flow[hash / soc->hash_offset]);
drivers/net/ethernet/mediatek/mtk_ppe.c
698
mtk_foe_entry_commit_subflow(struct mtk_ppe *ppe, struct mtk_flow_entry *entry,
drivers/net/ethernet/mediatek/mtk_ppe.c
701
const struct mtk_soc_data *soc = ppe->eth->soc;
drivers/net/ethernet/mediatek/mtk_ppe.c
705
u32 ib1_mask = mtk_get_ib1_pkt_type_mask(ppe->eth) | MTK_FOE_IB1_UDP;
drivers/net/ethernet/mediatek/mtk_ppe.c
71
ret = readl_poll_timeout(ppe->base + MTK_PPE_GLO_CFG, val,
drivers/net/ethernet/mediatek/mtk_ppe.c
716
&ppe->foe_flow[hash / soc->hash_offset]);
drivers/net/ethernet/mediatek/mtk_ppe.c
719
hwe = mtk_foe_get_entry(ppe, hash);
drivers/net/ethernet/mediatek/mtk_ppe.c
724
l2 = mtk_foe_entry_l2(ppe->eth, &foe);
drivers/net/ethernet/mediatek/mtk_ppe.c
727
type = mtk_get_ib1_pkt_type(ppe->eth, foe.ib1);
drivers/net/ethernet/mediatek/mtk_ppe.c
733
*mtk_foe_entry_ib2(ppe->eth, &foe) = entry->data.bridge.ib2;
drivers/net/ethernet/mediatek/mtk_ppe.c
735
__mtk_foe_entry_commit(ppe, &foe, hash);
drivers/net/ethernet/mediatek/mtk_ppe.c
738
void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash)
drivers/net/ethernet/mediatek/mtk_ppe.c
740
const struct mtk_soc_data *soc = ppe->eth->soc;
drivers/net/ethernet/mediatek/mtk_ppe.c
741
struct hlist_head *head = &ppe->foe_flow[hash / soc->hash_offset];
drivers/net/ethernet/mediatek/mtk_ppe.c
742
struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, hash);
drivers/net/ethernet/mediatek/mtk_ppe.c
76
dev_err(ppe->dev, "PPE table busy");
drivers/net/ethernet/mediatek/mtk_ppe.c
762
__mtk_foe_entry_clear(ppe, entry);
drivers/net/ethernet/mediatek/mtk_ppe.c
766
if (found || !mtk_flow_entry_match(ppe->eth, entry, hwe)) {
drivers/net/ethernet/mediatek/mtk_ppe.c
773
__mtk_foe_entry_commit(ppe, &entry->data, hash);
drivers/net/ethernet/mediatek/mtk_ppe.c
807
entry = rhashtable_lookup_fast(&ppe->l2_flows, &key, mtk_flow_l2_ht_params);
drivers/net/ethernet/mediatek/mtk_ppe.c
81
static int mtk_ppe_mib_wait_busy(struct mtk_ppe *ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
811
mtk_foe_entry_commit_subflow(ppe, entry, hash);
drivers/net/ethernet/mediatek/mtk_ppe.c
817
int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
drivers/net/ethernet/mediatek/mtk_ppe.c
819
mtk_flow_entry_update(ppe, entry);
drivers/net/ethernet/mediatek/mtk_ppe.c
821
return __mtk_foe_entry_idle_time(ppe, entry->data.ib1);
drivers/net/ethernet/mediatek/mtk_ppe.c
824
int mtk_ppe_prepare_reset(struct mtk_ppe *ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
826
if (!ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
830
ppe_clear(ppe, MTK_PPE_TB_CFG, MTK_PPE_TB_CFG_KEEPALIVE);
drivers/net/ethernet/mediatek/mtk_ppe.c
831
ppe_clear(ppe, MTK_PPE_BIND_LMT1, MTK_PPE_NTU_KEEPALIVE);
drivers/net/ethernet/mediatek/mtk_ppe.c
832
ppe_w32(ppe, MTK_PPE_KEEPALIVE, 0);
drivers/net/ethernet/mediatek/mtk_ppe.c
836
ppe_set(ppe, MTK_PPE_BIND_LMT1, MTK_PPE_NTU_KEEPALIVE);
drivers/net/ethernet/mediatek/mtk_ppe.c
837
ppe_w32(ppe, MTK_PPE_KEEPALIVE, 0xffffffff);
drivers/net/ethernet/mediatek/mtk_ppe.c
840
ppe_set(ppe, MTK_PPE_TB_CFG, MTK_PPE_TB_TICK_SEL);
drivers/net/ethernet/mediatek/mtk_ppe.c
841
ppe_set(ppe, MTK_PPE_TB_CFG, MTK_PPE_TB_CFG_KEEPALIVE);
drivers/net/ethernet/mediatek/mtk_ppe.c
845
ppe_clear(ppe, MTK_PPE_TB_CFG, MTK_PPE_TB_CFG_SCAN_MODE);
drivers/net/ethernet/mediatek/mtk_ppe.c
848
return mtk_ppe_wait_busy(ppe);
drivers/net/ethernet/mediatek/mtk_ppe.c
851
struct mtk_foe_accounting *mtk_foe_entry_get_mib(struct mtk_ppe *ppe, u32 index,
drivers/net/ethernet/mediatek/mtk_ppe.c
858
if (!ppe->accounting)
drivers/net/ethernet/mediatek/mtk_ppe.c
86
ret = readl_poll_timeout(ppe->base + MTK_PPE_MIB_SER_CR, val,
drivers/net/ethernet/mediatek/mtk_ppe.c
861
if (mtk_mib_entry_read(ppe, index, &bytes, &packets))
drivers/net/ethernet/mediatek/mtk_ppe.c
864
acct = ppe->acct_table + index * size;
drivers/net/ethernet/mediatek/mtk_ppe.c
884
struct mtk_ppe *ppe;
drivers/net/ethernet/mediatek/mtk_ppe.c
888
ppe = devm_kzalloc(dev, sizeof(*ppe), GFP_KERNEL);
drivers/net/ethernet/mediatek/mtk_ppe.c
889
if (!ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
892
rhashtable_init(&ppe->l2_flows, &mtk_flow_l2_ht_params);
drivers/net/ethernet/mediatek/mtk_ppe.c
897
ppe->base = base;
drivers/net/ethernet/mediatek/mtk_ppe.c
898
ppe->eth = eth;
drivers/net/ethernet/mediatek/mtk_ppe.c
899
ppe->dev = dev;
drivers/net/ethernet/mediatek/mtk_ppe.c
900
ppe->version = eth->soc->offload_version;
drivers/net/ethernet/mediatek/mtk_ppe.c
901
ppe->accounting = accounting;
drivers/net/ethernet/mediatek/mtk_ppe.c
903
foe = dmam_alloc_coherent(ppe->dev,
drivers/net/ethernet/mediatek/mtk_ppe.c
905
&ppe->foe_phys, GFP_KERNEL);
drivers/net/ethernet/mediatek/mtk_ppe.c
909
ppe->foe_table = foe;
drivers/net/ethernet/mediatek/mtk_ppe.c
91
dev_err(ppe->dev, "MIB table busy");
drivers/net/ethernet/mediatek/mtk_ppe.c
912
sizeof(*ppe->foe_flow);
drivers/net/ethernet/mediatek/mtk_ppe.c
913
ppe->foe_flow = devm_kzalloc(dev, foe_flow_size, GFP_KERNEL);
drivers/net/ethernet/mediatek/mtk_ppe.c
914
if (!ppe->foe_flow)
drivers/net/ethernet/mediatek/mtk_ppe.c
918
mib = dmam_alloc_coherent(ppe->dev, MTK_PPE_ENTRIES * sizeof(*mib),
drivers/net/ethernet/mediatek/mtk_ppe.c
919
&ppe->mib_phys, GFP_KERNEL);
drivers/net/ethernet/mediatek/mtk_ppe.c
923
ppe->mib_table = mib;
drivers/net/ethernet/mediatek/mtk_ppe.c
931
ppe->acct_table = acct;
drivers/net/ethernet/mediatek/mtk_ppe.c
934
mtk_ppe_debugfs_init(ppe, index);
drivers/net/ethernet/mediatek/mtk_ppe.c
936
return ppe;
drivers/net/ethernet/mediatek/mtk_ppe.c
939
rhashtable_destroy(&ppe->l2_flows);
drivers/net/ethernet/mediatek/mtk_ppe.c
947
for (i = 0; i < ARRAY_SIZE(eth->ppe); i++) {
drivers/net/ethernet/mediatek/mtk_ppe.c
948
if (!eth->ppe[i])
drivers/net/ethernet/mediatek/mtk_ppe.c
950
rhashtable_destroy(ð->ppe[i]->l2_flows);
drivers/net/ethernet/mediatek/mtk_ppe.c
954
static void mtk_ppe_init_foe_table(struct mtk_ppe *ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
959
memset(ppe->foe_table, 0,
drivers/net/ethernet/mediatek/mtk_ppe.c
96
static int mtk_mib_entry_read(struct mtk_ppe *ppe, u16 index, u64 *bytes, u64 *packets)
drivers/net/ethernet/mediatek/mtk_ppe.c
960
MTK_PPE_ENTRIES * ppe->eth->soc->foe_entry_size);
drivers/net/ethernet/mediatek/mtk_ppe.c
970
hwe = mtk_foe_get_entry(ppe, i + skip[k]);
drivers/net/ethernet/mediatek/mtk_ppe.c
976
void mtk_ppe_update_mtu(struct mtk_ppe *ppe, int mtu)
drivers/net/ethernet/mediatek/mtk_ppe.c
981
if (!ppe)
drivers/net/ethernet/mediatek/mtk_ppe.c
997
ppe_w32(ppe, MTK_PPE_VLAN_MTU0, val);
drivers/net/ethernet/mediatek/mtk_ppe.h
349
void mtk_ppe_update_mtu(struct mtk_ppe *ppe, int mtu);
drivers/net/ethernet/mediatek/mtk_ppe.h
350
void mtk_ppe_start(struct mtk_ppe *ppe);
drivers/net/ethernet/mediatek/mtk_ppe.h
351
int mtk_ppe_stop(struct mtk_ppe *ppe);
drivers/net/ethernet/mediatek/mtk_ppe.h
352
int mtk_ppe_prepare_reset(struct mtk_ppe *ppe);
drivers/net/ethernet/mediatek/mtk_ppe.h
354
void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash);
drivers/net/ethernet/mediatek/mtk_ppe.h
357
mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash)
drivers/net/ethernet/mediatek/mtk_ppe.h
361
if (!ppe)
drivers/net/ethernet/mediatek/mtk_ppe.h
368
diff = now - ppe->foe_check_time[hash];
drivers/net/ethernet/mediatek/mtk_ppe.h
372
ppe->foe_check_time[hash] = now;
drivers/net/ethernet/mediatek/mtk_ppe.h
373
__mtk_ppe_check_skb(ppe, skb, hash);
drivers/net/ethernet/mediatek/mtk_ppe.h
400
int mtk_foe_entry_commit(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
drivers/net/ethernet/mediatek/mtk_ppe.h
401
void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
drivers/net/ethernet/mediatek/mtk_ppe.h
402
int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
drivers/net/ethernet/mediatek/mtk_ppe.h
403
int mtk_ppe_debugfs_init(struct mtk_ppe *ppe, int index);
drivers/net/ethernet/mediatek/mtk_ppe.h
404
struct mtk_foe_accounting *mtk_foe_entry_get_mib(struct mtk_ppe *ppe, u32 index,
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
100
acct = mtk_foe_entry_get_mib(ppe, i, NULL);
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
102
type = mtk_get_ib1_pkt_type(ppe->eth, entry->ib1);
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
184
int mtk_ppe_debugfs_init(struct mtk_ppe *ppe, int index)
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
188
snprintf(ppe->dirname, sizeof(ppe->dirname), "ppe%d", index);
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
190
root = debugfs_create_dir(ppe->dirname, NULL);
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
191
debugfs_create_file("entries", S_IRUGO, root, ppe, &mtk_ppe_debugfs_foe_all_fops);
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
192
debugfs_create_file("bind", S_IRUGO, root, ppe, &mtk_ppe_debugfs_foe_bind_fops);
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
79
struct mtk_ppe *ppe = m->private;
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c
83
struct mtk_foe_entry *entry = mtk_foe_get_entry(ppe, i);
drivers/net/ethernet/mediatek/mtk_ppe_offload.c
500
err = mtk_foe_entry_commit(eth->ppe[entry->ppe_index], entry);
drivers/net/ethernet/mediatek/mtk_ppe_offload.c
512
mtk_foe_entry_clear(eth->ppe[entry->ppe_index], entry);
drivers/net/ethernet/mediatek/mtk_ppe_offload.c
530
mtk_foe_entry_clear(eth->ppe[entry->ppe_index], entry);
drivers/net/ethernet/mediatek/mtk_ppe_offload.c
552
idle = mtk_foe_entry_idle_time(eth->ppe[entry->ppe_index], entry);
drivers/net/ethernet/mediatek/mtk_ppe_offload.c
556
mtk_foe_entry_get_mib(eth->ppe[entry->ppe_index], entry->hash,
drivers/net/ethernet/mediatek/mtk_ppe_offload.c
674
if (!eth->ppe[id] || !eth->ppe[id]->foe_table)
drivers/net/ethernet/mediatek/mtk_wed.c
1974
mtk_ppe_check_skb(eth->ppe[dev->hw->index], skb, hash);
drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
675
struct ppe_device *ppe_dev = entry->ppe;
drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
720
struct ppe_device *ppe_dev = entry->ppe;
drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
834
entry->ppe = ppe_dev;
drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
88
struct ppe_device *ppe;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
124
static u8 iwl_mld_he_get_ppe_val(u8 *ppe, u8 ppe_pos_bit)
drivers/net/wireless/intel/iwlwifi/mld/sta.c
132
return (ppe[byte_num] >> bit_num) &
drivers/net/wireless/intel/iwlwifi/mld/sta.c
142
res = (ppe[byte_num + 1] &
drivers/net/wireless/intel/iwlwifi/mld/sta.c
145
res += (ppe[byte_num] >> bit_num) & (BIT(residue_bits) - 1);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
152
u8 ru_index_bitmap, u8 *ppe, u8 ppe_pos_bit,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
187
high_th = iwl_mld_he_get_ppe_val(ppe, ppe_pos_bit);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
189
low_th = iwl_mld_he_get_ppe_val(ppe, ppe_pos_bit);
drivers/net/wireless/intel/iwlwifi/mld/sta.c
206
u8 *ppe = &link_sta->he_cap.ppe_thres[0];
drivers/net/wireless/intel/iwlwifi/mld/sta.c
208
u8_get_bits(*ppe,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
213
iwl_mld_parse_ppe(mld, pkt_ext, nss, ru_index_bitmap, ppe, ppe_pos_bit,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
302
u8 *ppe = &link_sta->eht_cap.eht_ppe_thres[0];
drivers/net/wireless/intel/iwlwifi/mld/sta.c
304
u16_get_bits(*ppe,
drivers/net/wireless/intel/iwlwifi/mld/sta.c
310
ppe, ppe_pos_bit, true);
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2099
static u8 iwl_mvm_he_get_ppe_val(u8 *ppe, u8 ppe_pos_bit)
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2107
return (ppe[byte_num] >> bit_num) &
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2118
res = (ppe[byte_num + 1] &
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2121
res += (ppe[byte_num] >> bit_num) & (BIT(residue_bits) - 1);
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2128
u8 ru_index_bitmap, u8 *ppe, u8 ppe_pos_bit,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2168
high_th = iwl_mvm_he_get_ppe_val(ppe, ppe_pos_bit);
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2170
low_th = iwl_mvm_he_get_ppe_val(ppe, ppe_pos_bit);
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2187
u8 *ppe = &link_sta->he_cap.ppe_thres[0];
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2189
u8_get_bits(*ppe,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2194
iwl_mvm_parse_ppe(mvm, pkt_ext, nss, ru_index_bitmap, ppe, ppe_pos_bit,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2295
u8 *ppe = &link_sta->eht_cap.eht_ppe_thres[0];
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2297
u16_get_bits(*ppe,
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
2303
ppe, ppe_pos_bit, true);
drivers/net/wireless/realtek/rtw89/fw.c
3798
u16 ppe;
drivers/net/wireless/realtek/rtw89/fw.c
3829
ppe = le16_to_cpu(*((__le16 *)&link_sta->he_cap.ppe_thres[idx]));
drivers/net/wireless/realtek/rtw89/fw.c
3830
ppe16 = (ppe >> sh) & IEEE80211_PPE_THRES_NSS_MASK;
drivers/net/wireless/realtek/rtw89/fw.c
3832
ppe8 = (ppe >> sh) & IEEE80211_PPE_THRES_NSS_MASK;
drivers/net/wireless/realtek/rtw89/fw.c
3942
u16 ppe;
drivers/net/wireless/realtek/rtw89/fw.c
3976
ppe = get_unaligned_le16(link_sta->eht_cap.eht_ppe_thres + idx);
drivers/net/wireless/realtek/rtw89/fw.c
3977
ppe16 = (ppe >> sh) & IEEE80211_PPE_THRES_NSS_MASK;
drivers/net/wireless/realtek/rtw89/fw.c
3979
ppe8 = (ppe >> sh) & IEEE80211_PPE_THRES_NSS_MASK;
include/linux/mtd/nand.h
41
#define NAND_MEMORG(bpc, ps, os, ppe, epl, mbb, ppl, lpt, nt) \
include/linux/mtd/nand.h
46
.pages_per_eraseblock = (ppe), \