Lines Matching refs:niu

0 /* niu.c: Neptune ethernet driver.
35 #include "niu.h"
37 #define DRV_MODULE_NAME "niu"
98 static int serdes_init_10g_serdes(struct niu *np);
100 static int __niu_wait_bits_clear_mac(struct niu *np, unsigned long reg,
115 static int __niu_set_and_wait_clear_mac(struct niu *np, unsigned long reg,
135 static int __niu_wait_bits_clear_ipp(struct niu *np, unsigned long reg,
150 static int __niu_set_and_wait_clear_ipp(struct niu *np, unsigned long reg,
174 static int __niu_wait_bits_clear(struct niu *np, unsigned long reg,
194 static int __niu_set_and_wait_clear(struct niu *np, unsigned long reg,
214 static void niu_ldg_rearm(struct niu *np, struct niu_ldg *lp, int on)
224 static int niu_ldn_irq_enable(struct niu *np, int ldn, int on)
250 static int niu_enable_ldn_in_ldg(struct niu *np, struct niu_ldg *lp, int on)
268 static int niu_enable_interrupts(struct niu *np, int on)
296 static int mdio_wait(struct niu *np)
312 static int mdio_read(struct niu *np, int port, int dev, int reg)
325 static int mdio_write(struct niu *np, int port, int dev, int reg, int data)
342 static int mii_read(struct niu *np, int port, int reg)
348 static int mii_write(struct niu *np, int port, int reg, int data)
360 static int esr2_set_tx_cfg(struct niu *np, unsigned long channel, u32 val)
374 static int esr2_set_rx_cfg(struct niu *np, unsigned long channel, u32 val)
389 static int serdes_init_niu_10g_fiber(struct niu *np)
426 static int serdes_init_niu_1g_serdes(struct niu *np)
523 static int serdes_init_niu_10g_serdes(struct niu *np)
638 static int esr_read_rxtx_ctrl(struct niu *np, unsigned long chan, u32 *val)
654 static int esr_read_glue0(struct niu *np, unsigned long chan, u32 *val)
672 static int esr_read_reset(struct niu *np, u32 *val)
690 static int esr_write_rxtx_ctrl(struct niu *np, unsigned long chan, u32 val)
702 static int esr_write_glue0(struct niu *np, unsigned long chan, u32 val)
714 static int esr_reset(struct niu *np)
753 static int serdes_init_10g(struct niu *np)
879 static int serdes_init_1g(struct niu *np)
906 static int serdes_init_1g_serdes(struct niu *np)
1027 static int link_status_1g_serdes(struct niu *np, int *link_up_p)
1058 static int link_status_10g_serdes(struct niu *np, int *link_up_p)
1092 static int link_status_mii(struct niu *np, int *link_up_p)
1205 static int link_status_1g_rgmii(struct niu *np, int *link_up_p)
1258 static int link_status_1g(struct niu *np, int *link_up_p)
1274 static int bcm8704_reset(struct niu *np)
1308 static int bcm8704_user_dev3_readback(struct niu *np, int reg)
1319 static int bcm8706_init_user_dev3(struct niu *np)
1341 static int bcm8704_init_user_dev3(struct niu *np)
1391 static int mrvl88x2011_act_led(struct niu *np, int val)
1407 static int mrvl88x2011_led_blink_rate(struct niu *np, int rate)
1424 static int xcvr_init_10g_mrvl88x2011(struct niu *np)
1471 static int xcvr_diag_bcm870x(struct niu *np)
1529 static int xcvr_10g_set_lb_bcm870x(struct niu *np)
1552 static int xcvr_init_10g_bcm8706(struct niu *np)
1589 static int xcvr_init_10g_bcm8704(struct niu *np)
1612 static int xcvr_init_10g(struct niu *np)
1644 static int mii_reset(struct niu *np)
1670 static int xcvr_init_1g_rgmii(struct niu *np)
1730 static int mii_init_common(struct niu *np)
1865 static int xcvr_init_1g(struct niu *np)
1877 static int niu_xcvr_init(struct niu *np)
1889 static int niu_serdes_init(struct niu *np)
1901 static void niu_init_xif(struct niu *);
1902 static void niu_handle_led(struct niu *, int status);
1904 static int niu_link_status_common(struct niu *np, int link_up)
1935 static int link_status_10g_mrvl(struct niu *np, int *link_up_p)
1991 static int link_status_10g_bcm8706(struct niu *np, int *link_up_p)
2042 static int link_status_10g_bcom(struct niu *np, int *link_up_p)
2091 static int link_status_10g(struct niu *np, int *link_up_p)
2121 static int niu_10g_phy_present(struct niu *np)
2158 static int link_status_10g_hotplug(struct niu *np, int *link_up_p)
2212 static int niu_link_status(struct niu *np, int *link_up_p)
2226 struct niu *np = (struct niu *) __opaque;
2367 static int serdes_init_10g_serdes(struct niu *np)
2496 static int niu_determine_phy_disposition(struct niu *np)
2603 static int niu_init_link(struct niu *np)
2624 static void niu_set_primary_mac(struct niu *np, unsigned char *addr)
2641 static int niu_num_alt_addr(struct niu *np)
2649 static int niu_set_alt_mac(struct niu *np, int index, unsigned char *addr)
2671 static int niu_enable_alt_mac(struct niu *np, int index, int on)
2697 static void __set_rdc_table_num_hw(struct niu *np, unsigned long reg,
2708 static int __set_rdc_table_num(struct niu *np,
2724 static int niu_set_primary_mac_rdc_table(struct niu *np, int table_num,
2730 static int niu_set_multicast_mac_rdc_table(struct niu *np, int table_num,
2736 static int niu_set_alt_mac_rdc_table(struct niu *np, int idx,
2765 static void vlan_tbl_write(struct niu *np, unsigned long index,
2783 static void vlan_tbl_clear(struct niu *np)
2791 static int tcam_wait_bit(struct niu *np, u64 bit)
2806 static int tcam_flush(struct niu *np, int index)
2816 static int tcam_read(struct niu *np, int index,
2837 static int tcam_write(struct niu *np, int index,
2854 static int tcam_assoc_read(struct niu *np, int index, u64 *data)
2867 static int tcam_assoc_write(struct niu *np, int index, u64 assoc_data)
2875 static void tcam_enable(struct niu *np, int on)
2886 static void tcam_set_lat_and_ratio(struct niu *np, u64 latency, u64 ratio)
2902 static int tcam_user_eth_class_enable(struct niu *np, unsigned long class,
2924 static int tcam_user_eth_class_set(struct niu *np, unsigned long class,
2945 static int tcam_user_ip_class_enable(struct niu *np, unsigned long class,
2966 static int tcam_user_ip_class_set(struct niu *np, unsigned long class,
2994 static int tcam_early_init(struct niu *np)
3017 static int tcam_flush_all(struct niu *np)
3035 static int hash_read(struct niu *np, unsigned long partition,
3054 static int hash_write(struct niu *np, unsigned long partition,
3072 static void fflp_reset(struct niu *np)
3084 static void fflp_set_timings(struct niu *np)
3103 static int fflp_set_partition(struct niu *np, u64 partition,
3127 static int fflp_disable_all_partitions(struct niu *np)
3139 static void fflp_llcsnap_enable(struct niu *np, int on)
3150 static void fflp_errors_enable(struct niu *np, int on)
3161 static int fflp_hash_clear(struct niu *np)
3178 static int fflp_early_init(struct niu *np)
3237 static int niu_set_flow_key(struct niu *np, unsigned long class_code, u64 key)
3247 static int niu_set_tcam_key(struct niu *np, unsigned long class_code, u64 key)
3258 static u16 tcam_get_index(struct niu *np, u16 idx)
3266 static u16 tcam_get_size(struct niu *np)
3272 static u16 tcam_get_valid_entry_cnt(struct niu *np)
3325 static int niu_rbr_add_page(struct niu *np, struct rx_ring_info *rp,
3354 static void niu_rbr_refill(struct niu *np, struct rx_ring_info *rp, gfp_t mask)
3379 static int niu_rx_pkt_ignore(struct niu *np, struct rx_ring_info *rp)
3419 static int niu_process_rx_pkt(struct napi_struct *napi, struct niu *np,
3508 static int niu_rbr_fill(struct niu *np, struct rx_ring_info *rp, gfp_t mask)
3526 static void niu_rbr_free(struct niu *np, struct rx_ring_info *rp)
3554 static int release_tx_packet(struct niu *np, struct tx_ring_info *rp, int idx)
3598 static void niu_tx_work(struct niu *np, struct tx_ring_info *rp)
3640 static inline void niu_sync_rx_discard_stats(struct niu *np,
3692 static int niu_rx_work(struct napi_struct *napi, struct niu *np,
3741 static int niu_poll_core(struct niu *np, struct niu_ldg *lp, int budget)
3779 struct niu *np = lp->np;
3791 static void niu_log_rxchan_errors(struct niu *np, struct rx_ring_info *rp,
3828 static int niu_rx_error(struct niu *np, struct rx_ring_info *rp)
3852 static void niu_log_txchan_errors(struct niu *np, struct tx_ring_info *rp,
3877 static int niu_tx_error(struct niu *np, struct tx_ring_info *rp)
3896 static int niu_mif_interrupt(struct niu *np)
3914 static void niu_xmac_interrupt(struct niu *np)
3986 static void niu_bmac_interrupt(struct niu *np)
4022 static int niu_mac_interrupt(struct niu *np)
4032 static void niu_log_device_error(struct niu *np, u64 stat)
4062 static int niu_device_error(struct niu *np)
4074 static int niu_slowpath_interrupt(struct niu *np, struct niu_ldg *lp,
4139 static void niu_rxchan_intr(struct niu *np, struct rx_ring_info *rp,
4153 static void niu_txchan_intr(struct niu *np, struct tx_ring_info *rp,
4162 static void __niu_fastpath_interrupt(struct niu *np, int ldg, u64 v0)
4196 static void niu_schedule_napi(struct niu *np, struct niu_ldg *lp,
4211 struct niu *np = lp->np;
4252 static void niu_free_rx_ring_info(struct niu *np, struct rx_ring_info *rp)
4282 static void niu_free_tx_ring_info(struct niu *np, struct tx_ring_info *rp)
4309 static void niu_free_channels(struct niu *np)
4336 static int niu_alloc_rx_ring_info(struct niu *np,
4387 static void niu_set_max_burst(struct niu *np, struct tx_ring_info *rp)
4399 static int niu_alloc_tx_ring_info(struct niu *np,
4439 static void niu_size_rbr(struct niu *np, struct rx_ring_info *rp)
4466 static int niu_alloc_channels(struct niu *np)
4555 static int niu_tx_cs_sng_poll(struct niu *np, int channel)
4567 static int niu_tx_channel_stop(struct niu *np, int channel)
4577 static int niu_tx_cs_reset_poll(struct niu *np, int channel)
4589 static int niu_tx_channel_reset(struct niu *np, int channel)
4604 static int niu_tx_channel_lpage_init(struct niu *np, int channel)
4625 static void niu_txc_enable_port(struct niu *np, int on)
4644 static void niu_txc_set_imask(struct niu *np, u64 imask)
4656 static void niu_txc_port_dma_enable(struct niu *np, int on)
4669 static int niu_init_one_tx_channel(struct niu *np, struct tx_ring_info *rp)
4723 static void niu_init_rdc_groups(struct niu *np)
4741 static void niu_init_drr_weight(struct niu *np)
4759 static int niu_init_hostinfo(struct niu *np)
4783 static int niu_rx_channel_reset(struct niu *np, int channel)
4790 static int niu_rx_channel_lpage_init(struct niu *np, int channel)
4809 static void niu_rx_channel_wred_init(struct niu *np, struct rx_ring_info *rp)
4900 static int niu_enable_rx_channel(struct niu *np, int channel, int on)
4922 static int niu_init_one_rx_channel(struct niu *np, struct rx_ring_info *rp)
4975 static int niu_init_rx_channels(struct niu *np)
5006 static int niu_set_ip_frag_rule(struct niu *np)
5036 static int niu_init_classifier_hw(struct niu *np)
5085 static int niu_zcp_write(struct niu *np, int index, u64 *data)
5102 static int niu_zcp_read(struct niu *np, int index, u64 *data)
5136 static void niu_zcp_cfifo_reset(struct niu *np)
5148 static int niu_init_zcp(struct niu *np)
5185 static void niu_ipp_write(struct niu *np, int index, u64 *data)
5199 static void niu_ipp_read(struct niu *np, int index, u64 *data)
5209 static int niu_ipp_reset(struct niu *np)
5215 static int niu_init_ipp(struct niu *np)
5266 static void niu_handle_led(struct niu *np, int status)
5285 static void niu_init_xif_xmac(struct niu *np)
5342 static void niu_init_xif_bmac(struct niu *np)
5372 static void niu_init_xif(struct niu *np)
5380 static void niu_pcs_mii_reset(struct niu *np)
5392 static void niu_xpcs_reset(struct niu *np)
5404 static int niu_init_pcs(struct niu *np)
5468 static int niu_reset_tx_xmac(struct niu *np)
5476 static int niu_reset_tx_bmac(struct niu *np)
5497 static int niu_reset_tx_mac(struct niu *np)
5505 static void niu_init_tx_xmac(struct niu *np, u64 min, u64 max)
5541 static void niu_init_tx_bmac(struct niu *np, u64 min, u64 max)
5558 static void niu_init_tx_mac(struct niu *np)
5579 static int niu_reset_rx_xmac(struct niu *np)
5602 static int niu_reset_rx_bmac(struct niu *np)
5623 static int niu_reset_rx_mac(struct niu *np)
5631 static void niu_init_rx_xmac(struct niu *np)
5683 static void niu_init_rx_bmac(struct niu *np)
5718 static void niu_init_rx_mac(struct niu *np)
5728 static void niu_enable_tx_xmac(struct niu *np, int on)
5739 static void niu_enable_tx_bmac(struct niu *np, int on)
5750 static void niu_enable_tx_mac(struct niu *np, int on)
5758 static void niu_enable_rx_xmac(struct niu *np, int on)
5777 static void niu_enable_rx_bmac(struct niu *np, int on)
5796 static void niu_enable_rx_mac(struct niu *np, int on)
5804 static int niu_init_mac(struct niu *np)
5835 static void niu_stop_one_tx_channel(struct niu *np, struct tx_ring_info *rp)
5840 static void niu_stop_tx_channels(struct niu *np)
5851 static void niu_reset_one_tx_channel(struct niu *np, struct tx_ring_info *rp)
5856 static void niu_reset_tx_channels(struct niu *np)
5867 static void niu_stop_one_rx_channel(struct niu *np, struct rx_ring_info *rp)
5872 static void niu_stop_rx_channels(struct niu *np)
5883 static void niu_reset_one_rx_channel(struct niu *np, struct rx_ring_info *rp)
5893 static void niu_reset_rx_channels(struct niu *np)
5904 static void niu_disable_ipp(struct niu *np)
5933 static int niu_init_hw(struct niu *np)
5995 static void niu_stop_hw(struct niu *np)
6019 static void niu_set_irq_name(struct niu *np)
6042 static int niu_request_irq(struct niu *np)
6070 static void niu_free_irq(struct niu *np)
6081 static void niu_enable_napi(struct niu *np)
6089 static void niu_disable_napi(struct niu *np)
6099 struct niu *np = netdev_priv(dev);
6158 static void niu_full_shutdown(struct niu *np, struct net_device *dev)
6176 struct niu *np = netdev_priv(dev);
6189 static void niu_sync_xmac_stats(struct niu *np)
6214 static void niu_sync_bmac_stats(struct niu *np)
6227 static void niu_sync_mac_stats(struct niu *np)
6235 static void niu_get_rx_stats(struct niu *np,
6266 static void niu_get_tx_stats(struct niu *np,
6296 struct niu *np = netdev_priv(dev);
6306 static void niu_load_hash_xmac(struct niu *np, u16 *hash)
6314 static void niu_load_hash_bmac(struct niu *np, u16 *hash)
6322 static void niu_load_hash(struct niu *np, u16 *hash)
6332 struct niu *np = netdev_priv(dev);
6402 struct niu *np = netdev_priv(dev);
6428 static void niu_netif_stop(struct niu *np)
6437 static void niu_netif_start(struct niu *np)
6450 static void niu_reset_buffers(struct niu *np)
6502 struct niu *np = container_of(work, struct niu, reset_task);
6540 struct niu *np = netdev_priv(dev);
6628 struct niu *np = netdev_priv(dev);
6757 struct niu *np = netdev_priv(dev);
6812 struct niu *np = netdev_priv(dev);
6826 struct niu *np = netdev_priv(dev);
6847 struct niu *np = netdev_priv(dev);
6859 struct niu *np = netdev_priv(dev);
6865 struct niu *np = netdev_priv(dev);
6871 struct niu *np = netdev_priv(dev);
6881 struct niu *np = netdev_priv(dev);
6889 struct niu *np = netdev_priv(dev);
7085 static int niu_get_hash_opts(struct niu *np, struct ethtool_rxnfc *nfc)
7179 static int niu_get_ethtool_tcam_entry(struct niu *np,
7193 netdev_info(np->dev, "niu%d: entry [%d] invalid for idx[%d]\n",
7204 netdev_info(np->dev, "niu%d: niu_class_to_ethflow failed\n",
7260 static int niu_get_ethtool_tcam_all(struct niu *np,
7296 struct niu *np = netdev_priv(dev);
7323 static int niu_set_hash_opts(struct niu *np, struct ethtool_rxnfc *nfc)
7440 static int niu_add_ethtool_tcam_entry(struct niu *np,
7514 netdev_info(np->dev, "niu%d: %s(): Could not find/insert class for pid %d\n",
7548 netdev_info(np->dev, "niu%d: In %s(): flow %d for IPv6 not implemented\n",
7556 netdev_info(np->dev, "niu%d: In %s(): Unknown flow type %d\n",
7567 netdev_info(np->dev, "niu%d: In %s(): Invalid RX ring %lld\n",
7598 static int niu_del_ethtool_tcam_entry(struct niu *np, u32 loc)
7638 netdev_info(np->dev, "niu%d: In %s(): Usr class 0x%llx not found\n",
7661 struct niu *np = netdev_priv(dev);
7762 struct niu *np = netdev_priv(dev);
7791 struct niu *np = netdev_priv(dev);
7806 struct niu *np = netdev_priv(dev);
7842 static u64 niu_led_state_save(struct niu *np)
7850 static void niu_led_state_restore(struct niu *np, u64 val)
7858 static void niu_force_led(struct niu *np, int on)
7882 struct niu *np = netdev_priv(dev);
7925 static int niu_ldg_assign_ldn(struct niu *np, struct niu_parent *parent,
7953 static int niu_set_ldg_timer_res(struct niu *np, int res)
7964 static int niu_set_ldg_sid(struct niu *np, int ldg, int func, int vector)
7976 static int __devinit niu_pci_eeprom_read(struct niu *np, u32 addr)
8019 static int __devinit niu_pci_eeprom_read16(struct niu *np, u32 off)
8035 static int __devinit niu_pci_eeprom_read16_swp(struct niu *np, u32 off)
8053 static int __devinit niu_pci_vpd_get_propname(struct niu *np,
8074 static void __devinit niu_vpd_parse_version(struct niu *np)
8101 static int __devinit niu_pci_vpd_scan_props(struct niu *np,
8188 static void __devinit niu_pci_vpd_fetch(struct niu *np, u32 start)
8223 static u32 __devinit niu_pci_vpd_offset(struct niu *np)
8278 static int __devinit niu_phy_type_prop_decode(struct niu *np,
8313 static int niu_pci_vpd_get_nports(struct niu *np)
8333 static void __devinit niu_pci_vpd_validate(struct niu *np)
8379 static int __devinit niu_pci_probe_sprom(struct niu *np)
8537 static int __devinit niu_get_and_validate_port(struct niu *np)
8593 pr_info("niu%d: Found PHY %08x type %s at phy_port %u\n",
8661 pr_info("niu%d: Port %u [%u RX chans] [%u TX chans]\n",
8704 pr_info("niu%d: Port %u [%u RX chans] [%u TX chans]\n",
8713 pr_err("niu%d: Too many RX channels (%d), resetting to one per port\n",
8719 pr_err("niu%d: Too many TX channels (%d), resetting to one per port\n",
8725 pr_warning("niu%d: Driver bug, wasted channels, RX[%d] TX[%d]\n",
8754 pr_info("niu%d: Port %d RDC tbl(%d) [ ",
8775 static int __devinit fill_phy_probe_info(struct niu *np,
8818 static int __devinit walk_phys(struct niu *np, struct niu_parent *parent)
8947 static int __devinit niu_probe_ports(struct niu *np)
8968 static int __devinit niu_classifier_swstate_init(struct niu *np)
8980 static void __devinit niu_link_config_init(struct niu *np)
9005 static int __devinit niu_init_mac_ipp_pcs_base(struct niu *np)
9044 static void __devinit niu_try_msix(struct niu *np, u8 *ldg_num_map)
9083 static int __devinit niu_n2_irq_init(struct niu *np, u8 *ldg_num_map)
9107 static int __devinit niu_ldg_init(struct niu *np)
9224 static void __devexit niu_ldg_free(struct niu *np)
9230 static int __devinit niu_get_of_props(struct niu *np)
9299 static int __devinit niu_get_invariants(struct niu *np)
9410 type_str = "niu";
9478 static struct niu_parent * __devinit niu_new_parent(struct niu *np,
9486 plat_dev = platform_device_register_simple("niu-board", niu_parent_index,
9543 static struct niu_parent * __devinit niu_get_parent(struct niu *np,
9579 static void niu_put_parent(struct niu *np)
9675 struct niu *np;
9677 dev = alloc_etherdev_mq(sizeof(struct niu), NIU_NUM_TXCHAN);
9720 static void __devinit niu_device_announce(struct niu *np)
9760 struct niu *np;
9903 struct niu *np = netdev_priv(dev);
9925 struct niu *np = netdev_priv(dev);
9954 struct niu *np = netdev_priv(dev);
10051 struct niu *np;
10086 "niu regs");
10095 "niu vregs-1");
10104 "niu vregs-2");
10166 struct niu *np = netdev_priv(dev);
10209 .name = "niu",