gbe_dev 765 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev; gbe_dev 1775 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev; gbe_dev 1781 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev = gbe_intf->gbe_dev; gbe_dev 1785 drivers/net/ethernet/ti/netcp_ethss.c for (i = 0; i < gbe_dev->num_et_stats; i++) { gbe_dev 1786 drivers/net/ethernet/ti/netcp_ethss.c memcpy(data, gbe_dev->et_stats[i].desc, gbe_dev 1800 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev; gbe_dev 1805 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev = gbe_intf->gbe_dev; gbe_dev 1811 drivers/net/ethernet/ti/netcp_ethss.c return gbe_dev->num_et_stats; gbe_dev 1817 drivers/net/ethernet/ti/netcp_ethss.c static void gbe_reset_mod_stats(struct gbe_priv *gbe_dev, int stats_mod) gbe_dev 1819 drivers/net/ethernet/ti/netcp_ethss.c void __iomem *base = gbe_dev->hw_stats_regs[stats_mod]; gbe_dev 1823 drivers/net/ethernet/ti/netcp_ethss.c for (i = 0; i < gbe_dev->num_et_stats; i++) { gbe_dev 1824 drivers/net/ethernet/ti/netcp_ethss.c if (gbe_dev->et_stats[i].type == stats_mod) { gbe_dev 1825 drivers/net/ethernet/ti/netcp_ethss.c p_stats_entry = base + gbe_dev->et_stats[i].offset; gbe_dev 1826 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats[i] = 0; gbe_dev 1827 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats_prev[i] = readl(p_stats_entry); gbe_dev 1832 drivers/net/ethernet/ti/netcp_ethss.c static inline void gbe_update_hw_stats_entry(struct gbe_priv *gbe_dev, gbe_dev 1842 drivers/net/ethernet/ti/netcp_ethss.c base = gbe_dev->hw_stats_regs[gbe_dev->et_stats[et_stats_entry].type]; gbe_dev 1843 drivers/net/ethernet/ti/netcp_ethss.c p_stats_entry = base + gbe_dev->et_stats[et_stats_entry].offset; gbe_dev 1845 drivers/net/ethernet/ti/netcp_ethss.c delta = curr - gbe_dev->hw_stats_prev[et_stats_entry]; gbe_dev 1846 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats_prev[et_stats_entry] = curr; gbe_dev 1847 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats[et_stats_entry] += delta; gbe_dev 1850 drivers/net/ethernet/ti/netcp_ethss.c static void gbe_update_stats(struct gbe_priv *gbe_dev, uint64_t *data) gbe_dev 1854 drivers/net/ethernet/ti/netcp_ethss.c for (i = 0; i < gbe_dev->num_et_stats; i++) { gbe_dev 1855 drivers/net/ethernet/ti/netcp_ethss.c gbe_update_hw_stats_entry(gbe_dev, i); gbe_dev 1858 drivers/net/ethernet/ti/netcp_ethss.c data[i] = gbe_dev->hw_stats[i]; gbe_dev 1862 drivers/net/ethernet/ti/netcp_ethss.c static inline void gbe_stats_mod_visible_ver14(struct gbe_priv *gbe_dev, gbe_dev 1867 drivers/net/ethernet/ti/netcp_ethss.c val = readl(GBE_REG_ADDR(gbe_dev, switch_regs, stat_port_en)); gbe_dev 1883 drivers/net/ethernet/ti/netcp_ethss.c writel(val, GBE_REG_ADDR(gbe_dev, switch_regs, stat_port_en)); gbe_dev 1886 drivers/net/ethernet/ti/netcp_ethss.c static void gbe_reset_mod_stats_ver14(struct gbe_priv *gbe_dev, int stats_mod) gbe_dev 1888 drivers/net/ethernet/ti/netcp_ethss.c gbe_stats_mod_visible_ver14(gbe_dev, stats_mod); gbe_dev 1889 drivers/net/ethernet/ti/netcp_ethss.c gbe_reset_mod_stats(gbe_dev, stats_mod); gbe_dev 1892 drivers/net/ethernet/ti/netcp_ethss.c static void gbe_update_stats_ver14(struct gbe_priv *gbe_dev, uint64_t *data) gbe_dev 1894 drivers/net/ethernet/ti/netcp_ethss.c u32 half_num_et_stats = (gbe_dev->num_et_stats / 2); gbe_dev 1898 drivers/net/ethernet/ti/netcp_ethss.c gbe_stats_mod_visible_ver14(gbe_dev, (pair ? gbe_dev 1904 drivers/net/ethernet/ti/netcp_ethss.c gbe_update_hw_stats_entry(gbe_dev, et_entry); gbe_dev 1907 drivers/net/ethernet/ti/netcp_ethss.c data[et_entry] = gbe_dev->hw_stats[et_entry]; gbe_dev 1918 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev; gbe_dev 1924 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev = gbe_intf->gbe_dev; gbe_dev 1925 drivers/net/ethernet/ti/netcp_ethss.c spin_lock_bh(&gbe_dev->hw_stats_lock); gbe_dev 1926 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_VER_14(gbe_dev)) gbe_dev 1927 drivers/net/ethernet/ti/netcp_ethss.c gbe_update_stats_ver14(gbe_dev, data); gbe_dev 1929 drivers/net/ethernet/ti/netcp_ethss.c gbe_update_stats(gbe_dev, data); gbe_dev 1930 drivers/net/ethernet/ti/netcp_ethss.c spin_unlock_bh(&gbe_dev->hw_stats_lock); gbe_dev 2011 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_intf || !gbe_intf->gbe_dev->cpts) gbe_dev 2021 drivers/net/ethernet/ti/netcp_ethss.c info->phc_index = gbe_intf->gbe_dev->cpts->phc_index; gbe_dev 2076 drivers/net/ethernet/ti/netcp_ethss.c static void netcp_ethss_link_state_action(struct gbe_priv *gbe_dev, gbe_dev 2097 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_control_set(gbe_dev->ale, slave->port_num, gbe_dev 2109 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_control_set(gbe_dev->ale, slave->port_num, gbe_dev 2130 drivers/net/ethernet/ti/netcp_ethss.c static void netcp_2u_rgmii_get_port_link(struct gbe_priv *gbe_dev, bool *status) gbe_dev 2134 drivers/net/ethernet/ti/netcp_ethss.c val = readl(GBE_REG_ADDR(gbe_dev, ss_regs, rgmii_status)); gbe_dev 2138 drivers/net/ethernet/ti/netcp_ethss.c static void netcp_ethss_update_link_state(struct gbe_priv *gbe_dev, gbe_dev 2149 drivers/net/ethernet/ti/netcp_ethss.c netcp_2u_rgmii_get_port_link(gbe_dev, gbe_dev 2153 drivers/net/ethernet/ti/netcp_ethss.c netcp_sgmii_get_port_link(SGMII_BASE(gbe_dev, sp), sp); gbe_dev 2159 drivers/net/ethernet/ti/netcp_ethss.c netcp_ethss_link_state_action(gbe_dev, ndev, slave, gbe_dev 2172 drivers/net/ethernet/ti/netcp_ethss.c netcp_ethss_update_link_state(gbe_intf->gbe_dev, gbe_intf->slave, gbe_dev 2185 drivers/net/ethernet/ti/netcp_ethss.c netcp_ethss_update_link_state(gbe_intf->gbe_dev, gbe_intf->slave, gbe_dev 2191 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = netdev_priv(ndev); gbe_dev 2194 drivers/net/ethernet/ti/netcp_ethss.c for_each_sec_slave(slave, gbe_dev) gbe_dev 2195 drivers/net/ethernet/ti/netcp_ethss.c netcp_ethss_update_link_state(gbe_dev, slave, NULL); gbe_dev 2220 drivers/net/ethernet/ti/netcp_ethss.c static void gbe_port_config(struct gbe_priv *gbe_dev, struct gbe_slave *slave, gbe_dev 2230 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_XGBE(gbe_dev) && gbe_dev 2232 drivers/net/ethernet/ti/netcp_ethss.c xgmii_mode = readl(GBE_REG_ADDR(gbe_dev, ss_regs, control)); gbe_dev 2234 drivers/net/ethernet/ti/netcp_ethss.c writel(xgmii_mode, GBE_REG_ADDR(gbe_dev, ss_regs, control)); gbe_dev 2237 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_MU(gbe_dev)) gbe_dev 2258 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = intf->gbe_dev; gbe_dev 2261 drivers/net/ethernet/ti/netcp_ethss.c if (!IS_SS_ID_2U(gbe_dev)) gbe_dev 2262 drivers/net/ethernet/ti/netcp_ethss.c gbe_sgmii_rtreset(gbe_dev, slave, true); gbe_dev 2265 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_control_set(gbe_dev->ale, slave->port_num, gbe_dev 2267 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_del_mcast(gbe_dev->ale, intf->ndev->broadcast, gbe_dev 2290 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *priv = gbe_intf->gbe_dev; gbe_dev 2406 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2409 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_add_mcast(gbe_dev->ale, addr, gbe_dev 2410 drivers/net/ethernet/ti/netcp_ethss.c GBE_PORT_MASK(gbe_dev->ale_ports), 0, 0, gbe_dev 2413 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_add_mcast(gbe_dev->ale, addr, gbe_dev 2414 drivers/net/ethernet/ti/netcp_ethss.c GBE_PORT_MASK(gbe_dev->ale_ports), gbe_dev 2421 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2424 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_add_ucast(gbe_dev->ale, addr, gbe_dev->host_port, 0, 0); gbe_dev 2427 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_add_ucast(gbe_dev->ale, addr, gbe_dev->host_port, gbe_dev 2433 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2436 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_del_mcast(gbe_dev->ale, addr, 0, 0, 0); gbe_dev 2439 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_del_mcast(gbe_dev->ale, addr, 0, ALE_VLAN, vlan_id); gbe_dev 2445 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2448 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_del_ucast(gbe_dev->ale, addr, gbe_dev->host_port, 0, 0); gbe_dev 2451 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_del_ucast(gbe_dev->ale, addr, gbe_dev->host_port, gbe_dev 2459 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2461 drivers/net/ethernet/ti/netcp_ethss.c dev_dbg(gbe_dev->dev, "ethss adding address %pM, type %d\n", gbe_dev 2485 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2487 drivers/net/ethernet/ti/netcp_ethss.c dev_dbg(gbe_dev->dev, "ethss deleting address %pM, type %d\n", gbe_dev 2511 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2515 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_add_vlan(gbe_dev->ale, vid, gbe_dev 2516 drivers/net/ethernet/ti/netcp_ethss.c GBE_PORT_MASK(gbe_dev->ale_ports), gbe_dev 2518 drivers/net/ethernet/ti/netcp_ethss.c GBE_PORT_MASK(gbe_dev->ale_ports), gbe_dev 2519 drivers/net/ethernet/ti/netcp_ethss.c GBE_PORT_MASK(gbe_dev->ale_ports - 1)); gbe_dev 2527 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2529 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_del_vlan(gbe_dev->ale, vid, 0); gbe_dev 2541 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2543 drivers/net/ethernet/ti/netcp_ethss.c cpts_tx_timestamp(gbe_dev->cpts, skb); gbe_dev 2551 drivers/net/ethernet/ti/netcp_ethss.c return cpts_can_timestamp(gbe_intf->gbe_dev->cpts, skb); gbe_dev 2558 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2561 drivers/net/ethernet/ti/netcp_ethss.c !gbe_dev->tx_ts_enabled) gbe_dev 2585 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2595 drivers/net/ethernet/ti/netcp_ethss.c if (gbe_dev->rx_ts_enabled) gbe_dev 2596 drivers/net/ethernet/ti/netcp_ethss.c cpts_rx_timestamp(gbe_dev->cpts, p_info->skb); gbe_dev 2605 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2606 drivers/net/ethernet/ti/netcp_ethss.c struct cpts *cpts = gbe_dev->cpts; gbe_dev 2613 drivers/net/ethernet/ti/netcp_ethss.c cfg.tx_type = gbe_dev->tx_ts_enabled ? HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF; gbe_dev 2614 drivers/net/ethernet/ti/netcp_ethss.c cfg.rx_filter = gbe_dev->rx_ts_enabled; gbe_dev 2621 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2625 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->rx_ts_enabled && gbe_dev 2626 drivers/net/ethernet/ti/netcp_ethss.c !gbe_dev->tx_ts_enabled) { gbe_dev 2638 drivers/net/ethernet/ti/netcp_ethss.c if (gbe_dev->tx_ts_enabled) gbe_dev 2641 drivers/net/ethernet/ti/netcp_ethss.c if (gbe_dev->rx_ts_enabled) gbe_dev 2651 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2652 drivers/net/ethernet/ti/netcp_ethss.c struct cpts *cpts = gbe_dev->cpts; gbe_dev 2667 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->tx_ts_enabled = 0; gbe_dev 2670 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->tx_ts_enabled = 1; gbe_dev 2678 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->rx_ts_enabled = HWTSTAMP_FILTER_NONE; gbe_dev 2683 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->rx_ts_enabled = HWTSTAMP_FILTER_PTP_V1_L4_EVENT; gbe_dev 2695 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->rx_ts_enabled = HWTSTAMP_FILTER_PTP_V2_EVENT; gbe_dev 2707 drivers/net/ethernet/ti/netcp_ethss.c static void gbe_register_cpts(struct gbe_priv *gbe_dev) gbe_dev 2709 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->cpts) gbe_dev 2712 drivers/net/ethernet/ti/netcp_ethss.c if (gbe_dev->cpts_registered > 0) gbe_dev 2715 drivers/net/ethernet/ti/netcp_ethss.c if (cpts_register(gbe_dev->cpts)) { gbe_dev 2716 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "error registering cpts device\n"); gbe_dev 2721 drivers/net/ethernet/ti/netcp_ethss.c ++gbe_dev->cpts_registered; gbe_dev 2724 drivers/net/ethernet/ti/netcp_ethss.c static void gbe_unregister_cpts(struct gbe_priv *gbe_dev) gbe_dev 2726 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->cpts || (gbe_dev->cpts_registered <= 0)) gbe_dev 2729 drivers/net/ethernet/ti/netcp_ethss.c if (--gbe_dev->cpts_registered) gbe_dev 2732 drivers/net/ethernet/ti/netcp_ethss.c cpts_unregister(gbe_dev->cpts); gbe_dev 2753 drivers/net/ethernet/ti/netcp_ethss.c static inline void gbe_register_cpts(struct gbe_priv *gbe_dev) gbe_dev 2757 drivers/net/ethernet/ti/netcp_ethss.c static inline void gbe_unregister_cpts(struct gbe_priv *gbe_dev) gbe_dev 2775 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2776 drivers/net/ethernet/ti/netcp_ethss.c struct cpsw_ale *ale = gbe_dev->ale; gbe_dev 2783 drivers/net/ethernet/ti/netcp_ethss.c for (i = 0; i <= gbe_dev->num_slaves; i++) { gbe_dev 2793 drivers/net/ethernet/ti/netcp_ethss.c dev_vdbg(gbe_dev->dev, "promiscuous mode disabled\n"); gbe_dev 2818 drivers/net/ethernet/ti/netcp_ethss.c GBE_PORT_MASK(gbe_dev->ale_ports), gbe_dev 2823 drivers/net/ethernet/ti/netcp_ethss.c dev_vdbg(gbe_dev->dev, "promiscuous mode enabled\n"); gbe_dev 2849 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = from_timer(gbe_dev, t, timer); gbe_dev 2854 drivers/net/ethernet/ti/netcp_ethss.c for_each_intf(gbe_intf, gbe_dev) { gbe_dev 2857 drivers/net/ethernet/ti/netcp_ethss.c netcp_ethss_update_link_state(gbe_dev, gbe_intf->slave, gbe_dev 2862 drivers/net/ethernet/ti/netcp_ethss.c for_each_sec_slave(slave, gbe_dev) { gbe_dev 2863 drivers/net/ethernet/ti/netcp_ethss.c netcp_ethss_update_link_state(gbe_dev, slave, NULL); gbe_dev 2867 drivers/net/ethernet/ti/netcp_ethss.c spin_lock(&gbe_dev->hw_stats_lock); gbe_dev 2869 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_VER_14(gbe_dev)) gbe_dev 2870 drivers/net/ethernet/ti/netcp_ethss.c gbe_update_stats_ver14(gbe_dev, NULL); gbe_dev 2872 drivers/net/ethernet/ti/netcp_ethss.c gbe_update_stats(gbe_dev, NULL); gbe_dev 2874 drivers/net/ethernet/ti/netcp_ethss.c spin_unlock(&gbe_dev->hw_stats_lock); gbe_dev 2876 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->timer.expires = jiffies + GBE_TIMER_INTERVAL; gbe_dev 2877 drivers/net/ethernet/ti/netcp_ethss.c add_timer(&gbe_dev->timer); gbe_dev 2899 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2906 drivers/net/ethernet/ti/netcp_ethss.c reg = readl(GBE_REG_ADDR(gbe_dev, switch_regs, id_ver)); gbe_dev 2907 drivers/net/ethernet/ti/netcp_ethss.c dev_dbg(gbe_dev->dev, "initializing gbe version %d.%d (%d) GBE identification value 0x%x\n", gbe_dev 2912 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_XGBE(gbe_dev) || IS_SS_ID_MU(gbe_dev)) gbe_dev 2915 drivers/net/ethernet/ti/netcp_ethss.c if (gbe_dev->enable_ale) gbe_dev 2920 drivers/net/ethernet/ti/netcp_ethss.c dev_dbg(gbe_dev->dev, gbe_dev 2930 drivers/net/ethernet/ti/netcp_ethss.c writel(0, GBE_REG_ADDR(gbe_dev, switch_regs, ptype)); gbe_dev 2934 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_MU(gbe_dev)) { gbe_dev 2938 drivers/net/ethernet/ti/netcp_ethss.c writel(val, GBE_REG_ADDR(gbe_dev, switch_regs, control)); gbe_dev 2941 drivers/net/ethernet/ti/netcp_ethss.c writel(gbe_dev->stats_en_mask, GBE_REG_ADDR(gbe_dev, switch_regs, gbe_dev 2952 drivers/net/ethernet/ti/netcp_ethss.c netcp_ethss_update_link_state(gbe_dev, slave, ndev); gbe_dev 2954 drivers/net/ethernet/ti/netcp_ethss.c gbe_register_cpts(gbe_dev); gbe_dev 2967 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = gbe_intf->gbe_dev; gbe_dev 2969 drivers/net/ethernet/ti/netcp_ethss.c gbe_unregister_cpts(gbe_dev); gbe_dev 2997 drivers/net/ethernet/ti/netcp_ethss.c static int init_slave(struct gbe_priv *gbe_dev, struct gbe_slave *slave, gbe_dev 3005 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "missing slave-port parameter\n"); gbe_dev 3011 drivers/net/ethernet/ti/netcp_ethss.c dev_warn(gbe_dev->dev, gbe_dev 3022 drivers/net/ethernet/ti/netcp_ethss.c slave->port_num = gbe_get_slave_port(gbe_dev, slave->slave_num); gbe_dev 3031 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_VER_14(gbe_dev)) { gbe_dev 3041 drivers/net/ethernet/ti/netcp_ethss.c } else if (IS_SS_ID_MU(gbe_dev)) { gbe_dev 3046 drivers/net/ethernet/ti/netcp_ethss.c } else if (IS_SS_ID_XGBE(gbe_dev)) { gbe_dev 3052 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "unknown ethss(0x%x)\n", gbe_dev 3053 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ss_version); gbe_dev 3057 drivers/net/ethernet/ti/netcp_ethss.c slave->port_regs = gbe_dev->switch_regs + port_reg_ofs + gbe_dev 3059 drivers/net/ethernet/ti/netcp_ethss.c slave->emac_regs = gbe_dev->switch_regs + emac_reg_ofs + gbe_dev 3062 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_VER_14(gbe_dev)) { gbe_dev 3079 drivers/net/ethernet/ti/netcp_ethss.c } else if (IS_SS_ID_MU(gbe_dev)) { gbe_dev 3097 drivers/net/ethernet/ti/netcp_ethss.c } else if (IS_SS_ID_XGBE(gbe_dev)) { gbe_dev 3121 drivers/net/ethernet/ti/netcp_ethss.c static void init_secondary_ports(struct gbe_priv *gbe_dev, gbe_dev 3124 drivers/net/ethernet/ti/netcp_ethss.c struct device *dev = gbe_dev->dev; gbe_dev 3139 drivers/net/ethernet/ti/netcp_ethss.c if (init_slave(gbe_dev, slave, port)) { gbe_dev 3147 drivers/net/ethernet/ti/netcp_ethss.c if (!IS_SS_ID_2U(gbe_dev)) gbe_dev 3148 drivers/net/ethernet/ti/netcp_ethss.c gbe_sgmii_config(gbe_dev, slave); gbe_dev 3150 drivers/net/ethernet/ti/netcp_ethss.c gbe_port_config(gbe_dev, slave, gbe_dev->rx_packet_max); gbe_dev 3151 drivers/net/ethernet/ti/netcp_ethss.c list_add_tail(&slave->slave_list, &gbe_dev->secondary_slaves); gbe_dev 3152 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_slaves++; gbe_dev 3158 drivers/net/ethernet/ti/netcp_ethss.c if (gbe_dev->num_slaves >= gbe_dev->max_num_slaves) { gbe_dev 3169 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->dummy_ndev = alloc_netdev(sizeof(gbe_dev), "dummy", gbe_dev 3171 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->dummy_ndev) { gbe_dev 3176 drivers/net/ethernet/ti/netcp_ethss.c priv = netdev_priv(gbe_dev->dummy_ndev); gbe_dev 3177 drivers/net/ethernet/ti/netcp_ethss.c *priv = gbe_dev; gbe_dev 3190 drivers/net/ethernet/ti/netcp_ethss.c for_each_sec_slave(slave, gbe_dev) { gbe_dev 3196 drivers/net/ethernet/ti/netcp_ethss.c of_phy_connect(gbe_dev->dummy_ndev, gbe_dev 3211 drivers/net/ethernet/ti/netcp_ethss.c static void free_secondary_ports(struct gbe_priv *gbe_dev) gbe_dev 3215 drivers/net/ethernet/ti/netcp_ethss.c while (!list_empty(&gbe_dev->secondary_slaves)) { gbe_dev 3216 drivers/net/ethernet/ti/netcp_ethss.c slave = first_sec_slave(gbe_dev); gbe_dev 3222 drivers/net/ethernet/ti/netcp_ethss.c if (gbe_dev->dummy_ndev) gbe_dev 3223 drivers/net/ethernet/ti/netcp_ethss.c free_netdev(gbe_dev->dummy_ndev); gbe_dev 3226 drivers/net/ethernet/ti/netcp_ethss.c static int set_xgbe_ethss10_priv(struct gbe_priv *gbe_dev, gbe_dev 3235 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3241 drivers/net/ethernet/ti/netcp_ethss.c regs = devm_ioremap_resource(gbe_dev->dev, &res); gbe_dev 3243 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "Failed to map xgbe ss register base\n"); gbe_dev 3246 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ss_regs = regs; gbe_dev 3250 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3256 drivers/net/ethernet/ti/netcp_ethss.c regs = devm_ioremap_resource(gbe_dev->dev, &res); gbe_dev 3258 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "Failed to map xgbe sm register base\n"); gbe_dev 3261 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->switch_regs = regs; gbe_dev 3265 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3271 drivers/net/ethernet/ti/netcp_ethss.c regs = devm_ioremap_resource(gbe_dev->dev, &res); gbe_dev 3273 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "Failed to map xgbe serdes register base\n"); gbe_dev 3276 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->xgbe_serdes_regs = regs; gbe_dev 3278 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_stats_mods = gbe_dev->max_num_ports; gbe_dev 3279 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->et_stats = xgbe10_et_stats; gbe_dev 3280 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats = ARRAY_SIZE(xgbe10_et_stats); gbe_dev 3282 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats = devm_kcalloc(gbe_dev->dev, gbe_dev 3283 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats, sizeof(u64), gbe_dev 3285 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->hw_stats) { gbe_dev 3286 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "hw_stats memory allocation failed\n"); gbe_dev 3290 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats_prev = gbe_dev 3291 drivers/net/ethernet/ti/netcp_ethss.c devm_kcalloc(gbe_dev->dev, gbe_dev 3292 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats, sizeof(u32), gbe_dev 3294 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->hw_stats_prev) { gbe_dev 3295 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3300 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ss_version = XGBE_SS_VERSION_10; gbe_dev 3301 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->sgmii_port_regs = gbe_dev->ss_regs + gbe_dev 3303 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->host_port_regs = gbe_dev->ss_regs + XGBE10_HOST_PORT_OFFSET; gbe_dev 3305 drivers/net/ethernet/ti/netcp_ethss.c for (i = 0; i < gbe_dev->max_num_ports; i++) gbe_dev 3306 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats_regs[i] = gbe_dev->switch_regs + gbe_dev 3309 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ale_reg = gbe_dev->switch_regs + XGBE10_ALE_OFFSET; gbe_dev 3310 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->cpts_reg = gbe_dev->switch_regs + XGBE10_CPTS_OFFSET; gbe_dev 3311 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ale_ports = gbe_dev->max_num_ports; gbe_dev 3312 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->host_port = XGBE10_HOST_PORT_NUM; gbe_dev 3313 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ale_entries = XGBE10_NUM_ALE_ENTRIES; gbe_dev 3314 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->stats_en_mask = (1 << (gbe_dev->max_num_ports)) - 1; gbe_dev 3317 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, ss_regs, id_ver); gbe_dev 3318 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, ss_regs, control); gbe_dev 3321 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, switch_regs, id_ver); gbe_dev 3322 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, switch_regs, control); gbe_dev 3323 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, switch_regs, ptype); gbe_dev 3324 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, switch_regs, stat_port_en); gbe_dev 3325 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, switch_regs, flow_control); gbe_dev 3328 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, host_port_regs, port_vlan); gbe_dev 3329 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, host_port_regs, tx_pri_map); gbe_dev 3330 drivers/net/ethernet/ti/netcp_ethss.c XGBE_SET_REG_OFS(gbe_dev, host_port_regs, rx_maxlen); gbe_dev 3334 drivers/net/ethernet/ti/netcp_ethss.c static int get_gbe_resource_version(struct gbe_priv *gbe_dev, gbe_dev 3343 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3349 drivers/net/ethernet/ti/netcp_ethss.c regs = devm_ioremap_resource(gbe_dev->dev, &res); gbe_dev 3351 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "Failed to map gbe register base\n"); gbe_dev 3354 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ss_regs = regs; gbe_dev 3355 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ss_version = readl(gbe_dev->ss_regs); gbe_dev 3359 drivers/net/ethernet/ti/netcp_ethss.c static int set_gbe_ethss14_priv(struct gbe_priv *gbe_dev, gbe_dev 3368 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3374 drivers/net/ethernet/ti/netcp_ethss.c regs = devm_ioremap_resource(gbe_dev->dev, &res); gbe_dev 3376 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3380 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->sgmii_port34_regs = regs; gbe_dev 3384 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3390 drivers/net/ethernet/ti/netcp_ethss.c regs = devm_ioremap_resource(gbe_dev->dev, &res); gbe_dev 3392 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3396 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->switch_regs = regs; gbe_dev 3398 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_stats_mods = gbe_dev->max_num_slaves; gbe_dev 3399 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->et_stats = gbe13_et_stats; gbe_dev 3400 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats = ARRAY_SIZE(gbe13_et_stats); gbe_dev 3402 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats = devm_kcalloc(gbe_dev->dev, gbe_dev 3403 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats, sizeof(u64), gbe_dev 3405 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->hw_stats) { gbe_dev 3406 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "hw_stats memory allocation failed\n"); gbe_dev 3410 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats_prev = gbe_dev 3411 drivers/net/ethernet/ti/netcp_ethss.c devm_kcalloc(gbe_dev->dev, gbe_dev 3412 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats, sizeof(u32), gbe_dev 3414 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->hw_stats_prev) { gbe_dev 3415 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3420 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->sgmii_port_regs = gbe_dev->ss_regs + GBE13_SGMII_MODULE_OFFSET; gbe_dev 3421 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->host_port_regs = gbe_dev->switch_regs + GBE13_HOST_PORT_OFFSET; gbe_dev 3427 drivers/net/ethernet/ti/netcp_ethss.c for (i = 0; i < gbe_dev->max_num_slaves; i++) { gbe_dev 3428 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats_regs[i] = gbe_dev 3429 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->switch_regs + GBE13_HW_STATS_OFFSET + gbe_dev 3433 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->cpts_reg = gbe_dev->switch_regs + GBE13_CPTS_OFFSET; gbe_dev 3434 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ale_reg = gbe_dev->switch_regs + GBE13_ALE_OFFSET; gbe_dev 3435 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ale_ports = gbe_dev->max_num_ports; gbe_dev 3436 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->host_port = GBE13_HOST_PORT_NUM; gbe_dev 3437 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ale_entries = GBE13_NUM_ALE_ENTRIES; gbe_dev 3438 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->stats_en_mask = GBE13_REG_VAL_STAT_ENABLE_ALL; gbe_dev 3441 drivers/net/ethernet/ti/netcp_ethss.c GBE_SET_REG_OFS(gbe_dev, ss_regs, id_ver); gbe_dev 3444 drivers/net/ethernet/ti/netcp_ethss.c GBE_SET_REG_OFS(gbe_dev, switch_regs, id_ver); gbe_dev 3445 drivers/net/ethernet/ti/netcp_ethss.c GBE_SET_REG_OFS(gbe_dev, switch_regs, control); gbe_dev 3446 drivers/net/ethernet/ti/netcp_ethss.c GBE_SET_REG_OFS(gbe_dev, switch_regs, soft_reset); gbe_dev 3447 drivers/net/ethernet/ti/netcp_ethss.c GBE_SET_REG_OFS(gbe_dev, switch_regs, stat_port_en); gbe_dev 3448 drivers/net/ethernet/ti/netcp_ethss.c GBE_SET_REG_OFS(gbe_dev, switch_regs, ptype); gbe_dev 3449 drivers/net/ethernet/ti/netcp_ethss.c GBE_SET_REG_OFS(gbe_dev, switch_regs, flow_control); gbe_dev 3452 drivers/net/ethernet/ti/netcp_ethss.c GBE_SET_REG_OFS(gbe_dev, host_port_regs, port_vlan); gbe_dev 3453 drivers/net/ethernet/ti/netcp_ethss.c GBE_SET_REG_OFS(gbe_dev, host_port_regs, rx_maxlen); gbe_dev 3457 drivers/net/ethernet/ti/netcp_ethss.c static int set_gbenu_ethss_priv(struct gbe_priv *gbe_dev, gbe_dev 3464 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_stats_mods = gbe_dev->max_num_ports; gbe_dev 3465 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->et_stats = gbenu_et_stats; gbe_dev 3467 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_MU(gbe_dev)) gbe_dev 3468 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats = GBENU_ET_STATS_HOST_SIZE + gbe_dev 3469 drivers/net/ethernet/ti/netcp_ethss.c (gbe_dev->max_num_slaves * GBENU_ET_STATS_PORT_SIZE); gbe_dev 3471 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats = GBENU_ET_STATS_HOST_SIZE + gbe_dev 3474 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats = devm_kcalloc(gbe_dev->dev, gbe_dev 3475 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats, sizeof(u64), gbe_dev 3477 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->hw_stats) { gbe_dev 3478 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "hw_stats memory allocation failed\n"); gbe_dev 3482 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats_prev = gbe_dev 3483 drivers/net/ethernet/ti/netcp_ethss.c devm_kcalloc(gbe_dev->dev, gbe_dev 3484 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_et_stats, sizeof(u32), gbe_dev 3486 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->hw_stats_prev) { gbe_dev 3487 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3494 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3500 drivers/net/ethernet/ti/netcp_ethss.c regs = devm_ioremap_resource(gbe_dev->dev, &res); gbe_dev 3502 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, gbe_dev 3506 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->switch_regs = regs; gbe_dev 3508 drivers/net/ethernet/ti/netcp_ethss.c if (!IS_SS_ID_2U(gbe_dev)) gbe_dev 3509 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->sgmii_port_regs = gbe_dev 3510 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ss_regs + GBENU_SGMII_MODULE_OFFSET; gbe_dev 3516 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->sgmii_port34_regs = gbe_dev->sgmii_port_regs + gbe_dev 3519 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->host_port_regs = gbe_dev->switch_regs + GBENU_HOST_PORT_OFFSET; gbe_dev 3521 drivers/net/ethernet/ti/netcp_ethss.c for (i = 0; i < (gbe_dev->max_num_ports); i++) gbe_dev 3522 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->hw_stats_regs[i] = gbe_dev->switch_regs + gbe_dev 3525 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->cpts_reg = gbe_dev->switch_regs + GBENU_CPTS_OFFSET; gbe_dev 3526 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ale_reg = gbe_dev->switch_regs + GBENU_ALE_OFFSET; gbe_dev 3527 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ale_ports = gbe_dev->max_num_ports; gbe_dev 3528 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->host_port = GBENU_HOST_PORT_NUM; gbe_dev 3529 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->stats_en_mask = (1 << (gbe_dev->max_num_ports)) - 1; gbe_dev 3532 drivers/net/ethernet/ti/netcp_ethss.c GBENU_SET_REG_OFS(gbe_dev, ss_regs, id_ver); gbe_dev 3534 drivers/net/ethernet/ti/netcp_ethss.c GBENU_SET_REG_OFS(gbe_dev, ss_regs, rgmii_status); gbe_dev 3537 drivers/net/ethernet/ti/netcp_ethss.c GBENU_SET_REG_OFS(gbe_dev, switch_regs, id_ver); gbe_dev 3538 drivers/net/ethernet/ti/netcp_ethss.c GBENU_SET_REG_OFS(gbe_dev, switch_regs, control); gbe_dev 3539 drivers/net/ethernet/ti/netcp_ethss.c GBENU_SET_REG_OFS(gbe_dev, switch_regs, stat_port_en); gbe_dev 3540 drivers/net/ethernet/ti/netcp_ethss.c GBENU_SET_REG_OFS(gbe_dev, switch_regs, ptype); gbe_dev 3543 drivers/net/ethernet/ti/netcp_ethss.c GBENU_SET_REG_OFS(gbe_dev, host_port_regs, port_vlan); gbe_dev 3544 drivers/net/ethernet/ti/netcp_ethss.c GBENU_SET_REG_OFS(gbe_dev, host_port_regs, rx_maxlen); gbe_dev 3550 drivers/net/ethernet/ti/netcp_ethss.c GBENU_SET_REG_OFS(gbe_dev, host_port_regs, tx_pri_map); gbe_dev 3560 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev; gbe_dev 3569 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev = devm_kzalloc(dev, sizeof(struct gbe_priv), GFP_KERNEL); gbe_dev 3570 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev) gbe_dev 3575 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->max_num_slaves = 4; gbe_dev 3577 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->max_num_slaves = 8; gbe_dev 3579 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->max_num_slaves = 1; gbe_dev 3582 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->max_num_slaves = 2; gbe_dev 3587 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->max_num_ports = gbe_dev->max_num_slaves + 1; gbe_dev 3589 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->dev = dev; gbe_dev 3590 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->netcp_device = netcp_device; gbe_dev 3591 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->rx_packet_max = NETCP_MAX_FRAME_SIZE; gbe_dev 3594 drivers/net/ethernet/ti/netcp_ethss.c spin_lock_init(&gbe_dev->hw_stats_lock); gbe_dev 3597 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->enable_ale = true; gbe_dev 3600 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->enable_ale = false; gbe_dev 3605 drivers/net/ethernet/ti/netcp_ethss.c &gbe_dev->tx_queue_id); gbe_dev 3608 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->tx_queue_id = GBE_TX_QUEUE; gbe_dev 3612 drivers/net/ethernet/ti/netcp_ethss.c &gbe_dev->dma_chan_name); gbe_dev 3619 drivers/net/ethernet/ti/netcp_ethss.c ret = get_gbe_resource_version(gbe_dev, node); gbe_dev 3623 drivers/net/ethernet/ti/netcp_ethss.c dev_dbg(dev, "ss_version: 0x%08x\n", gbe_dev->ss_version); gbe_dev 3625 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_VER_14(gbe_dev)) gbe_dev 3626 drivers/net/ethernet/ti/netcp_ethss.c ret = set_gbe_ethss14_priv(gbe_dev, node); gbe_dev 3627 drivers/net/ethernet/ti/netcp_ethss.c else if (IS_SS_ID_MU(gbe_dev)) gbe_dev 3628 drivers/net/ethernet/ti/netcp_ethss.c ret = set_gbenu_ethss_priv(gbe_dev, node); gbe_dev 3633 drivers/net/ethernet/ti/netcp_ethss.c ret = set_xgbe_ethss10_priv(gbe_dev, node); gbe_dev 3636 drivers/net/ethernet/ti/netcp_ethss.c ret = netcp_xgbe_serdes_init(gbe_dev->xgbe_serdes_regs, gbe_dev 3637 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ss_regs); gbe_dev 3650 drivers/net/ethernet/ti/netcp_ethss.c ret = netcp_txpipe_init(&gbe_dev->tx_pipe, netcp_device, gbe_dev 3651 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->dma_chan_name, gbe_dev->tx_queue_id); gbe_dev 3657 drivers/net/ethernet/ti/netcp_ethss.c ret = netcp_txpipe_open(&gbe_dev->tx_pipe); gbe_dev 3664 drivers/net/ethernet/ti/netcp_ethss.c INIT_LIST_HEAD(&gbe_dev->gbe_intf_head); gbe_dev 3672 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->num_slaves++; gbe_dev 3673 drivers/net/ethernet/ti/netcp_ethss.c if (gbe_dev->num_slaves >= gbe_dev->max_num_slaves) { gbe_dev 3680 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->num_slaves) gbe_dev 3685 drivers/net/ethernet/ti/netcp_ethss.c INIT_LIST_HEAD(&gbe_dev->secondary_slaves); gbe_dev 3686 drivers/net/ethernet/ti/netcp_ethss.c if (secondary_ports && (gbe_dev->num_slaves < gbe_dev->max_num_slaves)) gbe_dev 3687 drivers/net/ethernet/ti/netcp_ethss.c init_secondary_ports(gbe_dev, secondary_ports); gbe_dev 3690 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->num_slaves) { gbe_dev 3698 drivers/net/ethernet/ti/netcp_ethss.c ale_params.dev = gbe_dev->dev; gbe_dev 3699 drivers/net/ethernet/ti/netcp_ethss.c ale_params.ale_regs = gbe_dev->ale_reg; gbe_dev 3701 drivers/net/ethernet/ti/netcp_ethss.c ale_params.ale_entries = gbe_dev->ale_entries; gbe_dev 3702 drivers/net/ethernet/ti/netcp_ethss.c ale_params.ale_ports = gbe_dev->ale_ports; gbe_dev 3703 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_MU(gbe_dev)) { gbe_dev 3707 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->ale = cpsw_ale_create(&ale_params); gbe_dev 3708 drivers/net/ethernet/ti/netcp_ethss.c if (!gbe_dev->ale) { gbe_dev 3709 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "error initializing ale engine\n"); gbe_dev 3713 drivers/net/ethernet/ti/netcp_ethss.c dev_dbg(gbe_dev->dev, "Created a gbe ale engine\n"); gbe_dev 3720 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->cpts = cpts_create(gbe_dev->dev, gbe_dev->cpts_reg, cpts_node); gbe_dev 3722 drivers/net/ethernet/ti/netcp_ethss.c if (IS_ENABLED(CONFIG_TI_CPTS) && IS_ERR(gbe_dev->cpts)) { gbe_dev 3723 drivers/net/ethernet/ti/netcp_ethss.c ret = PTR_ERR(gbe_dev->cpts); gbe_dev 3728 drivers/net/ethernet/ti/netcp_ethss.c gbe_init_host_port(gbe_dev); gbe_dev 3730 drivers/net/ethernet/ti/netcp_ethss.c spin_lock_bh(&gbe_dev->hw_stats_lock); gbe_dev 3731 drivers/net/ethernet/ti/netcp_ethss.c for (i = 0; i < gbe_dev->num_stats_mods; i++) { gbe_dev 3732 drivers/net/ethernet/ti/netcp_ethss.c if (IS_SS_ID_VER_14(gbe_dev)) gbe_dev 3733 drivers/net/ethernet/ti/netcp_ethss.c gbe_reset_mod_stats_ver14(gbe_dev, i); gbe_dev 3735 drivers/net/ethernet/ti/netcp_ethss.c gbe_reset_mod_stats(gbe_dev, i); gbe_dev 3737 drivers/net/ethernet/ti/netcp_ethss.c spin_unlock_bh(&gbe_dev->hw_stats_lock); gbe_dev 3739 drivers/net/ethernet/ti/netcp_ethss.c timer_setup(&gbe_dev->timer, netcp_ethss_timer, 0); gbe_dev 3740 drivers/net/ethernet/ti/netcp_ethss.c gbe_dev->timer.expires = jiffies + GBE_TIMER_INTERVAL; gbe_dev 3741 drivers/net/ethernet/ti/netcp_ethss.c add_timer(&gbe_dev->timer); gbe_dev 3742 drivers/net/ethernet/ti/netcp_ethss.c *inst_priv = gbe_dev; gbe_dev 3746 drivers/net/ethernet/ti/netcp_ethss.c free_secondary_ports(gbe_dev); gbe_dev 3753 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = inst_priv; gbe_dev 3758 drivers/net/ethernet/ti/netcp_ethss.c dev_err(gbe_dev->dev, "interface node not available\n"); gbe_dev 3762 drivers/net/ethernet/ti/netcp_ethss.c gbe_intf = devm_kzalloc(gbe_dev->dev, sizeof(*gbe_intf), GFP_KERNEL); gbe_dev 3767 drivers/net/ethernet/ti/netcp_ethss.c gbe_intf->dev = gbe_dev->dev; gbe_dev 3768 drivers/net/ethernet/ti/netcp_ethss.c gbe_intf->gbe_dev = gbe_dev; gbe_dev 3770 drivers/net/ethernet/ti/netcp_ethss.c gbe_intf->slave = devm_kzalloc(gbe_dev->dev, gbe_dev 3778 drivers/net/ethernet/ti/netcp_ethss.c if (init_slave(gbe_dev, gbe_intf->slave, node)) { gbe_dev 3783 drivers/net/ethernet/ti/netcp_ethss.c gbe_intf->tx_pipe = gbe_dev->tx_pipe; gbe_dev 3785 drivers/net/ethernet/ti/netcp_ethss.c list_add_tail(&gbe_intf->gbe_intf_list, &gbe_dev->gbe_intf_head); gbe_dev 3791 drivers/net/ethernet/ti/netcp_ethss.c devm_kfree(gbe_dev->dev, gbe_intf->slave); gbe_dev 3793 drivers/net/ethernet/ti/netcp_ethss.c devm_kfree(gbe_dev->dev, gbe_intf); gbe_dev 3810 drivers/net/ethernet/ti/netcp_ethss.c struct gbe_priv *gbe_dev = inst_priv; gbe_dev 3812 drivers/net/ethernet/ti/netcp_ethss.c del_timer_sync(&gbe_dev->timer); gbe_dev 3813 drivers/net/ethernet/ti/netcp_ethss.c cpts_release(gbe_dev->cpts); gbe_dev 3814 drivers/net/ethernet/ti/netcp_ethss.c cpsw_ale_stop(gbe_dev->ale); gbe_dev 3815 drivers/net/ethernet/ti/netcp_ethss.c netcp_txpipe_close(&gbe_dev->tx_pipe); gbe_dev 3816 drivers/net/ethernet/ti/netcp_ethss.c free_secondary_ports(gbe_dev); gbe_dev 3818 drivers/net/ethernet/ti/netcp_ethss.c if (!list_empty(&gbe_dev->gbe_intf_head)) gbe_dev 3819 drivers/net/ethernet/ti/netcp_ethss.c dev_alert(gbe_dev->dev,