Lines Matching full:macb
3 * Cadence MACB/GEM Ethernet Controller driver
41 #include "macb.h"
43 /* This structure is only used for MACB on SiFive FU540 devices */
128 static unsigned int macb_dma_desc_get_size(struct macb *bp) in macb_dma_desc_get_size()
155 static unsigned int macb_adj_dma_desc_idx(struct macb *bp, unsigned int desc_idx) in macb_adj_dma_desc_idx()
174 static struct macb_dma_desc_64 *macb_64b_desc(struct macb *bp, struct macb_dma_desc *desc) in macb_64b_desc()
182 static unsigned int macb_tx_ring_wrap(struct macb *bp, unsigned int index) in macb_tx_ring_wrap()
211 static unsigned int macb_rx_ring_wrap(struct macb *bp, unsigned int index) in macb_rx_ring_wrap()
230 static u32 hw_readl_native(struct macb *bp, int offset) in hw_readl_native()
235 static void hw_writel_native(struct macb *bp, int offset, u32 value) in hw_writel_native()
240 static u32 hw_readl(struct macb *bp, int offset) in hw_readl()
245 static void hw_writel(struct macb *bp, int offset, u32 value) in hw_writel()
279 static void macb_set_hwaddr(struct macb *bp) in macb_set_hwaddr()
303 static void macb_get_hwaddr(struct macb *bp) in macb_get_hwaddr()
332 static int macb_mdio_wait_for_idle(struct macb *bp) in macb_mdio_wait_for_idle()
342 struct macb *bp = bus->priv; in macb_mdio_read_c22()
375 struct macb *bp = bus->priv; in macb_mdio_read_c45()
421 struct macb *bp = bus->priv; in macb_mdio_write_c22()
454 struct macb *bp = bus->priv; in macb_mdio_write_c45()
496 static void macb_init_buffers(struct macb *bp) in macb_init_buffers()
519 * @bp: pointer to struct macb
522 static void macb_set_tx_clk(struct macb *bp, int speed) in macb_set_tx_clk()
569 struct macb *bp = container_of(pcs, struct macb, phylink_usx_pcs); in macb_usx_pcs_link_up()
583 struct macb *bp = container_of(pcs, struct macb, phylink_usx_pcs); in macb_usx_pcs_get_state()
603 struct macb *bp = container_of(pcs, struct macb, phylink_usx_pcs); in macb_usx_pcs_config()
647 struct macb *bp = netdev_priv(ndev); in macb_mac_config()
705 struct macb *bp = netdev_priv(ndev); in macb_mac_link_down()
729 struct macb *bp = netdev_priv(ndev); in macb_mac_link_up()
795 struct macb *bp = netdev_priv(ndev); in macb_mac_select_pcs()
819 static int macb_phylink_connect(struct macb *bp) in macb_phylink_connect()
854 struct macb *bp = netdev_priv(ndev); in macb_get_pcs_fixed_state()
862 struct macb *bp = netdev_priv(dev); in macb_mii_probe()
918 static int macb_mdiobus_register(struct macb *bp) in macb_mdiobus_register()
954 static int macb_mii_init(struct macb *bp) in macb_mii_init()
997 static void macb_update_stats(struct macb *bp) in macb_update_stats()
999 u32 *p = &bp->hw_stats.macb.rx_pause_frames; in macb_update_stats()
1000 u32 *end = &bp->hw_stats.macb.tx_pause_frames + 1; in macb_update_stats()
1009 static int macb_halt_tx(struct macb *bp) in macb_halt_tx()
1029 static void macb_tx_unmap(struct macb *bp, struct macb_tx_skb *tx_skb, int budget) in macb_tx_unmap()
1047 static void macb_set_addr(struct macb *bp, struct macb_dma_desc *desc, dma_addr_t addr) in macb_set_addr()
1065 static dma_addr_t macb_get_addr(struct macb *bp, struct macb_dma_desc *desc) in macb_get_addr()
1089 struct macb *bp = queue->bp; in macb_tx_error_task()
1104 * network engine about the macb/gem being halted. in macb_tx_error_task()
1114 * macb/gem must be halted to write TBQP register in macb_tx_error_task()
1234 struct macb *bp = queue->bp; in macb_tx_complete()
1309 struct macb *bp = queue->bp; in gem_rx_refill()
1391 struct macb *bp = queue->bp; in gem_rx()
1487 struct macb *bp = queue->bp; in macb_rx_frame()
1563 struct macb *bp = queue->bp; in macb_init_rx_ring()
1582 struct macb *bp = queue->bp; in macb_rx()
1660 struct macb *bp = queue->bp; in macb_rx_pending()
1676 struct macb *bp = queue->bp; in macb_rx_poll()
1713 struct macb *bp = queue->bp; in macb_tx_restart()
1755 struct macb *bp = queue->bp; in macb_tx_poll()
1797 struct macb *bp = from_tasklet(bp, t, hresp_err_tasklet); in macb_hresp_error_task()
1837 struct macb *bp = queue->bp; in macb_wol_interrupt()
1850 netdev_vdbg(bp->dev, "MACB WoL: queue = %u, isr = 0x%08lx\n", in macb_wol_interrupt()
1866 struct macb *bp = queue->bp; in gem_wol_interrupt()
1895 struct macb *bp = queue->bp; in macb_interrupt()
1990 bp->hw_stats.macb.rx_overruns++; in macb_interrupt()
2017 struct macb *bp = netdev_priv(dev); in macb_poll_controller()
2029 static unsigned int macb_tx_map(struct macb *bp, in macb_tx_map()
2310 struct macb *bp = netdev_priv(dev); in macb_start_xmit()
2409 static void macb_init_rx_buffer_size(struct macb *bp, size_t size) in macb_init_rx_buffer_size()
2429 static void gem_free_rx_buffers(struct macb *bp) in gem_free_rx_buffers()
2462 static void macb_free_rx_buffers(struct macb *bp) in macb_free_rx_buffers()
2474 static void macb_free_consistent(struct macb *bp) in macb_free_consistent()
2500 static int gem_alloc_rx_buffers(struct macb *bp) in gem_alloc_rx_buffers()
2519 static int macb_alloc_rx_buffers(struct macb *bp) in macb_alloc_rx_buffers()
2536 static int macb_alloc_consistent(struct macb *bp) in macb_alloc_consistent()
2578 static void gem_init_rings(struct macb *bp) in gem_init_rings()
2603 static void macb_init_rings(struct macb *bp) in macb_init_rings()
2620 static void macb_reset_hw(struct macb *bp) in macb_reset_hw()
2652 static u32 gem_mdc_clk_div(struct macb *bp) in gem_mdc_clk_div()
2677 static u32 macb_mdc_clk_div(struct macb *bp) in macb_mdc_clk_div()
2702 static u32 macb_dbw(struct macb *bp) in macb_dbw()
2725 static void macb_configure_dma(struct macb *bp) in macb_configure_dma()
2771 static void macb_init_hw(struct macb *bp) in macb_init_hw()
2868 struct macb *bp = netdev_priv(dev); in macb_sethashtable()
2886 struct macb *bp = netdev_priv(dev); in macb_set_rx_mode()
2928 struct macb *bp = netdev_priv(dev); in macb_open()
2988 struct macb *bp = netdev_priv(dev); in macb_close()
3042 static void gem_update_stats(struct macb *bp) in gem_update_stats()
3071 static struct net_device_stats *gem_get_stats(struct macb *bp) in gem_get_stats()
3115 struct macb *bp; in gem_get_ethtool_stats()
3125 struct macb *bp = netdev_priv(dev); in gem_get_sset_count()
3138 struct macb *bp = netdev_priv(dev); in gem_get_ethtool_strings()
3162 struct macb *bp = netdev_priv(dev); in macb_get_stats()
3164 struct macb_stats *hwstat = &bp->hw_stats.macb; in macb_get_stats()
3215 struct macb *bp = netdev_priv(dev); in macb_get_regs()
3247 struct macb *bp = netdev_priv(netdev); in macb_get_wol()
3260 struct macb *bp = netdev_priv(netdev); in macb_set_wol()
3288 struct macb *bp = netdev_priv(netdev); in macb_get_link_ksettings()
3296 struct macb *bp = netdev_priv(netdev); in macb_set_link_ksettings()
3306 struct macb *bp = netdev_priv(netdev); in macb_get_ringparam()
3320 struct macb *bp = netdev_priv(netdev); in macb_set_ringparam()
3356 static unsigned int gem_get_tsu_rate(struct macb *bp) in gem_get_tsu_rate()
3381 struct macb *bp = netdev_priv(dev); in gem_get_ts_info()
3422 struct macb *bp = netdev_priv(netdev); in macb_get_ts_info()
3430 static void gem_enable_flow_filters(struct macb *bp, bool enable) in gem_enable_flow_filters()
3476 static void gem_prog_cmp_regs(struct macb *bp, struct ethtool_rx_flow_spec *fs) in gem_prog_cmp_regs()
3562 struct macb *bp = netdev_priv(netdev); in gem_add_flow_filter()
3617 struct macb *bp = netdev_priv(netdev); in gem_del_flow_filter()
3653 struct macb *bp = netdev_priv(netdev); in gem_get_flow_entry()
3668 struct macb *bp = netdev_priv(netdev); in gem_get_all_flow_entries()
3687 struct macb *bp = netdev_priv(netdev); in gem_get_rxnfc()
3714 struct macb *bp = netdev_priv(netdev); in gem_set_rxnfc()
3771 struct macb *bp = netdev_priv(dev); in macb_ioctl()
3788 static inline void macb_set_txcsum_feature(struct macb *bp, in macb_set_txcsum_feature()
3805 static inline void macb_set_rxcsum_feature(struct macb *bp, in macb_set_rxcsum_feature()
3823 static inline void macb_set_rxflow_feature(struct macb *bp, in macb_set_rxflow_feature()
3835 struct macb *bp = netdev_priv(netdev); in macb_set_features()
3853 static void macb_restore_features(struct macb *bp) in macb_restore_features()
3892 static void macb_configure_caps(struct macb *bp, in macb_configure_caps()
3938 /* is it macb or gem ? in macb_probe_queues()
4055 struct macb *bp = netdev_priv(dev); in macb_init()
4223 static int at91ether_alloc_coherent(struct macb *lp) in at91ether_alloc_coherent()
4250 static void at91ether_free_coherent(struct macb *lp) in at91ether_free_coherent()
4272 static int at91ether_start(struct macb *lp) in at91ether_start()
4317 static void at91ether_stop(struct macb *lp) in at91ether_stop()
4341 struct macb *lp = netdev_priv(dev); in at91ether_open()
4377 struct macb *lp = netdev_priv(dev); in at91ether_close()
4393 struct macb *lp = netdev_priv(dev); in at91ether_start_xmit()
4430 struct macb *lp = netdev_priv(dev); in at91ether_rx()
4474 struct macb *lp = netdev_priv(dev); in at91ether_interrupt()
4571 struct macb *bp = netdev_priv(dev); in at91ether_init()
4701 struct macb *bp = netdev_priv(dev); in init_reset_optional()
4905 { .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
4906 { .compatible = "cdns,macb" },
4907 { .compatible = "cdns,np4-macb", .data = &np4_config },
4910 { .compatible = "cdns,sam9x60-macb", .data = &at91sam9260_config },
4914 { .compatible = "atmel,sama5d3-macb", .data = &sama5d3macb_config },
4921 { .compatible = "microchip,mpfs-macb", .data = &mpfs_config },
4960 struct macb *bp; in macb_probe()
5132 macb_is_gem(bp) ? "GEM" : "MACB", macb_readl(bp, MID), in macb_probe()
5162 struct macb *bp; in macb_remove()
5191 struct macb *bp = netdev_priv(netdev); in macb_suspend()
5283 struct macb *bp = netdev_priv(netdev); in macb_resume()
5366 struct macb *bp = netdev_priv(netdev); in macb_runtime_suspend()
5379 struct macb *bp = netdev_priv(netdev); in macb_runtime_resume()
5403 .name = "macb",
5412 MODULE_DESCRIPTION("Cadence MACB/GEM Ethernet driver");
5414 MODULE_ALIAS("platform:macb");