Lines Matching +full:lower +full:- +full:case
1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
16 struct enetc_hw *hw = &pf->si->hw; in enetc4_get_port_caps()
20 pf->caps.num_vsi = (val & ECAPR1_NUM_VSI) >> 24; in enetc4_get_port_caps()
21 pf->caps.num_msix = ((val & ECAPR1_NUM_MSIX) >> 12) + 1; in enetc4_get_port_caps()
24 pf->caps.num_rx_bdr = (val & ECAPR2_NUM_RX_BDR) >> 16; in enetc4_get_port_caps()
25 pf->caps.num_tx_bdr = val & ECAPR2_NUM_TX_BDR; in enetc4_get_port_caps()
28 pf->caps.half_duplex = (val & PMCAPR_HD) ? 1 : 0; in enetc4_get_port_caps()
34 u16 lower = get_unaligned_le16(addr + 4); in enetc4_pf_set_si_primary_mac() local
38 __raw_writel(upper, hw->port + ENETC4_PSIPMAR0(si)); in enetc4_pf_set_si_primary_mac()
39 __raw_writew(lower, hw->port + ENETC4_PSIPMAR1(si)); in enetc4_pf_set_si_primary_mac()
41 __raw_writel(upper, hw->port + ENETC4_PMAR0); in enetc4_pf_set_si_primary_mac()
42 __raw_writew(lower, hw->port + ENETC4_PMAR1); in enetc4_pf_set_si_primary_mac()
50 u16 lower; in enetc4_pf_get_si_primary_mac() local
52 upper = __raw_readl(hw->port + ENETC4_PSIPMAR0(si)); in enetc4_pf_get_si_primary_mac()
53 lower = __raw_readw(hw->port + ENETC4_PSIPMAR1(si)); in enetc4_pf_get_si_primary_mac()
56 put_unaligned_le16(lower, addr + 4); in enetc4_pf_get_si_primary_mac()
68 pf->si = si; in enetc4_pf_struct_init()
69 pf->total_vfs = pci_sriov_get_totalvfs(si->pdev); in enetc4_pf_struct_init()
70 pf->ops = &enetc4_pf_ops; in enetc4_pf_struct_init()
93 struct enetc_hw *hw = &pf->si->hw; in enetc4_default_rings_allocation()
98 if (pf->caps.num_rx_bdr < ENETC_SI_MAX_RING_NUM + pf->caps.num_vsi) in enetc4_default_rings_allocation()
99 num_rx_bdr = pf->caps.num_rx_bdr - pf->caps.num_vsi; in enetc4_default_rings_allocation()
103 if (pf->caps.num_tx_bdr < ENETC_SI_MAX_RING_NUM + pf->caps.num_vsi) in enetc4_default_rings_allocation()
104 num_tx_bdr = pf->caps.num_tx_bdr - pf->caps.num_vsi; in enetc4_default_rings_allocation()
111 num_rx_bdr = pf->caps.num_rx_bdr - num_rx_bdr; in enetc4_default_rings_allocation()
112 rx_rem = num_rx_bdr % pf->caps.num_vsi; in enetc4_default_rings_allocation()
113 num_rx_bdr = num_rx_bdr / pf->caps.num_vsi; in enetc4_default_rings_allocation()
115 num_tx_bdr = pf->caps.num_tx_bdr - num_tx_bdr; in enetc4_default_rings_allocation()
116 tx_rem = num_tx_bdr % pf->caps.num_vsi; in enetc4_default_rings_allocation()
117 num_tx_bdr = num_tx_bdr / pf->caps.num_vsi; in enetc4_default_rings_allocation()
119 for (i = 0; i < pf->caps.num_vsi; i++) { in enetc4_default_rings_allocation()
146 struct enetc_hw *hw = &pf->si->hw; in enetc4_set_default_si_vlan_promisc()
147 int num_si = pf->caps.num_vsi + 1; in enetc4_set_default_si_vlan_promisc()
155 /* Allocate the number of MSI-X vectors for per SI. */
158 struct enetc_hw *hw = &pf->si->hw; in enetc4_set_si_msix_num()
162 total_si = pf->caps.num_vsi + 1; in enetc4_set_si_msix_num()
164 num_msix = pf->caps.num_msix / total_si + in enetc4_set_si_msix_num()
165 pf->caps.num_msix % total_si - 1; in enetc4_set_si_msix_num()
169 num_msix = pf->caps.num_msix / total_si - 1; in enetc4_set_si_msix_num()
171 for (i = 0; i < pf->caps.num_vsi; i++) in enetc4_set_si_msix_num()
177 struct enetc_hw *hw = &pf->si->hw; in enetc4_enable_all_si()
178 int num_si = pf->caps.num_vsi + 1; in enetc4_enable_all_si()
191 struct enetc_hw *hw = &pf->si->hw; in enetc4_configure_port_si()
221 struct enetc_si *si = pf->si; in enetc4_set_trx_frame_size()
226 enetc4_pf_reset_tc_msdu(&si->hw); in enetc4_set_trx_frame_size()
240 struct enetc_hw *hw = &pf->si->hw; in enetc4_set_default_rss_key()
249 struct enetc_hw *hw = &pf->si->hw; in enetc4_enable_trx()
265 struct device *dev = &pf->si->pdev->dev; in enetc4_pf_init()
269 err = enetc_setup_mac_addresses(dev->of_node, pf); in enetc4_pf_init()
293 return pf->pcs; in enetc4_pl_mac_select_pcs()
299 struct enetc_ndev_priv *priv = netdev_priv(pf->si->ndev); in enetc4_mac_config()
300 struct enetc_si *si = pf->si; in enetc4_mac_config()
307 case PHY_INTERFACE_MODE_RGMII: in enetc4_mac_config()
308 case PHY_INTERFACE_MODE_RGMII_ID: in enetc4_mac_config()
309 case PHY_INTERFACE_MODE_RGMII_RXID: in enetc4_mac_config()
310 case PHY_INTERFACE_MODE_RGMII_TXID: in enetc4_mac_config()
312 /* We need to enable auto-negotiation for the MAC in enetc4_mac_config()
313 * if its RGMII interface support In-Band status. in enetc4_mac_config()
318 case PHY_INTERFACE_MODE_RMII: in enetc4_mac_config()
321 case PHY_INTERFACE_MODE_SGMII: in enetc4_mac_config()
322 case PHY_INTERFACE_MODE_2500BASEX: in enetc4_mac_config()
325 case PHY_INTERFACE_MODE_10GBASER: in enetc4_mac_config()
326 case PHY_INTERFACE_MODE_XGMII: in enetc4_mac_config()
327 case PHY_INTERFACE_MODE_USXGMII: in enetc4_mac_config()
331 dev_err(priv->dev, in enetc4_mac_config()
344 enetc4_mac_config(pf, mode, state->interface); in enetc4_pl_mac_config()
349 u32 old_speed = priv->speed; in enetc4_set_port_speed()
355 val = enetc_port_rd(&priv->si->hw, ENETC4_PCR); in enetc4_set_port_speed()
359 case SPEED_100: in enetc4_set_port_speed()
360 case SPEED_1000: in enetc4_set_port_speed()
361 case SPEED_2500: in enetc4_set_port_speed()
362 case SPEED_10000: in enetc4_set_port_speed()
365 case SPEED_10: in enetc4_set_port_speed()
370 priv->speed = speed; in enetc4_set_port_speed()
371 enetc_port_wr(&priv->si->hw, ENETC4_PCR, val); in enetc4_set_port_speed()
376 struct enetc_si *si = pf->si; in enetc4_set_rgmii_mac()
383 case SPEED_1000: in enetc4_set_rgmii_mac()
386 case SPEED_100: in enetc4_set_rgmii_mac()
389 case SPEED_10: in enetc4_set_rgmii_mac()
404 struct enetc_si *si = pf->si; in enetc4_set_rmii_mac()
411 case SPEED_100: in enetc4_set_rmii_mac()
414 case SPEED_10: in enetc4_set_rmii_mac()
429 struct enetc_si *si = pf->si; in enetc4_set_hd_flow_control()
432 if (!pf->caps.half_duplex) in enetc4_set_hd_flow_control()
445 struct enetc_si *si = pf->si; in enetc4_set_rx_pause()
460 struct enetc_hw *hw = &pf->si->hw; in enetc4_set_tx_pause()
481 /* Also, set up the refresh timer to send follow-up PAUSE in enetc4_set_tx_pause()
482 * frames at half the quanta value, in case the congestion in enetc4_set_tx_pause()
495 enetc_port_mac_wr(pf->si, ENETC4_PM_PAUSE_QUANTA(0), init_quanta); in enetc4_set_tx_pause()
496 enetc_port_mac_wr(pf->si, ENETC4_PM_PAUSE_THRESH(0), refresh_quanta); in enetc4_set_tx_pause()
503 struct enetc_si *si = pf->si; in enetc4_enable_mac()
519 struct enetc_si *si = pf->si; in enetc4_pl_mac_link_up()
523 priv = netdev_priv(si->ndev); in enetc4_pl_mac_link_up()
537 if (priv->active_offloads & ENETC_F_QBU) in enetc4_pl_mac_link_up()
551 enetc4_set_tx_pause(pf, priv->num_rx_rings, tx_pause); in enetc4_pl_mac_link_up()
582 struct enetc_pf *pf = enetc_si_priv(priv->si); in enetc4_link_init()
583 struct device *dev = priv->dev; in enetc4_link_init()
586 err = of_get_phy_mode(node, &pf->if_mode); in enetc4_link_init()
614 struct enetc_pf *pf = enetc_si_priv(priv->si); in enetc4_link_deinit()
622 struct device *dev = &si->pdev->dev; in enetc4_pf_netdev_create()
628 si->num_tx_rings, si->num_rx_rings); in enetc4_pf_netdev_create()
630 return -ENOMEM; in enetc4_pf_netdev_create()
633 priv->ref_clk = devm_clk_get_optional(dev, "ref"); in enetc4_pf_netdev_create()
634 if (IS_ERR(priv->ref_clk)) { in enetc4_pf_netdev_create()
636 err = PTR_ERR(priv->ref_clk); in enetc4_pf_netdev_create()
652 dev_err(dev, "Failed to alloc MSI-X\n"); in enetc4_pf_netdev_create()
656 err = enetc4_link_init(priv, dev->of_node); in enetc4_pf_netdev_create()
682 struct enetc_ndev_priv *priv = netdev_priv(si->ndev); in enetc4_pf_netdev_destroy()
683 struct net_device *ndev = si->ndev; in enetc4_pf_netdev_destroy()
694 struct device *dev = &pdev->dev; in enetc4_pf_probe()
710 if (!si->hw.port || !si->hw.global) in enetc4_pf_probe()
711 return dev_err_probe(dev, -ENODEV, in enetc4_pf_probe()
714 si->revision = enetc_get_ip_revision(&si->hw); in enetc4_pf_probe()