mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 02:01:18 -04:00
pinctrl: scmi: ignore PIN_CONFIG_PERSIST_STATE
The PIN_CONFIG_PERSIST_STATE setting ensures that the pin state persists across a sleep or controller reset. The SCMI spec does not have an equivalent command to this so just ignore it. Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Reviewed-by: Linus Walleij <linusw@kernel.org> Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
committed by
Linus Walleij
parent
37a584414d
commit
f20e81322f
@@ -361,7 +361,7 @@ static int pinctrl_scmi_pinconf_set(struct pinctrl_dev *pctldev,
|
||||
unsigned long *configs,
|
||||
unsigned int num_configs)
|
||||
{
|
||||
int i, ret;
|
||||
int i, cnt, ret;
|
||||
struct scmi_pinctrl *pmx = pinctrl_dev_get_drvdata(pctldev);
|
||||
enum scmi_pinctrl_conf_type config_type[SCMI_NUM_CONFIGS];
|
||||
u32 config_value[SCMI_NUM_CONFIGS];
|
||||
@@ -377,17 +377,21 @@ static int pinctrl_scmi_pinconf_set(struct pinctrl_dev *pctldev,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
cnt = 0;
|
||||
for (i = 0; i < num_configs; i++) {
|
||||
param = pinconf_to_config_param(configs[i]);
|
||||
ret = pinctrl_scmi_map_pinconf_type_set(param, &p_config_type[i]);
|
||||
if (param == PIN_CONFIG_PERSIST_STATE)
|
||||
continue;
|
||||
ret = pinctrl_scmi_map_pinconf_type_set(param, &p_config_type[cnt]);
|
||||
if (ret) {
|
||||
dev_err(pmx->dev, "Error map pinconf_type %d\n", ret);
|
||||
goto free_config;
|
||||
}
|
||||
p_config_value[i] = pinconf_to_config_argument(configs[i]);
|
||||
p_config_value[cnt] = pinconf_to_config_argument(configs[i]);
|
||||
cnt++;
|
||||
}
|
||||
|
||||
ret = pinctrl_ops->settings_conf(pmx->ph, pin, PIN_TYPE, num_configs,
|
||||
ret = pinctrl_ops->settings_conf(pmx->ph, pin, PIN_TYPE, cnt,
|
||||
p_config_type, p_config_value);
|
||||
if (ret)
|
||||
dev_err(pmx->dev, "Error parsing config %d\n", ret);
|
||||
|
||||
Reference in New Issue
Block a user