Add DMIC support to oem-kernel

Bug #1826181 reported by Chih-Hsyuan Ho
18
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
Unassigned
OEM Priority Project
Fix Released
Critical
Unassigned
linux-oem-osp1 (Ubuntu)
Fix Released
Critical
Hui Wang
Bionic
Fix Released
Undecided
Unassigned

Bug Description

- Need to port Intel's 5.0 kernel branch to (Disco) oem-kernel for DMIC (digital MIC) support in some OEM platforms

To support digital mic which is directly connected to PCH, Intel recommend Dell
and us to use sound:asoc:sof driver. This driver is under upstreaming, so far,
only part of the driver is merged to ASoC's tree.

Dell already have a couple of laptop models which connect the dmic to PCH, and
Dell pushed Intel to prepare a workable sof driver under v5.0 branch, and
pused us to integrate this driver, then the dmic can work on those laptop
models. (Lenovo also have 2 laptops which has this dmic design)

According to Intel's estimation, the whole sof driver can't be upstreamed in a
short of period. So Intel provided a branch which contains some upstreamed
patches and some not-yet patches.

Intel tested the provided branch, and looks the testing result is good.
PLease access https://people.canonical.com/~hwang4/sof-doc/ to get the testing
result.

I also made a simple test after oem-d merged those patches, I didn't find
big issues too.

There are some patches which touched the common code or the code of other
subsystems. Intel said it is safe, and I also looked at those patches, I also
think it is safe. But because there are too many changes, let us put this driver
into the OEM-D kernel, this driver will not merge to generic kernel.

[Impact]
Our OEM project need to enable a couple of laptops which connect the dmic
directly to the PCH, there is no driver for this design in the linux kernel,
so we need to integrate Intel's sof driver.

[Fix]
Intel provided a sof driver tree based on v5.0, it is for oem-d kernel

[Test Case]
Intel tested the audio functions, the testing result is good.
https://people.canonical.com/~hwang4/sof-doc/Beta%20Test%20Report%20-%20Dell%20Mantis%20(CML)%20%20-%20Apr%2030.pdf

I also made a simple test, speaker, headphone, dmic and headset-mic
worked.

[Regression Risk]
Low. So far both Intel side and I have not found any regression introduced by this
patchset, and to lower the risk, we only integrate the driver to oem-d kernel,
and after the image is ready, the oem project will perform the full-range test.

Chih-Hsyuan Ho (chih)
description: updated
Hui Wang (hui.wang)
Changed in linux-oem (Ubuntu):
assignee: nobody → Hui Wang (hui.wang)
importance: Undecided → Critical
Hui Wang (hui.wang)
description: updated
Hui Wang (hui.wang)
description: updated
tags: added: dell originate-from-1821270
tags: added: somerville
Hui Wang (hui.wang)
description: updated
Timo Aaltonen (tjaalton)
summary: - To add DMIC support to oem-kernel
+ Add DMIC support to oem-kernel
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

note; technically, it's 'OEM-OSP1-B', disco doesn't have an oem kernel of it's own ;)

affects: linux-oem (Ubuntu) → linux-oem-osp1 (Ubuntu)
Changed in linux-oem-osp1 (Ubuntu):
status: New → Invalid
Changed in linux-oem-osp1 (Ubuntu Bionic):
status: New → Confirmed
Revision history for this message
Hui Wang (hui.wang) wrote :

Got it, thx.

tags: added: hwe oem-priority
Rex Tsai (chihchun)
Changed in oem-priority:
importance: Undecided → Critical
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

this is in bionic-proposed, please test

tags: added: verification-needed-bionic
Changed in linux-oem-osp1 (Ubuntu Bionic):
status: Confirmed → Fix Committed
Hui Wang (hui.wang)
tags: added: verification-done-bionic
removed: verification-needed-bionic
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (5.2 KiB)

This bug was fixed in the package linux-oem-osp1 - 5.0.0-1012.13

---------------
linux-oem-osp1 (5.0.0-1012.13) bionic; urgency=medium

  * linux-oem-osp1: 5.0.0-1012.13 -proposed tracker (LP: #1833932)

  * Add DMIC support to oem-kernel (LP: #1826181)
    - ASoC: SOF: Intel: hda: reduce ifdef usage for hda
    - ASoC: SOF: Intel: hda: Enable jack detection in sof hda driver
    - Revert "ASoC: SOF: Intel: hda: switch to use legacy IRQ mode"
    - ASoC: SOF: Intel: hda: modify stream interrupt handler
    - ASoC: SOF: Intel: fix warning for unused variable in non-HDA builds
    - ASoC: hdac_hdmi: report codec link up/down status to bus
    - ASoC: SOF: add runtime idle callback
    - ASoC: SOF: Intel: implement runtime idle for CNL/APL
    - ASoC: SOF: dont wake dsp up in kcontrol IO
    - ASoC: codec: hdac_hdmi: fix pin connections at cvt enable
    - ALSA: hda: fix headphone detection failed

  * [SRU][B/B-OEM/B-OEM-OSP-1/C/D/E] Add trackpoint middle button support of 2
    new thinpads (LP: #1833637)
    - Input: elantech - enable middle button support on 2 ThinkPads

  * [graphics] Enable ICL (LP: #1825940)
    - drm/i915/icl: Add WaDisableBankHangMode
    - drm/i915/icl: Adding few more device IDs for Ice Lake
    - drm/i915/cfl: Adding another PCI Device ID.
    - drm/i915: Accept alloc_size == blocks
    - drm/i915: Don't pass plane state to skl_compute_plane_wm()
    - drm/i915: Extract skl_compute_wm_params()
    - drm/i915: Allocate enough DDB for the cursor
    - drm/i915: Make sure cursor has enough ddb for the selected wm level
    - drm/i915: Keep plane watermarks enabled more aggressively
    - drm/i915: Move some variables to tighter scope
    - drm/i915: Don't pass pipe_wm around so much
    - drm/i915: Inline skl_update_pipe_wm() into its only caller
    - drm/i915: Fix PSR2 selective update corruption after PSR1 setup
    - drm/i915: Populate pipe_offsets[] & co. accurately
    - drm/i915: Extract ilk_lut_10()
    - drm/i915: Don't use split gamma when we don't have to
    - drm/i915: Implement split/10bit gamma for ivb/hsw
    - drm/i915: Add 10bit LUT for ilk/snb
    - drm/i915: Add "10.6" LUT mode for i965+
    - drm/i915: Expose the legacy LUT via the GAMMA_LUT/GAMMA_LUT_SIZE props on
      gen2/3
    - drm/i915: Expose full 1024 LUT entries on ivb+
    - drm/i915: Introduce struct class_instance for engines across the uAPI
    - drm/i915: Fix skl+ max plane width
    - drm/i915: Rename skl_wa_clkgating to the actual WA
    - drm/i915: Fix the inconsistent RMW in WA 827
    - drm/i915/icl: Fix clockgating issue when using scalers
    - drm/i915: Always try to reset the GPU on takeover
    - drm/i915: Add Wa_1409120013:icl,ehl
    - drm/i915/icl: use ranges for voltage level lookup
    - drm/i915/cnl: use ranges for voltage level lookup
    - drm/i915/skl: use ranges for voltage level lookup

  * Sometimes touchpad automatically trigger double click (LP: #1833484)
    - SAUCE: i2c: designware: Add disable runtime pm quirk

  * Add pointstick support on HP ZBook 17 G5 (LP: #1833387)
    - Revert "HID: multitouch: Support ALPS PTP stick with pid 0x120A"
    - SAUCE: HID: multitouch: Add pointstick support for ALPS Touchp...

Read more...

Changed in linux-oem-osp1 (Ubuntu Bionic):
status: Fix Committed → Fix Released
Changed in hwe-next:
status: New → Fix Released
Timo Aaltonen (tjaalton)
Changed in linux-oem-osp1 (Ubuntu Bionic):
status: Fix Released → Fix Committed
Rex Tsai (chihchun)
Changed in oem-priority:
status: New → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux-oem-osp1 - 5.0.0-1015.16

---------------
linux-oem-osp1 (5.0.0-1015.16) bionic; urgency=medium

  * linux-oem-osp1: 5.0.0-1015.16 -proposed tracker (LP: #1836856)

  * System does not auto detect disconnection of external monitor (LP: #1835001)
    - drm/i915: Add support for retrying hotplug
    - drm/i915: Enable hotplug retry

  * alsa/hdmi: add icelake hdmi audio support for a Dell machine (LP: #1836916)
    - ALSA: hda: hdmi - add Icelake support
    - ALSA: hda/hdmi - Remove duplicated define
    - ALSA: hda/hdmi - Fix i915 reverse port/pin mapping

  * input/mouse: alps trackpoint-only device doesn't work (LP: #1836752)
    - Input: alps - don't handle ALPS cs19 trackpoint-only device

  * First click on Goodix touchpad doesn't be recognized after runtime suspended
    (LP: #1836836)
    - SAUCE: i2c: designware: add G3 3590 into i2c quirk

 -- Timo Aaltonen <email address hidden> Thu, 18 Jul 2019 11:29:53 +0300

Changed in linux-oem-osp1 (Ubuntu Bionic):
status: Fix Committed → Fix Released
Changed in oem-priority:
status: Fix Committed → Fix Released
Revision history for this message
M Willis Monroe (willismonroe) wrote :

I found this through random googling... but I'm running a Lenovo X1 Carbon gen 7 with Disco and installing this oem kernel package doesn't seem to enable the DMIC. Not sure if this is the correct place for that observation.

Revision history for this message
Shengyao Xue (xueshengyao) wrote :

@M Willis Monroe, besides the oem-kernel, I think you also need a UCM config file, could you please install this deb package (attached) and reboot, then check whether the dmic works.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux-oem-osp1 - 5.0.0-1015.16

---------------
linux-oem-osp1 (5.0.0-1015.16) bionic; urgency=medium

  * linux-oem-osp1: 5.0.0-1015.16 -proposed tracker (LP: #1836856)

  * System does not auto detect disconnection of external monitor (LP: #1835001)
    - drm/i915: Add support for retrying hotplug
    - drm/i915: Enable hotplug retry

  * alsa/hdmi: add icelake hdmi audio support for a Dell machine (LP: #1836916)
    - ALSA: hda: hdmi - add Icelake support
    - ALSA: hda/hdmi - Remove duplicated define
    - ALSA: hda/hdmi - Fix i915 reverse port/pin mapping

  * input/mouse: alps trackpoint-only device doesn't work (LP: #1836752)
    - Input: alps - don't handle ALPS cs19 trackpoint-only device

  * First click on Goodix touchpad doesn't be recognized after runtime suspended
    (LP: #1836836)
    - SAUCE: i2c: designware: add G3 3590 into i2c quirk

 -- Timo Aaltonen <email address hidden> Thu, 18 Jul 2019 11:29:53 +0300

Changed in linux-oem-osp1 (Ubuntu):
status: Invalid → Fix Released
Revision history for this message
Shengyao Xue (xueshengyao) wrote :

for the UCM config file in #7, you also can get it from this PPA (Bionic, Disco, Eoan supported):

https://launchpad.net/~xueshengyao/+archive/ubuntu/dmic/

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.