mfd: wm831x: Use maple tree register cache
authorMark Brown <broonie@kernel.org>
Tue, 25 Apr 2023 18:03:33 +0000 (19:03 +0100)
committerLee Jones <lee@kernel.org>
Thu, 15 Jun 2023 08:19:36 +0000 (09:19 +0100)
regmap has introduced a maple tree based register cache which makes use of
this more advanced data structure which has been added to the kernel
recently. Maple trees are much flatter than rbtrees, meaning that they do
not grow to such depths when the register map is sparse which makes access
a bit more efficient. The maple tree cache type is still a bit of a work
in progress but should be effective for some devices already.

The wm831x devices have a pretty sparse register map and being always on
devices never do cache syncs so don't hit the major current disadvantage
so they should be good candiates for using the maple tree cache.  Update
to do so, there should be little if any visible difference at runtime.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20230419-mfd-wm831x-maple-v1-1-e03e39d7bb0b@kernel.org
drivers/mfd/wm831x-core.c

index d2f444d..e86b6a4 100644 (file)
@@ -1430,7 +1430,7 @@ struct regmap_config wm831x_regmap_config = {
        .reg_bits = 16,
        .val_bits = 16,
 
-       .cache_type = REGCACHE_RBTREE,
+       .cache_type = REGCACHE_MAPLE,
 
        .max_register = WM831X_DBE_CHECK_DATA,
        .readable_reg = wm831x_reg_readable,