Closed Bug 987545 Opened 11 years ago Closed 11 years ago

When headset is connected, uplink voice is picked up by handset mic instead of headset mic

Categories

(Firefox OS Graveyard :: AudioChannel, defect, P1)

ARM
Gonk (Firefox OS)
defect

Tracking

(blocking-b2g:1.4+, firefox29 wontfix, firefox30 fixed, firefox31 fixed, b2g-v1.4 fixed, b2g-v2.0 fixed)

RESOLVED FIXED
1.4 S6 (25apr)
blocking-b2g 1.4+
Tracking Status
firefox29 --- wontfix
firefox30 --- fixed
firefox31 --- fixed
b2g-v1.4 --- fixed
b2g-v2.0 --- fixed

People

(Reporter: poojas, Assigned: scheng)

References

()

Details

(Whiteboard: [caf priority: p2][CR 636338])

Attachments

(4 files, 2 obsolete files)

Steps to Reproduce: 1. Connect wired headset to the target. 2. Make an MO voice call 3. Speak something into headset mic. 4. Observe that whatever you speak is not picked up by headset mic, instead it is being picked up by handset mic. Expected Result: During a voice call with headset inserted to target, what ever is spoken in to headset mic should be picked up and routed through headset mic Actual Result: During a voice call with headset inserted to target, what ever is spoken in to headset mic is not picked up by headset mic, instead it is being picked up by handset mic.
blocking-b2g: --- → 1.4?
Whiteboard: [CR 636338]
blocking-b2g: 1.4? → 1.4+
David, Please help review and assign an engineer
Flags: needinfo?(dscravaglieri)
Assigned to Etienne to take a look.
Assignee: nobody → etienne
Flags: needinfo?(dscravaglieri)
This issue does *not* reproduce for us on the Buri or Helix devices using the 03/26/14 1.4 build. However, this issue does seem to reproduce on the Open C device using its 03/26/14 1.3 build. The Open C has presented some issues that we don't see on older devices though, including 2 out of the 3 headsets we used not being detected, so this may not be as reliable a test to go on. Pooja, would you be able to tell us what device you tested this on and maybe some environmental variables? That would help us greatly. Thank you!
Flags: needinfo?(poojas)
Matthew: this was tested on QRD8x26. Please work with Preeti to get hold of the device if you don't have it already.
Flags: needinfo?(poojas) → needinfo?(praghunath)
Lets please investigate on the Open C and put your findings down. We can check if the issue is on our end or not.
Flags: needinfo?(praghunath)
Keywords: qawanted
(In reply to Preeti Raghunath(:Preeti) from comment #5) > Lets please investigate on the Open C and put your findings down. We can > check if the issue is on our end or not. I tested 5 different headsets with microphones on the Open C. The results for each headset are: Alcatel headset = not detected HTC headset = not detected Sony Ericsson MH410 = only the headset earbuds work; handset microphone is used for speaking. ZTE HMZ8-C4-OMTP = only the headset earbuds work; handset microphone is used for speaking. Unknown brand = only the headset earbuds work; handset microphone is used for speaking. Device: Open C v1.3 MOZ RIL BuildID: 20140326040052 Gaia: be872843fa702e25ba113a93ce84fd8b265d87fb Gecko: db0c8822aeafe9038815bdadf6d4312927cef250 Version: 28.0 Firmware Version: P821A10-ENG_20140321 Please note, all the listed headsets are detected and work correctly on a Buri. Additionally, I have attached a logcat for the Open C using the Sony Ericsson headset.
Keywords: qawanted
Rik, do you want to take this before Etienne comes back from PTO? Thanks
Flags: needinfo?(anthony)
If this is only happening on Jellybean & not ICS, then this isn't a regression.
If this is present on 1.3 though, then why are we blocking 1.4 specifically here? Moving to 1.3? to discuss this against the first applicable release hit here.
blocking-b2g: 1.4+ → 1.3?
Looks like a lower level issue.
Assignee: etienne → nobody
Component: Gaia::Dialer → General
Flags: needinfo?(anthony)
Based on QA findings per Comment #6, this is easily reproducible and hence blocking the same.
blocking-b2g: 1.3? → 1.3+
Component: General → GonkIntegration
Component: GonkIntegration → AudioChannel
Eric - Can you find an assignee for this?
Flags: needinfo?(echou)
Flags: needinfo?(echou)
Star will look into this.
Assignee: nobody → scheng
(In reply to Matthew Vaughan from comment #6) > Created attachment 8397429 [details] > LogCat - Open C using the Sony Ericsson headset during a call > > (In reply to Preeti Raghunath(:Preeti) from comment #5) > > Lets please investigate on the Open C and put your findings down. We can > > check if the issue is on our end or not. > > I tested 5 different headsets with microphones on the Open C. The results > for each headset are: > > Alcatel headset = not detected > HTC headset = not detected > Sony Ericsson MH410 = only the headset earbuds work; handset microphone is > used for speaking. > ZTE HMZ8-C4-OMTP = only the headset earbuds work; handset microphone is > used for speaking. > Unknown brand = only the headset earbuds work; handset microphone is > used for speaking. > > Device: Open C v1.3 MOZ RIL > BuildID: 20140326040052 > Gaia: be872843fa702e25ba113a93ce84fd8b265d87fb > Gecko: db0c8822aeafe9038815bdadf6d4312927cef250 > Version: 28.0 > Firmware Version: P821A10-ENG_20140321 > > Please note, all the listed headsets are detected and work correctly on a > Buri. > > Additionally, I have attached a logcat for the Open C using the Sony > Ericsson headset. Hi, Matthew Could you help to dump audio policy log by using executing "adb shell dumpsys > headset.dump" command? And check the value of "Output devices" in AudioPolicyManager Dump section. (the format looks like below:) AudioPolicyManager Dump: 0xb7f49eb8 Primary Output: 2 A2DP device address: SCO device address: USB audio ALSA Output devices: 0000000b -> (check this value) Input devices: 00000044 Phone state: 0 Force use for communications 0 Force use for media 0 Force use for record 0 Force use for dock 0 Force use for system 0
(In reply to Jason Smith [:jsmith] from comment #8) > If this is only happening on Jellybean & not ICS, then this isn't a > regression. The latest SW version can NOT duplicate it in Nexus4 device. (Nexus4 is JB version) I tested 4 different headsets with microphones: Apple headset (for iPhone 4S): works normally HTC headset (for HTC New One): works normally Nexus-S headset (for Nexus-S) : works normally Alcatel headset (for hamachi) : works normally
(In reply to Star Cheng [:scheng] from comment #15) > (In reply to Jason Smith [:jsmith] from comment #8) > > If this is only happening on Jellybean & not ICS, then this isn't a > > regression. > > The latest SW version can NOT duplicate it in Nexus4 device. (Nexus4 is JB > version) > > I tested 4 different headsets with microphones: > Apple headset (for iPhone 4S): works normally > HTC headset (for HTC New One): works normally > Nexus-S headset (for Nexus-S) : works normally > Alcatel headset (for hamachi) : works normally It can *not* duplicate in flame device by using above 4 headsets. The SW version as below: Gaia 601df8b81e7c98514c55ee84ef2592b22b9c3816 Gecko a986fdc9ea4ac16a2037b4face64dde3f3b57fda BuildID 20140327230556 Version 28.0
(In reply to Star Cheng [:scheng] from comment #14) > Hi, Matthew > > Could you help to dump audio policy log by using executing "adb shell > dumpsys > headset.dump" command? And check the value of "Output devices" in > AudioPolicyManager Dump section. (the format looks like below:) > > > AudioPolicyManager Dump: 0xb7f49eb8 > Primary Output: 2 > A2DP device address: > SCO device address: > USB audio ALSA > Output devices: 0000000b -> (check this value) > Input devices: 00000044 > Phone state: 0 > Force use for communications 0 > Force use for media 0 > Force use for record 0 > Force use for dock 0 > Force use for system 0 I got an audio policy dump for all 4 of the headsets we have (the Sony headset I used in earlier testing is missing unfortunately). 2 of them were detected and the other 2 were not. The "Output devices" number for the 2 detected headsets matched what you put above (0000000b), but their microphone did not work and instead I had to use the handset's microphone to speak. Alcatel headset = not detected HTC headset = not detected ZTE HMZ8-C4-OMTP = only the headset earbuds work; handset microphone is used for speaking. Unknown brand = only the headset earbuds work; handset microphone is used for speaking.
Star Are you able to repro this on Open C? Seems like QA is. Please provide the next steps here.
Flags: needinfo?(scheng)
No longer going to block on Mozilla-specific 1.3 blockers unless it hits a special exception list, so moving to 1.4? for triage.
blocking-b2g: 1.3+ → 1.4?
(In reply to Preeti Raghunath(:Preeti) from comment #18) > Star > > Are you able to repro this on Open C? Seems like QA is. Please provide the > next steps here. Yes, I can duplicate it in OpenC device. There are different log between Flame and OpenC. [OpenC] D/ALSADevice( 284): mInChannels:1 D/ALSADevice( 284): route: devices 0x8 in mode 2 D/ALSADevice( 284): switchDevice: device 0x8 mode:2 D/ALSADevice( 284): getUCMDevice for output device: devices:8 is input device:0 D/ALSADevice( 284): switchDevice: rxDevice Voice Headphones devices:0x400008 D/ALSADevice( 284): getUCMDevice for input device: devices:400000 is input device:1 D/ALSADevice( 284): switchDevice: txDevice:Handset devices:0x400008 rxDevice : Voice Headphones (0x08) -> AUDIO_DEVICE_OUT_WIRED_HEADPHONE txDevice : Handset (0x400000 ) -> AUDIO_DEVICE_IN_BUILTIN_MIC [Flame] D/ALSADevice( 281): mInChannels:1 D/ALSADevice( 281): route: devices 0x4 in mode 2 D/ALSADevice( 281): switchDevice: device 0x4 mode:2 D/ALSADevice( 281): getUCMDevice for output device: devices:4 is input device:0 D/ALSADevice( 281): switchDevice: rxDevice Voice Headphones devices:0x1000004 D/ALSADevice( 281): getUCMDevice for input device: devices:1000000 is input device:1 D/ALSADevice( 281): switchDevice: txDevice:Headset devices:0x1000004 rxDevice : Voice Headphones (0x04) -> AUDIO_DEVICE_OUT_WIRED_HEADSET txDevice : Handset (0x1000000) -> AUDIO_DEVICE_IN_WIRED_HEADSET [AudioSystem.h] /* output devices */ AUDIO_DEVICE_OUT_EARPIECE = 0x1, AUDIO_DEVICE_OUT_SPEAKER = 0x2, AUDIO_DEVICE_OUT_WIRED_HEADSET = 0x4, AUDIO_DEVICE_OUT_WIRED_HEADPHONE = 0x8, AUDIO_DEVICE_OUT_BLUETOOTH_SCO = 0x10, /* input devices */ AUDIO_DEVICE_IN_COMMUNICATION = 0x100000, AUDIO_DEVICE_IN_AMBIENT = 0x200000, AUDIO_DEVICE_IN_BUILTIN_MIC = 0x400000, AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET = 0x800000, AUDIO_DEVICE_IN_WIRED_HEADSET = 0x1000000, AUDIO_DEVICE_IN_AUX_DIGITAL = 0x2000000, I will check the headset event from GONK in gecko layer (AudioManager).
Flags: needinfo?(scheng)
I think this is hardware (audio jack) issue. Here are 2 case I tested. case 1: fully insert headset to audio jack case 2: not fully insert headset to audio jack but make sure the headset icon appears in the status bar [case 1] I/Gonk ( 285): [star] updateHeadphoneSwitch sMicrophoneState 1 event status 3 I/AudioManager( 285): [star] HeadphoneSwitchObserver Notify I/AudioManager( 285): [star] SWITCH_STATE_HEADPHONE [case 2] I/Gonk ( 285): [star] updateHeadphoneSwitch sMicrophoneState 0 event status 2 I/AudioManager( 285): [star] HeadphoneSwitchObserver Notify I/AudioManager( 285): [star] SWITCH_STATE_HEADSET case 2 is normal (rx: headphone + tx: headphone mic ) case 1 is wrong (rx: headphone + tx: handset mic ) Hi, Michael I get the log from /proc/kmsg in kernel of the openC device. But it doesn't show any audio jack value. Could you help to check the below value in driver layer? input: msm8x10-skuaa-snd-card Headset Jack as /devices/sound.37/sound/card0/input7 Thanks
Flags: needinfo?(mvines)
(In reply to Star Cheng [:scheng] from comment #14) > (In reply to Matthew Vaughan from comment #6) > > Created attachment 8397429 [details] > > LogCat - Open C using the Sony Ericsson headset during a call > > > > (In reply to Preeti Raghunath(:Preeti) from comment #5) > > > Lets please investigate on the Open C and put your findings down. We can > > > check if the issue is on our end or not. > > > > I tested 5 different headsets with microphones on the Open C. The results > > for each headset are: > > > > Alcatel headset = not detected > > HTC headset = not detected > > Sony Ericsson MH410 = only the headset earbuds work; handset microphone is > > used for speaking. > > ZTE HMZ8-C4-OMTP = only the headset earbuds work; handset microphone is > > used for speaking. > > Unknown brand = only the headset earbuds work; handset microphone is > > used for speaking. > > > > Device: Open C v1.3 MOZ RIL > > BuildID: 20140326040052 > > Gaia: be872843fa702e25ba113a93ce84fd8b265d87fb > > Gecko: db0c8822aeafe9038815bdadf6d4312927cef250 > > Version: 28.0 > > Firmware Version: P821A10-ENG_20140321 > > > > Please note, all the listed headsets are detected and work correctly on a > > Buri. > > > > Additionally, I have attached a logcat for the Open C using the Sony > > Ericsson headset. > > > Hi, Matthew > > Could you help to dump audio policy log by using executing "adb shell > dumpsys > headset.dump" command? And check the value of "Output devices" in > AudioPolicyManager Dump section. (the format looks like below:) > > > AudioPolicyManager Dump: 0xb7f49eb8 > Primary Output: 2 > A2DP device address: > SCO device address: > USB audio ALSA > Output devices: 0000000b -> (check this value) > Input devices: 00000044 > Phone state: 0 > Force use for communications 0 > Force use for media 0 > Force use for record 0 > Force use for dock 0 > Force use for system 0 Was on holiday so could not replied on time. BTW have attached the logs from our device too, If it helps in anyway
Attached file headset.dump
(In reply to Inder from comment #4) > Matthew: this was tested on QRD8x26. Please work with Preeti to get hold of > the device if you don't have it already. Star, can you try on a QRD8x26 please.
Flags: needinfo?(mvines)
blocking-b2g: 1.4? → 1.4+
Hi, Michael I need your help. I got confused about the expression "sMicrophoneState == AKEY_STATE_DOWN". Does it mean the device support microphone? (http://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsAppShell.cpp#449) If yes, it should be event.status() = sMicrophoneState == AKEY_STATE_DOWN ? hal::SWITCH_STATE_HEADSET : hal::SWITCH_STATE_HEADPHONE; instead of event.status() = sMicrophoneState == AKEY_STATE_DOWN ? hal::SWITCH_STATE_HEADPHONE : SWITCH_STATE_HEADSET;
Flags: needinfo?(mvines)
Attached patch bug-987545-fix.patch (obsolete) — Splinter Review
Hi, Poojas Could you check this patch work? Thanks
Attachment #8403871 - Flags: review?(mvines)
Flags: needinfo?(poojas)
Attachment #8403871 - Flags: review?(mvines) → review?(mwu)
Flags: needinfo?(mvines)
Attachment #8403871 - Flags: review?(mwu) → review+
(In reply to Star Cheng [:scheng] from comment #26) > Created attachment 8403871 [details] [diff] [review] > bug-987545-fix.patch > > > Hi, Poojas > > Could you check this patch work? > Thanks I tested 3 different headset(Hamachi hedset/iPhone 4S headset/Nexus S headset) to QRD8x26, but no one is detected as headset(with microphone). These headsets can be detected as headset in OpenC & Flame (MSM8810 platform). Can you help to check this patch by using correct headset to QRD8x26. [1] insert headset I/Gonk ( 252): [star] notifySwitch I/Gonk ( 252): [star] needSwitchUpdate 1 sHeadphoneState 1 sMicrophoneState 0 I/Gonk ( 252): [star] updateHeadphoneSwitch sMicrophoneState 0 event status 3 -> SWITCH_STATE_HEADPHONE [2]remove headset I/Gonk ( 252): [star] notifySwitch I/Gonk ( 252): [star] needSwitchUpdate 1 sHeadphoneState 0 sMicrophoneState 0 I/Gonk ( 252): [star] updateHeadphoneSwitch SWITCH_STATE_OFF
Flags: needinfo?(mvines)
(In reply to Star Cheng [:scheng] from comment #26) > Created attachment 8403871 [details] [diff] [review] > bug-987545-fix.patch > > > Hi, Poojas > > Could you check this patch work? > Thanks HI star, Thanks for the fix. Its working . Issue is no more reproducible, We tried with US Headset
Flags: needinfo?(poojas)
Flags: needinfo?(mvines)
Attached file bug-987545-fix-patch-reviewed (obsolete) —
1.TPBL result: https://tbpl.mozilla.org/?tree=Try&rev=09caedef6880 2.add reviewer name in patch file (Michanel, thanks you Y^.^y)
Attachment #8403871 - Attachment is obsolete: true
Keywords: checkin-needed
(In reply to Star Cheng [:scheng] from comment #29) > Created attachment 8405115 [details] > bug-987545-fix-patch-reviewed > > > 1.TPBL result: https://tbpl.mozilla.org/?tree=Try&rev=09caedef6880 > 2.add reviewer name in patch file (Michanel, thanks you Y^.^y) Typo!! Michael, I am sorry! Orz....
fix worong summary.
Attachment #8405115 - Attachment is obsolete: true
Attachment #8405131 - Attachment is patch: true
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → 1.5 S1 (9may)
Whiteboard: [CR 636338] → [caf priority: p2][CR 636338]
Flags: in-moztrap?(bzumwalt)
A new test case needs to be written to address bug.
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker)
Flags: in-moztrap?(bzumwalt)
Flags: in-moztrap+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: