From a5d947fe00ddb10d7b09fd5795980057cd48ab1a Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Mon, 3 Dec 2018 15:10:48 +0800 Subject: [PATCH] ASoC: rockchip: spdifrx: Mark SPDIFRX_SMPDR as volatile and precious This patch marks SPDIFRX_SMPDR as precious to avoid being read outside a call from the driver, such as regmap debugfs. Change-Id: Icc5398e0e192b86e191770b9ebd1251f97e6a048 Signed-off-by: Sugar Zhang --- sound/soc/rockchip/rockchip_spdifrx.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sound/soc/rockchip/rockchip_spdifrx.c b/sound/soc/rockchip/rockchip_spdifrx.c index d5e7455c809a..0e457232116d 100644 --- a/sound/soc/rockchip/rockchip_spdifrx.c +++ b/sound/soc/rockchip/rockchip_spdifrx.c @@ -216,6 +216,7 @@ static bool rk_spdifrx_volatile_reg(struct device *dev, unsigned int reg) case SPDIFRX_FIFOCTRL: case SPDIFRX_INTSR: case SPDIFRX_INTCLR: + case SPDIFRX_SMPDR: case SPDIFRX_BURSTINFO: return true; default: @@ -223,6 +224,16 @@ static bool rk_spdifrx_volatile_reg(struct device *dev, unsigned int reg) } } +static bool rk_spdifrx_precious_reg(struct device *dev, unsigned int reg) +{ + switch (reg) { + case SPDIFRX_SMPDR: + return true; + default: + return false; + } +} + static const struct regmap_config rk_spdifrx_regmap_config = { .reg_bits = 32, .reg_stride = 4, @@ -231,6 +242,7 @@ static const struct regmap_config rk_spdifrx_regmap_config = { .writeable_reg = rk_spdifrx_wr_reg, .readable_reg = rk_spdifrx_rd_reg, .volatile_reg = rk_spdifrx_volatile_reg, + .precious_reg = rk_spdifrx_precious_reg, .cache_type = REGCACHE_FLAT, };