Lines Matching refs:param
122 static int devlink_param_generic_verify(const struct devlink_param *param) in devlink_param_generic_verify() argument
125 if (param->id > DEVLINK_PARAM_GENERIC_ID_MAX) in devlink_param_generic_verify()
127 if (strcmp(param->name, devlink_param_generic[param->id].name)) in devlink_param_generic_verify()
130 WARN_ON(param->type != devlink_param_generic[param->id].type); in devlink_param_generic_verify()
135 static int devlink_param_driver_verify(const struct devlink_param *param) in devlink_param_driver_verify() argument
139 if (param->id <= DEVLINK_PARAM_GENERIC_ID_MAX) in devlink_param_driver_verify()
143 if (!strcmp(param->name, devlink_param_generic[i].name)) in devlink_param_driver_verify()
156 if (!strcmp(param_item->param->name, param_name)) in devlink_param_find_by_name()
169 devlink_param_cmode_is_supported(const struct devlink_param *param, in devlink_param_cmode_is_supported() argument
172 return test_bit(cmode, ¶m->supported_cmodes); in devlink_param_cmode_is_supported()
176 const struct devlink_param *param, in devlink_param_get() argument
180 if (!param->get) in devlink_param_get()
182 return param->get(devlink, param->id, ctx, extack); in devlink_param_get()
186 const struct devlink_param *param, in devlink_param_set() argument
190 if (!param->set) in devlink_param_set()
192 return param->set(devlink, param->id, ctx, extack); in devlink_param_set()
196 const struct devlink_param *param, in devlink_param_get_default() argument
200 if (!param->get_default) in devlink_param_get_default()
203 return param->get_default(devlink, param->id, ctx, extack); in devlink_param_get_default()
207 const struct devlink_param *param, in devlink_param_reset_default() argument
211 if (!param->reset_default) in devlink_param_reset_default()
214 return param->reset_default(devlink, param->id, cmode, extack); in devlink_param_reset_default()
311 const struct devlink_param *param = param_item->param; in devlink_nl_param_fill() local
321 if (!devlink_param_cmode_is_supported(param, i)) in devlink_nl_param_fill()
337 err = devlink_param_get(devlink, param, &ctx, extack); in devlink_nl_param_fill()
342 err = devlink_param_get_default(devlink, param, &ctx, in devlink_nl_param_fill()
370 if (nla_put_string(msg, DEVLINK_ATTR_PARAM_NAME, param->name)) in devlink_nl_param_fill()
372 if (param->generic && nla_put_flag(msg, DEVLINK_ATTR_PARAM_GENERIC)) in devlink_nl_param_fill()
374 if (nla_put_u8(msg, DEVLINK_ATTR_PARAM_TYPE, param->type)) in devlink_nl_param_fill()
385 err = devlink_nl_param_value_fill_one(msg, param->type, in devlink_nl_param_fill()
505 devlink_param_value_get_from_info(const struct devlink_param *param, in devlink_param_value_get_from_info() argument
514 if (param->type != DEVLINK_PARAM_TYPE_BOOL && !param_data) in devlink_param_value_get_from_info()
517 switch (param->type) { in devlink_param_value_get_from_info()
603 const struct devlink_param *param; in __devlink_nl_cmd_param_set_doit() local
611 param = param_item->param; in __devlink_nl_cmd_param_set_doit()
615 if (param_type != param->type) in __devlink_nl_cmd_param_set_doit()
620 err = devlink_param_value_get_from_info(param, info, &value); in __devlink_nl_cmd_param_set_doit()
623 if (param->validate) { in __devlink_nl_cmd_param_set_doit()
624 err = param->validate(devlink, param->id, value, in __devlink_nl_cmd_param_set_doit()
634 if (!devlink_param_cmode_is_supported(param, cmode)) in __devlink_nl_cmd_param_set_doit()
650 if (!param->set) in __devlink_nl_cmd_param_set_doit()
655 err = devlink_param_reset_default(devlink, param, cmode, in __devlink_nl_cmd_param_set_doit()
658 err = devlink_param_set(devlink, param, &ctx, in __devlink_nl_cmd_param_set_doit()
697 static int devlink_param_verify(const struct devlink_param *param) in devlink_param_verify() argument
699 if (!param || !param->name || !param->supported_cmodes) in devlink_param_verify()
701 if (param->generic) in devlink_param_verify()
702 return devlink_param_generic_verify(param); in devlink_param_verify()
704 return devlink_param_driver_verify(param); in devlink_param_verify()
708 const struct devlink_param *param) in devlink_param_register() argument
713 WARN_ON(devlink_param_verify(param)); in devlink_param_register()
714 WARN_ON(devlink_param_find_by_name(&devlink->params, param->name)); in devlink_param_register()
716 if (param->supported_cmodes == BIT(DEVLINK_PARAM_CMODE_DRIVERINIT)) in devlink_param_register()
717 WARN_ON(param->get || param->set); in devlink_param_register()
719 WARN_ON(!param->get || !param->set); in devlink_param_register()
725 param_item->param = param; in devlink_param_register()
727 err = xa_insert(&devlink->params, param->id, param_item, GFP_KERNEL); in devlink_param_register()
740 const struct devlink_param *param) in devlink_param_unregister() argument
744 param_item = devlink_param_find_by_id(&devlink->params, param->id); in devlink_param_unregister()
748 xa_erase(&devlink->params, param->id); in devlink_param_unregister()
765 const struct devlink_param *param = params; in devl_params_register() local
770 for (i = 0; i < params_count; i++, param++) { in devl_params_register()
771 err = devlink_param_register(devlink, param); in devl_params_register()
781 for (param--; i > 0; i--, param--) in devl_params_register()
782 devlink_param_unregister(devlink, param); in devl_params_register()
810 const struct devlink_param *param = params; in devl_params_unregister() local
815 for (i = 0; i < params_count; i++, param++) in devl_params_unregister()
816 devlink_param_unregister(devlink, param); in devl_params_unregister()
868 if (WARN_ON(!devlink_param_cmode_is_supported(param_item->param, in devl_param_driverinit_value_get()
901 if (WARN_ON(!devlink_param_cmode_is_supported(param_item->param, in devl_param_driverinit_value_set()
919 if (!devlink_param_cmode_is_supported(param_item->param, in devlink_params_driverinit_load_new()