Lines Matching full:app

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