ASoC: rockchip: pdm: Mark RXFIFO_DATA as volatile and precious
authorSugar Zhang <sugar.zhang@rock-chips.com>
Thu, 4 Apr 2019 03:57:08 +0000 (11:57 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 4 Apr 2019 08:13:50 +0000 (15:13 +0700)
This patch marks RXFIFO_DATA as precious to avoid being read
outside a call from the driver, such as regmap debugfs

Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/rockchip/rockchip_pdm.c

index 068453596470fc4d794a235b448d1ff639b2730e..6c0f242db5efecf90d40447e27385f361e1101ac 100644 (file)
@@ -417,6 +417,7 @@ static bool rockchip_pdm_rd_reg(struct device *dev, unsigned int reg)
        case PDM_INT_CLR:
        case PDM_INT_ST:
        case PDM_DATA_VALID:
+       case PDM_RXFIFO_DATA:
        case PDM_VERSION:
                return true;
        default:
@@ -431,6 +432,17 @@ static bool rockchip_pdm_volatile_reg(struct device *dev, unsigned int reg)
        case PDM_FIFO_CTRL:
        case PDM_INT_CLR:
        case PDM_INT_ST:
+       case PDM_RXFIFO_DATA:
+               return true;
+       default:
+               return false;
+       }
+}
+
+static bool rockchip_pdm_precious_reg(struct device *dev, unsigned int reg)
+{
+       switch (reg) {
+       case PDM_RXFIFO_DATA:
                return true;
        default:
                return false;
@@ -453,6 +465,7 @@ static const struct regmap_config rockchip_pdm_regmap_config = {
        .writeable_reg = rockchip_pdm_wr_reg,
        .readable_reg = rockchip_pdm_rd_reg,
        .volatile_reg = rockchip_pdm_volatile_reg,
+       .precious_reg = rockchip_pdm_precious_reg,
        .cache_type = REGCACHE_FLAT,
 };