Lines Matching full:macb
3 * Cadence MACB/GEM Ethernet Controller driver
38 #include "macb.h"
40 /* This structure is only used for MACB on SiFive FU540 devices */
123 static unsigned int macb_dma_desc_get_size(struct macb *bp) in macb_dma_desc_get_size()
150 static unsigned int macb_adj_dma_desc_idx(struct macb *bp, unsigned int desc_idx) in macb_adj_dma_desc_idx()
169 static struct macb_dma_desc_64 *macb_64b_desc(struct macb *bp, struct macb_dma_desc *desc) in macb_64b_desc()
177 static unsigned int macb_tx_ring_wrap(struct macb *bp, unsigned int index) in macb_tx_ring_wrap()
206 static unsigned int macb_rx_ring_wrap(struct macb *bp, unsigned int index) in macb_rx_ring_wrap()
225 static u32 hw_readl_native(struct macb *bp, int offset) in hw_readl_native()
230 static void hw_writel_native(struct macb *bp, int offset, u32 value) in hw_writel_native()
235 static u32 hw_readl(struct macb *bp, int offset) in hw_readl()
240 static void hw_writel(struct macb *bp, int offset, u32 value) in hw_writel()
274 static void macb_set_hwaddr(struct macb *bp) in macb_set_hwaddr()
293 static void macb_get_hwaddr(struct macb *bp) in macb_get_hwaddr()
322 static int macb_mdio_wait_for_idle(struct macb *bp) in macb_mdio_wait_for_idle()
332 struct macb *bp = bus->priv; in macb_mdio_read()
386 struct macb *bp = bus->priv; in macb_mdio_write()
437 static void macb_init_buffers(struct macb *bp) in macb_init_buffers()
508 struct macb *bp = netdev_priv(ndev); in macb_validate()
569 struct macb *bp = netdev_priv(ndev); in macb_mac_config()
598 struct macb *bp = netdev_priv(ndev); in macb_mac_link_down()
622 struct macb *bp = netdev_priv(ndev); in macb_mac_link_up()
691 static int macb_phylink_connect(struct macb *bp) in macb_phylink_connect()
725 struct macb *bp = netdev_priv(dev); in macb_mii_probe()
741 static int macb_mdiobus_register(struct macb *bp) in macb_mdiobus_register()
766 static int macb_mii_init(struct macb *bp) in macb_mii_init()
807 static void macb_update_stats(struct macb *bp) in macb_update_stats()
809 u32 *p = &bp->hw_stats.macb.rx_pause_frames; in macb_update_stats()
810 u32 *end = &bp->hw_stats.macb.tx_pause_frames + 1; in macb_update_stats()
819 static int macb_halt_tx(struct macb *bp) in macb_halt_tx()
839 static void macb_tx_unmap(struct macb *bp, struct macb_tx_skb *tx_skb) in macb_tx_unmap()
857 static void macb_set_addr(struct macb *bp, struct macb_dma_desc *desc, dma_addr_t addr) in macb_set_addr()
875 static dma_addr_t macb_get_addr(struct macb *bp, struct macb_dma_desc *desc) in macb_get_addr()
898 struct macb *bp = queue->bp; in macb_tx_error_task()
913 * network engine about the macb/gem being halted. in macb_tx_error_task()
922 * macb/gem must be halted to write TBQP register in macb_tx_error_task()
1009 struct macb *bp = queue->bp; in macb_tx_interrupt()
1089 struct macb *bp = queue->bp; in gem_rx_refill()
1171 struct macb *bp = queue->bp; in gem_rx()
1267 struct macb *bp = queue->bp; in macb_rx_frame()
1343 struct macb *bp = queue->bp; in macb_init_rx_ring()
1362 struct macb *bp = queue->bp; in macb_rx()
1441 struct macb *bp = queue->bp; in macb_poll()
1496 struct macb *bp = from_tasklet(bp, t, hresp_err_tasklet); in macb_hresp_error_task()
1537 struct macb *bp = queue->bp; in macb_tx_restart()
1559 struct macb *bp = queue->bp; in macb_wol_interrupt()
1572 netdev_vdbg(bp->dev, "MACB WoL: queue = %u, isr = 0x%08lx\n", in macb_wol_interrupt()
1588 struct macb *bp = queue->bp; in gem_wol_interrupt()
1617 struct macb *bp = queue->bp; in macb_interrupt()
1700 bp->hw_stats.macb.rx_overruns++; in macb_interrupt()
1727 struct macb *bp = netdev_priv(dev); in macb_poll_controller()
1739 static unsigned int macb_tx_map(struct macb *bp, in macb_tx_map()
2019 struct macb *bp = netdev_priv(dev); in macb_start_xmit()
2111 static void macb_init_rx_buffer_size(struct macb *bp, size_t size) in macb_init_rx_buffer_size()
2131 static void gem_free_rx_buffers(struct macb *bp) in gem_free_rx_buffers()
2164 static void macb_free_rx_buffers(struct macb *bp) in macb_free_rx_buffers()
2176 static void macb_free_consistent(struct macb *bp) in macb_free_consistent()
2202 static int gem_alloc_rx_buffers(struct macb *bp) in gem_alloc_rx_buffers()
2221 static int macb_alloc_rx_buffers(struct macb *bp) in macb_alloc_rx_buffers()
2238 static int macb_alloc_consistent(struct macb *bp) in macb_alloc_consistent()
2280 static void gem_init_rings(struct macb *bp) in gem_init_rings()
2305 static void macb_init_rings(struct macb *bp) in macb_init_rings()
2322 static void macb_reset_hw(struct macb *bp) in macb_reset_hw()
2351 static u32 gem_mdc_clk_div(struct macb *bp) in gem_mdc_clk_div()
2372 static u32 macb_mdc_clk_div(struct macb *bp) in macb_mdc_clk_div()
2397 static u32 macb_dbw(struct macb *bp) in macb_dbw()
2420 static void macb_configure_dma(struct macb *bp) in macb_configure_dma()
2466 static void macb_init_hw(struct macb *bp) in macb_init_hw()
2559 struct macb *bp = netdev_priv(dev); in macb_sethashtable()
2577 struct macb *bp = netdev_priv(dev); in macb_set_rx_mode()
2619 struct macb *bp = netdev_priv(dev); in macb_open()
2668 struct macb *bp = netdev_priv(dev); in macb_close()
2706 static void gem_update_stats(struct macb *bp) in gem_update_stats()
2735 static struct net_device_stats *gem_get_stats(struct macb *bp) in gem_get_stats()
2779 struct macb *bp; in gem_get_ethtool_stats()
2789 struct macb *bp = netdev_priv(dev); in gem_get_sset_count()
2802 struct macb *bp = netdev_priv(dev); in gem_get_ethtool_strings()
2826 struct macb *bp = netdev_priv(dev); in macb_get_stats()
2828 struct macb_stats *hwstat = &bp->hw_stats.macb; in macb_get_stats()
2879 struct macb *bp = netdev_priv(dev); in macb_get_regs()
2911 struct macb *bp = netdev_priv(netdev); in macb_get_wol()
2924 struct macb *bp = netdev_priv(netdev); in macb_set_wol()
2952 struct macb *bp = netdev_priv(netdev); in macb_get_link_ksettings()
2960 struct macb *bp = netdev_priv(netdev); in macb_set_link_ksettings()
2968 struct macb *bp = netdev_priv(netdev); in macb_get_ringparam()
2980 struct macb *bp = netdev_priv(netdev); in macb_set_ringparam()
3016 static unsigned int gem_get_tsu_rate(struct macb *bp) in gem_get_tsu_rate()
3041 struct macb *bp = netdev_priv(dev); in gem_get_ts_info()
3082 struct macb *bp = netdev_priv(netdev); in macb_get_ts_info()
3090 static void gem_enable_flow_filters(struct macb *bp, bool enable) in gem_enable_flow_filters()
3136 static void gem_prog_cmp_regs(struct macb *bp, struct ethtool_rx_flow_spec *fs) in gem_prog_cmp_regs()
3222 struct macb *bp = netdev_priv(netdev); in gem_add_flow_filter()
3276 struct macb *bp = netdev_priv(netdev); in gem_del_flow_filter()
3312 struct macb *bp = netdev_priv(netdev); in gem_get_flow_entry()
3327 struct macb *bp = netdev_priv(netdev); in gem_get_all_flow_entries()
3346 struct macb *bp = netdev_priv(netdev); in gem_get_rxnfc()
3373 struct macb *bp = netdev_priv(netdev); in gem_set_rxnfc()
3430 struct macb *bp = netdev_priv(dev); in macb_ioctl()
3447 static inline void macb_set_txcsum_feature(struct macb *bp, in macb_set_txcsum_feature()
3464 static inline void macb_set_rxcsum_feature(struct macb *bp, in macb_set_rxcsum_feature()
3482 static inline void macb_set_rxflow_feature(struct macb *bp, in macb_set_rxflow_feature()
3494 struct macb *bp = netdev_priv(netdev); in macb_set_features()
3512 static void macb_restore_features(struct macb *bp) in macb_restore_features()
3551 static void macb_configure_caps(struct macb *bp, in macb_configure_caps()
3592 /* is it macb or gem ? in macb_probe_queues()
3703 struct macb *bp = netdev_priv(dev); in macb_init()
3862 static int at91ether_alloc_coherent(struct macb *lp) in at91ether_alloc_coherent()
3889 static void at91ether_free_coherent(struct macb *lp) in at91ether_free_coherent()
3911 static int at91ether_start(struct macb *lp) in at91ether_start()
3957 static void at91ether_stop(struct macb *lp) in at91ether_stop()
3982 struct macb *lp = netdev_priv(dev); in at91ether_open()
4020 struct macb *lp = netdev_priv(dev); in at91ether_close()
4036 struct macb *lp = netdev_priv(dev); in at91ether_start_xmit()
4081 struct macb *lp = netdev_priv(dev); in at91ether_rx()
4125 struct macb *lp = netdev_priv(dev); in at91ether_interrupt()
4242 struct macb *bp = netdev_priv(dev); in at91ether_init()
4440 { .compatible = "cdns,at32ap7000-macb" },
4441 { .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
4442 { .compatible = "cdns,macb" },
4443 { .compatible = "cdns,np4-macb", .data = &np4_config },
4446 { .compatible = "cdns,sam9x60-macb", .data = &at91sam9260_config },
4449 { .compatible = "atmel,sama5d3-macb", .data = &sama5d3macb_config },
4488 struct macb *bp; in macb_probe()
4637 macb_is_gem(bp) ? "GEM" : "MACB", macb_readl(bp, MID), in macb_probe()
4668 struct macb *bp; in macb_remove()
4699 struct macb *bp = netdev_priv(netdev); in macb_suspend()
4786 struct macb *bp = netdev_priv(netdev); in macb_resume()
4863 struct macb *bp = netdev_priv(netdev); in macb_runtime_suspend()
4879 struct macb *bp = netdev_priv(netdev); in macb_runtime_resume()
4901 .name = "macb",
4910 MODULE_DESCRIPTION("Cadence MACB/GEM Ethernet driver");
4912 MODULE_ALIAS("platform:macb");