diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-08-08 15:41:46 +0900 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-08-08 15:57:35 +0900 |
commit | 2efe1642b73e74604498175de032b8a604868fb7 (patch) | |
tree | a84b4498d30ef5ea49391bfe687128a2dafd5623 /drivers/base/regmap | |
parent | 31244e396fa9e4854cfd6dfe305983e77802c156 (diff) | |
download | op-kernel-dev-2efe1642b73e74604498175de032b8a604868fb7.zip op-kernel-dev-2efe1642b73e74604498175de032b8a604868fb7.tar.gz |
regmap: Skip precious registers when dumping registers via debugfs
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/base/regmap')
-rw-r--r-- | drivers/base/regmap/internal.h | 1 | ||||
-rw-r--r-- | drivers/base/regmap/regmap-debugfs.c | 4 | ||||
-rw-r--r-- | drivers/base/regmap/regmap.c | 1 |
3 files changed, 6 insertions, 0 deletions
diff --git a/drivers/base/regmap/internal.h b/drivers/base/regmap/internal.h index 78f87f3..a67dc68 100644 --- a/drivers/base/regmap/internal.h +++ b/drivers/base/regmap/internal.h @@ -45,6 +45,7 @@ struct regmap { bool (*writeable_reg)(struct device *dev, unsigned int reg); bool (*readable_reg)(struct device *dev, unsigned int reg); bool (*volatile_reg)(struct device *dev, unsigned int reg); + bool (*precious_reg)(struct device *dev, unsigned int reg); }; #ifdef CONFIG_DEBUG_FS diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c index 2be8bf8..184b618 100644 --- a/drivers/base/regmap/regmap-debugfs.c +++ b/drivers/base/regmap/regmap-debugfs.c @@ -56,6 +56,10 @@ static ssize_t regmap_map_read_file(struct file *file, char __user *user_buf, !map->readable_reg(map->dev, i)) continue; + if (map->precious_reg && + map->precious_reg(map->dev, i)) + continue; + /* If we're in the region the user is trying to read */ if (p >= *ppos) { /* ...but not beyond it */ diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index a3eaef6..d74d306 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -101,6 +101,7 @@ struct regmap *regmap_init(struct device *dev, map->writeable_reg = config->writeable_reg; map->readable_reg = config->readable_reg; map->volatile_reg = config->volatile_reg; + map->precious_reg = config->precious_reg; switch (config->reg_bits) { case 4: |