Hi Youngmin, 2016-01-24 15:02 GMT+09:00 Youngmin Nam <ym0914@xxxxxxxxx>: > Previously, samsung_gpio_drection_in/output function were not covered with > one spinlock. > > For example, samsung_gpio_direction_output function consists of two functions. > 1. samsung_gpio_set > 2. samsung_gpio_set_direction > > When 2 CPUs try to control the same gpio pin heavily, > (situation like i2c control with gpio emulation) > This situation can cause below problem. > > CPU 0 | CPU1 > | > samsung_gpio_direction_output | > samsung_gpio_set(pin A as 1) | samsung_gpio_direction_output > | samsung_gpio_set(pin A as 0) > samsung_gpio_set_direction | > | samsung_gpio_set_direction > > The initial value of pin A will be set as 0 while we wanted to set pin A as 1. > > This patch modifies samsung_gpio_direction_in/output function > to be done in one spinlock to fix race condition. > > Additionally, the new samsung_gpio_set_value was added to implement > gpio set callback(samsung_gpio_set) with spinlock using this function. > > Signed-off-by: Youngmin Nam <ym0914@xxxxxxxxx> > --- > drivers/pinctrl/samsung/pinctrl-samsung.c | 48 ++++++++++++++++++++++--------- > 1 file changed, 35 insertions(+), 13 deletions(-) > Thanks for addressing my comments. Acked-by: Tomasz Figa <tomasz.figa@xxxxxxxxx> However please rebase as Linus suggested. Best regards, Tomasz -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html