Lines Matching refs:param
4355 static int devlink_param_generic_verify(const struct devlink_param *param) in devlink_param_generic_verify() argument
4358 if (param->id > DEVLINK_PARAM_GENERIC_ID_MAX) in devlink_param_generic_verify()
4360 if (strcmp(param->name, devlink_param_generic[param->id].name)) in devlink_param_generic_verify()
4363 WARN_ON(param->type != devlink_param_generic[param->id].type); in devlink_param_generic_verify()
4368 static int devlink_param_driver_verify(const struct devlink_param *param) in devlink_param_driver_verify() argument
4372 if (param->id <= DEVLINK_PARAM_GENERIC_ID_MAX) in devlink_param_driver_verify()
4376 if (!strcmp(param->name, devlink_param_generic[i].name)) in devlink_param_driver_verify()
4389 if (!strcmp(param_item->param->name, param_name)) in devlink_param_find_by_name()
4400 if (param_item->param->id == param_id) in devlink_param_find_by_id()
4406 devlink_param_cmode_is_supported(const struct devlink_param *param, in devlink_param_cmode_is_supported() argument
4409 return test_bit(cmode, ¶m->supported_cmodes); in devlink_param_cmode_is_supported()
4413 const struct devlink_param *param, in devlink_param_get() argument
4416 if (!param->get) in devlink_param_get()
4418 return param->get(devlink, param->id, ctx); in devlink_param_get()
4422 const struct devlink_param *param, in devlink_param_set() argument
4425 if (!param->set) in devlink_param_set()
4427 return param->set(devlink, param->id, ctx); in devlink_param_set()
4507 const struct devlink_param *param = param_item->param; in devlink_nl_param_fill() local
4518 if (!devlink_param_cmode_is_supported(param, i)) in devlink_nl_param_fill()
4528 err = devlink_param_get(devlink, param, &ctx); in devlink_nl_param_fill()
4552 if (nla_put_string(msg, DEVLINK_ATTR_PARAM_NAME, param->name)) in devlink_nl_param_fill()
4554 if (param->generic && nla_put_flag(msg, DEVLINK_ATTR_PARAM_GENERIC)) in devlink_nl_param_fill()
4557 nla_type = devlink_param_type_to_nla_type(param->type); in devlink_nl_param_fill()
4571 err = devlink_nl_param_value_fill_one(msg, param->type, in devlink_nl_param_fill()
4700 devlink_param_value_get_from_info(const struct devlink_param *param, in devlink_param_value_get_from_info() argument
4709 if (param->type != DEVLINK_PARAM_TYPE_BOOL && !param_data) in devlink_param_value_get_from_info()
4712 switch (param->type) { in devlink_param_value_get_from_info()
4794 const struct devlink_param *param; in __devlink_nl_cmd_param_set_doit() local
4801 param = param_item->param; in __devlink_nl_cmd_param_set_doit()
4805 if (param_type != param->type) in __devlink_nl_cmd_param_set_doit()
4807 err = devlink_param_value_get_from_info(param, info, &value); in __devlink_nl_cmd_param_set_doit()
4810 if (param->validate) { in __devlink_nl_cmd_param_set_doit()
4811 err = param->validate(devlink, param->id, value, info->extack); in __devlink_nl_cmd_param_set_doit()
4819 if (!devlink_param_cmode_is_supported(param, cmode)) in __devlink_nl_cmd_param_set_doit()
4823 if (param->type == DEVLINK_PARAM_TYPE_STRING) in __devlink_nl_cmd_param_set_doit()
4829 if (!param->set) in __devlink_nl_cmd_param_set_doit()
4833 err = devlink_param_set(devlink, param, &ctx); in __devlink_nl_cmd_param_set_doit()
4854 const struct devlink_param *param, in devlink_param_register_one() argument
4859 if (devlink_param_find_by_name(param_list, param->name)) in devlink_param_register_one()
4862 if (param->supported_cmodes == BIT(DEVLINK_PARAM_CMODE_DRIVERINIT)) in devlink_param_register_one()
4863 WARN_ON(param->get || param->set); in devlink_param_register_one()
4865 WARN_ON(!param->get || !param->set); in devlink_param_register_one()
4870 param_item->param = param; in devlink_param_register_one()
4880 const struct devlink_param *param, in devlink_param_unregister_one() argument
4885 param_item = devlink_param_find_by_name(param_list, param->name); in devlink_param_unregister_one()
9930 static int devlink_param_verify(const struct devlink_param *param) in devlink_param_verify() argument
9932 if (!param || !param->name || !param->supported_cmodes) in devlink_param_verify()
9934 if (param->generic) in devlink_param_verify()
9935 return devlink_param_generic_verify(param); in devlink_param_verify()
9937 return devlink_param_driver_verify(param); in devlink_param_verify()
9943 const struct devlink_param *param, in __devlink_param_register_one() argument
9948 err = devlink_param_verify(param); in __devlink_param_register_one()
9953 param_list, param, reg_cmd); in __devlink_param_register_one()
9964 const struct devlink_param *param = params; in __devlink_params_register() local
9969 for (i = 0; i < params_count; i++, param++) { in __devlink_params_register()
9971 param_list, param, reg_cmd); in __devlink_params_register()
9982 for (param--; i > 0; i--, param--) in __devlink_params_register()
9984 param, unreg_cmd); in __devlink_params_register()
9997 const struct devlink_param *param = params; in __devlink_params_unregister() local
10001 for (i = 0; i < params_count; i++, param++) in __devlink_params_unregister()
10002 devlink_param_unregister_one(devlink, 0, param_list, param, in __devlink_params_unregister()
10053 const struct devlink_param *param) in devlink_param_register() argument
10059 param, DEVLINK_CMD_PARAM_NEW); in devlink_param_register()
10071 const struct devlink_param *param) in devlink_param_unregister() argument
10074 devlink_param_unregister_one(devlink, 0, &devlink->param_list, param, in devlink_param_unregister()
10131 const struct devlink_param *param) in devlink_param_publish() argument
10136 if (param_item->param != param || param_item->published) in devlink_param_publish()
10155 const struct devlink_param *param) in devlink_param_unpublish() argument
10160 if (param_item->param != param || !param_item->published) in devlink_param_unpublish()
10223 !devlink_param_cmode_is_supported(param_item->param, in __devlink_param_driverinit_value_get()
10227 if (param_item->param->type == DEVLINK_PARAM_TYPE_STRING) in __devlink_param_driverinit_value_get()
10248 if (!devlink_param_cmode_is_supported(param_item->param, in __devlink_param_driverinit_value_set()
10252 if (param_item->param->type == DEVLINK_PARAM_TYPE_STRING) in __devlink_param_driverinit_value_set()