Lines Matching +full:port +full:- +full:id
1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 /* Copyright (C) 2017-2018 Netronome Systems, Inc. */
43 return nn->app; in nfp_app_from_netdev()
49 return repr->app; in nfp_app_from_netdev()
59 if (!app || !app->pf->mip) in nfp_app_mip_name()
61 return nfp_mip_name(app->pf->mip); in nfp_app_mip_name()
68 if (!app || !app->type->ndo_init) in nfp_app_ndo_init()
70 return app->type->ndo_init(app, netdev); in nfp_app_ndo_init()
77 if (app && app->type->ndo_uninit) in nfp_app_ndo_uninit()
78 app->type->ndo_uninit(app, netdev); in nfp_app_ndo_uninit()
81 u64 *nfp_app_port_get_stats(struct nfp_port *port, u64 *data) in nfp_app_port_get_stats() argument
83 if (!port || !port->app || !port->app->type->port_get_stats) in nfp_app_port_get_stats()
85 return port->app->type->port_get_stats(port->app, port, data); in nfp_app_port_get_stats()
88 int nfp_app_port_get_stats_count(struct nfp_port *port) in nfp_app_port_get_stats_count() argument
90 if (!port || !port->app || !port->app->type->port_get_stats_count) in nfp_app_port_get_stats_count()
92 return port->app->type->port_get_stats_count(port->app, port); in nfp_app_port_get_stats_count()
95 u8 *nfp_app_port_get_stats_strings(struct nfp_port *port, u8 *data) in nfp_app_port_get_stats_strings() argument
97 if (!port || !port->app || !port->app->type->port_get_stats_strings) in nfp_app_port_get_stats_strings()
99 return port->app->type->port_get_stats_strings(port->app, port, data); in nfp_app_port_get_stats_strings()
123 return rcu_dereference_protected(app->reprs[type], in nfp_reprs_get_locked()
135 rcu_assign_pointer(app->reprs[type], reprs); in nfp_app_reprs_set()
150 if (nn->app != app) in nfp_app_netdev_feat_change()
157 reprs = rtnl_dereference(app->reprs[type]); in nfp_app_netdev_feat_change()
161 for (i = 0; i < reprs->num_reprs; i++) { in nfp_app_netdev_feat_change()
164 repr = rtnl_dereference(reprs->reprs[i]); in nfp_app_netdev_feat_change()
190 if (app->type->netdev_event) in nfp_app_netdev_event()
191 return app->type->netdev_event(app, netdev, event, ptr); in nfp_app_netdev_event()
199 app->ctrl = ctrl; in nfp_app_start()
201 if (app->type->start) { in nfp_app_start()
202 err = app->type->start(app); in nfp_app_start()
207 app->netdev_nb.notifier_call = nfp_app_netdev_event; in nfp_app_start()
208 err = register_netdevice_notifier(&app->netdev_nb); in nfp_app_start()
215 if (app->type->stop) in nfp_app_start()
216 app->type->stop(app); in nfp_app_start()
222 unregister_netdevice_notifier(&app->netdev_nb); in nfp_app_stop()
224 if (app->type->stop) in nfp_app_stop()
225 app->type->stop(app); in nfp_app_stop()
228 struct nfp_app *nfp_app_alloc(struct nfp_pf *pf, enum nfp_app_id id) in nfp_app_alloc() argument
232 if (id >= ARRAY_SIZE(apps) || !apps[id]) { in nfp_app_alloc()
233 nfp_err(pf->cpp, "unknown FW app ID 0x%02x, driver too old or support for FW not built in\n", id); in nfp_app_alloc()
234 return ERR_PTR(-EINVAL); in nfp_app_alloc()
237 if (WARN_ON(!apps[id]->name || !apps[id]->vnic_alloc)) in nfp_app_alloc()
238 return ERR_PTR(-EINVAL); in nfp_app_alloc()
239 if (WARN_ON(!apps[id]->ctrl_msg_rx && apps[id]->ctrl_msg_rx_raw)) in nfp_app_alloc()
240 return ERR_PTR(-EINVAL); in nfp_app_alloc()
244 return ERR_PTR(-ENOMEM); in nfp_app_alloc()
246 app->pf = pf; in nfp_app_alloc()
247 app->cpp = pf->cpp; in nfp_app_alloc()
248 app->pdev = pf->pdev; in nfp_app_alloc()
249 app->type = apps[id]; in nfp_app_alloc()