Kaynağa Gözat

Merge "ASOC: codecs: clear the interrupt ack registers for wcd937x"

qctecmdr 2 yıl önce
ebeveyn
işleme
4d5b2297eb
1 değiştirilmiş dosya ile 5 ekleme ve 0 silme
  1. 5 0
      asoc/codecs/wcd937x/wcd937x.c

+ 5 - 0
asoc/codecs/wcd937x/wcd937x.c

@@ -142,6 +142,11 @@ static int wcd937x_handle_post_irq(void *data)
 	struct wcd937x_priv *wcd937x = data;
 	u32 status1 = 0, status2 = 0, status3 = 0;
 
+	/* Clear the ACK registers. Temporary workaround.*/
+	regmap_write(wcd937x->regmap, WCD937X_DIGITAL_INTR_CLEAR_0, 0x0);
+	regmap_write(wcd937x->regmap, WCD937X_DIGITAL_INTR_CLEAR_1, 0x0);
+	regmap_write(wcd937x->regmap, WCD937X_DIGITAL_INTR_CLEAR_2, 0x0);
+
 	regmap_read(wcd937x->regmap, WCD937X_DIGITAL_INTR_STATUS_0, &status1);
 	regmap_read(wcd937x->regmap, WCD937X_DIGITAL_INTR_STATUS_1, &status2);
 	regmap_read(wcd937x->regmap, WCD937X_DIGITAL_INTR_STATUS_2, &status3);