Lines Matching defs:app

18 nfp_net_sriov_check(struct nfp_app *app, int vf, u16 cap, const char *msg, bool warn)
22 if (!app || !app->pf->vfcfg_tbl2)
25 cap_vf = readw(app->pf->vfcfg_tbl2 + NFP_NET_VF_CFG_MB_CAP);
28 nfp_warn(app->pf->cpp, "ndo_set_vf_%s not supported\n", msg);
32 if (vf < 0 || vf >= app->pf->num_vfs) {
34 nfp_warn(app->pf->cpp, "invalid VF id %d\n", vf);
42 nfp_net_sriov_update(struct nfp_app *app, int vf, u16 update, const char *msg)
48 writeb(vf, app->pf->vfcfg_tbl2 + NFP_NET_VF_CFG_MB_VF_NUM);
49 writew(update, app->pf->vfcfg_tbl2 + NFP_NET_VF_CFG_MB_UPD);
51 nn = list_first_entry(&app->pf->vnics, struct nfp_net, vnic_list);
57 ret = readw(app->pf->vfcfg_tbl2 + NFP_NET_VF_CFG_MB_RET);
59 nfp_warn(app->pf->cpp,
66 struct nfp_app *app = nfp_app_from_netdev(netdev);
70 err = nfp_net_sriov_check(app, vf, NFP_NET_VF_CFG_MB_CAP_MAC, "mac", true);
75 nfp_warn(app->pf->cpp,
83 writel(get_unaligned_be32(mac), app->pf->vfcfg_tbl2 + vf_offset);
85 app->pf->vfcfg_tbl2 + vf_offset + NFP_NET_VF_CFG_MAC_LO);
87 err = nfp_net_sriov_update(app, vf, NFP_NET_VF_CFG_MB_UPD_MAC, "MAC");
89 nfp_info(app->pf->cpp,
99 struct nfp_app *app = nfp_app_from_netdev(netdev);
106 err = nfp_net_sriov_check(app, vf, NFP_NET_VF_CFG_MB_CAP_VLAN, "vlan", true);
114 nfp_warn(app->pf->cpp,
120 err = nfp_net_sriov_check(app, vf, NFP_NET_VF_CFG_MB_CAP_VLAN_PROTO, "vlan_proto", true);
142 writel(vlan_tag, app->pf->vfcfg_tbl2 + vf_offset + NFP_NET_VF_CFG_VLAN);
144 return nfp_net_sriov_update(app, vf, update, "vlan");
150 struct nfp_app *app = nfp_app_from_netdev(netdev);
154 err = nfp_net_sriov_check(app, vf, NFP_NET_VF_CFG_MB_CAP_RATE, "rate", true);
160 nfp_warn(app->cpp, "tx-rate exceeds %d.\n",
172 app->pf->vfcfg_tbl2 + vf_offset + NFP_NET_VF_CFG_RATE);
174 return nfp_net_sriov_update(app, vf, NFP_NET_VF_CFG_MB_UPD_RATE,
180 struct nfp_app *app = nfp_app_from_netdev(netdev);
185 err = nfp_net_sriov_check(app, vf, NFP_NET_VF_CFG_MB_CAP_SPOOF,
193 vf_ctrl = readb(app->pf->vfcfg_tbl2 + vf_offset);
196 writeb(vf_ctrl, app->pf->vfcfg_tbl2 + vf_offset);
198 return nfp_net_sriov_update(app, vf, NFP_NET_VF_CFG_MB_UPD_SPOOF,
204 struct nfp_app *app = nfp_app_from_netdev(netdev);
209 err = nfp_net_sriov_check(app, vf, NFP_NET_VF_CFG_MB_CAP_TRUST,
217 vf_ctrl = readb(app->pf->vfcfg_tbl2 + vf_offset);
220 writeb(vf_ctrl, app->pf->vfcfg_tbl2 + vf_offset);
222 return nfp_net_sriov_update(app, vf, NFP_NET_VF_CFG_MB_UPD_TRUST,
229 struct nfp_app *app = nfp_app_from_netdev(netdev);
234 err = nfp_net_sriov_check(app, vf, NFP_NET_VF_CFG_MB_CAP_LINK_STATE,
251 vf_ctrl = readb(app->pf->vfcfg_tbl2 + vf_offset);
254 writeb(vf_ctrl, app->pf->vfcfg_tbl2 + vf_offset);
256 return nfp_net_sriov_update(app, vf, NFP_NET_VF_CFG_MB_UPD_LINK_STATE,
263 struct nfp_app *app = nfp_app_from_netdev(netdev);
270 err = nfp_net_sriov_check(app, vf, 0, "", true);
276 mac_hi = readl(app->pf->vfcfg_tbl2 + vf_offset);
277 mac_lo = readw(app->pf->vfcfg_tbl2 + vf_offset + NFP_NET_VF_CFG_MAC_LO);
279 flags = readb(app->pf->vfcfg_tbl2 + vf_offset + NFP_NET_VF_CFG_CTRL);
280 vlan_tag = readl(app->pf->vfcfg_tbl2 + vf_offset + NFP_NET_VF_CFG_VLAN);
290 if (!nfp_net_sriov_check(app, vf, NFP_NET_VF_CFG_MB_CAP_VLAN_PROTO, "vlan_proto", false))
296 err = nfp_net_sriov_check(app, vf, NFP_NET_VF_CFG_MB_CAP_RATE, "rate", false);
298 rate = readl(app->pf->vfcfg_tbl2 + vf_offset +