Re: BUG: gpio: pca953x: 24 bit expanders broken since v5.2-rc1

From: Linus Walleij
Date: Sat Jun 01 2019 - 18:02:04 EST


On Fri, May 31, 2019 at 7:06 PM H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> wrote:

> Now, this was not a (visible) problem until patch
>
> 8b9f9d4dc511 regmap: verify if register is writeable before writing operations
>
> enforces to check the register number before invoking the
> callback pca953x_writeable_register(). pca953x_writeable_register()
> seems to know about REG_ADDR_AI (through reg & REG_ADDR_MASK) and
> accepts 0x88 as a valid register number.
>
> After the regmap patch the register is checked against
> pca953x_i2c_regmap.max_register before applying REG_ADDR_MASK
> and 0x88 is obviously beyond, explaining the symptom.

Can we simply bump the .max_register in
pca953x_i2c_regmap to 0xff for a quick fix with a comment
FIXME to figure it out the right way?

Yours,
Linus Walleij