1 /* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
2 /* Copyright 2024 NXP */
3
4 #include "enetc_pf.h"
5
6 void enetc_set_si_hw_addr(struct enetc_pf *pf, int si, const u8 *mac_addr);
7 int enetc_pf_set_mac_addr(struct net_device *ndev, void *addr);
8 int enetc_setup_mac_addresses(struct device_node *np, struct enetc_pf *pf);
9 void enetc_pf_netdev_setup(struct enetc_si *si, struct net_device *ndev,
10 const struct net_device_ops *ndev_ops);
11 int enetc_mdiobus_create(struct enetc_pf *pf, struct device_node *node);
12 void enetc_mdiobus_destroy(struct enetc_pf *pf);
13 int enetc_phylink_create(struct enetc_ndev_priv *priv, struct device_node *node,
14 const struct phylink_mac_ops *ops);
15 void enetc_phylink_destroy(struct enetc_ndev_priv *priv);
16 void enetc_set_default_rss_key(struct enetc_pf *pf);
17 int enetc_vlan_rx_add_vid(struct net_device *ndev, __be16 prot, u16 vid);
18 int enetc_vlan_rx_del_vid(struct net_device *ndev, __be16 prot, u16 vid);
19 int enetc_init_sriov_resources(struct enetc_pf *pf);
20 void enetc_set_si_uc_promisc(struct enetc_si *si, int si_id, bool promisc);
21 void enetc_set_si_mc_promisc(struct enetc_si *si, int si_id, bool promisc);
22 void enetc_set_si_uc_hash_filter(struct enetc_si *si, int si_id, u64 hash);
23 void enetc_set_si_mc_hash_filter(struct enetc_si *si, int si_id, u64 hash);
24 void enetc_set_si_vlan_promisc(struct enetc_si *si, int si_id, bool promisc);
25
enetc_get_ip_revision(struct enetc_hw * hw)26 static inline u16 enetc_get_ip_revision(struct enetc_hw *hw)
27 {
28 return enetc_global_rd(hw, ENETC_G_EIPBRR0) & EIPBRR0_REVISION;
29 }
30
31 #if IS_ENABLED(CONFIG_PCI_IOV)
32 int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs);
33 #else
enetc_sriov_configure(struct pci_dev * pdev,int num_vfs)34 static inline int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs)
35 {
36 return 0;
37 }
38 #endif
39