ASoC: rt1308-sdw: add the default value of some registers
authorShuming Fan <shumingf@realtek.com>
Wed, 19 Oct 2022 09:57:15 +0000 (17:57 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Nov 2022 08:24:30 +0000 (09:24 +0100)
[ Upstream commit 75d8b1662ca5c20cf8365575222abaef18ff1f50 ]

The driver missed the default value of register 0xc070/0xc360.
This patch adds that default value to avoid invalid register access
when the device doesn't be enumerated yet.
BugLink: https://github.com/thesofproject/linux/issues/3924
Signed-off-by: Shuming Fan <shumingf@realtek.com>
Link: https://lore.kernel.org/r/20221019095715.31082-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/rt1308-sdw.h

index c5ce756..98293d7 100644 (file)
@@ -139,9 +139,11 @@ static const struct reg_default rt1308_reg_defaults[] = {
        { 0x3005, 0x23 },
        { 0x3008, 0x02 },
        { 0x300a, 0x00 },
+       { 0xc000 | (RT1308_DATA_PATH << 4), 0x00 },
        { 0xc003 | (RT1308_DAC_SET << 4), 0x00 },
        { 0xc001 | (RT1308_POWER << 4), 0x00 },
        { 0xc002 | (RT1308_POWER << 4), 0x00 },
+       { 0xc000 | (RT1308_POWER_STATUS << 4), 0x00 },
 };
 
 #define RT1308_SDW_OFFSET 0xc000