Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: rt298: enable IRQ for jack detection

There are some registers needed for enabling rt298 IRQ missed on
current driver.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Bard Liao and committed by
Mark Brown
4b2fe382 92e963f5

+14
+6
sound/soc/codecs/rt298.c
··· 1225 1225 regmap_update_bits(rt298->regmap, 1226 1226 RT298_WIND_FILTER_CTRL, 0x0082, 0x0082); 1227 1227 regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x2); 1228 + 1229 + regmap_write(rt298->regmap, RT298_UNSOLICITED_INLINE_CMD, 0x81); 1230 + regmap_write(rt298->regmap, RT298_UNSOLICITED_HP_OUT, 0x82); 1231 + regmap_write(rt298->regmap, RT298_UNSOLICITED_MIC1, 0x84); 1232 + regmap_update_bits(rt298->regmap, RT298_IRQ_FLAG_CTRL, 0x2, 0x2); 1233 + 1228 1234 rt298->is_hp_in = -1; 1229 1235 1230 1236 if (rt298->i2c->irq) {
+8
sound/soc/codecs/rt298.h
··· 34 34 #define RT298_HP_OUT 0x21 35 35 #define RT298_MIXER_IN1 0x22 36 36 #define RT298_MIXER_IN2 0x23 37 + #define RT298_INLINE_CMD 0x55 37 38 38 39 #define RT298_SET_PIN_SFT 6 39 40 #define RT298_SET_PIN_ENABLE 0x40 ··· 125 124 VERB_CMD(AC_VERB_SET_COEF_INDEX, RT298_VENDOR_REGISTERS, 0) 126 125 #define RT298_PROC_COEF\ 127 126 VERB_CMD(AC_VERB_SET_PROC_COEF, RT298_VENDOR_REGISTERS, 0) 127 + #define RT298_UNSOLICITED_INLINE_CMD\ 128 + VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT298_INLINE_CMD, 0) 129 + #define RT298_UNSOLICITED_HP_OUT\ 130 + VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT298_HP_OUT, 0) 131 + #define RT298_UNSOLICITED_MIC1\ 132 + VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT298_MIC1, 0) 128 133 129 134 /* Index registers */ 130 135 #define RT298_A_BIAS_CTRL1 0x01 ··· 155 148 #define RT298_DEPOP_CTRL2 0x67 156 149 #define RT298_DEPOP_CTRL3 0x68 157 150 #define RT298_DEPOP_CTRL4 0x69 151 + #define RT298_IRQ_FLAG_CTRL 0x7c 158 152 159 153 /* SPDIF (0x06) */ 160 154 #define RT298_SPDIF_SEL_SFT 0