Lines Matching refs:niu
2 /* niu.c: Neptune ethernet driver.
36 #include "niu.h"
57 #define DRV_MODULE_NAME "niu"
118 static int serdes_init_10g_serdes(struct niu *np);
120 static int __niu_wait_bits_clear_mac(struct niu *np, unsigned long reg,
135 static int __niu_set_and_wait_clear_mac(struct niu *np, unsigned long reg,
155 static int __niu_wait_bits_clear_ipp(struct niu *np, unsigned long reg,
170 static int __niu_set_and_wait_clear_ipp(struct niu *np, unsigned long reg,
194 static int __niu_wait_bits_clear(struct niu *np, unsigned long reg,
214 static int __niu_set_and_wait_clear(struct niu *np, unsigned long reg,
234 static void niu_ldg_rearm(struct niu *np, struct niu_ldg *lp, int on)
244 static int niu_ldn_irq_enable(struct niu *np, int ldn, int on)
270 static int niu_enable_ldn_in_ldg(struct niu *np, struct niu_ldg *lp, int on)
288 static int niu_enable_interrupts(struct niu *np, int on)
316 static int mdio_wait(struct niu *np)
332 static int mdio_read(struct niu *np, int port, int dev, int reg)
345 static int mdio_write(struct niu *np, int port, int dev, int reg, int data)
362 static int mii_read(struct niu *np, int port, int reg)
368 static int mii_write(struct niu *np, int port, int reg, int data)
380 static int esr2_set_tx_cfg(struct niu *np, unsigned long channel, u32 val)
394 static int esr2_set_rx_cfg(struct niu *np, unsigned long channel, u32 val)
409 static int serdes_init_niu_10g_fiber(struct niu *np)
446 static int serdes_init_niu_1g_serdes(struct niu *np)
543 static int serdes_init_niu_10g_serdes(struct niu *np)
658 static int esr_read_rxtx_ctrl(struct niu *np, unsigned long chan, u32 *val)
674 static int esr_read_glue0(struct niu *np, unsigned long chan, u32 *val)
692 static int esr_read_reset(struct niu *np, u32 *val)
710 static int esr_write_rxtx_ctrl(struct niu *np, unsigned long chan, u32 val)
722 static int esr_write_glue0(struct niu *np, unsigned long chan, u32 val)
734 static int esr_reset(struct niu *np)
773 static int serdes_init_10g(struct niu *np)
899 static int serdes_init_1g(struct niu *np)
926 static int serdes_init_1g_serdes(struct niu *np)
1047 static int link_status_1g_serdes(struct niu *np, int *link_up_p)
1078 static int link_status_10g_serdes(struct niu *np, int *link_up_p)
1112 static int link_status_mii(struct niu *np, int *link_up_p)
1225 static int link_status_1g_rgmii(struct niu *np, int *link_up_p)
1260 static int link_status_1g(struct niu *np, int *link_up_p)
1276 static int bcm8704_reset(struct niu *np)
1310 static int bcm8704_user_dev3_readback(struct niu *np, int reg)
1321 static int bcm8706_init_user_dev3(struct niu *np)
1343 static int bcm8704_init_user_dev3(struct niu *np)
1393 static int mrvl88x2011_act_led(struct niu *np, int val)
1409 static int mrvl88x2011_led_blink_rate(struct niu *np, int rate)
1426 static int xcvr_init_10g_mrvl88x2011(struct niu *np)
1473 static int xcvr_diag_bcm870x(struct niu *np)
1531 static int xcvr_10g_set_lb_bcm870x(struct niu *np)
1554 static int xcvr_init_10g_bcm8706(struct niu *np)
1591 static int xcvr_init_10g_bcm8704(struct niu *np)
1614 static int xcvr_init_10g(struct niu *np)
1646 static int mii_reset(struct niu *np)
1672 static int xcvr_init_1g_rgmii(struct niu *np)
1732 static int mii_init_common(struct niu *np)
1867 static int xcvr_init_1g(struct niu *np)
1879 static int niu_xcvr_init(struct niu *np)
1891 static int niu_serdes_init(struct niu *np)
1903 static void niu_init_xif(struct niu *);
1904 static void niu_handle_led(struct niu *, int status);
1906 static int niu_link_status_common(struct niu *np, int link_up)
1937 static int link_status_10g_mrvl(struct niu *np, int *link_up_p)
1993 static int link_status_10g_bcm8706(struct niu *np, int *link_up_p)
2044 static int link_status_10g_bcom(struct niu *np, int *link_up_p)
2093 static int link_status_10g(struct niu *np, int *link_up_p)
2123 static int niu_10g_phy_present(struct niu *np)
2160 static int link_status_10g_hotplug(struct niu *np, int *link_up_p)
2214 static int niu_link_status(struct niu *np, int *link_up_p)
2228 struct niu *np = timer_container_of(np, t, timer);
2369 static int serdes_init_10g_serdes(struct niu *np)
2498 static int niu_determine_phy_disposition(struct niu *np)
2604 static int niu_init_link(struct niu *np)
2625 static void niu_set_primary_mac(struct niu *np, const unsigned char *addr)
2642 static int niu_num_alt_addr(struct niu *np)
2650 static int niu_set_alt_mac(struct niu *np, int index, unsigned char *addr)
2672 static int niu_enable_alt_mac(struct niu *np, int index, int on)
2698 static void __set_rdc_table_num_hw(struct niu *np, unsigned long reg,
2709 static int __set_rdc_table_num(struct niu *np,
2725 static int niu_set_primary_mac_rdc_table(struct niu *np, int table_num,
2731 static int niu_set_multicast_mac_rdc_table(struct niu *np, int table_num,
2737 static int niu_set_alt_mac_rdc_table(struct niu *np, int idx,
2766 static void vlan_tbl_write(struct niu *np, unsigned long index,
2784 static void vlan_tbl_clear(struct niu *np)
2792 static int tcam_wait_bit(struct niu *np, u64 bit)
2807 static int tcam_flush(struct niu *np, int index)
2817 static int tcam_read(struct niu *np, int index,
2838 static int tcam_write(struct niu *np, int index,
2855 static int tcam_assoc_read(struct niu *np, int index, u64 *data)
2868 static int tcam_assoc_write(struct niu *np, int index, u64 assoc_data)
2876 static void tcam_enable(struct niu *np, int on)
2887 static void tcam_set_lat_and_ratio(struct niu *np, u64 latency, u64 ratio)
2903 static int tcam_user_eth_class_enable(struct niu *np, unsigned long class,
2925 static int tcam_user_eth_class_set(struct niu *np, unsigned long class,
2946 static int tcam_user_ip_class_enable(struct niu *np, unsigned long class,
2967 static int tcam_user_ip_class_set(struct niu *np, unsigned long class,
2995 static int tcam_early_init(struct niu *np)
3018 static int tcam_flush_all(struct niu *np)
3036 static int hash_read(struct niu *np, unsigned long partition,
3055 static int hash_write(struct niu *np, unsigned long partition,
3073 static void fflp_reset(struct niu *np)
3085 static void fflp_set_timings(struct niu *np)
3104 static int fflp_set_partition(struct niu *np, u64 partition,
3128 static int fflp_disable_all_partitions(struct niu *np)
3140 static void fflp_llcsnap_enable(struct niu *np, int on)
3151 static void fflp_errors_enable(struct niu *np, int on)
3162 static int fflp_hash_clear(struct niu *np)
3179 static int fflp_early_init(struct niu *np)
3238 static int niu_set_flow_key(struct niu *np, unsigned long class_code, u64 key)
3248 static int niu_set_tcam_key(struct niu *np, unsigned long class_code, u64 key)
3259 static u16 tcam_get_index(struct niu *np, u16 idx)
3267 static u16 tcam_get_size(struct niu *np)
3273 static u16 tcam_get_valid_entry_cnt(struct niu *np)
3326 static int niu_rbr_add_page(struct niu *np, struct rx_ring_info *rp,
3358 static void niu_rbr_refill(struct niu *np, struct rx_ring_info *rp, gfp_t mask)
3383 static int niu_rx_pkt_ignore(struct niu *np, struct rx_ring_info *rp)
3423 static int niu_process_rx_pkt(struct napi_struct *napi, struct niu *np,
3513 static int niu_rbr_fill(struct niu *np, struct rx_ring_info *rp, gfp_t mask)
3531 static void niu_rbr_free(struct niu *np, struct rx_ring_info *rp)
3559 static int release_tx_packet(struct niu *np, struct tx_ring_info *rp, int idx)
3603 static void niu_tx_work(struct niu *np, struct tx_ring_info *rp)
3645 static inline void niu_sync_rx_discard_stats(struct niu *np,
3697 static int niu_rx_work(struct napi_struct *napi, struct niu *np,
3746 static int niu_poll_core(struct niu *np, struct niu_ldg *lp, int budget)
3784 struct niu *np = lp->np;
3796 static void niu_log_rxchan_errors(struct niu *np, struct rx_ring_info *rp,
3833 static int niu_rx_error(struct niu *np, struct rx_ring_info *rp)
3857 static void niu_log_txchan_errors(struct niu *np, struct tx_ring_info *rp,
3882 static int niu_tx_error(struct niu *np, struct tx_ring_info *rp)
3901 static int niu_mif_interrupt(struct niu *np)
3919 static void niu_xmac_interrupt(struct niu *np)
3989 static void niu_bmac_interrupt(struct niu *np)
4025 static int niu_mac_interrupt(struct niu *np)
4035 static void niu_log_device_error(struct niu *np, u64 stat)
4065 static int niu_device_error(struct niu *np)
4077 static int niu_slowpath_interrupt(struct niu *np, struct niu_ldg *lp,
4142 static void niu_rxchan_intr(struct niu *np, struct rx_ring_info *rp,
4156 static void niu_txchan_intr(struct niu *np, struct tx_ring_info *rp,
4165 static void __niu_fastpath_interrupt(struct niu *np, int ldg, u64 v0)
4199 static void niu_schedule_napi(struct niu *np, struct niu_ldg *lp,
4214 struct niu *np = lp->np;
4255 static void niu_free_rx_ring_info(struct niu *np, struct rx_ring_info *rp)
4285 static void niu_free_tx_ring_info(struct niu *np, struct tx_ring_info *rp)
4312 static void niu_free_channels(struct niu *np)
4339 static int niu_alloc_rx_ring_info(struct niu *np,
4390 static void niu_set_max_burst(struct niu *np, struct tx_ring_info *rp)
4402 static int niu_alloc_tx_ring_info(struct niu *np,
4442 static void niu_size_rbr(struct niu *np, struct rx_ring_info *rp)
4469 static int niu_alloc_channels(struct niu *np)
4558 static int niu_tx_cs_sng_poll(struct niu *np, int channel)
4570 static int niu_tx_channel_stop(struct niu *np, int channel)
4580 static int niu_tx_cs_reset_poll(struct niu *np, int channel)
4592 static int niu_tx_channel_reset(struct niu *np, int channel)
4607 static int niu_tx_channel_lpage_init(struct niu *np, int channel)
4628 static void niu_txc_enable_port(struct niu *np, int on)
4647 static void niu_txc_set_imask(struct niu *np, u64 imask)
4659 static void niu_txc_port_dma_enable(struct niu *np, int on)
4672 static int niu_init_one_tx_channel(struct niu *np, struct tx_ring_info *rp)
4726 static void niu_init_rdc_groups(struct niu *np)
4744 static void niu_init_drr_weight(struct niu *np)
4762 static int niu_init_hostinfo(struct niu *np)
4786 static int niu_rx_channel_reset(struct niu *np, int channel)
4793 static int niu_rx_channel_lpage_init(struct niu *np, int channel)
4812 static void niu_rx_channel_wred_init(struct niu *np, struct rx_ring_info *rp)
4903 static int niu_enable_rx_channel(struct niu *np, int channel, int on)
4925 static int niu_init_one_rx_channel(struct niu *np, struct rx_ring_info *rp)
4978 static int niu_init_rx_channels(struct niu *np)
5009 static int niu_set_ip_frag_rule(struct niu *np)
5039 static int niu_init_classifier_hw(struct niu *np)
5088 static int niu_zcp_write(struct niu *np, int index, u64 *data)
5105 static int niu_zcp_read(struct niu *np, int index, u64 *data)
5139 static void niu_zcp_cfifo_reset(struct niu *np)
5151 static int niu_init_zcp(struct niu *np)
5188 static void niu_ipp_write(struct niu *np, int index, u64 *data)
5202 static void niu_ipp_read(struct niu *np, int index, u64 *data)
5212 static int niu_ipp_reset(struct niu *np)
5218 static int niu_init_ipp(struct niu *np)
5269 static void niu_handle_led(struct niu *np, int status)
5288 static void niu_init_xif_xmac(struct niu *np)
5345 static void niu_init_xif_bmac(struct niu *np)
5375 static void niu_init_xif(struct niu *np)
5383 static void niu_pcs_mii_reset(struct niu *np)
5395 static void niu_xpcs_reset(struct niu *np)
5407 static int niu_init_pcs(struct niu *np)
5471 static int niu_reset_tx_xmac(struct niu *np)
5479 static int niu_reset_tx_bmac(struct niu *np)
5500 static int niu_reset_tx_mac(struct niu *np)
5508 static void niu_init_tx_xmac(struct niu *np, u64 min, u64 max)
5544 static void niu_init_tx_bmac(struct niu *np, u64 min, u64 max)
5561 static void niu_init_tx_mac(struct niu *np)
5582 static int niu_reset_rx_xmac(struct niu *np)
5605 static int niu_reset_rx_bmac(struct niu *np)
5626 static int niu_reset_rx_mac(struct niu *np)
5634 static void niu_init_rx_xmac(struct niu *np)
5686 static void niu_init_rx_bmac(struct niu *np)
5721 static void niu_init_rx_mac(struct niu *np)
5731 static void niu_enable_tx_xmac(struct niu *np, int on)
5742 static void niu_enable_tx_bmac(struct niu *np, int on)
5753 static void niu_enable_tx_mac(struct niu *np, int on)
5761 static void niu_enable_rx_xmac(struct niu *np, int on)
5780 static void niu_enable_rx_bmac(struct niu *np, int on)
5799 static void niu_enable_rx_mac(struct niu *np, int on)
5807 static int niu_init_mac(struct niu *np)
5838 static void niu_stop_one_tx_channel(struct niu *np, struct tx_ring_info *rp)
5843 static void niu_stop_tx_channels(struct niu *np)
5854 static void niu_reset_one_tx_channel(struct niu *np, struct tx_ring_info *rp)
5859 static void niu_reset_tx_channels(struct niu *np)
5870 static void niu_stop_one_rx_channel(struct niu *np, struct rx_ring_info *rp)
5875 static void niu_stop_rx_channels(struct niu *np)
5886 static void niu_reset_one_rx_channel(struct niu *np, struct rx_ring_info *rp)
5896 static void niu_reset_rx_channels(struct niu *np)
5907 static void niu_disable_ipp(struct niu *np)
5936 static int niu_init_hw(struct niu *np)
5998 static void niu_stop_hw(struct niu *np)
6022 static void niu_set_irq_name(struct niu *np)
6045 static int niu_request_irq(struct niu *np)
6073 static void niu_free_irq(struct niu *np)
6084 static void niu_enable_napi(struct niu *np)
6092 static void niu_disable_napi(struct niu *np)
6102 struct niu *np = netdev_priv(dev);
6161 static void niu_full_shutdown(struct niu *np, struct net_device *dev)
6179 struct niu *np = netdev_priv(dev);
6192 static void niu_sync_xmac_stats(struct niu *np)
6217 static void niu_sync_bmac_stats(struct niu *np)
6230 static void niu_sync_mac_stats(struct niu *np)
6238 static void niu_get_rx_stats(struct niu *np,
6269 static void niu_get_tx_stats(struct niu *np,
6299 struct niu *np = netdev_priv(dev);
6307 static void niu_load_hash_xmac(struct niu *np, u16 *hash)
6315 static void niu_load_hash_bmac(struct niu *np, u16 *hash)
6323 static void niu_load_hash(struct niu *np, u16 *hash)
6333 struct niu *np = netdev_priv(dev);
6403 struct niu *np = netdev_priv(dev);
6429 static void niu_netif_stop(struct niu *np)
6438 static void niu_netif_start(struct niu *np)
6451 static void niu_reset_buffers(struct niu *np)
6502 struct niu *np = container_of(work, struct niu, reset_task);
6542 struct niu *np = netdev_priv(dev);
6630 struct niu *np = netdev_priv(dev);
6769 struct niu *np = netdev_priv(dev);
6821 struct niu *np = netdev_priv(dev);
6836 struct niu *np = netdev_priv(dev);
6858 struct niu *np = netdev_priv(dev);
6871 struct niu *np = netdev_priv(dev);
6877 struct niu *np = netdev_priv(dev);
6883 struct niu *np = netdev_priv(dev);
6893 struct niu *np = netdev_priv(dev);
6901 struct niu *np = netdev_priv(dev);
7100 struct niu *np = netdev_priv(dev);
7193 static int niu_get_ethtool_tcam_entry(struct niu *np,
7207 netdev_info(np->dev, "niu%d: entry [%d] invalid for idx[%d]\n",
7217 netdev_info(np->dev, "niu%d: niu_class_to_ethflow failed\n",
7272 static int niu_get_ethtool_tcam_all(struct niu *np,
7308 struct niu *np = netdev_priv(dev);
7336 struct niu *np = netdev_priv(dev);
7452 static int niu_add_ethtool_tcam_entry(struct niu *np,
7527 netdev_info(np->dev, "niu%d: %s(): Could not find/insert class for pid %d\n",
7561 netdev_info(np->dev, "niu%d: In %s(): flow %d for IPv6 not implemented\n",
7569 netdev_info(np->dev, "niu%d: In %s(): Unknown flow type %d\n",
7580 netdev_info(np->dev, "niu%d: In %s(): Invalid RX ring %lld\n",
7611 static int niu_del_ethtool_tcam_entry(struct niu *np, u32 loc)
7651 netdev_info(np->dev, "niu%d: In %s(): Usr class 0x%llx not found\n",
7674 struct niu *np = netdev_priv(dev);
7772 struct niu *np = netdev_priv(dev);
7801 struct niu *np = netdev_priv(dev);
7816 struct niu *np = netdev_priv(dev);
7852 static u64 niu_led_state_save(struct niu *np)
7860 static void niu_led_state_restore(struct niu *np, u64 val)
7868 static void niu_force_led(struct niu *np, int on)
7892 struct niu *np = netdev_priv(dev);
7937 static int niu_ldg_assign_ldn(struct niu *np, struct niu_parent *parent,
7965 static int niu_set_ldg_timer_res(struct niu *np, int res)
7976 static int niu_set_ldg_sid(struct niu *np, int ldg, int func, int vector)
7988 static int niu_pci_eeprom_read(struct niu *np, u32 addr)
8031 static int niu_pci_eeprom_read16(struct niu *np, u32 off)
8047 static int niu_pci_eeprom_read16_swp(struct niu *np, u32 off)
8065 static int niu_pci_vpd_get_propname(struct niu *np, u32 off, char *namebuf,
8084 static void niu_vpd_parse_version(struct niu *np)
8111 static int niu_pci_vpd_scan_props(struct niu *np, u32 start, u32 end)
8203 static int niu_pci_vpd_fetch(struct niu *np, u32 start)
8244 static u32 niu_pci_vpd_offset(struct niu *np)
8299 static int niu_phy_type_prop_decode(struct niu *np, const char *phy_prop)
8333 static int niu_pci_vpd_get_nports(struct niu *np)
8353 static void niu_pci_vpd_validate(struct niu *np)
8400 static int niu_pci_probe_sprom(struct niu *np)
8559 static int niu_get_and_validate_port(struct niu *np)
8613 pr_info("niu%d: Found PHY %08x type %s at phy_port %u\n",
8681 pr_info("niu%d: Port %u [%u RX chans] [%u TX chans]\n",
8724 pr_info("niu%d: Port %u [%u RX chans] [%u TX chans]\n",
8733 pr_err("niu%d: Too many RX channels (%d), resetting to one per port\n",
8739 pr_err("niu%d: Too many TX channels (%d), resetting to one per port\n",
8745 pr_warn("niu%d: Driver bug, wasted channels, RX[%d] TX[%d]\n",
8774 pr_info("niu%d: Port %d RDC tbl(%d) [ ",
8795 static int fill_phy_probe_info(struct niu *np, struct niu_parent *parent,
8837 static int walk_phys(struct niu *np, struct niu_parent *parent)
8966 static int niu_probe_ports(struct niu *np)
8987 static int niu_classifier_swstate_init(struct niu *np)
8999 static void niu_link_config_init(struct niu *np)
9024 static int niu_init_mac_ipp_pcs_base(struct niu *np)
9063 static void niu_try_msix(struct niu *np, u8 *ldg_num_map)
9099 static int niu_n2_irq_init(struct niu *np, u8 *ldg_num_map)
9123 static int niu_ldg_init(struct niu *np)
9240 static void niu_ldg_free(struct niu *np)
9246 static int niu_get_of_props(struct niu *np)
9311 static int niu_get_invariants(struct niu *np)
9425 type_str = "niu";
9493 static struct niu_parent *niu_new_parent(struct niu *np,
9500 plat_dev = platform_device_register_simple("niu-board", niu_parent_index,
9557 static struct niu_parent *niu_get_parent(struct niu *np,
9592 static void niu_put_parent(struct niu *np)
9694 struct niu *np;
9696 dev = alloc_etherdev_mq(sizeof(struct niu), NIU_NUM_TXCHAN);
9739 static void niu_device_announce(struct niu *np)
9779 struct niu *np;
9913 struct niu *np = netdev_priv(dev);
9934 struct niu *np = netdev_priv(dev);
9961 struct niu *np = netdev_priv(dev);
10065 struct niu *np;
10100 "niu regs");
10109 "niu vregs-1");
10118 "niu vregs-2");
10180 struct niu *np = netdev_priv(dev);
10221 .name = "niu",