Fix suspend error of SOF driver

Bug #1908713 reported by Kai-Heng Feng
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
Unassigned
linux-oem-5.6 (Ubuntu)
Invalid
Undecided
Unassigned
Focal
Fix Released
High
Unassigned

Bug Description

[Impact]
SOF driver in oem-5.6 kernel tries to access HDA codec register when the
codec is already suspended. This may freeze suspend.

[Fix]
Revert HDA codec PM direct-complete optimization.
The same suspend optimization works perfectly on 5.8 and 5.10 kernel, so
something's wrong in the SOF driver in oem-5.6. However, SOF in oem-5.6
is in Frankenstein state so we better not touch it.

[Test]
Suspend a laptop with SOF driver, it can take 30 seconds to suspend, or
worse, it freezes.

With the patch applied, it can suspend in 1 second.

[Regression Risk]
For HDA codecs that benefit from this PM optimization, it'll take longer
to suspend and resume. Nothing else changes other than that.

Changed in linux-oem-5.6 (Ubuntu):
status: New → Invalid
Changed in linux-oem-5.6 (Ubuntu Focal):
status: New → Confirmed
importance: Undecided → High
tags: added: oem-priority originate-from-1908495 stella
AceLan Kao (acelankao)
Changed in linux-oem-5.6 (Ubuntu Focal):
status: Confirmed → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-focal' to 'verification-done-focal'. If the problem still exists, change the tag 'verification-needed-focal' to 'verification-failed-focal'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-focal
tags: added: verification-done-focal
removed: verification-needed-focal
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (23.0 KiB)

This bug was fixed in the package linux-oem-5.6 - 5.6.0-1039.43

---------------
linux-oem-5.6 (5.6.0-1039.43) focal; urgency=medium

  * focal/linux-oem-5.6: 5.6.0-1039.43 -proposed tracker (LP: #1909420)

  * Fix suspend error of SOF driver (LP: #1908713)
    - Revert "ALSA: hda: Refactor codec PM to use direct-complete optimization"

  * Packaging resync (LP: #1786013)
    - [Packaging] update variants

  * Killer 500s (QCA6390) WLAN/BT [17cb:1101] unavailable (LP: #1879633)
    - Bluetooth: btusb: Add flag to define wideband speech capability
    - Bluetooth: Support querying for WBS support through MGMT
    - Bluetooth: Enable erroneous data reporting if WBS is supported
    - Bluetooth: Increment management interface revision
    - Bluetooth: fix off by one in err_data_reporting cmd masks.
    - Bluetooth: mgmt: add mgmt_cmd_status in add_advertising
    - mac80211: add 802.11 encapsulation offloading support
    - mac80211: fix tx status for no ack cases
    - nl80211: add handling for BSS color
    - mac80211: add handling for BSS color
    - mac80211: allow setting queue_len for drivers not using wake_tx_queue
    - Bluetooth: hci_qca: Enable clocks required for BT SOC
    - Bluetooth: hci_qca: Optimized code while enabling clocks for BT SOC
    - mac80211: fix 11w when using encapsulation offloading
    - ath11k: Silence clang -Wsometimes-uninitialized in
      ath11k_update_per_peer_stats_from_txcompl
    - ath11k: drop tx_info from ath11k_sta
    - ath11k: add HE rate accounting to driver
    - ath11k: fix rcu lock protect in peer assoc confirmation
    - ath11k: fix warn-on in disassociation
    - ath11k: fix parsing PPDU_CTRL type in pktlog
    - ath11k: Fixing dangling pointer issue upon peer delete failure
    - ath11k: fix incorrect peer stats counters update
    - Bluetooth: hci_qca: Bug fixes while collecting controller memory dump
    - net: qrtr: Migrate nameservice to kernel from userspace
    - net: qrtr: Fix the local node ID as 1
    - net: qrtr: fix spelling mistake "serivce" -> "service"
    - net: qrtr: Fix error pointer vs NULL bugs
    - Bluetooth: Replace zero-length array with flexible-array member
    - Bluetooth: hci_qca: Not send vendor pre-shutdown command for QCA Rome
    - Bluetooth: btqca: Fix the NVM baudrate tag offcet for wcn3991
    - net: qrtr: Respond to HELLO message
    - net: qrtr: Fix FIXME related to qrtr_ns_init()
    - soc: qcom: Do not depend on ARCH_QCOM for QMI helpers
    - Bluetooth: hci_qca: Make bt_en and susclk not mandatory for QCA Rome
    - Bluetooth: hci_qca: Replace devm_gpiod_get() with devm_gpiod_get_optional()
    - ath11k: config reorder queue for all tids during peer setup
    - ath11k: add thermal cooling device support
    - ath11k: add thermal sensor device support
    - ath11k: Use scnprintf() for avoiding potential buffer overflow
    - ath11k: handle RX fragments
    - ath11k: enable PN offload
    - ath11k: set queue_len to 4096
    - ath11k: add WMI calls required for handling BSS color
    - ath11k: add handling for BSS color
    - ath11k: Supporting RX ring backpressure HTT event and stats handling
    - ath11k: fill channel info from rx channel
    - ath11k: dum...

Changed in linux-oem-5.6 (Ubuntu Focal):
status: Fix Committed → Fix Released
Gavin Lin (gavin.lin)
tags: added: cert-sru
Timo Aaltonen (tjaalton)
Changed in hwe-next:
status: New → Fix Released
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.