Hi Kristen,
This patch fixes BOO #10234 on the kernel side.
Because the status of jack event is compared bitwise:
[in sound/core/jack.c:snd_jack_report()]
for (i = 0; i < ARRAY_SIZE(jack_switch_types); i++) {
int testbit = 1 << i;
if (jack->type & testbit)
input_report_switch(jack->input_dev,
jack_switch_types[i],
status & testbit);
}
So in order to report the correct events, 3 should be passed instead of 1.
Could you please review it and accept it into your MRST patchset?
Thanks!
--
guanqun
sst: report correct jack event
The status of jack event is compared bitwise:
[in sound/core/jack.c:snd_jack_report()]
for (i = 0; i < ARRAY_SIZE(jack_switch_types); i++) {
int testbit = 1 << i;
if (jack->type & testbit)
input_report_switch(jack->input_dev,
jack_switch_types[i],
status & testbit);
}
So in order to report the correct events, 3 should be passed instead of 1.
This fixes BOO #10234 on the kernel side.
Signed-off-by: Lu Guanqun <[email protected]>
Index: linux-2.6.37/drivers/staging/intel_sst/intelmid_v2_control.c
===================================================================
--- linux-2.6.37.orig/drivers/staging/intel_sst/intelmid_v2_control.c
+++ linux-2.6.37/drivers/staging/intel_sst/intelmid_v2_control.c
@@ -1096,7 +1096,7 @@ static void nc_pmic_irq_cb(void *cb_data
if (intsts & 0x1) {
pr_debug("SST DBG:MAD headset detected\n");
/* send headset detect/undetect */
- present = (value == 0x1) ? 1 : 0;
+ present = (value == 0x1) ? 3 : 0;
jack_event_flag = 1;
mjack->jack.type = SND_JACK_HEADSET;
hp_automute(SND_JACK_HEADSET, present);
_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel