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 <guanqun...@intel.com> 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 MeeGo-kernel@lists.meego.com http://lists.meego.com/listinfo/meego-kernel