Lines Matching full:param
97 static int devlink_param_generic_verify(const struct devlink_param *param) in devlink_param_generic_verify() argument
100 if (param->id > DEVLINK_PARAM_GENERIC_ID_MAX) in devlink_param_generic_verify()
102 if (strcmp(param->name, devlink_param_generic[param->id].name)) in devlink_param_generic_verify()
105 WARN_ON(param->type != devlink_param_generic[param->id].type); in devlink_param_generic_verify()
110 static int devlink_param_driver_verify(const struct devlink_param *param) in devlink_param_driver_verify() argument
114 if (param->id <= DEVLINK_PARAM_GENERIC_ID_MAX) in devlink_param_driver_verify()
118 if (!strcmp(param->name, devlink_param_generic[i].name)) in devlink_param_driver_verify()
131 if (!strcmp(param_item->param->name, param_name)) in devlink_param_find_by_name()
144 devlink_param_cmode_is_supported(const struct devlink_param *param, in devlink_param_cmode_is_supported() argument
147 return test_bit(cmode, ¶m->supported_cmodes); in devlink_param_cmode_is_supported()
151 const struct devlink_param *param, in devlink_param_get() argument
154 if (!param->get) in devlink_param_get()
156 return param->get(devlink, param->id, ctx); in devlink_param_get()
160 const struct devlink_param *param, in devlink_param_set() argument
164 if (!param->set) in devlink_param_set()
166 return param->set(devlink, param->id, ctx, extack); in devlink_param_set()
246 const struct devlink_param *param = param_item->param; in devlink_nl_param_fill() local
257 if (!devlink_param_cmode_is_supported(param, i)) in devlink_nl_param_fill()
268 err = devlink_param_get(devlink, param, &ctx); in devlink_nl_param_fill()
292 if (nla_put_string(msg, DEVLINK_ATTR_PARAM_NAME, param->name)) in devlink_nl_param_fill()
294 if (param->generic && nla_put_flag(msg, DEVLINK_ATTR_PARAM_GENERIC)) in devlink_nl_param_fill()
297 nla_type = devlink_param_type_to_nla_type(param->type); in devlink_nl_param_fill()
311 err = devlink_nl_param_value_fill_one(msg, param->type, in devlink_nl_param_fill()
446 devlink_param_value_get_from_info(const struct devlink_param *param, in devlink_param_value_get_from_info() argument
455 if (param->type != DEVLINK_PARAM_TYPE_BOOL && !param_data) in devlink_param_value_get_from_info()
458 switch (param->type) { in devlink_param_value_get_from_info()
539 const struct devlink_param *param; in __devlink_nl_cmd_param_set_doit() local
546 param = param_item->param; in __devlink_nl_cmd_param_set_doit()
550 if (param_type != param->type) in __devlink_nl_cmd_param_set_doit()
552 err = devlink_param_value_get_from_info(param, info, &value); in __devlink_nl_cmd_param_set_doit()
555 if (param->validate) { in __devlink_nl_cmd_param_set_doit()
556 err = param->validate(devlink, param->id, value, info->extack); in __devlink_nl_cmd_param_set_doit()
564 if (!devlink_param_cmode_is_supported(param, cmode)) in __devlink_nl_cmd_param_set_doit()
571 if (!param->set) in __devlink_nl_cmd_param_set_doit()
575 err = devlink_param_set(devlink, param, &ctx, info->extack); in __devlink_nl_cmd_param_set_doit()
613 static int devlink_param_verify(const struct devlink_param *param) in devlink_param_verify() argument
615 if (!param || !param->name || !param->supported_cmodes) in devlink_param_verify()
617 if (param->generic) in devlink_param_verify()
618 return devlink_param_generic_verify(param); in devlink_param_verify()
620 return devlink_param_driver_verify(param); in devlink_param_verify()
624 const struct devlink_param *param) in devlink_param_register() argument
629 WARN_ON(devlink_param_verify(param)); in devlink_param_register()
630 WARN_ON(devlink_param_find_by_name(&devlink->params, param->name)); in devlink_param_register()
632 if (param->supported_cmodes == BIT(DEVLINK_PARAM_CMODE_DRIVERINIT)) in devlink_param_register()
633 WARN_ON(param->get || param->set); in devlink_param_register()
635 WARN_ON(!param->get || !param->set); in devlink_param_register()
641 param_item->param = param; in devlink_param_register()
643 err = xa_insert(&devlink->params, param->id, param_item, GFP_KERNEL); in devlink_param_register()
656 const struct devlink_param *param) in devlink_param_unregister() argument
660 param_item = devlink_param_find_by_id(&devlink->params, param->id); in devlink_param_unregister()
664 xa_erase(&devlink->params, param->id); in devlink_param_unregister()
681 const struct devlink_param *param = params; in devl_params_register() local
686 for (i = 0; i < params_count; i++, param++) { in devl_params_register()
687 err = devlink_param_register(devlink, param); in devl_params_register()
697 for (param--; i > 0; i--, param--) in devl_params_register()
698 devlink_param_unregister(devlink, param); in devl_params_register()
726 const struct devlink_param *param = params; in devl_params_unregister() local
731 for (i = 0; i < params_count; i++, param++) in devl_params_unregister()
732 devlink_param_unregister(devlink, param); in devl_params_unregister()
784 if (WARN_ON(!devlink_param_cmode_is_supported(param_item->param, in devl_param_driverinit_value_get()
817 if (WARN_ON(!devlink_param_cmode_is_supported(param_item->param, in devl_param_driverinit_value_set()
834 if (!devlink_param_cmode_is_supported(param_item->param, in devlink_params_driverinit_load_new()