Even though skylake-driver is going to be replaced by the avs-driver, the goal is to keep it functional on all the configurations it supports until its EOL. When comparing chrome trees against upstream skylake-driver, couple fixes pop up that are not part of upstream repository. These fixes are backed up by real bugs (issue trackers), address real problems. There is no reason for them to stay in the internal tree.
Patches 1-4 combined together address issue where the driver updates the presumably static audio format descriptions coming from the topology files through its "fixup" functions. As long as given audio format is used by a single path, nothing collides and any updates are harmless. However, when multiple paths e.g.: DMIC and HDMI1 utilize the same audio format descriptor, any updates caused by the opening of the first path, may cause the second to fail.
The 5th change from the set fixes driver hang sporadically occurring during shutdown procedure. Once HDAudio links are powered down along with the AudioDSP, the hang stops reproducing.
The last change helps survive in environments with limited/fragmented memory. While the BDL is small already, other buffers can be allocated using scatter-gather. This basically aligns the code with what the avs-driver does.
Changes in v2: - no changes to the first 5 patches - added patch that I forgot to add in v1
Cezary Rojewski (6): ASoC: Intel: Skylake: Update pipe_config_idx before filling BE params ASoC: Intel: Skylake: Remove skl_tplg_is_multi_fmt() ASoC: Intel: Skylake: Drop pipe_config_idx ASoC: Intel: Skylake: Introduce single place for pipe-config selection ASoC: Intel: Skylake: Fix driver hang during shutdown ASoC: Intel: Skylake: Use SG allocation for SKL-based firmware load
sound/soc/intel/skylake/skl-sst-cldma.c | 27 +++++---- sound/soc/intel/skylake/skl-topology.c | 73 ++++++++----------------- sound/soc/intel/skylake/skl-topology.h | 1 - sound/soc/intel/skylake/skl.c | 5 +- 4 files changed, 44 insertions(+), 62 deletions(-)