Skip to content

Commit d9e15b2

Browse files
committed
Merge tag 'regmap-fix-v6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap
Pull regmap fixes from Mark Brown: "A couple of small fixes, fixing an incorrect format specifier in a log message and adding missing cleanup of the devres data used to support dev_get_regmap() when a device is unregistered" * tag 'regmap-fix-v6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: regmap: detach regmap from dev on regmap_exit regmap: Use correct format specifier for logging range errors
2 parents b60500e + 3061e17 commit d9e15b2

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

drivers/base/regmap/regmap.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,17 @@ int regmap_attach_dev(struct device *dev, struct regmap *map,
598598
}
599599
EXPORT_SYMBOL_GPL(regmap_attach_dev);
600600

601+
static int dev_get_regmap_match(struct device *dev, void *res, void *data);
602+
603+
static int regmap_detach_dev(struct device *dev, struct regmap *map)
604+
{
605+
if (!dev)
606+
return 0;
607+
608+
return devres_release(dev, dev_get_regmap_release,
609+
dev_get_regmap_match, (void *)map->name);
610+
}
611+
601612
static enum regmap_endian regmap_get_reg_endian(const struct regmap_bus *bus,
602613
const struct regmap_config *config)
603614
{
@@ -1052,13 +1063,13 @@ struct regmap *__regmap_init(struct device *dev,
10521063

10531064
/* Sanity check */
10541065
if (range_cfg->range_max < range_cfg->range_min) {
1055-
dev_err(map->dev, "Invalid range %d: %d < %d\n", i,
1066+
dev_err(map->dev, "Invalid range %d: %u < %u\n", i,
10561067
range_cfg->range_max, range_cfg->range_min);
10571068
goto err_range;
10581069
}
10591070

10601071
if (range_cfg->range_max > map->max_register) {
1061-
dev_err(map->dev, "Invalid range %d: %d > %d\n", i,
1072+
dev_err(map->dev, "Invalid range %d: %u > %u\n", i,
10621073
range_cfg->range_max, map->max_register);
10631074
goto err_range;
10641075
}
@@ -1445,6 +1456,7 @@ void regmap_exit(struct regmap *map)
14451456
{
14461457
struct regmap_async *async;
14471458

1459+
regmap_detach_dev(map->dev, map);
14481460
regcache_exit(map);
14491461

14501462
regmap_debugfs_exit(map);

0 commit comments

Comments
 (0)