On Fri, Mar 6, 2015 at 7:36 PM, Lars-Peter Clausen <[email protected]> wrote: > On 03/06/2015 06:26 PM, Daniel Baluta wrote: > [...] >> >> I can reproduce the problem with: >> >> static struct reg_default xxx_reg_defaults[] = { >> { XXX_REG_CTRL0, 0x00 }, >> { XXX_REG_CTRL1, 0x00 }, >> { XXX_REG_STATUS, 0x00 }, >> }; >> >> but, not if the reg default definition is: >> >> static struct reg_default xxx_reg_defaults[] = { >> { XXX_REG_STATUS, 0x00 }, >> { XXX_REG_CTRL0, 0x00 }, >> { XXX_REG_CTRL1, 0x00 }, >> }; >> >> Is this normal? > > > That's a rhetorical question, right? > > It might be that there is a bug when growing a rbblock to the left. It > probably went unnoticed because everybody has their reg defaults ordered in > ascending order. > > Try to put a few debug printks into regcache_rbtree_write() and > regcache_rbtree_insert_to_block() to see what exactly is going on when a new > register is inserted into the block. How do base_reg and top_reg change.
I cannot test is right now because I don't have access to the physical device. Is there a way to use to test the regmap API without an I2C/SPI device? Daniel. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

