Эх сурвалжийг харах

asoc: wcd939x: add support to update power modes on wcd-usbss

Get the wcd939x power mode of from mixer ctls and configure
same power mode to wcd-usbss.

Change-Id: I9dc8fe586f7e7608da542b0986bb7c605fc552d4
Signed-off-by: Prasad Kumpatla <[email protected]>
Prasad Kumpatla 2 жил өмнө
parent
commit
2a86f48992

+ 19 - 0
asoc/codecs/wcd939x/wcd939x.c

@@ -29,6 +29,9 @@
 #include "asoc/bolero-slave-internal.h"
 #include "wcd939x-reg-masks.h"
 #include "wcd939x-reg-shifts.h"
+#if IS_ENABLED(CONFIG_QCOM_WCD_USBSS_I2C)
+#include <linux/soc/qcom/wcd939x-i2c.h>
+#endif
 
 
 #define NUM_SWRS_DT_PARAMS 5
@@ -3116,6 +3119,22 @@ static int wcd939x_rx_hph_mode_put(struct snd_kcontrol *kcontrol,
 		mode_val = CLS_H_ULP;
 	}
 	wcd939x->hph_mode = mode_val;
+
+	switch (mode_val) {
+	case CLS_H_HIFI:
+	case CLS_H_LOHIFI:
+		mode_val = 0x4;
+		break;
+	default:
+		/* set default mode to ULP */
+		mode_val = 0x2;
+		break;
+	}
+
+#if IS_ENABLED(CONFIG_QCOM_WCD_USBSS_I2C)
+	wcd_usbss_audio_config(NULL, WCD_USBSS_CONFIG_TYPE_POWER_MODE, mode_val);
+#endif
+
 	return 0;
 }