Add DMIC support to oem-kernel

Bug #1826181 reported by Chih-Hsyuan Ho on 2019-04-24
18
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Undecided
Unassigned
OEM Priority Project
Critical
Unassigned
linux-oem-osp1 (Ubuntu)
Critical
Hui Wang
Bionic
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) on 2019-04-24
description: updated
Hui Wang (hui.wang) on 2019-04-24
Changed in linux-oem (Ubuntu):
assignee: nobody → Hui Wang (hui.wang)
importance: Undecided → Critical
Hui Wang (hui.wang) on 2019-05-01
description: updated
Hui Wang (hui.wang) on 2019-05-01
description: updated
tags: added: dell originate-from-1821270
tags: added: somerville
Hui Wang (hui.wang) on 2019-05-02
description: updated
Timo Aaltonen (tjaalton) on 2019-05-02
summary: - To add DMIC support to oem-kernel
+ Add DMIC support to oem-kernel
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
Hui Wang (hui.wang) wrote :

Got it, thx.

tags: added: hwe oem-priority
Rex Tsai (chihchun) on 2019-05-09
Changed in oem-priority:
importance: Undecided → Critical
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) on 2019-06-18
tags: added: verification-done-bionic
removed: verification-needed-bionic
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) on 2019-07-11
Changed in linux-oem-osp1 (Ubuntu Bionic):
status: Fix Released → Fix Committed
Rex Tsai (chihchun) on 2019-07-16
Changed in oem-priority:
status: New → Fix Committed
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
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.

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.

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
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  Edit
Everyone can see this information.

Other bug subscribers