nfp: add devlink_eswitch_mode_set callback
[linux-2.6-block.git] / drivers / net / ethernet / netronome / nfp / nfp_devlink.c
index 73c7fcc820ac68fac74655ba37b179551d388cf9..71c2edd8303100eb62e5f6db909ee4f436a3f6a9 100644 (file)
@@ -176,12 +176,25 @@ static int nfp_devlink_eswitch_mode_get(struct devlink *devlink, u16 *mode)
        return nfp_app_eswitch_mode_get(pf->app, mode);
 }
 
+static int nfp_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode)
+{
+       struct nfp_pf *pf = devlink_priv(devlink);
+       int ret;
+
+       mutex_lock(&pf->lock);
+       ret = nfp_app_eswitch_mode_set(pf->app, mode);
+       mutex_unlock(&pf->lock);
+
+       return ret;
+}
+
 const struct devlink_ops nfp_devlink_ops = {
        .port_split             = nfp_devlink_port_split,
        .port_unsplit           = nfp_devlink_port_unsplit,
        .sb_pool_get            = nfp_devlink_sb_pool_get,
        .sb_pool_set            = nfp_devlink_sb_pool_set,
        .eswitch_mode_get       = nfp_devlink_eswitch_mode_get,
+       .eswitch_mode_set       = nfp_devlink_eswitch_mode_set,
 };
 
 int nfp_devlink_port_register(struct nfp_app *app, struct nfp_port *port)