summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTomasz Figa <t.figa@samsung.com>2014-07-02 19:40:59 +0400
committerLinus Walleij <linus.walleij@linaro.org>2014-07-11 16:08:36 +0400
commit18c28caa17d7127e0391e100a919d9f6c156e974 (patch)
tree4d2eb472ace97dd088aef0624a5a42ba01aae11e /include
parent0e9386752758b74fd42fda7cbdd6ccb5cb31033c (diff)
downloadlinux-18c28caa17d7127e0391e100a919d9f6c156e974.tar.xz
pinctrl: samsung: Decouple direction setting from pinctrl
This patch makes the pinctrl-samsung driver configure GPIO direction on its own, without using the pinctrl_gpio_direction_*() "helpers". The rationale behind this change is as follows: - pinctrl-samsung does not need translation from GPIO namespace to pinctrl namespace to handle GPIO operations - GPIO chip and offset therein are enough to calculate necessary offsets and bit masks in constant time, - the pinctrl_gpio_direction_*() functions do not do anything useful other than translating the pin into pinctrl namespace and calling the .gpio_set_direction() from pinmux_ops of the controller, - the undesirable side effect of using those helpers is losing the ability to change GPIO direction in atomic context, because they explicitly use a mutex for synchronization, Results of this patch are: - fixed warnings about scheduling while atomic in code that needs to set GPIO direction in atomic context (e.g. interrupt handler), - reduced overhead of bitbanging drivers that use gpio_direction_*(), e.g. i2c-gpio. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions