diff --git a/asoc/codecs/wcd938x/wcd938x-regmap.c b/asoc/codecs/wcd938x/wcd938x-regmap.c index a06f97532d8d..6f59258331a0 100644 --- a/asoc/codecs/wcd938x/wcd938x-regmap.c +++ b/asoc/codecs/wcd938x/wcd938x-regmap.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #include @@ -494,8 +494,10 @@ static bool wcd938x_volatile_register(struct device *dev, unsigned int reg) { if(reg <= WCD938X_BASE_ADDRESS) return 0; - return (wcd938x_reg_access[WCD938X_REG(reg)] & RD_REG) - & ~(wcd938x_reg_access[WCD938X_REG(reg)] & WR_REG); + if ((wcd938x_reg_access[WCD938X_REG(reg)] & RD_REG) + && !(wcd938x_reg_access[WCD938X_REG(reg)] & WR_REG)) + return true; + return false; } struct regmap_config wcd938x_regmap_config = {