18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci/* Copyright (C) 2017 Netronome Systems, Inc. */
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ci#include "../nfpcore/nfp_cpp.h"
58c2ecf20Sopenharmony_ci#include "../nfpcore/nfp_nsp.h"
68c2ecf20Sopenharmony_ci#include "../nfp_app.h"
78c2ecf20Sopenharmony_ci#include "../nfp_main.h"
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cistatic int nfp_nic_init(struct nfp_app *app)
108c2ecf20Sopenharmony_ci{
118c2ecf20Sopenharmony_ci	struct nfp_pf *pf = app->pf;
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci	if (pf->eth_tbl && pf->max_data_vnics != pf->eth_tbl->count) {
148c2ecf20Sopenharmony_ci		nfp_err(pf->cpp, "ETH entries don't match vNICs (%d vs %d)\n",
158c2ecf20Sopenharmony_ci			pf->max_data_vnics, pf->eth_tbl->count);
168c2ecf20Sopenharmony_ci		return -EINVAL;
178c2ecf20Sopenharmony_ci	}
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	return 0;
208c2ecf20Sopenharmony_ci}
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_cistatic int nfp_nic_sriov_enable(struct nfp_app *app, int num_vfs)
238c2ecf20Sopenharmony_ci{
248c2ecf20Sopenharmony_ci	return 0;
258c2ecf20Sopenharmony_ci}
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_cistatic void nfp_nic_sriov_disable(struct nfp_app *app)
288c2ecf20Sopenharmony_ci{
298c2ecf20Sopenharmony_ci}
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciconst struct nfp_app_type app_nic = {
328c2ecf20Sopenharmony_ci	.id		= NFP_APP_CORE_NIC,
338c2ecf20Sopenharmony_ci	.name		= "nic",
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci	.init		= nfp_nic_init,
368c2ecf20Sopenharmony_ci	.vnic_alloc	= nfp_app_nic_vnic_alloc,
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci	.sriov_enable	= nfp_nic_sriov_enable,
398c2ecf20Sopenharmony_ci	.sriov_disable	= nfp_nic_sriov_disable,
408c2ecf20Sopenharmony_ci};
41