aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/mic/bus/cosm_bus.h
diff options
context:
space:
mode:
authorH. Nikolaus Schaller <hns@goldelico.com>2019-06-04 14:35:58 +0200
committerLinus Walleij <linus.walleij@linaro.org>2019-06-08 00:03:18 +0200
commit3b00691cc46a4089368a008b30655a8343411715 (patch)
tree8dfdd0941d277e7a9ec9480029d8343c2b8da710 /drivers/misc/mic/bus/cosm_bus.h
parentLinux 5.2-rc3 (diff)
downloadlinux-dev-3b00691cc46a4089368a008b30655a8343411715.tar.xz
linux-dev-3b00691cc46a4089368a008b30655a8343411715.zip
gpio: pca953x: hack to fix 24 bit gpio expanders
24 bit expanders use REG_ADDR_AI in combination with register addressing. This conflicts with regmap which takes this bit as part of the register number, i.e. a second cache entry is defined for accessed with REG_ADDR_AI being set although on the chip it is the same register as with REG_ADDR_AI being cleared. The problem was introduced by commit b32cecb46bdc ("gpio: pca953x: Extract the register address mangling to single function") but only became visible by commit 8b9f9d4dc511 ("regmap: verify if register is writeable before writing operations") because before, the regmap size was effectively ignored and pca953x_writeable_register() did know to ignore REG_ADDR_AI. Still, there were two separate cache entries created. Since the use of REG_ADDR_AI seems to be static we can work around this issue by simply increasing the size of the regmap to cover the "virtual" registers with REG_ADDR_AI being set. This only means that half of the regmap buffer will be unused. Reported-by: H. Nikolaus Schaller <hns@goldelico.com> Suggested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/misc/mic/bus/cosm_bus.h')
0 files changed, 0 insertions, 0 deletions