Re: [PATCH v2 2/2] checks: Improve i2c reg property checking

From: Joel Stanley
Date: Thu May 28 2020 - 04:45:08 EST


On Thu, 28 May 2020 at 08:31, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Hi Joel,
>
> On Thu, 28 May 2020 16:50:37 +0930 Joel Stanley <joel@xxxxxxxxx> wrote:
> >
> >
> > #define I2C_OWN_SLAVE_ADDRESS (1 << 30)
> > +#define I2C_TEN_BIT_ADDRESS (1 << 31)
> >
> > static void check_i2c_bus_reg(struct check *c, struct dt_info *dti, struct node *node)
> > {
> > @@ -1057,10 +1058,13 @@ static void check_i2c_bus_reg(struct check *c, struct dt_info *dti, struct node
> > reg = fdt32_to_cpu(*(cells++));
> > /* Ignore I2C_OWN_SLAVE_ADDRESS */
> > reg &= ~I2C_OWN_SLAVE_ADDRESS;
> > - if (reg > 0x3ff)
> > +
> > + if ((reg & I2C_TEN_BIT_ADDRESS) && reg > 0x3ff)
>
> Shouldn't this be
>
> if ((reg & I2C_TEN_BIT_ADDRESS) && ((reg & ~I2C_TEN_BIT_ADDRESS) > 0x3ff))

Yes, good catch.

There are no device trees that set the I2C_TEN_BIT_ADDRESS flag in the
kernel, so it is untested.