| H A D | mtk_eth_soc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Copyright (C) 2009-2016 John Crispin <blogic@openwrt.org> 5 * Copyright (C) 2009-2016 Felix Fietkau <nbd@openwrt.org> 6 * Copyright (C) 2013-2016 Michael Lee <igvtee@gmail.com> 24 #include <linux/pcs/pcs-mtk-lynxi.h> 36 static int mtk_msg_level = - 290 mtk_w32(struct mtk_eth * eth,u32 val,unsigned reg) mtk_w32() argument 295 mtk_r32(struct mtk_eth * eth,unsigned reg) mtk_r32() argument 300 mtk_m32(struct mtk_eth * eth,u32 mask,u32 set,unsigned int reg) mtk_m32() argument 311 mtk_mdio_busy_wait(struct mtk_eth * eth) mtk_mdio_busy_wait() argument 327 _mtk_mdio_write_c22(struct mtk_eth * eth,u32 phy_addr,u32 phy_reg,u32 write_data) _mtk_mdio_write_c22() argument 351 _mtk_mdio_write_c45(struct mtk_eth * eth,u32 phy_addr,u32 devad,u32 phy_reg,u32 write_data) _mtk_mdio_write_c45() argument 387 _mtk_mdio_read_c22(struct mtk_eth * eth,u32 phy_addr,u32 phy_reg) _mtk_mdio_read_c22() argument 409 _mtk_mdio_read_c45(struct mtk_eth * eth,u32 phy_addr,u32 devad,u32 phy_reg) _mtk_mdio_read_c45() argument 447 struct mtk_eth *eth = bus->priv; mtk_mdio_write_c22() local 455 struct mtk_eth *eth = bus->priv; mtk_mdio_write_c45() local 462 struct mtk_eth *eth = bus->priv; mtk_mdio_read_c22() local 470 struct mtk_eth *eth = bus->priv; mtk_mdio_read_c45() local 475 mt7621_gmac0_rgmii_adjust(struct mtk_eth * eth,phy_interface_t interface) mt7621_gmac0_rgmii_adjust() argument 489 mtk_gmac0_rgmii_adjust(struct mtk_eth * eth,phy_interface_t interface) mtk_gmac0_rgmii_adjust() argument 505 mtk_setup_bridge_switch(struct mtk_eth * eth) mtk_setup_bridge_switch() argument 521 struct mtk_mac *mac = container_of(config, struct mtk_mac, mtk_mac_select_pcs() local 523 struct mtk_eth *eth = mac->hw; mtk_mac_select_pcs() local 540 struct mtk_mac *mac = container_of(config, struct mtk_mac, mtk_mac_prepare() local 542 struct mtk_eth *eth = mac->hw; mtk_mac_prepare() local 560 struct mtk_mac *mac = container_of(config, struct mtk_mac, mtk_mac_config() local 562 struct mtk_eth *eth = mac->hw; mtk_mac_config() local 696 struct mtk_mac *mac = container_of(config, struct mtk_mac, mtk_mac_finish() local 698 struct mtk_eth *eth = mac->hw; mtk_mac_finish() local 723 struct mtk_mac *mac = container_of(config, struct mtk_mac, mtk_mac_link_down() local 740 mtk_set_queue_speed(struct mtk_eth * eth,unsigned int idx,int speed) mtk_set_queue_speed() argument 809 mtk_gdm_mac_link_up(struct mtk_mac * mac,struct phy_device * phy,unsigned int mode,phy_interface_t interface,int speed,int duplex,bool tx_pause,bool rx_pause) mtk_gdm_mac_link_up() argument 848 mtk_xgdm_mac_link_up(struct mtk_mac * mac,struct phy_device * phy,unsigned int mode,phy_interface_t interface,int speed,int duplex,bool tx_pause,bool rx_pause) mtk_xgdm_mac_link_up() argument 887 struct mtk_mac *mac = container_of(config, struct mtk_mac, mtk_mac_link_up() local 900 struct mtk_mac *mac = container_of(config, struct mtk_mac, mtk_mac_disable_tx_lpi() local 902 struct mtk_eth *eth = mac->hw; mtk_mac_disable_tx_lpi() local 910 struct mtk_mac *mac = container_of(config, struct mtk_mac, mtk_mac_enable_tx_lpi() local 912 struct mtk_eth *eth = mac->hw; mtk_mac_enable_tx_lpi() local 982 mtk_mdio_config(struct mtk_eth * eth) mtk_mdio_config() argument 998 mtk_mdio_init(struct mtk_eth * eth) mtk_mdio_init() argument 1045 mtk_mdio_cleanup(struct mtk_eth * eth) mtk_mdio_cleanup() argument 1053 mtk_tx_irq_disable(struct mtk_eth * eth,u32 mask) mtk_tx_irq_disable() argument 1064 mtk_tx_irq_enable(struct mtk_eth * eth,u32 mask) mtk_tx_irq_enable() argument 1075 mtk_rx_irq_disable(struct mtk_eth * eth,u32 mask) mtk_rx_irq_disable() argument 1086 mtk_rx_irq_enable(struct mtk_eth * eth,u32 mask) mtk_rx_irq_enable() argument 1100 struct mtk_mac *mac = netdev_priv(dev); mtk_set_mac_address() local 1101 struct mtk_eth *eth = mac->hw; mtk_set_mac_address() local 1129 mtk_stats_update_mac(struct mtk_mac * mac) mtk_stats_update_mac() argument 1132 struct mtk_eth *eth = mac->hw; mtk_stats_update_mac() local 1197 mtk_stats_update(struct mtk_eth * eth) mtk_stats_update() argument 1214 struct mtk_mac *mac = netdev_priv(dev); mtk_get_stats64() local 1265 mtk_rx_get_desc(struct mtk_eth * eth,struct mtk_rx_dma_v2 * rxd,struct mtk_rx_dma_v2 * dma_rxd) mtk_rx_get_desc() argument 1294 mtk_dma_ring_alloc(struct mtk_eth * eth,size_t size,dma_addr_t * dma_handle,bool use_sram) mtk_dma_ring_alloc() argument 1313 mtk_dma_ring_free(struct mtk_eth * eth,size_t size,void * dma_ring,dma_addr_t dma_handle,bool in_sram) mtk_dma_ring_free() argument 1323 mtk_init_fq_dma(struct mtk_eth * eth) mtk_init_fq_dma() argument 1408 mtk_tx_unmap(struct mtk_eth * eth,struct mtk_tx_buf * tx_buf,struct xdp_frame_bulk * bq,bool napi) mtk_tx_unmap() argument 1462 setup_tx_buf(struct mtk_eth * eth,struct mtk_tx_buf * tx_buf,struct mtk_tx_dma * txd,dma_addr_t mapped_addr,size_t size,int idx) setup_tx_buf() argument 1488 struct mtk_mac *mac = netdev_priv(dev); mtk_tx_set_dma_desc_v1() local 1489 struct mtk_eth *eth = mac->hw; mtk_tx_set_dma_desc_v1() local 1518 struct mtk_mac *mac = netdev_priv(dev); mtk_tx_set_dma_desc_v2() local 1520 struct mtk_eth *eth = mac->hw; mtk_tx_set_dma_desc_v2() local 1574 struct mtk_mac *mac = netdev_priv(dev); mtk_tx_set_dma_desc() local 1575 struct mtk_eth *eth = mac->hw; mtk_tx_set_dma_desc() local 1597 struct mtk_mac *mac = netdev_priv(dev); mtk_tx_map() local 1598 struct mtk_eth *eth = mac->hw; mtk_tx_map() local 1735 mtk_cal_txd_req(struct mtk_eth * eth,struct sk_buff * skb) mtk_cal_txd_req() argument 1753 mtk_queue_stopped(struct mtk_eth * eth) mtk_queue_stopped() argument 1767 mtk_wake_queue(struct mtk_eth * eth) mtk_wake_queue() argument 1780 struct mtk_mac *mac = netdev_priv(dev); mtk_start_xmit() local 1781 struct mtk_eth *eth = mac->hw; mtk_start_xmit() local 1845 mtk_get_rx_ring(struct mtk_eth * eth) mtk_get_rx_ring() argument 1869 mtk_update_rx_cpu_idx(struct mtk_eth * eth) mtk_update_rx_cpu_idx() argument 1888 mtk_page_pool_enabled(struct mtk_eth * eth) mtk_page_pool_enabled() argument 1893 mtk_create_page_pool(struct mtk_eth * eth,struct xdp_rxq_info * xdp_q,int id,int size) mtk_create_page_pool() argument 1956 mtk_xdp_frame_map(struct mtk_eth * eth,struct net_device * dev,struct mtk_tx_dma_desc_info * txd_info,struct mtk_tx_dma * txd,struct mtk_tx_buf * tx_buf,void * data,u16 headroom,int index,bool dma_map) mtk_xdp_frame_map() argument 1962 struct mtk_mac *mac = netdev_priv(dev); mtk_xdp_frame_map() local 1993 mtk_xdp_submit_frame(struct mtk_eth * eth,struct xdp_frame * xdpf,struct net_device * dev,bool dma_map) mtk_xdp_submit_frame() argument 1999 struct mtk_mac *mac = netdev_priv(dev); mtk_xdp_submit_frame() local 2116 struct mtk_mac *mac = netdev_priv(dev); mtk_xdp_xmit() local 2118 struct mtk_eth *eth = mac->hw; mtk_xdp_xmit() local 2138 mtk_xdp_run(struct mtk_eth * eth,struct mtk_rx_ring * ring,struct xdp_buff * xdp,struct net_device * dev) mtk_xdp_run() argument 2141 struct mtk_mac *mac = netdev_priv(dev); mtk_xdp_run() local 2202 mtk_poll_rx(struct napi_struct * napi,int budget,struct mtk_eth * eth) mtk_poll_rx() argument 2220 int mac = 0; mtk_poll_rx() local 2440 mtk_poll_tx_done(struct mtk_eth * eth,struct mtk_poll_state * state,u8 mac,struct sk_buff * skb) mtk_poll_tx_done() argument 2470 mtk_poll_tx_qdma(struct mtk_eth * eth,int budget,struct mtk_poll_state * state) mtk_poll_tx_qdma() argument 2520 mtk_poll_tx_pdma(struct mtk_eth * eth,int budget,struct mtk_poll_state * state) mtk_poll_tx_pdma() argument 2558 mtk_poll_tx(struct mtk_eth * eth,int budget) mtk_poll_tx() argument 2583 mtk_handle_status_irq(struct mtk_eth * eth) mtk_handle_status_irq() argument 2596 struct mtk_eth *eth = container_of(napi, struct mtk_eth, tx_napi); mtk_napi_tx() local 2626 struct mtk_eth *eth = container_of(napi, struct mtk_eth, rx_napi); mtk_napi_rx() local 2659 mtk_tx_alloc(struct mtk_eth * eth) mtk_tx_alloc() argument 2764 mtk_tx_clean(struct mtk_eth * eth) mtk_tx_clean() argument 2791 mtk_rx_alloc(struct mtk_eth * eth,int ring_no,int rx_flag) mtk_rx_alloc() argument 2924 mtk_rx_clean(struct mtk_eth * eth,struct mtk_rx_ring * ring,bool in_sram) mtk_rx_clean() argument 2965 mtk_hwlro_rx_init(struct mtk_eth * eth) mtk_hwlro_rx_init() argument 3025 mtk_hwlro_rx_uninit(struct mtk_eth * eth) mtk_hwlro_rx_uninit() argument 3051 mtk_hwlro_val_ipaddr(struct mtk_eth * eth,int idx,__be32 ip) mtk_hwlro_val_ipaddr() argument 3066 mtk_hwlro_inval_ipaddr(struct mtk_eth * eth,int idx) mtk_hwlro_inval_ipaddr() argument 3078 mtk_hwlro_get_ip_cnt(struct mtk_mac * mac) mtk_hwlro_get_ip_cnt() argument 3096 struct mtk_mac *mac = netdev_priv(dev); mtk_hwlro_add_ipaddr() local 3097 struct mtk_eth *eth = mac->hw; mtk_hwlro_add_ipaddr() local 3120 struct mtk_mac *mac = netdev_priv(dev); mtk_hwlro_del_ipaddr() local 3121 struct mtk_eth *eth = mac->hw; mtk_hwlro_del_ipaddr() local 3139 struct mtk_mac *mac = netdev_priv(dev); mtk_hwlro_netdev_disable() local 3140 struct mtk_eth *eth = mac->hw; mtk_hwlro_netdev_disable() local 3156 struct mtk_mac *mac = netdev_priv(dev); mtk_hwlro_get_fdir_entry() local 3184 struct mtk_mac *mac = netdev_priv(dev); mtk_hwlro_get_fdir_all() local 3207 struct mtk_mac *mac = netdev_priv(dev); mtk_fix_features() local 3231 mtk_dma_busy_wait(struct mtk_eth * eth) mtk_dma_busy_wait() argument 3251 mtk_dma_init(struct mtk_eth * eth) mtk_dma_init() argument 3305 mtk_dma_free(struct mtk_eth * eth) mtk_dma_free() argument 3345 mtk_hw_reset_check(struct mtk_eth * eth) mtk_hw_reset_check() argument 3356 struct mtk_mac *mac = netdev_priv(dev); mtk_tx_timeout() local 3357 struct mtk_eth *eth = mac->hw; mtk_tx_timeout() local 3371 mtk_get_irqs(struct platform_device * pdev,struct mtk_eth * eth) mtk_get_irqs() argument 3420 struct mtk_eth *eth = _eth; mtk_handle_irq_rx() local 3433 struct mtk_eth *eth = _eth; mtk_handle_irq_tx() local 3446 struct mtk_eth *eth = _eth; mtk_handle_irq() local 3466 struct mtk_mac *mac = netdev_priv(dev); mtk_poll_controller() local 3467 struct mtk_eth *eth = mac->hw; mtk_poll_controller() local 3477 mtk_start_dma(struct mtk_eth * eth) mtk_start_dma() argument 3516 mtk_gdm_config(struct mtk_eth * eth,u32 id,u32 config) mtk_gdm_config() argument 3552 struct mtk_mac *mac = container_of(n, struct mtk_mac, device_notifier); mtk_device_event() local 3553 struct mtk_eth *eth = mac->hw; mtk_device_event() local 3592 mtk_max_gmac_mtu(struct mtk_eth * eth) mtk_max_gmac_mtu() argument 3605 struct mtk_mac *mac = netdev_priv(dev); mtk_open() local 3606 struct mtk_eth *eth = mac->hw; mtk_open() local 3704 mtk_stop_dma(struct mtk_eth * eth,u32 glo_cfg) mtk_stop_dma() argument 3729 struct mtk_mac *mac = netdev_priv(dev); mtk_stop() local 3730 struct mtk_eth *eth = mac->hw; mtk_stop() local 3769 struct mtk_mac *mac = netdev_priv(dev); mtk_xdp_setup() local 3770 struct mtk_eth *eth = mac->hw; mtk_xdp_setup() local 3817 ethsys_reset(struct mtk_eth * eth,u32 reset_bits) ethsys_reset() argument 3830 mtk_clk_disable(struct mtk_eth * eth) mtk_clk_disable() argument 3838 mtk_clk_enable(struct mtk_eth * eth) mtk_clk_enable() argument 3860 struct mtk_eth *eth = container_of(dim, struct mtk_eth, rx_dim); mtk_dim_rx() local 3891 struct mtk_eth *eth = container_of(dim, struct mtk_eth, tx_dim); mtk_dim_tx() local 3919 mtk_set_mcr_max_rx(struct mtk_mac * mac,u32 val) mtk_set_mcr_max_rx() argument 3921 struct mtk_eth *eth = mac->hw; mtk_set_mcr_max_rx() local 3943 mtk_hw_reset(struct mtk_eth * eth) mtk_hw_reset() argument 3979 mtk_hw_reset_read(struct mtk_eth * eth) mtk_hw_reset_read() argument 3987 mtk_hw_warm_reset(struct mtk_eth * eth) mtk_hw_warm_reset() argument 4034 mtk_hw_check_dma_hang(struct mtk_eth * eth) mtk_hw_check_dma_hang() argument 4115 struct mtk_eth *eth = container_of(del_work, struct mtk_eth, mtk_hw_reset_monitor_work() local 4130 mtk_hw_init(struct mtk_eth * eth,bool reset) mtk_hw_init() argument 4324 mtk_hw_deinit(struct mtk_eth * eth) mtk_hw_deinit() argument 4339 struct mtk_mac *mac = netdev_priv(dev); mtk_uninit() local 4340 struct mtk_eth *eth = mac->hw; mtk_uninit() local 4350 struct mtk_mac *mac = netdev_priv(dev); mtk_change_mtu() local 4351 struct mtk_eth *eth = mac->hw; mtk_change_mtu() local 4372 struct mtk_mac *mac = netdev_priv(dev); mtk_do_ioctl() local 4386 mtk_prepare_for_reset(struct mtk_eth * eth) mtk_prepare_for_reset() argument 4419 struct mtk_eth *eth = container_of(work, struct mtk_eth, pending_work); mtk_pending_work() local 4482 mtk_free_dev(struct mtk_eth * eth) mtk_free_dev() argument 4501 mtk_unreg_dev(struct mtk_eth * eth) mtk_unreg_dev() argument 4506 struct mtk_mac *mac; mtk_unreg_dev() local 4518 mtk_sgmii_destroy(struct mtk_eth * eth) mtk_sgmii_destroy() argument 4526 mtk_cleanup(struct mtk_eth * eth) mtk_cleanup() argument 4540 struct mtk_mac *mac = netdev_priv(ndev); mtk_get_link_ksettings() local 4551 struct mtk_mac *mac = netdev_priv(ndev); mtk_set_link_ksettings() local 4562 struct mtk_mac *mac = netdev_priv(dev); mtk_get_drvinfo() local 4571 struct mtk_mac *mac = netdev_priv(dev); mtk_get_msglevel() local 4578 struct mtk_mac *mac = netdev_priv(dev); mtk_set_msglevel() local 4585 struct mtk_mac *mac = netdev_priv(dev); mtk_nway_reset() local 4602 struct mtk_mac *mac = netdev_priv(dev); mtk_get_strings() local 4620 struct mtk_mac *mac = netdev_priv(dev); mtk_get_sset_count() local 4631 mtk_ethtool_pp_stats(struct mtk_eth * eth,u64 * data) mtk_ethtool_pp_stats() argument 4650 struct mtk_mac *mac = netdev_priv(dev); mtk_get_ethtool_stats() local 4695 struct mtk_mac *mac = netdev_priv(dev); mtk_get_rxnfc() local 4739 struct mtk_mac *mac = netdev_priv(dev); mtk_get_pauseparam() local 4746 struct mtk_mac *mac = netdev_priv(dev); mtk_set_pauseparam() local 4753 struct mtk_mac *mac = netdev_priv(dev); mtk_get_eee() local 4760 struct mtk_mac *mac = netdev_priv(dev); mtk_set_eee() local 4768 struct mtk_mac *mac = netdev_priv(dev); mtk_select_queue() local 4824 mtk_add_mac(struct mtk_eth * eth,struct device_node * np) mtk_add_mac() argument 4830 struct mtk_mac *mac; mtk_add_mac() local 5031 mtk_eth_set_dma_device(struct mtk_eth * eth,struct device * dma_dev) mtk_eth_set_dma_device() argument 5064 mtk_sgmii_init(struct mtk_eth * eth) mtk_sgmii_init() argument 5091 mtk_setup_legacy_sram(struct mtk_eth * eth,struct resource * res) mtk_setup_legacy_sram() argument 5116 struct mtk_eth *eth; mtk_probe() local 5391 struct mtk_eth *eth = platform_get_drvdata(pdev); mtk_remove() local 5392 struct mtk_mac *mac; mtk_remove() local [all...] |