Lines Matching refs:niu
2 /* niu.c: Neptune ethernet driver.
36 #include "niu.h"
38 #define DRV_MODULE_NAME "niu"
99 static int serdes_init_10g_serdes(struct niu *np);
101 static int __niu_wait_bits_clear_mac(struct niu *np, unsigned long reg,
116 static int __niu_set_and_wait_clear_mac(struct niu *np, unsigned long reg,
136 static int __niu_wait_bits_clear_ipp(struct niu *np, unsigned long reg,
151 static int __niu_set_and_wait_clear_ipp(struct niu *np, unsigned long reg,
175 static int __niu_wait_bits_clear(struct niu *np, unsigned long reg,
195 static int __niu_set_and_wait_clear(struct niu *np, unsigned long reg,
215 static void niu_ldg_rearm(struct niu *np, struct niu_ldg *lp, int on)
225 static int niu_ldn_irq_enable(struct niu *np, int ldn, int on)
251 static int niu_enable_ldn_in_ldg(struct niu *np, struct niu_ldg *lp, int on)
269 static int niu_enable_interrupts(struct niu *np, int on)
297 static int mdio_wait(struct niu *np)
313 static int mdio_read(struct niu *np, int port, int dev, int reg)
326 static int mdio_write(struct niu *np, int port, int dev, int reg, int data)
343 static int mii_read(struct niu *np, int port, int reg)
349 static int mii_write(struct niu *np, int port, int reg, int data)
361 static int esr2_set_tx_cfg(struct niu *np, unsigned long channel, u32 val)
375 static int esr2_set_rx_cfg(struct niu *np, unsigned long channel, u32 val)
390 static int serdes_init_niu_10g_fiber(struct niu *np)
427 static int serdes_init_niu_1g_serdes(struct niu *np)
524 static int serdes_init_niu_10g_serdes(struct niu *np)
639 static int esr_read_rxtx_ctrl(struct niu *np, unsigned long chan, u32 *val)
655 static int esr_read_glue0(struct niu *np, unsigned long chan, u32 *val)
673 static int esr_read_reset(struct niu *np, u32 *val)
691 static int esr_write_rxtx_ctrl(struct niu *np, unsigned long chan, u32 val)
703 static int esr_write_glue0(struct niu *np, unsigned long chan, u32 val)
715 static int esr_reset(struct niu *np)
754 static int serdes_init_10g(struct niu *np)
880 static int serdes_init_1g(struct niu *np)
907 static int serdes_init_1g_serdes(struct niu *np)
1028 static int link_status_1g_serdes(struct niu *np, int *link_up_p)
1059 static int link_status_10g_serdes(struct niu *np, int *link_up_p)
1093 static int link_status_mii(struct niu *np, int *link_up_p)
1206 static int link_status_1g_rgmii(struct niu *np, int *link_up_p)
1241 static int link_status_1g(struct niu *np, int *link_up_p)
1257 static int bcm8704_reset(struct niu *np)
1291 static int bcm8704_user_dev3_readback(struct niu *np, int reg)
1302 static int bcm8706_init_user_dev3(struct niu *np)
1324 static int bcm8704_init_user_dev3(struct niu *np)
1374 static int mrvl88x2011_act_led(struct niu *np, int val)
1390 static int mrvl88x2011_led_blink_rate(struct niu *np, int rate)
1407 static int xcvr_init_10g_mrvl88x2011(struct niu *np)
1454 static int xcvr_diag_bcm870x(struct niu *np)
1512 static int xcvr_10g_set_lb_bcm870x(struct niu *np)
1535 static int xcvr_init_10g_bcm8706(struct niu *np)
1572 static int xcvr_init_10g_bcm8704(struct niu *np)
1595 static int xcvr_init_10g(struct niu *np)
1627 static int mii_reset(struct niu *np)
1653 static int xcvr_init_1g_rgmii(struct niu *np)
1713 static int mii_init_common(struct niu *np)
1848 static int xcvr_init_1g(struct niu *np)
1860 static int niu_xcvr_init(struct niu *np)
1872 static int niu_serdes_init(struct niu *np)
1884 static void niu_init_xif(struct niu *);
1885 static void niu_handle_led(struct niu *, int status);
1887 static int niu_link_status_common(struct niu *np, int link_up)
1918 static int link_status_10g_mrvl(struct niu *np, int *link_up_p)
1974 static int link_status_10g_bcm8706(struct niu *np, int *link_up_p)
2025 static int link_status_10g_bcom(struct niu *np, int *link_up_p)
2074 static int link_status_10g(struct niu *np, int *link_up_p)
2104 static int niu_10g_phy_present(struct niu *np)
2141 static int link_status_10g_hotplug(struct niu *np, int *link_up_p)
2195 static int niu_link_status(struct niu *np, int *link_up_p)
2209 struct niu *np = from_timer(np, t, timer);
2350 static int serdes_init_10g_serdes(struct niu *np)
2479 static int niu_determine_phy_disposition(struct niu *np)
2585 static int niu_init_link(struct niu *np)
2606 static void niu_set_primary_mac(struct niu *np, unsigned char *addr)
2623 static int niu_num_alt_addr(struct niu *np)
2631 static int niu_set_alt_mac(struct niu *np, int index, unsigned char *addr)
2653 static int niu_enable_alt_mac(struct niu *np, int index, int on)
2679 static void __set_rdc_table_num_hw(struct niu *np, unsigned long reg,
2690 static int __set_rdc_table_num(struct niu *np,
2706 static int niu_set_primary_mac_rdc_table(struct niu *np, int table_num,
2712 static int niu_set_multicast_mac_rdc_table(struct niu *np, int table_num,
2718 static int niu_set_alt_mac_rdc_table(struct niu *np, int idx,
2747 static void vlan_tbl_write(struct niu *np, unsigned long index,
2765 static void vlan_tbl_clear(struct niu *np)
2773 static int tcam_wait_bit(struct niu *np, u64 bit)
2788 static int tcam_flush(struct niu *np, int index)
2798 static int tcam_read(struct niu *np, int index,
2819 static int tcam_write(struct niu *np, int index,
2836 static int tcam_assoc_read(struct niu *np, int index, u64 *data)
2849 static int tcam_assoc_write(struct niu *np, int index, u64 assoc_data)
2857 static void tcam_enable(struct niu *np, int on)
2868 static void tcam_set_lat_and_ratio(struct niu *np, u64 latency, u64 ratio)
2884 static int tcam_user_eth_class_enable(struct niu *np, unsigned long class,
2906 static int tcam_user_eth_class_set(struct niu *np, unsigned long class,
2927 static int tcam_user_ip_class_enable(struct niu *np, unsigned long class,
2948 static int tcam_user_ip_class_set(struct niu *np, unsigned long class,
2976 static int tcam_early_init(struct niu *np)
2999 static int tcam_flush_all(struct niu *np)
3017 static int hash_read(struct niu *np, unsigned long partition,
3036 static int hash_write(struct niu *np, unsigned long partition,
3054 static void fflp_reset(struct niu *np)
3066 static void fflp_set_timings(struct niu *np)
3085 static int fflp_set_partition(struct niu *np, u64 partition,
3109 static int fflp_disable_all_partitions(struct niu *np)
3121 static void fflp_llcsnap_enable(struct niu *np, int on)
3132 static void fflp_errors_enable(struct niu *np, int on)
3143 static int fflp_hash_clear(struct niu *np)
3160 static int fflp_early_init(struct niu *np)
3219 static int niu_set_flow_key(struct niu *np, unsigned long class_code, u64 key)
3229 static int niu_set_tcam_key(struct niu *np, unsigned long class_code, u64 key)
3240 static u16 tcam_get_index(struct niu *np, u16 idx)
3248 static u16 tcam_get_size(struct niu *np)
3254 static u16 tcam_get_valid_entry_cnt(struct niu *np)
3307 static int niu_rbr_add_page(struct niu *np, struct rx_ring_info *rp,
3339 static void niu_rbr_refill(struct niu *np, struct rx_ring_info *rp, gfp_t mask)
3364 static int niu_rx_pkt_ignore(struct niu *np, struct rx_ring_info *rp)
3404 static int niu_process_rx_pkt(struct napi_struct *napi, struct niu *np,
3494 static int niu_rbr_fill(struct niu *np, struct rx_ring_info *rp, gfp_t mask)
3512 static void niu_rbr_free(struct niu *np, struct rx_ring_info *rp)
3540 static int release_tx_packet(struct niu *np, struct tx_ring_info *rp, int idx)
3584 static void niu_tx_work(struct niu *np, struct tx_ring_info *rp)
3626 static inline void niu_sync_rx_discard_stats(struct niu *np,
3678 static int niu_rx_work(struct napi_struct *napi, struct niu *np,
3727 static int niu_poll_core(struct niu *np, struct niu_ldg *lp, int budget)
3765 struct niu *np = lp->np;
3777 static void niu_log_rxchan_errors(struct niu *np, struct rx_ring_info *rp,
3814 static int niu_rx_error(struct niu *np, struct rx_ring_info *rp)
3838 static void niu_log_txchan_errors(struct niu *np, struct tx_ring_info *rp,
3863 static int niu_tx_error(struct niu *np, struct tx_ring_info *rp)
3882 static int niu_mif_interrupt(struct niu *np)
3900 static void niu_xmac_interrupt(struct niu *np)
3970 static void niu_bmac_interrupt(struct niu *np)
4006 static int niu_mac_interrupt(struct niu *np)
4016 static void niu_log_device_error(struct niu *np, u64 stat)
4046 static int niu_device_error(struct niu *np)
4058 static int niu_slowpath_interrupt(struct niu *np, struct niu_ldg *lp,
4123 static void niu_rxchan_intr(struct niu *np, struct rx_ring_info *rp,
4137 static void niu_txchan_intr(struct niu *np, struct tx_ring_info *rp,
4146 static void __niu_fastpath_interrupt(struct niu *np, int ldg, u64 v0)
4180 static void niu_schedule_napi(struct niu *np, struct niu_ldg *lp,
4195 struct niu *np = lp->np;
4236 static void niu_free_rx_ring_info(struct niu *np, struct rx_ring_info *rp)
4266 static void niu_free_tx_ring_info(struct niu *np, struct tx_ring_info *rp)
4293 static void niu_free_channels(struct niu *np)
4320 static int niu_alloc_rx_ring_info(struct niu *np,
4371 static void niu_set_max_burst(struct niu *np, struct tx_ring_info *rp)
4383 static int niu_alloc_tx_ring_info(struct niu *np,
4423 static void niu_size_rbr(struct niu *np, struct rx_ring_info *rp)
4450 static int niu_alloc_channels(struct niu *np)
4539 static int niu_tx_cs_sng_poll(struct niu *np, int channel)
4551 static int niu_tx_channel_stop(struct niu *np, int channel)
4561 static int niu_tx_cs_reset_poll(struct niu *np, int channel)
4573 static int niu_tx_channel_reset(struct niu *np, int channel)
4588 static int niu_tx_channel_lpage_init(struct niu *np, int channel)
4609 static void niu_txc_enable_port(struct niu *np, int on)
4628 static void niu_txc_set_imask(struct niu *np, u64 imask)
4640 static void niu_txc_port_dma_enable(struct niu *np, int on)
4653 static int niu_init_one_tx_channel(struct niu *np, struct tx_ring_info *rp)
4707 static void niu_init_rdc_groups(struct niu *np)
4725 static void niu_init_drr_weight(struct niu *np)
4743 static int niu_init_hostinfo(struct niu *np)
4767 static int niu_rx_channel_reset(struct niu *np, int channel)
4774 static int niu_rx_channel_lpage_init(struct niu *np, int channel)
4793 static void niu_rx_channel_wred_init(struct niu *np, struct rx_ring_info *rp)
4884 static int niu_enable_rx_channel(struct niu *np, int channel, int on)
4906 static int niu_init_one_rx_channel(struct niu *np, struct rx_ring_info *rp)
4959 static int niu_init_rx_channels(struct niu *np)
4990 static int niu_set_ip_frag_rule(struct niu *np)
5020 static int niu_init_classifier_hw(struct niu *np)
5069 static int niu_zcp_write(struct niu *np, int index, u64 *data)
5086 static int niu_zcp_read(struct niu *np, int index, u64 *data)
5120 static void niu_zcp_cfifo_reset(struct niu *np)
5132 static int niu_init_zcp(struct niu *np)
5169 static void niu_ipp_write(struct niu *np, int index, u64 *data)
5183 static void niu_ipp_read(struct niu *np, int index, u64 *data)
5193 static int niu_ipp_reset(struct niu *np)
5199 static int niu_init_ipp(struct niu *np)
5250 static void niu_handle_led(struct niu *np, int status)
5269 static void niu_init_xif_xmac(struct niu *np)
5326 static void niu_init_xif_bmac(struct niu *np)
5356 static void niu_init_xif(struct niu *np)
5364 static void niu_pcs_mii_reset(struct niu *np)
5376 static void niu_xpcs_reset(struct niu *np)
5388 static int niu_init_pcs(struct niu *np)
5452 static int niu_reset_tx_xmac(struct niu *np)
5460 static int niu_reset_tx_bmac(struct niu *np)
5481 static int niu_reset_tx_mac(struct niu *np)
5489 static void niu_init_tx_xmac(struct niu *np, u64 min, u64 max)
5525 static void niu_init_tx_bmac(struct niu *np, u64 min, u64 max)
5542 static void niu_init_tx_mac(struct niu *np)
5563 static int niu_reset_rx_xmac(struct niu *np)
5586 static int niu_reset_rx_bmac(struct niu *np)
5607 static int niu_reset_rx_mac(struct niu *np)
5615 static void niu_init_rx_xmac(struct niu *np)
5667 static void niu_init_rx_bmac(struct niu *np)
5702 static void niu_init_rx_mac(struct niu *np)
5712 static void niu_enable_tx_xmac(struct niu *np, int on)
5723 static void niu_enable_tx_bmac(struct niu *np, int on)
5734 static void niu_enable_tx_mac(struct niu *np, int on)
5742 static void niu_enable_rx_xmac(struct niu *np, int on)
5761 static void niu_enable_rx_bmac(struct niu *np, int on)
5780 static void niu_enable_rx_mac(struct niu *np, int on)
5788 static int niu_init_mac(struct niu *np)
5819 static void niu_stop_one_tx_channel(struct niu *np, struct tx_ring_info *rp)
5824 static void niu_stop_tx_channels(struct niu *np)
5835 static void niu_reset_one_tx_channel(struct niu *np, struct tx_ring_info *rp)
5840 static void niu_reset_tx_channels(struct niu *np)
5851 static void niu_stop_one_rx_channel(struct niu *np, struct rx_ring_info *rp)
5856 static void niu_stop_rx_channels(struct niu *np)
5867 static void niu_reset_one_rx_channel(struct niu *np, struct rx_ring_info *rp)
5877 static void niu_reset_rx_channels(struct niu *np)
5888 static void niu_disable_ipp(struct niu *np)
5917 static int niu_init_hw(struct niu *np)
5979 static void niu_stop_hw(struct niu *np)
6003 static void niu_set_irq_name(struct niu *np)
6026 static int niu_request_irq(struct niu *np)
6054 static void niu_free_irq(struct niu *np)
6065 static void niu_enable_napi(struct niu *np)
6073 static void niu_disable_napi(struct niu *np)
6083 struct niu *np = netdev_priv(dev);
6140 static void niu_full_shutdown(struct niu *np, struct net_device *dev)
6158 struct niu *np = netdev_priv(dev);
6171 static void niu_sync_xmac_stats(struct niu *np)
6196 static void niu_sync_bmac_stats(struct niu *np)
6209 static void niu_sync_mac_stats(struct niu *np)
6217 static void niu_get_rx_stats(struct niu *np,
6248 static void niu_get_tx_stats(struct niu *np,
6278 struct niu *np = netdev_priv(dev);
6286 static void niu_load_hash_xmac(struct niu *np, u16 *hash)
6294 static void niu_load_hash_bmac(struct niu *np, u16 *hash)
6302 static void niu_load_hash(struct niu *np, u16 *hash)
6312 struct niu *np = netdev_priv(dev);
6382 struct niu *np = netdev_priv(dev);
6408 static void niu_netif_stop(struct niu *np)
6417 static void niu_netif_start(struct niu *np)
6430 static void niu_reset_buffers(struct niu *np)
6482 struct niu *np = container_of(work, struct niu, reset_task);
6520 struct niu *np = netdev_priv(dev);
6608 struct niu *np = netdev_priv(dev);
6730 struct niu *np = netdev_priv(dev);
6780 struct niu *np = netdev_priv(dev);
6795 struct niu *np = netdev_priv(dev);
6817 struct niu *np = netdev_priv(dev);
6830 struct niu *np = netdev_priv(dev);
6836 struct niu *np = netdev_priv(dev);
6842 struct niu *np = netdev_priv(dev);
6852 struct niu *np = netdev_priv(dev);
6860 struct niu *np = netdev_priv(dev);
7056 static int niu_get_hash_opts(struct niu *np, struct ethtool_rxnfc *nfc)
7150 static int niu_get_ethtool_tcam_entry(struct niu *np,
7164 netdev_info(np->dev, "niu%d: entry [%d] invalid for idx[%d]\n",
7174 netdev_info(np->dev, "niu%d: niu_class_to_ethflow failed\n",
7229 static int niu_get_ethtool_tcam_all(struct niu *np,
7265 struct niu *np = netdev_priv(dev);
7292 static int niu_set_hash_opts(struct niu *np, struct ethtool_rxnfc *nfc)
7409 static int niu_add_ethtool_tcam_entry(struct niu *np,
7484 netdev_info(np->dev, "niu%d: %s(): Could not find/insert class for pid %d\n",
7518 netdev_info(np->dev, "niu%d: In %s(): flow %d for IPv6 not implemented\n",
7526 netdev_info(np->dev, "niu%d: In %s(): Unknown flow type %d\n",
7537 netdev_info(np->dev, "niu%d: In %s(): Invalid RX ring %lld\n",
7568 static int niu_del_ethtool_tcam_entry(struct niu *np, u32 loc)
7608 netdev_info(np->dev, "niu%d: In %s(): Usr class 0x%llx not found\n",
7631 struct niu *np = netdev_priv(dev);
7732 struct niu *np = netdev_priv(dev);
7761 struct niu *np = netdev_priv(dev);
7776 struct niu *np = netdev_priv(dev);
7812 static u64 niu_led_state_save(struct niu *np)
7820 static void niu_led_state_restore(struct niu *np, u64 val)
7828 static void niu_force_led(struct niu *np, int on)
7852 struct niu *np = netdev_priv(dev);
7895 static int niu_ldg_assign_ldn(struct niu *np, struct niu_parent *parent,
7923 static int niu_set_ldg_timer_res(struct niu *np, int res)
7934 static int niu_set_ldg_sid(struct niu *np, int ldg, int func, int vector)
7946 static int niu_pci_eeprom_read(struct niu *np, u32 addr)
7989 static int niu_pci_eeprom_read16(struct niu *np, u32 off)
8005 static int niu_pci_eeprom_read16_swp(struct niu *np, u32 off)
8023 static int niu_pci_vpd_get_propname(struct niu *np, u32 off, char *namebuf,
8042 static void niu_vpd_parse_version(struct niu *np)
8069 static int niu_pci_vpd_scan_props(struct niu *np, u32 start, u32 end)
8161 static int niu_pci_vpd_fetch(struct niu *np, u32 start)
8202 static u32 niu_pci_vpd_offset(struct niu *np)
8257 static int niu_phy_type_prop_decode(struct niu *np, const char *phy_prop)
8291 static int niu_pci_vpd_get_nports(struct niu *np)
8311 static void niu_pci_vpd_validate(struct niu *np)
8355 static int niu_pci_probe_sprom(struct niu *np)
8511 static int niu_get_and_validate_port(struct niu *np)
8565 pr_info("niu%d: Found PHY %08x type %s at phy_port %u\n",
8633 pr_info("niu%d: Port %u [%u RX chans] [%u TX chans]\n",
8676 pr_info("niu%d: Port %u [%u RX chans] [%u TX chans]\n",
8685 pr_err("niu%d: Too many RX channels (%d), resetting to one per port\n",
8691 pr_err("niu%d: Too many TX channels (%d), resetting to one per port\n",
8697 pr_warn("niu%d: Driver bug, wasted channels, RX[%d] TX[%d]\n",
8726 pr_info("niu%d: Port %d RDC tbl(%d) [ ",
8747 static int fill_phy_probe_info(struct niu *np, struct niu_parent *parent,
8789 static int walk_phys(struct niu *np, struct niu_parent *parent)
8918 static int niu_probe_ports(struct niu *np)
8939 static int niu_classifier_swstate_init(struct niu *np)
8951 static void niu_link_config_init(struct niu *np)
8976 static int niu_init_mac_ipp_pcs_base(struct niu *np)
9015 static void niu_try_msix(struct niu *np, u8 *ldg_num_map)
9049 static int niu_n2_irq_init(struct niu *np, u8 *ldg_num_map)
9073 static int niu_ldg_init(struct niu *np)
9190 static void niu_ldg_free(struct niu *np)
9196 static int niu_get_of_props(struct niu *np)
9261 static int niu_get_invariants(struct niu *np)
9375 type_str = "niu";
9443 static struct niu_parent *niu_new_parent(struct niu *np,
9450 plat_dev = platform_device_register_simple("niu-board", niu_parent_index,
9507 static struct niu_parent *niu_get_parent(struct niu *np,
9542 static void niu_put_parent(struct niu *np)
9638 struct niu *np;
9640 dev = alloc_etherdev_mq(sizeof(struct niu), NIU_NUM_TXCHAN);
9683 static void niu_device_announce(struct niu *np)
9723 struct niu *np;
9865 struct niu *np = netdev_priv(dev);
9886 struct niu *np = netdev_priv(dev);
9913 struct niu *np = netdev_priv(dev);
10009 struct niu *np;
10044 "niu regs");
10053 "niu vregs-1");
10062 "niu vregs-2");
10124 struct niu *np = netdev_priv(dev);
10166 .name = "niu",