New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 786989 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

nau8825: headphone stops working if crosstalk is interrupted

Project Member Reported by wuchengli@chromium.org, Nov 20 2017

Issue description

Cave R62-9901.54.0

What steps will reproduce the problem?
(1) Reboot. Login.
(2) Plug a low impedance headphone. Before crosstalk finishes (<=1sec), unplug the headphone.
(3) Plug headphone.

What is the expected result?
UI shows headphone is plugged.

What happens instead?
UI didn't show anything.

I used evtest to test. There's no SW_HEADPHONE_INSERT or SW_MICROPHONE_INSERT after the issue happened. John. Is crosstalk used by any ChromeoS or non ChromeOS project? If not, how do you think removing it? I think it complicates the code. There are lots of code paths and hard to make it right.



 
The crosstalk can be bypassed. Please see the CLs as follows:
https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/762731
https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/615028

The coreboot needs to upgrade to add the property "nuvoton,crosstalk-bypass".

Right. crosstalk-bypass can fix the bug. But headphone should still work if crosstalk is not bypassed. Right? I think you still need to send a patch to fix it in upstream.

John. I couldn't assign this issue to kchsu0@nuvoton.corp-partner.google.com. The error was "Issue owner must be a project member". What's the right email address to assign this to you?
When talked about the solution before, the conclusion was to disable the crosstalk funciton. Please refer to the link.
https://partnerissuetracker.corp.google.com/issues/35574278#comment58
For the insurance against the risk, all related projects should apply the bypass crosstalk solution.

You're right. It's still a bug and we will make a solution to fix it.
I only have a partner account, and may not a project member. I have no idea about the error.
Wu-Cheng, could you help to pick the solution to chromium when we upstream the solution later? Or help to add Intel to the issue. We need Intel to help merge the patch to chromium. List Intel accounts as follows:
mac.chiang@intel.corp-partner.google.com
intel-cros@intel.corp-partner.google.com
John, Jimmy and I discussed. We decided to change crosstalk-bypass to crosstalk-enable. So crosstalk can be off by default and we don't need to upgrade all the firmwares. John will send a patch to upstream.

Comment 6 by dchan@chromium.org, Nov 22 2017

Is the crosstalk-enable change in 10152.0.0 ?
Re #6: No. I'm waiting for John from Nuvoton to upstream the fix. John. Is the CL ready for review in upstream?

The patch to disable the crosstalk by default is upstreamed.
Please find the patch as follows:
[alsa-devel] [PATCH] ASoC: nau8825: disable crosstalk by default
http://mailman.alsa-project.org/pipermail/alsa-devel/2017-November/127866.html

The solution is to disabled crosstalk only, and the solution about crosstalk body will be upstream later.
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 30 2017

Labels: merge-merged-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/de2ff3e3fac1889547bb85d75cffc4161a3ef250

commit de2ff3e3fac1889547bb85d75cffc4161a3ef250
Author: John Hsu <KCHSU0@nuvoton.com>
Date: Thu Nov 30 19:48:54 2017

UPSTREAM: ASoC: nau8825: automatic BCLK and LRC divde in master mode

configurable LRC and BCLK divide. The driver
will make configurations of LRC and BCLK automatically according to
BCLK and FS information in master mode.

Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 1e561f6166bacb9c12d6fa1d23df07999674573e)
Signed-off-by: Wu-Cheng Li <wuchengli@google.com>

BUG= chromium:786989 
TEST=Plug a headphone. Try YouTube and apprtc loopback.

Change-Id: I0eec3009c8da54da927db81bb08b52c426501bef
Reviewed-on: https://chromium-review.googlesource.com/799016
Commit-Ready: Wu-Cheng Li <wuchengli@chromium.org>
Tested-by: Wu-Cheng Li <wuchengli@chromium.org>
Reviewed-by: John Hsu <kchsu0@nuvoton.corp-partner.google.com>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>

[modify] https://crrev.com/de2ff3e3fac1889547bb85d75cffc4161a3ef250/sound/soc/codecs/nau8825.c

Project Member

Comment 11 by bugdroid1@chromium.org, Nov 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/3aa4242f37d4a7214b828782e0a7cca633dc70e0

commit 3aa4242f37d4a7214b828782e0a7cca633dc70e0
Author: Wu-Cheng Li <wuchengli@google.com>
Date: Thu Nov 30 19:48:55 2017

Revert "CHROMIUM: ASoC: nau8825: fix low volume of headphone."

This reverts commit cc91eca65f644ece5c5dd44867cc6f5218b87450.

Upstream has a patch to fix this. Revert this and cherry-pick
the upstream patch.

BUG= chromium:786989 
TEST=None
CQ-DEPEND=CL:799520

Change-Id: Ib400e1a0b3b4ddca91bedd27b856693d75f3e453
Reviewed-on: https://chromium-review.googlesource.com/799519
Commit-Ready: Wu-Cheng Li <wuchengli@chromium.org>
Tested-by: Wu-Cheng Li <wuchengli@chromium.org>
Reviewed-by: John Hsu <kchsu0@nuvoton.corp-partner.google.com>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>

[modify] https://crrev.com/3aa4242f37d4a7214b828782e0a7cca633dc70e0/sound/soc/codecs/nau8825.c
[modify] https://crrev.com/3aa4242f37d4a7214b828782e0a7cca633dc70e0/sound/soc/codecs/nau8825.h

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/0102d7babede507490d9d067cdb6c547b25d2404

commit 0102d7babede507490d9d067cdb6c547b25d2404
Author: Wu-Cheng Li <wuchengli@google.com>
Date: Thu Nov 30 19:48:57 2017

UPSTREAM: ASoC: nau8825: disable crosstalk by default

The driver makes the crosstalk funciton disabled by default
which can simplify the codec function. The platform may not
need this funciton and reduce the potential risk. Therefore,
We change the property "nuvoton,crosstalk-bypass" to
"nuvoton,crosstalk-enable". The crosstalk measurement is enabled
if the property is set. Otherwise, it is disabled. Besides,
add more condition in the entry point of the crosstalk sequence
to disable the function completely.

Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 226d7449135ffc62866c06d73b28cac90b3f31e4)
Signed-off-by: Wu-Cheng Li <wuchengli@google.com>

BUG= chromium:786989 
TEST=(1) Reboot and login
(2) Plug a low impedance headphone. Before crosstalk finishes
(<=1sec), unplug the headphone.
(3) Repeat (2) for a few times.
(4) Plug the headphone and UI can detect the headphone.
CQ-DEPEND=CL:799519

Change-Id: I9a7c8985cf0bcec6b96b5ef277c8a110441aab83
Reviewed-on: https://chromium-review.googlesource.com/799520
Commit-Ready: Wu-Cheng Li <wuchengli@chromium.org>
Tested-by: Wu-Cheng Li <wuchengli@chromium.org>
Reviewed-by: John Hsu <kchsu0@nuvoton.corp-partner.google.com>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>

[modify] https://crrev.com/0102d7babede507490d9d067cdb6c547b25d2404/sound/soc/codecs/nau8825.c
[modify] https://crrev.com/0102d7babede507490d9d067cdb6c547b25d2404/sound/soc/codecs/nau8825.h
[modify] https://crrev.com/0102d7babede507490d9d067cdb6c547b25d2404/Documentation/devicetree/bindings/sound/nau8825.txt

Status: Fixed. (was: Assigned)
This is fixed in M64.

Plugging and unplugging quickly is not a common use case. I don't think this is serious enough to merge to M63. Please reopen if anyone disagree.
Status: Fixed (was: Fixed.)
Project Member

Comment 15 by bugdroid1@chromium.org, Mar 13 2018

Labels: merge-merged-factory-glados-7828.B-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/a5e40f81f1d9253786e0b7b23ac6d5041ceaa487

commit a5e40f81f1d9253786e0b7b23ac6d5041ceaa487
Author: Wu-Cheng Li <wuchengli@google.com>
Date: Tue Mar 13 10:24:39 2018

UPSTREAM: ASoC: nau8825: disable crosstalk by default

The driver makes the crosstalk funciton disabled by default
which can simplify the codec function. The platform may not
need this funciton and reduce the potential risk. Therefore,
We change the property "nuvoton,crosstalk-bypass" to
"nuvoton,crosstalk-enable". The crosstalk measurement is enabled
if the property is set. Otherwise, it is disabled. Besides,
add more condition in the entry point of the crosstalk sequence
to disable the function completely.

Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 226d7449135ffc62866c06d73b28cac90b3f31e4)
Signed-off-by: Wu-Cheng Li <wuchengli@google.com>

BUG= chromium:786989 
TEST=(1) Reboot and login
(2) Plug a low impedance headphone. Before crosstalk finishes
(<=1sec), unplug the headphone.
(3) Repeat (2) for a few times.
(4) Plug the headphone and UI can detect the headphone.
CQ-DEPEND=CL:799519

Change-Id: I9a7c8985cf0bcec6b96b5ef277c8a110441aab83
Reviewed-on: https://chromium-review.googlesource.com/799520
Commit-Ready: Wu-Cheng Li <wuchengli@chromium.org>
Tested-by: Wu-Cheng Li <wuchengli@chromium.org>
Reviewed-by: John Hsu <kchsu0@nuvoton.corp-partner.google.com>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
(cherry picked from commit 0102d7babede507490d9d067cdb6c547b25d2404)
Reviewed-on: https://chromium-review.googlesource.com/927982
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Commit-Queue: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Commit-Queue: John Hsu <kchsu0@nuvoton.corp-partner.google.com>
Tested-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>

[modify] https://crrev.com/a5e40f81f1d9253786e0b7b23ac6d5041ceaa487/sound/soc/codecs/nau8825.c
[modify] https://crrev.com/a5e40f81f1d9253786e0b7b23ac6d5041ceaa487/sound/soc/codecs/nau8825.h
[modify] https://crrev.com/a5e40f81f1d9253786e0b7b23ac6d5041ceaa487/Documentation/devicetree/bindings/sound/nau8825.txt

Project Member

Comment 16 by bugdroid1@chromium.org, Mar 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/6960ba2d37770e6e5c7d27af0a2eb32583166718

commit 6960ba2d37770e6e5c7d27af0a2eb32583166718
Author: John Hsu <KCHSU0@nuvoton.com>
Date: Tue Mar 13 10:24:40 2018

UPSTREAM: ASoC: nau8825: automatic BCLK and LRC divde in master mode

configurable LRC and BCLK divide. The driver
will make configurations of LRC and BCLK automatically according to
BCLK and FS information in master mode.

Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 1e561f6166bacb9c12d6fa1d23df07999674573e)
Signed-off-by: Wu-Cheng Li <wuchengli@google.com>

BUG= chromium:786989 
TEST=Plug a headphone. Try YouTube and apprtc loopback.

Change-Id: I0eec3009c8da54da927db81bb08b52c426501bef
Reviewed-on: https://chromium-review.googlesource.com/799016
Commit-Ready: Wu-Cheng Li <wuchengli@chromium.org>
Tested-by: Wu-Cheng Li <wuchengli@chromium.org>
Reviewed-by: John Hsu <kchsu0@nuvoton.corp-partner.google.com>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
(cherry picked from commit de2ff3e3fac1889547bb85d75cffc4161a3ef250)
Reviewed-on: https://chromium-review.googlesource.com/928046
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Commit-Queue: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Commit-Queue: John Hsu <kchsu0@nuvoton.corp-partner.google.com>
Tested-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>

[modify] https://crrev.com/6960ba2d37770e6e5c7d27af0a2eb32583166718/sound/soc/codecs/nau8825.c

Sign in to add a comment