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)
Tracking
(blocking-b2g:1.4+, 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.
Updated•11 years ago
|
blocking-b2g: 1.4? → 1.4+
Keywords: regression,
regressionwindow-wanted
Comment 1•11 years ago
|
||
David,
Please help review and assign an engineer
Flags: needinfo?(dscravaglieri)
Comment 2•11 years ago
|
||
Assigned to Etienne to take a look.
Assignee: nobody → etienne
Flags: needinfo?(dscravaglieri)
Comment 3•11 years ago
|
||
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)
Comment 5•11 years ago
|
||
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
Comment 6•11 years ago
|
||
(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.
Comment 7•11 years ago
|
||
Rik, do you want to take this before Etienne comes back from PTO? Thanks
Flags: needinfo?(anthony)
Comment 8•11 years ago
|
||
If this is only happening on Jellybean & not ICS, then this isn't a regression.
Keywords: regression,
regressionwindow-wanted
Comment 9•11 years ago
|
||
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?
Comment 10•11 years ago
|
||
Looks like a lower level issue.
Assignee: etienne → nobody
Component: Gaia::Dialer → General
Flags: needinfo?(anthony)
Comment 11•11 years ago
|
||
Based on QA findings per Comment #6, this is easily reproducible and hence blocking the same.
blocking-b2g: 1.3? → 1.3+
Updated•11 years ago
|
Component: General → GonkIntegration
Updated•11 years ago
|
Component: GonkIntegration → AudioChannel
Updated•11 years ago
|
Flags: needinfo?(echou)
Assignee | ||
Comment 14•11 years ago
|
||
(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
Assignee | ||
Comment 15•11 years ago
|
||
(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
Assignee | ||
Comment 16•11 years ago
|
||
(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
Comment 17•11 years ago
|
||
(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.
Comment 18•11 years ago
|
||
Star
Are you able to repro this on Open C? Seems like QA is. Please provide the next steps here.
Flags: needinfo?(scheng)
Comment 19•11 years ago
|
||
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?
Assignee | ||
Comment 20•11 years ago
|
||
(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)
Assignee | ||
Comment 21•11 years ago
|
||
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)
Reporter | ||
Comment 22•11 years ago
|
||
(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
Reporter | ||
Comment 23•11 years ago
|
||
Comment 24•11 years ago
|
||
(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)
Updated•11 years ago
|
blocking-b2g: 1.4? → 1.4+
Assignee | ||
Comment 25•11 years ago
|
||
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)
Assignee | ||
Comment 26•11 years ago
|
||
Hi, Poojas
Could you check this patch work?
Thanks
Attachment #8403871 -
Flags: review?(mvines)
Flags: needinfo?(poojas)
Updated•11 years ago
|
Attachment #8403871 -
Flags: review?(mvines) → review?(mwu)
Flags: needinfo?(mvines)
Updated•11 years ago
|
Attachment #8403871 -
Flags: review?(mwu) → review+
Assignee | ||
Comment 27•11 years ago
|
||
(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)
Reporter | ||
Comment 28•11 years ago
|
||
(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)
Assignee | ||
Comment 29•11 years ago
|
||
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
Assignee | ||
Updated•11 years ago
|
Keywords: checkin-needed
Assignee | ||
Comment 30•11 years ago
|
||
(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....
Assignee | ||
Comment 31•11 years ago
|
||
fix worong summary.
Attachment #8405115 -
Attachment is obsolete: true
Updated•11 years ago
|
Attachment #8405131 -
Attachment is patch: true
Comment 32•11 years ago
|
||
Keywords: checkin-needed
Comment 33•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → 1.5 S1 (9may)
Comment 34•11 years ago
|
||
status-b2g-v1.4:
--- → fixed
status-b2g-v2.0:
--- → fixed
status-firefox29:
--- → wontfix
status-firefox30:
--- → fixed
status-firefox31:
--- → fixed
Target Milestone: 1.5 S1 (9may) → 1.4 S6 (25apr)
Updated•11 years ago
|
Whiteboard: [CR 636338] → [caf priority: p2][CR 636338]
Updated•11 years ago
|
Flags: in-moztrap?(bzumwalt)
Comment 35•11 years ago
|
||
A new test case needs to be written to address bug.
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Comment 36•11 years ago
|
||
Test case added to moztrap:
https://moztrap.mozilla.org/manage/case/14334/
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.
Description
•