mbox series

[v2,0/6] ASoC: Intel: Skylake: Topology and shutdown fixes

Message ID 20221205085330.857665-1-cezary.rojewski@intel.com (mailing list archive)
Headers show
Series ASoC: Intel: Skylake: Topology and shutdown fixes | expand

Message

Cezary Rojewski Dec. 5, 2022, 8:53 a.m. UTC
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(-)

Comments

Lukasz Majczak Dec. 5, 2022, 10:29 a.m. UTC | #1
pon., 5 gru 2022 o 09:36 Cezary Rojewski <cezary.rojewski@intel.com> napisaƂ(a):
>
> 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(-)
>
> --
> 2.25.1
>
Tested on a Pixelbook chromebook (Kabylake-Y) with a looped suspend-resume test.
No issue observed.

Tested-by: Lukasz Majczak <lma@semihlaf.com>

Thanks,
Lukasz
Mark Brown Dec. 7, 2022, 5:37 p.m. UTC | #2
On Mon, 05 Dec 2022 09:53:24 +0100, Cezary Rojewski wrote:
> 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.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/6] ASoC: Intel: Skylake: Update pipe_config_idx before filling BE params
      commit: 72d9a541d7f186f0ec97c71ba7e477dd9bf4155f
[2/6] ASoC: Intel: Skylake: Remove skl_tplg_is_multi_fmt()
      commit: b0d16e54e7559f2055123ea7b1d9ff1bb808ebad
[3/6] ASoC: Intel: Skylake: Drop pipe_config_idx
      commit: 75ab3c00769009e32e5cf51c8b503de4f73114e4
[4/6] ASoC: Intel: Skylake: Introduce single place for pipe-config selection
      commit: 4ac587f3578c5ca490e4df55af6403f5474eb2f0
[5/6] ASoC: Intel: Skylake: Fix driver hang during shutdown
      commit: 171107237246d66bce04f3769d33648f896b4ce3
[6/6] ASoC: Intel: Skylake: Use SG allocation for SKL-based firmware load
      commit: 451d85c46cf719a09a052510d4d4cd920103163a

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark