From: Sherman Yin Date: Thu, 15 May 2014 01:30:47 +0000 (-0700) Subject: pinctrl: Fix pin_config_*_set_bulk APIs X-Git-Tag: firefly_0821_release~3680^2~36^2~61^2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1881384399daa2df6cef8117bc133f8f37fcbe83;p=firefly-linux-kernel-4.4.55.git pinctrl: Fix pin_config_*_set_bulk APIs In commit baeae2041e14d5b7a272b9941b88fb56d716f643, Linaro-specific APIs pin_config_set_bulk and pin_config_group_set_bulk were introduced. However, pinconf_check_ops was not updated, and the wrong function was used in the PIN_MAP_TYPE_CONFIGS_PIN case in pinconf_apply_setting. Change-Id: Idc4a802f3d0086b927b808f65270e548b5b927be Signed-off-by: Sherman Yin --- diff --git a/drivers/pinctrl/pinconf.c b/drivers/pinctrl/pinconf.c index ad30263a7410..596a2522a6b1 100644 --- a/drivers/pinctrl/pinconf.c +++ b/drivers/pinctrl/pinconf.c @@ -35,7 +35,9 @@ int pinconf_check_ops(struct pinctrl_dev *pctldev) return -EINVAL; } /* We have to be able to config the pins in SOME way */ - if (!ops->pin_config_set && !ops->pin_config_group_set) { + if (!ops->pin_config_set && !ops->pin_config_group_set + && !ops->pin_config_set_bulk + && !ops->pin_config_group_set_bulk) { dev_err(pctldev->dev, "pinconf has to be able to set a pins config\n"); return -EINVAL; @@ -171,14 +173,14 @@ int pinconf_apply_setting(struct pinctrl_setting const *setting) dev_err(pctldev->dev, "missing pin_config_set op\n"); return -EINVAL; } - if (ops->pin_config_group_set_bulk) { - ret = ops->pin_config_group_set_bulk(pctldev, + if (ops->pin_config_set_bulk) { + ret = ops->pin_config_set_bulk(pctldev, setting->data.configs.group_or_pin, setting->data.configs.configs, setting->data.configs.num_configs); if (ret < 0) { dev_err(pctldev->dev, - "pin_config_set op failed for pin %d\n", + "pin_config_set_bulk op failed for pin %d\n", setting->data.configs.group_or_pin); return ret; } @@ -211,7 +213,7 @@ int pinconf_apply_setting(struct pinctrl_setting const *setting) setting->data.configs.num_configs); if (ret < 0) { dev_err(pctldev->dev, - "pin_config_group_set op failed for group %d\n", + "pin_config_group_set_bulk op failed for group %d\n", setting->data.configs.group_or_pin); return ret; }