Fedora 34 Change: SOF as default audio driver for Intel LPE hardware (Self-Contained Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://fedoraproject.org/wiki/Changes/SofDefaultForIntelLpe


== Summary ==
Intel LPE audio hardware has 2 drivers in the mainline kernel the SST
driver and the SOF driver, switch the default driver from SST to SOF.

== Owner ==
* Name: [[User:jwrdegoede| Hans de Goede]]
* Email: hdegoede@xxxxxxxxxx


== Detailed Description ==

Intel x86 hardware based on the Bay Trail-T and Cherry Trails SoCs
does not come with the standard Intel HDA audio hardware. Instead it
has an audio block called the Low Power Engine or LPE. The LPE block
needs to have firmware loaded into it to function. There are 2
firmwares available the old proprietary SST firmware and recently the
open source SOF firmware has been released for the LPE engine.

There are also 2 kernel drivers for the LPE block, one for each
firmware, so we have a SST driver and a SOF driver. The upstream Intel
developers of these drivers, who are also part of the SOF team want to
deprecate and eventually remove the old SST driver in favor of the SOF
driver. Starting with the 5.11 kernel it is possible to build both
drivers into a single kernel and select which one will actually bind
to the LPE block using a kernel commandline parameter.

ATM the upstream default is the old SST driver, to avoid regressions.
This Fedora change will entail carrying a downstream patch which flips
the default to the SOF driver. This is being done in conclave with the
upstream devs who would like to see more testing of the SOF driver.
The upstream devs believe that the SOF driver is ready to replace the
SST driver, but they would appreciate this being tested by Fedora
first, before they flip the default for everyone.


== Benefit to Fedora ==

By consciously making the switch now, with extensive testing and
monitoring the situation we can safely make the switch without
regressions hitting users of the Fedora stable releases. Whereas if we
just wait for upstream to flip the default, then this may very well
land in the middle of a stable release when we rebase the kernel.

This helps strengthen our relationship with the upstream developers
and falls under the "First" part of the "Four Foundations".

This stops us from depending in the proprietary SST firmware-blobs,
replacing them with the Open Source SOF firmware, matching the
"Freedom" part of the "Four Foundations".

== Scope ==
* Proposal owners: This will require a small downstream kernel patch
to change the default driver when both are built (or an upstream patch
to make the default configurable). That's it, no other changes are
required.
* Other developers: N/A (not a System Wide Change)
* Release engineering: N/A (not a System Wide Change)
* Policies and guidelines: N/A (not a System Wide Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives: This falls under the "First" part of the
"Four Foundations".

== Upgrade/compatibility impact ==
The switch will automatically be made when booting a Fedora 34 kernel.

== How To Test ==
I (Hans de Goede) have an extensive collection of affected hardware.
The audio setup on these devices consists of the LPE block itself
combined with an external audio-codec. There are a number of
audio-codecs used / supported on these boards. The LPE block has 2
audio-links (called SSP0 and SSP2) and some of the codecs have 2
audio-links (called AIF1 and AIF2) not each board uses the same
audio-link on each side.

I plan to run the below test-plan on devices with the following SoC /
codec / link combinations:

* Bay Trail (CR) / RT5640  / SSP0<->AIF1
* Bay Trail (CR) / RT5640  / SSP0<->AIF2
* Bay Trail      / RT5640  / SSP2<->AIF1
* Cherry Trail   / RT5640  / SSP2<->AIF1
* Cherry Trail   / RT5645  / SSP2
* Bay Trail (CR) / RT5651  / SSP0<->AIF1
* Cherry Trail   / RT5651  / SSP2<->AIF1
* Bay Trail      / RT5672  / SSP2
* Bay Trail (CR) / ESS8316 / SSP0
* Cherry Trail   / ESS8316 / SSP2
* Cherry Trail   / NAU8824 / SSP2

Each of these will be tested according to the following test-plan:

# Test speakers.
# Test internal mic.
# Plugin headset, test headphones.
# Test headset-mic
# Stop all audio, suspend + resume, test speakers.
# suspend + resume while playing audio, audio should resume playing
after resume.

Users who want to test this and who have the affected hardware can
also use this test-plan to test.

== User Experience ==
The SST driver has some suspend/resume problems around suspending with
audio playing. The SOF driver resolves these. Other then that the
user-experience should be unchanged.

== Dependencies ==
N/A (not a System Wide Change)

== Contingency Plan ==
We can simply drop the patch flipping the default to get back to the
F33 state of things.

* Contingency mechanism: Revert the change
* Contingency deadline: Beta release
* Blocks release? No

== Documentation ==
N/A (not a System Wide Change)

== Release Notes ==
FIXME: TODO

-- 
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
Red Hat
TZ=America/Indiana/Indianapolis
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux