[Meego-kernel] [PATCH 4/4] sst: power on/off internal speaker on demand
Lu Guanqun
guanqun.lu at intel.com
Thu Mar 24 00:53:47 PDT 2011
Sometimes setting mute alone can't shut up the internal speakers,
better to power off/on it on demand
CC: "Koul, Vinod" <vinod.koul at intel.com>
CC: "Kp, Jeeja" <jeeja.kp at intel.com>
Signed-off-by: Lu Guanqun <guanqun.lu at intel.com>
Signed-off-by: Wang Xingchao <xingchao.wang at intel.com>
---
drivers/staging/intel_sst/intelmid_v2_control.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/staging/intel_sst/intelmid_v2_control.c b/drivers/staging/intel_sst/intelmid_v2_control.c
index 61a9dab..a63c566 100644
--- a/drivers/staging/intel_sst/intelmid_v2_control.c
+++ b/drivers/staging/intel_sst/intelmid_v2_control.c
@@ -532,6 +532,8 @@ static int nc_set_selected_output_dev(u8 value)
switch (value) {
case STEREO_HEADPHONE:
retval = sst_sc_reg_access(sc_access_HP, PMIC_WRITE, 2);
+ /* power off the internal speaker */
+ gpio_set_value(64+16+2, 0);
break;
/* There is a mismatch between Playback Sources and the enumerated values of output sources.
* This mismatch causes ALSA upper to send Item 1 for Internal Speaker, but the expected enumeration is 2!
@@ -540,6 +542,8 @@ static int nc_set_selected_output_dev(u8 value)
case MONO_EARPIECE:
case INTERNAL_SPKR:
retval = sst_sc_reg_access(sc_access_IS, PMIC_WRITE, 2);
+ /* power on the internal speaker */
+ gpio_set_value(64+16+2, 1);
break;
default:
pr_err("sst: rcvd illegal request: %d\n", value);
--
1.7.2.3
More information about the MeeGo-kernel
mailing list