Lines Matching +full:0 +full:x000e000e
35 module_param_named(msg_level, mtk_msg_level, int, 0);
36 MODULE_PARM_DESC(msg_level, "Message level (-1=defaults,0=none,...,16=all)");
46 .tx_irq_mask = 0x1a1c,
47 .tx_irq_status = 0x1a18,
49 .rx_ptr = 0x0900,
50 .rx_cnt_cfg = 0x0904,
51 .pcrx_ptr = 0x0908,
52 .glo_cfg = 0x0a04,
53 .rst_idx = 0x0a08,
54 .delay_irq = 0x0a0c,
55 .irq_status = 0x0a20,
56 .irq_mask = 0x0a28,
57 .adma_rx_dbg0 = 0x0a38,
58 .int_grp = 0x0a50,
61 .qtx_cfg = 0x1800,
62 .qtx_sch = 0x1804,
63 .rx_ptr = 0x1900,
64 .rx_cnt_cfg = 0x1904,
65 .qcrx_ptr = 0x1908,
66 .glo_cfg = 0x1a04,
67 .rst_idx = 0x1a08,
68 .delay_irq = 0x1a0c,
69 .fc_th = 0x1a10,
70 .tx_sch_rate = 0x1a14,
71 .int_grp = 0x1a20,
72 .hred = 0x1a44,
73 .ctx_ptr = 0x1b00,
74 .dtx_ptr = 0x1b04,
75 .crx_ptr = 0x1b10,
76 .drx_ptr = 0x1b14,
77 .fq_head = 0x1b20,
78 .fq_tail = 0x1b24,
79 .fq_count = 0x1b28,
80 .fq_blen = 0x1b2c,
82 .gdm1_cnt = 0x2400,
83 .gdma_to_ppe = 0x4444,
84 .ppe_base = 0x0c00,
86 [0] = 0x2800,
87 [1] = 0x2c00,
89 .pse_iq_sta = 0x0110,
90 .pse_oq_sta = 0x0118,
94 .tx_irq_mask = 0x0a28,
95 .tx_irq_status = 0x0a20,
97 .rx_ptr = 0x0900,
98 .rx_cnt_cfg = 0x0904,
99 .pcrx_ptr = 0x0908,
100 .glo_cfg = 0x0a04,
101 .rst_idx = 0x0a08,
102 .delay_irq = 0x0a0c,
103 .irq_status = 0x0a20,
104 .irq_mask = 0x0a28,
105 .int_grp = 0x0a50,
110 .tx_irq_mask = 0x461c,
111 .tx_irq_status = 0x4618,
113 .rx_ptr = 0x6100,
114 .rx_cnt_cfg = 0x6104,
115 .pcrx_ptr = 0x6108,
116 .glo_cfg = 0x6204,
117 .rst_idx = 0x6208,
118 .delay_irq = 0x620c,
119 .irq_status = 0x6220,
120 .irq_mask = 0x6228,
121 .adma_rx_dbg0 = 0x6238,
122 .int_grp = 0x6250,
125 .qtx_cfg = 0x4400,
126 .qtx_sch = 0x4404,
127 .rx_ptr = 0x4500,
128 .rx_cnt_cfg = 0x4504,
129 .qcrx_ptr = 0x4508,
130 .glo_cfg = 0x4604,
131 .rst_idx = 0x4608,
132 .delay_irq = 0x460c,
133 .fc_th = 0x4610,
134 .int_grp = 0x4620,
135 .hred = 0x4644,
136 .ctx_ptr = 0x4700,
137 .dtx_ptr = 0x4704,
138 .crx_ptr = 0x4710,
139 .drx_ptr = 0x4714,
140 .fq_head = 0x4720,
141 .fq_tail = 0x4724,
142 .fq_count = 0x4728,
143 .fq_blen = 0x472c,
144 .tx_sch_rate = 0x4798,
146 .gdm1_cnt = 0x1c00,
147 .gdma_to_ppe = 0x3333,
148 .ppe_base = 0x2000,
150 [0] = 0x4800,
151 [1] = 0x4c00,
153 .pse_iq_sta = 0x0180,
154 .pse_oq_sta = 0x01a0,
158 .tx_irq_mask = 0x461c,
159 .tx_irq_status = 0x4618,
161 .rx_ptr = 0x6900,
162 .rx_cnt_cfg = 0x6904,
163 .pcrx_ptr = 0x6908,
164 .glo_cfg = 0x6a04,
165 .rst_idx = 0x6a08,
166 .delay_irq = 0x6a0c,
167 .irq_status = 0x6a20,
168 .irq_mask = 0x6a28,
169 .adma_rx_dbg0 = 0x6a38,
170 .int_grp = 0x6a50,
173 .qtx_cfg = 0x4400,
174 .qtx_sch = 0x4404,
175 .rx_ptr = 0x4500,
176 .rx_cnt_cfg = 0x4504,
177 .qcrx_ptr = 0x4508,
178 .glo_cfg = 0x4604,
179 .rst_idx = 0x4608,
180 .delay_irq = 0x460c,
181 .fc_th = 0x4610,
182 .int_grp = 0x4620,
183 .hred = 0x4644,
184 .ctx_ptr = 0x4700,
185 .dtx_ptr = 0x4704,
186 .crx_ptr = 0x4710,
187 .drx_ptr = 0x4714,
188 .fq_head = 0x4720,
189 .fq_tail = 0x4724,
190 .fq_count = 0x4728,
191 .fq_blen = 0x472c,
192 .tx_sch_rate = 0x4798,
194 .gdm1_cnt = 0x1c00,
195 .gdma_to_ppe = 0x3333,
196 .ppe_base = 0x2000,
198 [0] = 0x4800,
199 [1] = 0x4c00,
200 [2] = 0x5000,
202 .pse_iq_sta = 0x0180,
203 .pse_oq_sta = 0x01a0,
310 return 0; in mtk_mdio_busy_wait()
326 if (ret < 0) in _mtk_mdio_write_c22()
338 if (ret < 0) in _mtk_mdio_write_c22()
341 return 0; in _mtk_mdio_write_c22()
350 if (ret < 0) in _mtk_mdio_write_c45()
362 if (ret < 0) in _mtk_mdio_write_c45()
374 if (ret < 0) in _mtk_mdio_write_c45()
377 return 0; in _mtk_mdio_write_c45()
385 if (ret < 0) in _mtk_mdio_read_c22()
396 if (ret < 0) in _mtk_mdio_read_c22()
408 if (ret < 0) in _mtk_mdio_read_c45()
420 if (ret < 0) in _mtk_mdio_read_c45()
431 if (ret < 0) in _mtk_mdio_read_c45()
474 ETHSYS_TRGMII_MT7621_DDR_PLL : 0; in mt7621_gmac0_rgmii_adjust()
479 return 0; in mt7621_gmac0_rgmii_adjust()
501 mtk_m32(eth, 0, MTK_XGMAC_FORCE_LINK(MTK_GMAC1_ID), in mtk_setup_bridge_switch()
522 0 : mac->id; in mtk_mac_select_pcs()
536 int val, ge_mode, err = 0; in mtk_mac_config()
590 for (i = 0 ; i < NUM_TRGMII_CTRL; i++) in mtk_mac_config()
596 mtk_m32(mac->hw, 0, RXC_RST | RXC_DQSISEL, in mtk_mac_config()
598 mtk_m32(mac->hw, RXC_RST, 0, TRGMII_RCK_CTRL); in mtk_mac_config()
608 ge_mode = 0; in mtk_mac_config()
687 return 0; in mtk_mac_finish()
864 mtk_m32(eth, 0, MISC_MDC_TURBO, MTK_MAC_MISC_V3); in mtk_mdio_init()
948 mtk_w32(mac->hw, (macaddr[0] << 8) | macaddr[1], in mtk_set_mac_address()
954 mtk_w32(mac->hw, (macaddr[0] << 8) | macaddr[1], in mtk_set_mac_address()
962 return 0; in mtk_set_mac_address()
985 stats = mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x4 + offs); in mtk_stats_update_mac()
989 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x8 + offs); in mtk_stats_update_mac()
991 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x10 + offs); in mtk_stats_update_mac()
993 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x14 + offs); in mtk_stats_update_mac()
995 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x18 + offs); in mtk_stats_update_mac()
997 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x1c + offs); in mtk_stats_update_mac()
999 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x20 + offs); in mtk_stats_update_mac()
1001 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x24 + offs); in mtk_stats_update_mac()
1005 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x50 + offs); in mtk_stats_update_mac()
1007 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x54 + offs); in mtk_stats_update_mac()
1009 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x40 + offs); in mtk_stats_update_mac()
1010 stats = mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x44 + offs); in mtk_stats_update_mac()
1014 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x48 + offs); in mtk_stats_update_mac()
1017 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x28 + offs); in mtk_stats_update_mac()
1019 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x2c + offs); in mtk_stats_update_mac()
1021 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x30 + offs); in mtk_stats_update_mac()
1022 stats = mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x34 + offs); in mtk_stats_update_mac()
1026 mtk_r32(mac->hw, reg_map->gdm1_cnt + 0x38 + offs); in mtk_stats_update_mac()
1037 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_stats_update()
1161 for (i = 0; i < cnt; i++) { in mtk_init_fq_dma()
1174 txd->txd4 = 0; in mtk_init_fq_dma()
1176 txd->txd5 = 0; in mtk_init_fq_dma()
1177 txd->txd6 = 0; in mtk_init_fq_dma()
1178 txd->txd7 = 0; in mtk_init_fq_dma()
1179 txd->txd8 = 0; in mtk_init_fq_dma()
1188 return 0; in mtk_init_fq_dma()
1265 tx_buf->flags = 0; in mtk_tx_unmap()
1357 data = 0; in mtk_tx_set_dma_desc_v2()
1369 data = 0; in mtk_tx_set_dma_desc_v2()
1374 WRITE_ONCE(desc->txd7, 0); in mtk_tx_set_dma_desc_v2()
1375 WRITE_ONCE(desc->txd8, 0); in mtk_tx_set_dma_desc_v2()
1412 int k = 0; in mtk_tx_map()
1421 memset(itx_buf, 0, sizeof(*itx_buf)); in mtk_tx_map()
1439 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { in mtk_tx_map()
1441 unsigned int offset = 0; in mtk_tx_map()
1448 (i & 0x1)) { in mtk_tx_map()
1459 memset(&txd_info, 0, sizeof(struct mtk_tx_dma_desc_info)); in mtk_tx_map()
1476 memset(tx_buf, 0, sizeof(*tx_buf)); in mtk_tx_map()
1494 if (k & 0x1) in mtk_tx_map()
1522 return 0; in mtk_tx_map()
1548 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { in mtk_cal_txd_req()
1564 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_queue_stopped()
1571 return 0; in mtk_queue_stopped()
1578 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_wake_queue()
1614 if (skb_cow_head(skb, 0)) { in mtk_start_xmit()
1627 if (mtk_tx_map(skb, dev, tx_num, ring, gso) < 0) in mtk_start_xmit()
1651 return ð->rx_ring[0]; in mtk_get_rx_ring()
1653 for (i = 0; i < MTK_MAX_RX_RING_NUM; i++) { in mtk_get_rx_ring()
1674 ring = ð->rx_ring[0]; in mtk_update_rx_cpu_idx()
1677 for (i = 0; i < MTK_MAX_RX_RING_NUM; i++) { in mtk_update_rx_cpu_idx()
1697 .order = 0, in mtk_create_page_pool()
1716 if (err < 0) in mtk_create_page_pool()
1789 return 0; in mtk_xdp_frame_map()
1805 int err, index = 0, n_desc = 1, nr_frags; in mtk_xdp_submit_frame()
1813 nr_frags = unlikely(xdp_frame_has_frags(xdpf)) ? sinfo->nr_frags : 0; in mtk_xdp_submit_frame()
1827 memset(tx_buf, 0, sizeof(*tx_buf)); in mtk_xdp_submit_frame()
1833 if (err < 0) in mtk_xdp_submit_frame()
1839 if (MTK_HAS_CAPS(soc->caps, MTK_QDMA) || (index & 0x1)) { in mtk_xdp_submit_frame()
1846 memset(tx_buf, 0, sizeof(*tx_buf)); in mtk_xdp_submit_frame()
1850 memset(&txd_info, 0, sizeof(struct mtk_tx_dma_desc_info)); in mtk_xdp_submit_frame()
1890 return 0; in mtk_xdp_submit_frame()
1918 int i, nxmit = 0; in mtk_xdp_xmit()
1923 for (i = 0; i < num_frame; i++) { in mtk_xdp_xmit()
2008 u64 addr64 = 0; in mtk_poll_rx()
2011 int done = 0, bytes = 0; in mtk_poll_rx()
2018 int mac = 0; in mtk_poll_rx()
2051 if (unlikely(mac < 0 || mac >= MTK_MAX_DEVS || in mtk_poll_rx()
2148 skb_set_hash(skb, jhash_1word(hash, 0), in mtk_poll_rx()
2155 skb_set_hash(skb, jhash_1word(hash, 0), in mtk_poll_rx()
2171 unsigned int port = RX_DMA_VPID(trxd.rxd3) & GENMASK(2, 0); in mtk_poll_rx()
2179 mtk_ppe_check_skb(eth->ppe[0], skb, hash); in mtk_poll_rx()
2181 skb_record_rx_queue(skb, 0); in mtk_poll_rx()
2280 if ((desc->txd3 & TX_DMA_OWNER_CPU) == 0) in mtk_poll_tx_qdma()
2330 mtk_poll_tx_done(eth, state, 0, tx_buf->data); in mtk_poll_tx_pdma()
2388 int tx_done = 0; in mtk_napi_tx()
2397 "done tx %d, intr 0x%08x/0x%x\n", tx_done, in mtk_napi_tx()
2418 int rx_done_total = 0; in mtk_napi_rx()
2432 "done rx %d, intr 0x%08x/0x%x\n", rx_done, in mtk_napi_rx()
2479 for (i = 0; i < ring_size; i++) { in mtk_tx_alloc()
2486 txd->txd4 = 0; in mtk_tx_alloc()
2488 txd->txd5 = 0; in mtk_tx_alloc()
2489 txd->txd6 = 0; in mtk_tx_alloc()
2490 txd->txd7 = 0; in mtk_tx_alloc()
2491 txd->txd8 = 0; in mtk_tx_alloc()
2505 for (i = 0; i < ring_size; i++) { in mtk_tx_alloc()
2507 ring->dma_pdma[i].txd4 = 0; in mtk_tx_alloc()
2531 for (i = 0, ofs = 0; i < MTK_QDMA_NUM_QUEUES; i++) { in mtk_tx_alloc()
2552 mtk_w32(eth, 0, MT7628_TX_CTX_IDX0); in mtk_tx_alloc()
2556 return 0; in mtk_tx_alloc()
2569 for (i = 0; i < ring->dma_size; i++) in mtk_tx_clean()
2652 for (i = 0; i < rx_dma_size; i++) { in mtk_rx_alloc()
2692 rxd->rxd3 = 0; in mtk_rx_alloc()
2693 rxd->rxd4 = 0; in mtk_rx_alloc()
2695 rxd->rxd5 = 0; in mtk_rx_alloc()
2696 rxd->rxd6 = 0; in mtk_rx_alloc()
2697 rxd->rxd7 = 0; in mtk_rx_alloc()
2698 rxd->rxd8 = 0; in mtk_rx_alloc()
2733 return 0; in mtk_rx_alloc()
2738 u64 addr64 = 0; in mtk_rx_clean()
2742 for (i = 0; i < ring->dma_size; i++) { in mtk_rx_clean()
2781 u32 ring_ctrl_dw1 = 0, ring_ctrl_dw2 = 0, ring_ctrl_dw3 = 0; in mtk_hwlro_rx_init()
2782 u32 lro_ctrl_dw0 = 0, lro_ctrl_dw3 = 0; in mtk_hwlro_rx_init()
2824 lro_ctrl_dw3 |= MTK_ADMA_MODE | (MTK_HW_LRO_MAX_AGG_CNT & 0xff); in mtk_hwlro_rx_init()
2835 return 0; in mtk_hwlro_rx_init()
2847 for (i = 0; i < 10; i++) { in mtk_hwlro_rx_uninit()
2858 mtk_w32(eth, 0, MTK_LRO_CTRL_DW2_CFG(i)); in mtk_hwlro_rx_uninit()
2861 mtk_w32(eth, 0, MTK_PDMA_LRO_CTRL_DW0); in mtk_hwlro_rx_uninit()
2888 mtk_w32(eth, 0, MTK_LRO_DIP_DW0_CFG(idx)); in mtk_hwlro_inval_ipaddr()
2893 int cnt = 0; in mtk_hwlro_get_ip_cnt()
2896 for (i = 0; i < MTK_MAX_LRO_IP_CNT; i++) { in mtk_hwlro_get_ip_cnt()
2925 return 0; in mtk_hwlro_add_ipaddr()
2940 mac->hwlro_ip[fsp->location] = 0; in mtk_hwlro_del_ipaddr()
2947 return 0; in mtk_hwlro_del_ipaddr()
2956 for (i = 0; i < MTK_MAX_LRO_IP_CNT; i++) { in mtk_hwlro_netdev_disable()
2957 mac->hwlro_ip[i] = 0; in mtk_hwlro_netdev_disable()
2963 mac->hwlro_ip_cnt = 0; in mtk_hwlro_netdev_disable()
2979 fsp->m_u.tcp_ip4_spec.ip4dst = 0; in mtk_hwlro_get_fdir_entry()
2981 fsp->h_u.tcp_ip4_spec.ip4src = 0; in mtk_hwlro_get_fdir_entry()
2982 fsp->m_u.tcp_ip4_spec.ip4src = 0xffffffff; in mtk_hwlro_get_fdir_entry()
2983 fsp->h_u.tcp_ip4_spec.psrc = 0; in mtk_hwlro_get_fdir_entry()
2984 fsp->m_u.tcp_ip4_spec.psrc = 0xffff; in mtk_hwlro_get_fdir_entry()
2985 fsp->h_u.tcp_ip4_spec.pdst = 0; in mtk_hwlro_get_fdir_entry()
2986 fsp->m_u.tcp_ip4_spec.pdst = 0xffff; in mtk_hwlro_get_fdir_entry()
2987 fsp->h_u.tcp_ip4_spec.tos = 0; in mtk_hwlro_get_fdir_entry()
2988 fsp->m_u.tcp_ip4_spec.tos = 0xff; in mtk_hwlro_get_fdir_entry()
2990 return 0; in mtk_hwlro_get_fdir_entry()
2998 int cnt = 0; in mtk_hwlro_get_fdir_all()
3001 for (i = 0; i < MTK_MAX_LRO_IP_CNT; i++) { in mtk_hwlro_get_fdir_all()
3013 return 0; in mtk_hwlro_get_fdir_all()
3040 return 0; in mtk_set_features()
3086 err = mtk_rx_alloc(eth, 0, MTK_RX_FLAGS_QDMA); in mtk_dma_init()
3091 err = mtk_rx_alloc(eth, 0, MTK_RX_FLAGS_NORMAL); in mtk_dma_init()
3112 mtk_w32(eth, 0x0, eth->soc->reg_map->qdma.hred); in mtk_dma_init()
3115 return 0; in mtk_dma_init()
3123 for (i = 0; i < MTK_MAX_DEVS; i++) in mtk_dma_free()
3131 eth->phy_scratch_ring = 0; in mtk_dma_free()
3134 mtk_rx_clean(eth, ð->rx_ring[0], MTK_HAS_CAPS(soc->caps, MTK_SRAM)); in mtk_dma_free()
3233 u32 val, rx_2b_offset = (NET_IP_ALIGN == 2) ? MTK_RX_2B_OFFSET : 0; in mtk_start_dma()
3267 return 0; in mtk_start_dma()
3277 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_gdm_config()
3286 val &= ~0xffff; in mtk_gdm_config()
3300 mtk_w32(eth, 0, MTK_RST_GL); in mtk_gdm_config()
3341 if (s.base.speed == 0 || s.base.speed == ((__u32)-1)) in mtk_device_event()
3348 if (mac->speed > 0 && mac->speed <= s.base.speed) in mtk_device_event()
3349 s.base.speed = 0; in mtk_device_event()
3362 err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0); in mtk_open()
3381 for (i = 0; i < ARRAY_SIZE(eth->ppe); i++) in mtk_open()
3401 return 0; in mtk_open()
3404 for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) { in mtk_open()
3410 md_dst = metadata_dst_alloc(0, METADATA_HW_PORT_MUX, in mtk_open()
3427 mtk_w32(eth, 0, MTK_CDMP_EG_CTRL); in mtk_open()
3430 return 0; in mtk_open()
3446 for (i = 0; i < 10; i++) { in mtk_stop_dma()
3470 return 0; in mtk_stop()
3488 for (i = 0; i < ARRAY_SIZE(eth->ppe); i++) in mtk_stop()
3491 return 0; in mtk_stop()
3523 return 0; in mtk_xdp_setup()
3553 for (clk = MTK_CLK_MAX - 1; clk >= 0; clk--) in mtk_clk_disable()
3561 for (clk = 0; clk < MTK_CLK_MAX ; clk++) { in mtk_clk_enable()
3567 return 0; in mtk_clk_enable()
3570 while (--clk >= 0) in mtk_clk_enable()
3667 regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN, 0); in mtk_hw_reset()
3692 0x6f8ff); in mtk_hw_reset()
3695 0x3ffffff); in mtk_hw_reset()
3767 wdidx = mtk_r32(eth, reg_map->wdma_base[0] + 0xc); in mtk_hw_check_dma_hang()
3769 val = mtk_r32(eth, reg_map->wdma_base[0] + 0x204); in mtk_hw_check_dma_hang()
3772 val = mtk_r32(eth, reg_map->wdma_base[0] + 0x230); in mtk_hw_check_dma_hang()
3776 !(mtk_r32(eth, reg_map->pse_oq_sta + 0x4) & GENMASK(8, 0)) && in mtk_hw_check_dma_hang()
3777 !(mtk_r32(eth, reg_map->pse_oq_sta + 0x10) & GENMASK(24, 16))); in mtk_hw_check_dma_hang()
3781 eth->reset.wdma_hang_count = 0; in mtk_hw_check_dma_hang()
3788 qfsm_hang = !!mtk_r32(eth, reg_map->qdma.qtx_cfg + 0x234); in mtk_hw_check_dma_hang()
3789 qfwd_hang = !mtk_r32(eth, reg_map->qdma.qtx_cfg + 0x308); in mtk_hw_check_dma_hang()
3791 gdm1_tx = FIELD_GET(GENMASK(31, 16), mtk_r32(eth, MTK_FE_GDM1_FSM)) > 0; in mtk_hw_check_dma_hang()
3792 gdm2_tx = FIELD_GET(GENMASK(31, 16), mtk_r32(eth, MTK_FE_GDM2_FSM)) > 0; in mtk_hw_check_dma_hang()
3793 gmac1_tx = FIELD_GET(GENMASK(31, 24), mtk_r32(eth, MTK_MAC_FSM(0))) != 1; in mtk_hw_check_dma_hang()
3795 gdm1_fc = mtk_r32(eth, reg_map->gdm1_cnt + 0x24); in mtk_hw_check_dma_hang()
3796 gdm2_fc = mtk_r32(eth, reg_map->gdm1_cnt + 0x64); in mtk_hw_check_dma_hang()
3802 eth->reset.qdma_hang_count = 0; in mtk_hw_check_dma_hang()
3809 oq_hang = !!(mtk_r32(eth, reg_map->pse_oq_sta) & GENMASK(8, 0)); in mtk_hw_check_dma_hang()
3811 adma_busy = !(mtk_r32(eth, reg_map->pdma.adma_rx_dbg0) & GENMASK(4, 0)) && in mtk_hw_check_dma_hang()
3816 eth->reset.adma_hang_count = 0; in mtk_hw_check_dma_hang()
3822 eth->reset.wdma_hang_count = 0; in mtk_hw_check_dma_hang()
3823 eth->reset.qdma_hang_count = 0; in mtk_hw_check_dma_hang()
3824 eth->reset.adma_hang_count = 0; in mtk_hw_check_dma_hang()
3857 return 0; in mtk_hw_init()
3884 mtk_tx_irq_disable(eth, ~0); in mtk_hw_init()
3885 mtk_rx_irq_disable(eth, ~0); in mtk_hw_init()
3887 return 0; in mtk_hw_init()
3905 regmap_write(eth->pctl, GPIO_DRV_SEL10, 0xa00); in mtk_hw_init()
3908 regmap_write(eth->pctl, GPIO_OD33_CTRL8, 0x5); in mtk_hw_init()
3911 regmap_write(eth->pctl, GPIO_BIAS_CTRL, 0x0); in mtk_hw_init()
3918 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_hw_init()
3946 mtk_tx_irq_disable(eth, ~0); in mtk_hw_init()
3947 mtk_rx_irq_disable(eth, ~0); in mtk_hw_init()
3954 mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP); in mtk_hw_init()
3958 mtk_w32(eth, 0x00000302, PSE_DROP_CFG); in mtk_hw_init()
3961 mtk_w32(eth, 0x00000707, MTK_CDMW0_THRES); in mtk_hw_init()
3962 mtk_w32(eth, 0x00000077, MTK_CDMW1_THRES); in mtk_hw_init()
3965 mtk_m32(eth, MTK_GDMA_STRP_CRC, 0, MTK_GDMA_FWD_CFG(0)); in mtk_hw_init()
3971 for (i = 0; i < 0x80; i += 0x4) in mtk_hw_init()
3972 mtk_r32(eth, reg_map->gdm1_cnt + 0x100 + i); in mtk_hw_init()
3975 mtk_w32(eth, 0x00000300, PSE_DROP_CFG); in mtk_hw_init()
3978 mtk_w32(eth, 0x00000300, PSE_PPE0_DROP); in mtk_hw_init()
3981 mtk_w32(eth, 0x01fa01f4, PSE_FQFC_CFG2); in mtk_hw_init()
3984 mtk_w32(eth, 0x001a000e, PSE_IQ_REV(1)); in mtk_hw_init()
3985 mtk_w32(eth, 0x01ff001a, PSE_IQ_REV(2)); in mtk_hw_init()
3986 mtk_w32(eth, 0x000e01ff, PSE_IQ_REV(3)); in mtk_hw_init()
3987 mtk_w32(eth, 0x000e000e, PSE_IQ_REV(4)); in mtk_hw_init()
3988 mtk_w32(eth, 0x000e000e, PSE_IQ_REV(5)); in mtk_hw_init()
3989 mtk_w32(eth, 0x000e000e, PSE_IQ_REV(6)); in mtk_hw_init()
3990 mtk_w32(eth, 0x000e000e, PSE_IQ_REV(7)); in mtk_hw_init()
3991 mtk_w32(eth, 0x000e000e, PSE_IQ_REV(8)); in mtk_hw_init()
3994 mtk_w32(eth, 0x000f000a, PSE_OQ_TH(1)); in mtk_hw_init()
3995 mtk_w32(eth, 0x001a000f, PSE_OQ_TH(2)); in mtk_hw_init()
3996 mtk_w32(eth, 0x000f001a, PSE_OQ_TH(3)); in mtk_hw_init()
3997 mtk_w32(eth, 0x01ff000f, PSE_OQ_TH(4)); in mtk_hw_init()
3998 mtk_w32(eth, 0x000f000f, PSE_OQ_TH(5)); in mtk_hw_init()
3999 mtk_w32(eth, 0x0006000f, PSE_OQ_TH(6)); in mtk_hw_init()
4000 mtk_w32(eth, 0x00060006, PSE_OQ_TH(7)); in mtk_hw_init()
4001 mtk_w32(eth, 0x00060006, PSE_OQ_TH(8)); in mtk_hw_init()
4004 mtk_w32(eth, 0x00000004, MTK_GDM2_THRES); in mtk_hw_init()
4005 mtk_w32(eth, 0x00000004, MTK_CDMW0_THRES); in mtk_hw_init()
4006 mtk_w32(eth, 0x00000004, MTK_CDMW1_THRES); in mtk_hw_init()
4007 mtk_w32(eth, 0x00000004, MTK_CDME0_THRES); in mtk_hw_init()
4008 mtk_w32(eth, 0x00000004, MTK_CDME1_THRES); in mtk_hw_init()
4009 mtk_w32(eth, 0x00000004, MTK_CDMM_THRES); in mtk_hw_init()
4012 return 0; in mtk_hw_init()
4026 return 0; in mtk_hw_deinit()
4033 return 0; in mtk_hw_deinit()
4042 mtk_tx_irq_disable(eth, ~0); in mtk_uninit()
4043 mtk_rx_irq_disable(eth, ~0); in mtk_uninit()
4061 return 0; in mtk_change_mtu()
4098 for (i = 0; i < ARRAY_SIZE(eth->ppe); i++) in mtk_prepare_for_reset()
4102 mtk_w32(eth, 0, MTK_FE_INT_ENABLE); in mtk_prepare_for_reset()
4105 for (i = 0; i < 2; i++) { in mtk_prepare_for_reset()
4114 unsigned long restart = 0; in mtk_pending_work()
4129 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_pending_work()
4145 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_pending_work()
4180 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_free_dev()
4186 for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) { in mtk_free_dev()
4192 return 0; in mtk_free_dev()
4199 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_unreg_dev()
4209 return 0; in mtk_unreg_dev()
4216 for (i = 0; i < MTK_MAX_DEVS; i++) in mtk_sgmii_destroy()
4228 return 0; in mtk_cleanup()
4298 for (i = 0; i < ARRAY_SIZE(mtk_ethtool_stats); i++) { in mtk_get_strings()
4332 for (i = 0; i < ARRAY_SIZE(eth->rx_ring); i++) { in mtk_ethtool_pp_stats()
4368 for (i = 0; i < ARRAY_SIZE(mtk_ethtool_stats); i++) in mtk_get_ethtool_stats()
4384 ret = 0; in mtk_get_rxnfc()
4392 ret = 0; in mtk_get_rxnfc()
4435 unsigned int queue = 0; in mtk_select_queue()
4443 queue = 0; in mtk_select_queue()
4536 memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip)); in mtk_add_mac()
4537 mac->hwlro_ip_cnt = 0; in mtk_add_mac()
4551 mac->hw_stats->reg_offset = id * 0x80; in mtk_add_mac()
4553 mac->hw_stats->reg_offset = id * 0x40; in mtk_add_mac()
4575 if (!mac->hw->soc->disable_pll_modes || mac->id != 0) { in mtk_add_mac()
4642 eth->netdev[id]->irq = eth->irq[0]; in mtk_add_mac()
4661 return 0; in mtk_add_mac()
4676 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_eth_set_dma_device()
4704 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_sgmii_init()
4710 flags = 0; in mtk_sgmii_init()
4724 return 0; in mtk_sgmii_init()
4742 eth->base = devm_platform_ioremap_resource(pdev, 0); in mtk_probe()
4811 regmap_write(cci, 0, 3); in mtk_probe()
4832 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); in mtk_probe()
4852 for (i = 0;; i++) { in mtk_probe()
4866 wdma_phy = res ? res->start + wdma_base : 0; in mtk_probe()
4872 for (i = 0; i < 3; i++) { in mtk_probe()
4873 if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0) in mtk_probe()
4874 eth->irq[i] = eth->irq[0]; in mtk_probe()
4877 if (eth->irq[i] < 0) { in mtk_probe()
4883 for (i = 0; i < ARRAY_SIZE(eth->clks); i++) { in mtk_probe()
4926 err = devm_request_irq(eth->dev, eth->irq[0], in mtk_probe()
4927 mtk_handle_irq, 0, in mtk_probe()
4931 mtk_handle_irq_tx, 0, in mtk_probe()
4937 mtk_handle_irq_rx, 0, in mtk_probe()
4954 for (i = 0; i < num_ppe; i++) { in mtk_probe()
4955 u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400; in mtk_probe()
4970 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_probe()
4980 "mediatek frame engine at 0x%08lx, irq %d\n", in mtk_probe()
4981 eth->netdev[i]->base_addr, eth->irq[0]); in mtk_probe()
4995 return 0; in mtk_probe()
5019 for (i = 0; i < MTK_MAX_DEVS; i++) { in mtk_remove()
5075 .ana_rgc3 = 0x2028,
5118 .ana_rgc3 = 0x128,
5137 .ana_rgc3 = 0x128,
5159 .ana_rgc3 = 0x128,
5181 .ana_rgc3 = 0x128,