summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/netronome/nfp/flower/main.c
diff options
context:
space:
mode:
authorJohn Hurley2018-05-24 04:22:50 +0200
committerDavid S. Miller2018-05-25 05:10:56 +0200
commit898bc7d634b4ffbdc3511212625c735d400a8cc6 (patch)
tree1eaffb42fefe1ab5ae07ff4805a80e8699463064 /drivers/net/ethernet/netronome/nfp/flower/main.c
parentnfp: nfpcore: add rtsym writing function (diff)
downloadkernel-qcow2-linux-898bc7d634b4ffbdc3511212625c735d400a8cc6.tar.gz
kernel-qcow2-linux-898bc7d634b4ffbdc3511212625c735d400a8cc6.tar.xz
kernel-qcow2-linux-898bc7d634b4ffbdc3511212625c735d400a8cc6.zip
nfp: flower: check for/turn on LAG support in firmware
Check if the fw contains the _abi_flower_balance_sync_enable symbol. If it does then write a 1 to this indicating that the driver is willing to receive NIC to kernel LAG related control messages. If the write is successful, update the list of extra features supported by the fw and add a stub to accept LAG cmsgs. Signed-off-by: John Hurley <john.hurley@netronome.com> Reviewed-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/flower/main.c')
-rw-r--r--drivers/net/ethernet/netronome/nfp/flower/main.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/flower/main.c b/drivers/net/ethernet/netronome/nfp/flower/main.c
index 4e67c0cbf9f0..1910c3e2b3e5 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/main.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/main.c
@@ -546,8 +546,20 @@ static int nfp_flower_init(struct nfp_app *app)
else
app_priv->flower_ext_feats = features;
+ /* Tell the firmware that the driver supports lag. */
+ err = nfp_rtsym_write_le(app->pf->rtbl,
+ "_abi_flower_balance_sync_enable", 1);
+ if (!err)
+ app_priv->flower_ext_feats |= NFP_FL_FEATS_LAG;
+ else if (err == -ENOENT)
+ nfp_warn(app->cpp, "LAG not supported by FW.\n");
+ else
+ goto err_cleanup_metadata;
+
return 0;
+err_cleanup_metadata:
+ nfp_flower_metadata_cleanup(app);
err_free_app_priv:
vfree(app->priv);
return err;