gpio: sifive: use the correct register to read output values
stable inclusion from stable-v5.10.101 commit 1ba45dd3266773852570a510020c4e0d695d3b87 bugzilla: https://gitee.com/openeuler/kernel/issues/I5669Z Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1ba45dd3266773852570a510020c4e0d695d3b87 -------------------------------- [ Upstream commit cc38ef93 ] Setting the output of a GPIO to 1 using gpiod_set_value(), followed by reading the same GPIO using gpiod_get_value(), will currently yield an incorrect result. This is because the SiFive GPIO device stores the output values in reg_set, not reg_dat. Supply the flag BGPIOF_READ_OUTPUT_REG_SET to bgpio_init() so that the generic driver reads the correct register. Fixes: 96868dce ("gpio/sifive: Add GPIO driver for SiFive SoCs") Signed-off-by:Niklas Cassel <niklas.cassel@wdc.com> Reviewed-by:
Linus Walleij <linus.walleij@linaro.org> [Bartosz: added the Fixes tag] Signed-off-by:
Bartosz Golaszewski <brgl@bgdev.pl> Signed-off-by:
Sasha Levin <sashal@kernel.org> Signed-off-by:
Yu Liao <liaoyu15@huawei.com> Reviewed-by:
Wei Li <liwei391@huawei.com> Signed-off-by:
Zheng Zengkai <zhengzengkai@huawei.com>
Loading
Please sign in to comment