thesofproject / sof

Sound Open Firmware
Other
546 stars 313 forks source link

[MTL] DMIC capture xruns on MTLP_RVP_HDA with GNA in D3hot #7646

Closed plbossart closed 1 year ago

plbossart commented 1 year ago

https://sof-ci.01.org/linuxpr/PR4349/build4857/devicetest/index.html shows multiple regressions on DMIC.

plbossart commented 1 year ago

@fredoh9 can we verify if this PR thesofproject/linux#4349 also breaks on a JF-based device?

plbossart commented 1 year ago

A lengthy bisect shows the following commit breaks DMIC capture on MTL_RVP_HDA. Interestingly the MTL_NOCODEC doesn't expose any issues despite using the DMIC with a more complicated topology

336ba968d3e3 platform/x86/intel/pmc/mtl: Put GNA/IPU/VPU devices in D3

plbossart commented 1 year ago

git log --oneline --reverse v6.3-rc1..e578c943e363ff47d08e7b4f5648f3da9db325d8

24efcdf03d85 platform/x86/amd: pmc: remove CONFIG_SUSPEND checks 001f61c4688f platform/x86: dell-ddv: Fix cache invalidation on resume 0331b1b0ba65 platform/x86: dell-ddv: Fix temperature scaling 95ecf9015852 platform/x86: ISST: Increase range of valid mail box commands 6a192c0cbf38 platform/x86/intel/tpmi: Fix double free reported by Smatch 03f5eb300ad1 platform: mellanox: select REGMAP instead of depending on it 7e7e1541c916 platform: x86: MLX_PLATFORM: select REGMAP instead of depending on it 94e9cbda06a3 platform/x86: ISST: Fix kernel documentation warnings e8059d393158 platform/x86: int3472: Add GPIOs to Surface Go 3 Board data 1a0009abfa78 platform: mellanox: mlx-platform: Initialize shift variable to 0 6614823a16b7 platform/x86: ISST: Add TPMI target 33c16dc1a2d1 platform/x86: ISST: Add IOCTL default callback 0e8ae77c869e platform/x86: ISST: Add API version of the target 2f0cf1e85ddb platform/x86: x86-android-tablets: Add Acer Iconia One 7 B1-750 data afdcb5353f06 platform/x86: x86-android-tablets: Move into its own subdir 62a5f689a068 platform/x86: x86-android-tablets: Move core code into new core.c file 3a75d1690b9a platform/x86: x86-android-tablets: Move DMI match table into its own dmi.c file 4ed14c23e1e8 platform/x86: x86-android-tablets: Move shared power-supply fw-nodes to a separate file 97abac9c8b89 platform/x86: x86-android-tablets: Move Asus tablets to their own file 7bf974f695f1 platform/x86: x86-android-tablets: Move Lenovo tablets to their own file cc183ad4590b platform/x86: x86-android-tablets: Move remaining tablets to other.c e2200d3f26da platform/x86: x86-android-tablets: Add gpio_keys support to x86_android_tablet_init() 772cbba5a877 platform/x86: x86-android-tablets: Add support for the Dolby button on Peaq C1010 9b1d2662b8c5 platform/x86: x86-android-tablets: Add touchscreen support for Lenovo Yoga Tab 3 Pro YT3-X90F 607fbac0fccb platform/x86: x86-android-tablets: Add backlight ctrl for Lenovo Yoga Tab 3 Pro YT3-X90F dadbc368f4f2 platform/x86: x86-android-tablets: Add LID switch support for Yoga Tablet 2 1050/830 series 5f250f8a77c4 platform/x86: x86-android-tablets: Lenovo Yoga Book match is for YB1-X91 models only 96c59f596ebe platform/x86: acer-wmi: Convert to platform remove callback returning void db0664d1afe0 platform/x86: adv_swbutton: Convert to platform remove callback returning void 5454b36274fd platform/x86: amd: hsmp: Convert to platform remove callback returning void 3359d99e7a4c platform/x86: amd: pmc: Convert to platform remove callback returning void b444276b12e7 platform/x86: amd: pmf: core: Convert to platform remove callback returning void 03b5d07a9e2f platform/x86: amilo-rfkill: Convert to platform remove callback returning void f4278cc8772f platform/x86: barco-p50-gpio: Convert to platform remove callback returning void d1bda9049334 platform/x86: compal-laptop: Convert to platform remove callback returning void 467daaf09496 platform/x86: dell: dcdbas: Convert to platform remove callback returning void bb9d621f4406 platform/x86: dell: dell-smo8800: Convert to platform remove callback returning void 3b5b3e9b00a6 platform/x86: hp: hp_accel: Convert to platform remove callback returning void fbc0e1e6a700 platform/x86: hp: tc1100-wmi: Convert to platform remove callback returning void 7836f70a03a0 platform/x86: huawei-wmi: Convert to platform remove callback returning void d21c474c2312 platform/x86: ideapad-laptop: Convert to platform remove callback returning void f9f23df7b640 platform/x86: intel: bxtwc_tmu: Convert to platform remove callback returning void bca92922e2a7 platform/x86: intel: chtdc_ti_pwrbtn: Convert to platform remove callback returning void fba53497e3c0 platform/x86: intel: chtwc_int33fe: Convert to platform remove callback returning void 63b890167e7f platform/x86: intel: hid: Convert to platform remove callback returning void 445f79fdd435 platform/x86: intel: int0002_vgpio: Convert to platform remove callback returning void e709455e9736 platform/x86: intel: int1092: intel_sar: Convert to platform remove callback returning void 6ee08b4eba3d platform/x86: intel: int3472: discrete: Convert to platform remove callback returning void ee12d8b43cf7 platform/x86: intel: mrfld_pwrbtn: Convert to platform remove callback returning void 1655db18b8dd platform/x86: intel: pmc: core: Convert to platform remove callback returning void 2d58b0092b75 platform/x86: intel: telemetry: pltdrv: Convert to platform remove callback returning void 4222272a04c3 platform/x86: intel: vbtn: Convert to platform remove callback returning void df23e156a988 platform/x86: samsung-q10: Convert to platform remove callback returning void 143b3c1af588 platform/x86: serial-multi-instantiate: Convert to platform remove callback returning void 0f16136b7acb platform/x86: wmi: Convert to platform remove callback returning void 9a318b8b069e platform/x86: xo1-rfkill: Convert to platform remove callback returning void

90caf1dfe9ef platform/x86: apple-gmux: use first bit to check switch state 96ec2d9868c4 platform/x86: apple-gmux: refactor gmux types 0c18184de990 platform/x86: apple-gmux: support MMIO gmux on T2 Macs f863fac1b15f platform/x86: apple-gmux: add debugfs interface d2e683214799 platform/x86: apple-gmux: Add acpi_video_get_backlight_type() check ad3d0ee8dca5 platform/x86: apple-gmux: Update apple_gmux_detect documentation f0f2903de504 platform/x86: apple-gmux: return -EFAULT if copy fails 3608a2cd818a backlight: apple_bl: Use acpi_video_get_backlight_type() b59018c14c1e platform/x86: x86-android-tablets: Add depends on PMIC_OPREGION de4fb5f51655 Merge tag 'ib-pdx86-backlight-6.4' into review-hans

94227b9c88f3 platform/x86: Add intel_bytcrc_pwrsrc driver b58a444d7f28 platform/surface: aggregator_tabletsw: Properly handle different posture source IDs 37ff64cd81ff platform/surface: aggregator_tabletsw: Add support for Type-Cover posture source 39e2ba648a6e platform/surface: aggregator_registry: Add support for tablet-mode switch on Surface Pro 9 3ed0b880b714 platform/x86: dell-laptop: Register ctl-led for speaker-mute e6d3418130cd platform/x86: ISST: Add support for MSR 0x54 d805456c712f platform/x86: ISST: Enumerate TPMI SST and create framework 0ab147bb840f platform/x86: ISST: Parse SST MMIO and update instance 12a7d2cb811d platform/x86: ISST: Add SST-CP support via TPMI ea009e4769fa platform/x86: ISST: Add SST-PP support via TPMI 06a61df83209 platform/x86: ISST: Add SST-BF support via TPMI f8e0077a9d52 platform/x86: ISST: Add SST-TF support via TPMI 91576acab020 platform/x86: ISST: Add suspend/resume callbacks 8496bacae643 platform/x86: acerhdf: Remove unneeded semicolon da62908efe80 platform/x86: think-lmi: Properly interpret return value of tlmi_setting daaa2a1f7834 platform/x86: think-lmi: Remove custom kobject sysfs_ops e970607955eb platform/x86: classmate: mark SPI related data as maybe unused 06984c83e9af platform/x86: sony: mark SPI related data as maybe unused fd3c35845390 platform/x86: pcengines-apuv2: Drop platform:pcengines-apuv2 module-alias d7b2b9387eda platform/olpc: olpc-xo175-ec: Use SPI device ID data to bind device 3f95ecf2a3e4 platform/x86/intel: vsec: Explicitly enable capabilities d908084385a4 platform/x86/intel/pmt: Add INTEL_PMT module namespace 6f561677c2f2 platform/x86/intel: vsec: Use intel_vsec_dev_release() to simplify init() error cleanup

GOOD

7c7e7c0d396b tools/power/x86/intel-speed-select: Unify TRL levels 16c1892080d8 tools/power/x86/intel-speed-select: Follow TRL nameing for FACT info e157c8475e7c tools/power/x86/intel-speed-select: Introduce punit to isst_id 57ef2436a175 tools/power/x86/intel-speed-select: Introduce isst_is_punit_valid() b4edf3854a01 tools/power/x86/intel-speed-select: Introduce support for multi-punit c77a8d4af68d tools/power/x86/intel-speed-select: Rename for_each_online_package_in_set ad7e17fcb126 tools/power/x86/intel-speed-select: Improve isst_print_extended_platform_info 2042c0abf050 tools/power/x86/intel-speed-select: Move mbox functions to isst-core.c 13b868f8928c tools/power/x86/intel-speed-select: Introduce isst_get_disp_freq_multiplier e9f79348aedb tools/power/x86/intel-speed-select: Always invoke isst_fill_platform_info d0d1a603c5fe tools/power/x86/intel-speed-select: Introduce isst-core-mbox.c 143584e8484f tools/power/x86/intel-speed-select: Abstract is_punit_valid 724387448a45 tools/power/x86/intel-speed-select: Abstract get_config_levels bbe32d87524b tools/power/x86/intel-speed-select: Abstract get_ctdp_control 645b66054cb5 tools/power/x86/intel-speed-select: Abstract get_tdp_info e107dec9a8dd tools/power/x86/intel-speed-select: Abstract get_pwr_info e4cbd0f13f9a tools/power/x86/intel-speed-select: Move code right before its caller a30cbd227086 tools/power/x86/intel-speed-select: Abstract get_tjmax_info 668cc16cc8a0 tools/power/x86/intel-speed-select: Abstract get_coremask_info 39f768c341fa tools/power/x86/intel-speed-select: Abstract get_get_trl 1e37f1b21c70 tools/power/x86/intel-speed-select: Abstract get_trl_bucket_info f88c3c4bd431 tools/power/x86/intel-speed-select: Abstract set_tdp_level 7a1962904fe4 tools/power/x86/intel-speed-select: Abstract get_pbf_info 05ece6916e9a tools/power/x86/intel-speed-select: Remove isst_get_pbf_info_complete 5843f2177058 tools/power/x86/intel-speed-select: Abstract set_pbf_fact_status 7b5f586dcfdf tools/power/x86/intel-speed-select: Abstract get_fact_info 00c26c1f7e3d tools/power/x86/intel-speed-select: Abstract get_uncore_p0_p1_info 855932831511 tools/power/x86/intel-speed-select: Enhance get_tdp_info 4a17b2918873 tools/power/x86/intel-speed-select: Abstract get_get_trls a07bdb81c143 tools/power/x86/intel-speed-select: Abstract get_clos_information 904d2baa8b04 tools/power/x86/intel-speed-select: Abstract pm_qos_config 43314e798c92 tools/power/x86/intel-speed-select: Abstract pm_get_clos 33dbf360db5f tools/power/x86/intel-speed-select: Abstract set_clos b161bbad6db9 tools/power/x86/intel-speed-select: Abstract clos_get_assoc_status a59a6c0cadd5 tools/power/x86/intel-speed-select: Abstract clos_associate 8f54104f7a95 tools/power/x86/intel-speed-select: Abstract read_pm_config 73452ccc190a tools/power/x86/intel-speed-select: Abstract adjust_uncore_freq 2b86ed225e65 tools/power/x86/intel-speed-select: Move send_mbox_cmd to isst-core-mbox.c 05aab5b8c1b7 tools/power/x86/intel-speed-select: Allow api_version based platform callbacks 9798768ce9bc tools/power/x86/intel-speed-select: Introduce is_debug_enabled() 20f06c9db22b tools/power/x86/intel-speed-select: Support large clos_min/max 887e5be91dd2 tools/power/x86/intel-speed-select: Introduce api_version helper a0ca5a097342 tools/power/x86/intel-speed-select: Get punit core mapping information 79554aaa224a tools/power/x86/intel-speed-select: Introduce TPMI interface support 46de87e39b87 tools/power/x86/intel-speed-select: Display punit info 5f319081657c tools/power/x86/intel-speed-select: Display amx_p1 and cooling_type 2e54ba89ec52 tools/power/x86/intel-speed-select: Allow display non-cpu power domain info 443bf104ef10 tools/power/x86/intel-speed-select: Prevent cpu clos config for non-cpu power domain ca7c5d5b75fd tools/power/x86/intel-speed-select: Show level 0 name for new api_version b1e9b87b3b59 tools/power/x86/intel-speed-select: Display fact info for non-cpu power domain c5a295caefa3 tools/power/x86/intel-speed-select: Hide invalid TRL level c7ff8ff3b29e tools/power/x86/intel-speed-select: Remove cpu mask display for non-cpu power domain 14f0cf6cfa53 tools/power/x86/intel-speed-select: Avoid setting duplicate tdp level d0e12c46f518 tools/power/x86/intel-speed-select: Add cpu id check 137ba3b13aac tools/power/x86/intel-speed-select: Fix clos-max display with TPMI I/F 57797f19d5a7 tools/power/x86/intel-speed-select: Add missing free cpuset 997074df658e tools/power/x86/intel-speed-select: Use cgroup v2 isolation a835ff56dd9c tools/power/x86/intel-speed-select: Display AMX base frequency 1d54b139f434 tools/power/x86/intel-speed-select: Identify Emerald Rapids 2c00056f5429 tools/power/x86/intel-speed-select: Change TRL display for Emerald Rapids 19799d3ae2ed tools/power/x86/intel-speed-select: Update version fd5aadaa218c Merge remote-tracking branch 'intel-speed-select/intel-sst' into review-hans

GOOD

392cacf2aa10 platform/x86: Add new msi-ec driver 67f88ffa6d35 platform/x86/intel/ifs: Separate ifs_pkg_auth from ifs_data 54c9fcd187dd platform/x86/intel/ifs: Reorganize driver data d847eddf0ee9 platform/x86/intel/ifs: IFS cleanup c68e3d473988 x86/include/asm/msr-index.h: Add IFS Array test bits d31bbdf42b46 platform/x86/intel/ifs: Introduce Array Scan test to IFS 5210fb4e1880 platform/x86/intel/ifs: Sysfs interface for Array BIST fed696ce1366 platform/x86/intel/ifs: Implement Array BIST test 2b965dc05dc1 platform/x86/intel/ifs: Update IFS doc 3a2f2756c518 Documentation/ABI: Update IFS ABI doc 710ddfbfda93 platform/x86: ISST: unlock on error path in tpmi_sst_init() 0de0ab9a659a platform/x86: Move ideapad ACPI helpers to a new header e82882cdd241 platform/x86: Add driver for Yoga Tablet Mode switch 3e9adae9336f platform/x86: think-lmi: Remove unnecessary casts for attributes 01862d01cb36 platform/x86: x86-android-tablets: Use LP8557 in direct mode on both the Yoga 830 and the 1050 ec5a4565fd6e platform/x86: x86-android-tablets: Share lp855x_platform_data between different models c69fec50ec2e platform/x86: x86-android-tablets: Add Lenovo Yoga Book X90F/L data fb131c472df9 platform/x86: apple-gmux: Fix iomem_base __iomem annotation 7bef7eea539d platform/mellanox: add firmware reset support 4f59630a5ed0 platform/x86: intel-uncore-freq: Add client processors

GOOD

aec8298c093f platform/x86/amd/pmf: Move out of BIOS SMN pair for driver probe b845772677ea platform/x86/amd: pmc: Don't try to read SMU version on Picasso 5ec9ee0d4647 platform/x86/amd: pmc: Hide SMU version and program attributes for Picasso 7abc3618b653 platform/x86/amd: pmc: Don't dump data after resume from s0i3 on picasso 9217bd1d7699 platform/x86/amd: pmc: Move idlemask check into amd_pmc_idlemask_read 310e782a99c7 platform/x86/amd: pmc: Utilize SMN index 0 for driver probe 8d99129eef8f platform/x86/amd: pmc: Move out of BIOS SMN pair for STB init

GOOD

336ba968d3e3 platform/x86/intel/pmc/mtl: Put GNA/IPU/VPU devices in D3

TEST

5b309e80f457 platform/x86: amd: pmc: Remove __maybe_unused from amd_pmc_suspend_handler()

BAD

82c3a0b7f0cb mlxbf-bootctl: Add sysfs file for BlueField boot fifo f6e7ac4c35a2 platform/x86/amd: pmc: Fix memory leak in amd_pmc_stb_debugfs_open_v2() efebfa80ce24 platform/x86: amd: pmc: provide user message where s0ix is not supported 3f581602a22c platform/x86/intel/pmt: Ignore uninitialized entries 14f6f0e3709a platform/x86/intel/sdsi: Change mailbox timeout 3a133f7c51b2 platform/x86: thinkpad_acpi: Fix Embedded Controller access on X380 Yoga 02377e983e22 platform/x86: x86-android-tablets: Update Yoga Book HiDeep touchscreen comment 95b829f89da3 platform/x86: x86-android-tablets: Add Wacom digitizer info for Lenovo Yoga Book 1d3f7a31aa96 platform/x86: x86-android-tablets: Add "yogabook-touch-kbd-digitizer-switch" pdev for Lenovo Yoga Book e578c943e363 platform/x86: x86-android-tablets: Add accelerometer support for Yoga Tablet 2 1050/830 series

BAD

plbossart commented 1 year ago

Possible device to device variation https://github.com/thesofproject/linux/pull/4360 shows good results with the bad commit included. Something is still not quite right.

plbossart commented 1 year ago

PR thesofproject/linux#4349 updated with "bad" commit reverted. Let's see if the results are better.

plbossart commented 1 year ago

Using the MTL-005 firmware has no impact, same issue with the PMC commit.

plbossart commented 1 year ago

@keqiaozhang confirmed that this issue is not device-specific and happens with all our test device. Thanks a lot for this!

plbossart commented 1 year ago

@marc-hb suggested trying to figure out which of the PCI devices break the DMIC capture, and the results point to GNA. This patch makes the test pass

diff --git a/drivers/platform/x86/intel/pmc/mtl.c b/drivers/platform/x86/intel/pmc/mtl.c
index e8cc156412ce..4284ba847e51 100644
--- a/drivers/platform/x86/intel/pmc/mtl.c
+++ b/drivers/platform/x86/intel/pmc/mtl.c
@@ -77,7 +77,7 @@ void mtl_core_init(struct pmc_dev *pmcdev)
         * Set power state of select devices that do not have drivers to D3
         * so that they do not block Package C entry.
         */
-       mtl_set_device_d3(MTL_GNA_PCI_DEV);
+       //mtl_set_device_d3(MTL_GNA_PCI_DEV);
        mtl_set_device_d3(MTL_IPU_PCI_DEV);
        mtl_set_device_d3(MTL_VPU_PCI_DEV);
 }
plbossart commented 1 year ago

With a basic DMIC passthrough topology, additional tests with the IPC4 reference firmware show no issues with DMIC capture with or without GNA in D3hot.

cSOF MTL-005 generates DMIC capture xruns when GNA is in D3hot.

So this points so a problematic interaction (or lack thereof) between platform firmware and cSOF firmware - possibly regarding power domains and clocks not being on by default?

Moving this issue as SOF one.

plbossart commented 1 year ago

Additional data points with more experiments:

cSOF MTL-005 does NOT show the problem with the 'nocodec' build of the kernel

cSOF MTL-005 DOES show the problem with the 'regular' build of the kernel with a) standard HDaudio + DMIC topology or b the sof-mtl-nocodec topology selected with a kernel parameter options snd-sof sof_debug=0x401

In both case disabling pm_runtime with options snd_sof_pci sof_pci_debug=0x1 does not help: it's not a suspend-resume issue.

So this points to an intersection of UEFI setup, kernel HDaudio DMA initialization and cSOF behavior.

plbossart commented 1 year ago

the statement "cSOF MTL-005 does NOT show the problem with the 'nocodec' build of the kernel" was incorrect, it was due to a missing kernel configuration that didn't include PMC settings. This was corrected with https://github.com/thesofproject/kconfig/pull/86

To recap, the problem happens with all kernel builds when: a) GNA disabled in UEFI BIOS or GNA put to D3hot by PMC core, and b) cSOF MTL-005 firmware is used

The problem does not happen with a) GNA disabled in Coreboot, or b) IPC4 reference firmware.

@kv2019i @mwasko does this clarify the problem statement?

abonislawski commented 1 year ago

@plbossart Im trying to reproduce this on our linux platform but I cant get error on DMIC arecord

Setup: MTL-NOCODEC Disabled in bios: GNA, IPU, VPU Kernel: linux-image-gc8f67b29a153_6.4.0-rc1-nocodec-topic-sof-dev_amd64.deb (2023-05-30) FW: MTL-005 TPLG: MTL-005

also tested with options snd-sof sof_debug=0x401

What could be missing here?

plbossart commented 1 year ago

@abonislawski you are probably not using the 'right' image. I don't know what this tag c8f67b29a153 is. Just use a regular 'default' image and the 0x401 image, you'll see.

abonislawski commented 1 year ago

Its just newest daily build from sof-ci:

Linux Branch: topic/sof-dev Linux Commit: c8f67b29a153 Kconfig Branch: master Kconfig Commit: 4b61be9d5472 https://sof-ci.ostc.intel.com/#/buildresult/linuxbuildresult/188

Which one is "default"? Its hard to start without setup description. Also, is there somewhere build with "mtl_set_device_d3(MTL_GNA_PCI_DEV)" to download?

plbossart commented 1 year ago

~follow the download button and use linux-image-gc8f67b29a153_6.4.0-rc1-default-topic-sof-dev_amd64.deb~

plbossart commented 1 year ago

oh wait, we've actually reverted the problematic commit to make things work in CI.

So you need to compile yourself topic/sof-dev with commit https://github.com/thesofproject/linux/pull/4349/commits/743c0c9b590899b78edcd24bf1999f948141d8ca reverted

abonislawski commented 1 year ago

oh, so disabling GNA in BIOS is not enough? Good we clarified this, let me try

EDIT: Actually Im not sure if this make sense because if GNA is disabled via BIOS then this device is simply not visible (like in lspci command) so "mtl_set_device_d3(MTL_GNA_PCI_DEV);" cannot do anything to not available device 0x7e4c.

I just verified this with disabled GNA (no device on lspci) and custom kernel with this commit reverted, no difference, something is missing here

plbossart commented 1 year ago

@abonislawski with GNA disabled you should see the issue. @fredoh9 disabled it on our device via the System Agent (SA) configuration. GNA device (B0:D8:F0) was moved to <Disabled>

fredoh9 commented 1 year ago

worked with @abonislawski @plbossart

latest mtl-005-drop-stable doesn't have the issue. When we first had this issue, mtl-005-drop-stable branch had 36a7a817fb8b I did git bisect, it points 87dc723abd965caeba19ead34f6d754f60e5672c fix the problem.

commit 87dc723abd965caeba19ead34f6d754f60e5672c 
Author: Adrian Warecki <adrian.warecki@intel.com> 
Date:   Wed May 10 14:28:18 2023 +0200 

    dai: always reload dma ll chain 

    Reload the dma descriptor chain even if there are no bytes to copy. This 
    may result in the loss of some data, but at least the dma will not stop. 

    Signed-off-by: Adrian Warecki <adrian.warecki@intel.com> 

src/audio/dai-zephyr.c | 1 + 
1 file changed, 1 insertion(+) 
mengdonglin commented 1 year ago

@abonislawski Does this mean putting GNA in D3 could make dai DMA stop?

abonislawski commented 1 year ago

@mengdonglin thats why title says "DMIC capture xruns" but this is more likely side effect of host issues on linux in corner case, thats why this dma reload commit helps in several issues but was never needed on windows. Additional issue thread will follow up to investigate this. EDIT:

One more thing not mentioned before on github: on windows GNA was always in D3 with SOF MTL tests and no issues here.

marc-hb commented 1 year ago

I did git bisect, it points https://github.com/thesofproject/sof/commit/87dc723abd965caeba19ead34f6d754f60e5672c fix the problem.

Note this is a cherry-pick [-x] of commit https://github.com/thesofproject/sof/commit/5ad5da5bc757 on the main branch that tried to fix #7506 which was just re-opened. The commit message is different and missing the reference to the original commit but it is the same one-line change.

Internal issue number 14019405287

lgirdwood commented 1 year ago

@plbossart can this be closed ?

plbossart commented 1 year ago

@abonislawski mentioned that he would create a port for 'main' of the commit that was added on mtl-005-stable. This should remain open until it's fixed in 'main' IMHO. It's fine to use release branches, as long as 'main' is updated in a not-too-distant future.

mengdonglin commented 1 year ago

@abonislawski You fixed this issue for mtl-005-drop-stable with https://github.com/thesofproject/zephyr/commit/c31e683295ebd77789f6b4e95c68b073b53b0112 but I cannot find this fix in upstream Zephyr. However, we cannot reproduce this issue on MTLP_RVP_HDA recently (ww30 BIOS). Maybe the BIOS fix has been integrated and so FW fix is no longer needed?

mengdonglin commented 1 year ago

@plbossart @abonislawski @lgirdwood BIOS fix to set L1 exit threshold to be 1/4 FIFO size were applied in early of June. I think that's why we cannot reproduce this issue with recent BIOS and SOF main branch.

SOF main branch doesn't have FW fix https://github.com/thesofproject/zephyr/commit/c31e683295ebd77789f6b4e95c68b073b53b0112 on mtl-005-drop-stable branch.

My understanding is that either BIOS or FW fix is enough. So I will close this bug. Please reopen it if you have any concerns.

mengdonglin commented 1 year ago

This issue is a duplicate of #7506 and internal bug ID is 14019326748.

@abonislawski @yongzhi1 Do you know if coreboot also applied the BIOS fix to set L1 exit threshold to be 1/4 FIFO size? If coreboot hasn't applied the fix, SOF FW fix https://github.com/thesofproject/zephyr/commit/c31e683295ebd77789f6b4e95c68b073b53b0112 will be needed on main branch for next MTL-006 release.

mengdonglin commented 1 year ago

Zephyr fixes got merged https://github.com/zephyrproject-rtos/zephyr/pull/62101/ and SOF updated for v2.7