* [PATCH RESEND 1/2] ASoC: rt298: enable IRQ for jack detection
@ 2016-02-24 7:51 Bard Liao
2016-02-24 7:51 ` [PATCH RESEND 2/2] ASoC: rt298: Don't enable IRQ in i2c_probe Bard Liao
0 siblings, 1 reply; 2+ messages in thread
From: Bard Liao @ 2016-02-24 7:51 UTC (permalink / raw)
To: broonie, lgirdwood
Cc: oder_chiou, alsa-devel, lars, john.lin, ramesh.babu, Bard Liao,
senthilnathanx.veppur, flove
There are some registers needed for enabling rt298 IRQ missed on
current driver.
Signed-off-by: Bard Liao <bardliao@realtek.com>
---
sound/soc/codecs/rt298.c | 6 ++++++
sound/soc/codecs/rt298.h | 8 ++++++++
2 files changed, 14 insertions(+)
diff --git a/sound/soc/codecs/rt298.c b/sound/soc/codecs/rt298.c
index 30c6de6..e67ef5f 100644
--- a/sound/soc/codecs/rt298.c
+++ b/sound/soc/codecs/rt298.c
@@ -1225,6 +1225,12 @@ static int rt298_i2c_probe(struct i2c_client *i2c,
regmap_update_bits(rt298->regmap,
RT298_WIND_FILTER_CTRL, 0x0082, 0x0082);
regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x2);
+
+ regmap_write(rt298->regmap, RT298_UNSOLICITED_INLINE_CMD, 0x81);
+ regmap_write(rt298->regmap, RT298_UNSOLICITED_HP_OUT, 0x82);
+ regmap_write(rt298->regmap, RT298_UNSOLICITED_MIC1, 0x84);
+ regmap_update_bits(rt298->regmap, RT298_IRQ_FLAG_CTRL, 0x2, 0x2);
+
rt298->is_hp_in = -1;
if (rt298->i2c->irq) {
diff --git a/sound/soc/codecs/rt298.h b/sound/soc/codecs/rt298.h
index 31da162..d66f884 100644
--- a/sound/soc/codecs/rt298.h
+++ b/sound/soc/codecs/rt298.h
@@ -34,6 +34,7 @@
#define RT298_HP_OUT 0x21
#define RT298_MIXER_IN1 0x22
#define RT298_MIXER_IN2 0x23
+#define RT298_INLINE_CMD 0x55
#define RT298_SET_PIN_SFT 6
#define RT298_SET_PIN_ENABLE 0x40
@@ -124,6 +125,12 @@
VERB_CMD(AC_VERB_SET_COEF_INDEX, RT298_VENDOR_REGISTERS, 0)
#define RT298_PROC_COEF\
VERB_CMD(AC_VERB_SET_PROC_COEF, RT298_VENDOR_REGISTERS, 0)
+#define RT298_UNSOLICITED_INLINE_CMD\
+ VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT298_INLINE_CMD, 0)
+#define RT298_UNSOLICITED_HP_OUT\
+ VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT298_HP_OUT, 0)
+#define RT298_UNSOLICITED_MIC1\
+ VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT298_MIC1, 0)
/* Index registers */
#define RT298_A_BIAS_CTRL1 0x01
@@ -148,6 +155,7 @@
#define RT298_DEPOP_CTRL2 0x67
#define RT298_DEPOP_CTRL3 0x68
#define RT298_DEPOP_CTRL4 0x69
+#define RT298_IRQ_FLAG_CTRL 0x7c
/* SPDIF (0x06) */
#define RT298_SPDIF_SEL_SFT 0
--
1.8.1.1.439.g50a6b54
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH RESEND 2/2] ASoC: rt298: Don't enable IRQ in i2c_probe
2016-02-24 7:51 [PATCH RESEND 1/2] ASoC: rt298: enable IRQ for jack detection Bard Liao
@ 2016-02-24 7:51 ` Bard Liao
0 siblings, 0 replies; 2+ messages in thread
From: Bard Liao @ 2016-02-24 7:51 UTC (permalink / raw)
To: broonie, lgirdwood
Cc: oder_chiou, alsa-devel, lars, john.lin, ramesh.babu, Bard Liao,
senthilnathanx.veppur, flove
The IRQ function should not be enabled before irq handler is registered.
In fact, it is done in rt298_probe. So remove it from rt298_i2c_probe.
Signed-off-by: Bard Liao <bardliao@realtek.com>
---
sound/soc/codecs/rt298.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/sound/soc/codecs/rt298.c b/sound/soc/codecs/rt298.c
index e67ef5f..f0e6c06 100644
--- a/sound/soc/codecs/rt298.c
+++ b/sound/soc/codecs/rt298.c
@@ -1224,7 +1224,6 @@ static int rt298_i2c_probe(struct i2c_client *i2c,
regmap_write(rt298->regmap, RT298_MISC_CTRL1, 0x0000);
regmap_update_bits(rt298->regmap,
RT298_WIND_FILTER_CTRL, 0x0082, 0x0082);
- regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x2);
regmap_write(rt298->regmap, RT298_UNSOLICITED_INLINE_CMD, 0x81);
regmap_write(rt298->regmap, RT298_UNSOLICITED_HP_OUT, 0x82);
--
1.8.1.1.439.g50a6b54
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-02-24 7:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-24 7:51 [PATCH RESEND 1/2] ASoC: rt298: enable IRQ for jack detection Bard Liao
2016-02-24 7:51 ` [PATCH RESEND 2/2] ASoC: rt298: Don't enable IRQ in i2c_probe Bard Liao
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.