diff --git a/kernel/linux-imx6_3.14.28/sound/soc/codecs/sgtl5000.c b/kernel/linux-imx6_3.14.28/sound/soc/codecs/sgtl5000.c
index 63a1fc1..e994d7d 100644
--- a/kernel/linux-imx6_3.14.28/sound/soc/codecs/sgtl5000.c
+++ b/kernel/linux-imx6_3.14.28/sound/soc/codecs/sgtl5000.c
@@ -259,7 +259,9 @@ static const struct snd_soc_dapm_widget sgtl5000_dapm_widgets[] = {
 			    mic_bias_event,
 			    SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
 
-	SND_SOC_DAPM_PGA("HP", SGTL5000_CHIP_ANA_POWER, 4, 0, NULL, 0),
+	// fix larche@falinux.com	2017-06-13
+//	SND_SOC_DAPM_PGA("HP", SGTL5000_CHIP_ANA_POWER, 4, 0, NULL, 0),	
+	SND_SOC_DAPM_PGA("HP", SND_SOC_NOPM, 0, 0, NULL, 0),
 	SND_SOC_DAPM_PGA("LO", SGTL5000_CHIP_ANA_POWER, 0, 0, NULL, 0),
 
 	SND_SOC_DAPM_MUX("Capture Mux", SND_SOC_NOPM, 0, 0, &adc_mux),
@@ -278,8 +280,9 @@ static const struct snd_soc_dapm_widget sgtl5000_dapm_widgets[] = {
 	SND_SOC_DAPM_ADC("ADC", "Capture", SGTL5000_CHIP_ANA_POWER, 1, 0),
 	SND_SOC_DAPM_DAC("DAC", "Playback", SGTL5000_CHIP_ANA_POWER, 3, 0),
 
-	SND_SOC_DAPM_PRE("VAG_POWER_PRE", power_vag_event),
-	SND_SOC_DAPM_POST("VAG_POWER_POST", power_vag_event),
+	// del larche@falinux.com	2017-06-13
+//	SND_SOC_DAPM_PRE("VAG_POWER_PRE", power_vag_event),
+//	SND_SOC_DAPM_POST("VAG_POWER_POST", power_vag_event),
 };
 
 /* routes for sgtl5000 */
@@ -1179,7 +1182,9 @@ static int sgtl5000_set_power_regs(struct snd_soc_codec *codec)
 	ana_pwr = snd_soc_read(codec, SGTL5000_CHIP_ANA_POWER);
 	ana_pwr |= SGTL5000_DAC_STEREO |
 			SGTL5000_ADC_STEREO |
-			SGTL5000_REFTOP_POWERUP;
+			SGTL5000_REFTOP_POWERUP |
+			SGTL5000_HP_POWERUP |
+			SGTL5000_VAG_POWERUP;			// add larche@falinux.com (SGTL5000_HP_POWERUP|SGTL5000_VAG_POWERUP)	2017-06-13
 	lreg_ctrl = snd_soc_read(codec, SGTL5000_CHIP_LINREG_CTRL);
 
 	if (vddio < 3100 && vdda < 3100) {