Linux Sound subsystem development
 help / color / mirror / Atom feed
From: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
To: lgirdwood@gmail.com, broonie@kernel.org, tiwai@suse.de
Cc: linux-sound@vger.kernel.org,
	pierre-louis.bossart@linux.intel.com,
	kai.vehmanen@linux.intel.com, ranjani.sridharan@linux.intel.com,
	stable@vger.kernel.org
Subject: [PATCH 00/17] ASoC: SOF: ipc4/Intel: Fix delay reporting (for 6.9 / 6.8)
Date: Thu, 21 Mar 2024 15:07:57 +0200	[thread overview]
Message-ID: <20240321130814.4412-1-peter.ujfalusi@linux.intel.com> (raw)

Hi,

The current version of delay reporting code can report incorrect
values when paired with a firmware which enables this feature.

Unfortunately there are several smaller issues that needed to be addressed
to correct the behavior:

Wrong information was used for the host side of counter
For MTL/LNL used incorrect (in a sense that it was verified only on MTL)
link side counter function.
The link side counter needs compensation logic if pause/resume is used.
The offset values were not refreshed from firmware.
Finally, not strictly connected, but the ALSA buffer size needs to be
constrained to avoid constant xrun from media players (like mpv)

The series applies cleanly for 6.9 and 6.8.y stable, but older stable
would need manual backport, but it is questionable if it is needed as
MTL/LNL is missing features.

Mark, can you pick these patches for the 6.9 cycle as fixes?

Regards,
Peter
---
Peter Ujfalusi (17):
  ASoC: SOF: Add dsp_max_burst_size_in_ms member to snd_sof_pcm_stream
  ASoC: SOF: ipc4-topology: Save the DMA maximum burst size for PCMs
  ASoC: SOF: Intel: hda-pcm: Use dsp_max_burst_size_in_ms to place
    constraint
  ASoC: SOF: Intel: hda: Implement get_stream_position (Linear Link
    Position)
  ASoC: SOF: Intel: mtl/lnl: Use the generic get_stream_position
    callback
  ASoC: SOF: Introduce a new callback pair to be used for PCM delay
    reporting
  ASoC: SOF: Intel: Set the dai/host get frame/byte counter callbacks
  ASoC: SOF: ipc4-pcm: Use the snd_sof_pcm_get_dai_frame_counter() for
    pcm_delay
  ASoC: SOF: Intel: hda-common-ops: Do not set the get_stream_position
    callback
  ASoC: SOF: Remove the get_stream_position callback
  ASoC: SOF: ipc4-pcm: Move struct sof_ipc4_timestamp_info definition
    locally
  ASoC: SOF: ipc4-pcm: Combine the SOF_IPC4_PIPE_PAUSED cases in
    pcm_trigger
  ASoC: SOF: ipc4-pcm: Invalidate the stream_start_offset in PAUSED
    state
  ASoC: SOF: sof-pcm: Add pointer callback to sof_ipc_pcm_ops
  ASoC: SOF: ipc4-pcm: Correct the delay calculation
  ALSA: hda: Add pplcllpl/u members to hdac_ext_stream
  ASoC: SOF: Intel: hda: Compensate LLP in case it is not reset

 include/sound/hdaudio_ext.h          |   3 +
 sound/soc/sof/intel/hda-common-ops.c |   3 +
 sound/soc/sof/intel/hda-dai-ops.c    |  11 ++
 sound/soc/sof/intel/hda-pcm.c        |  29 ++++
 sound/soc/sof/intel/hda-stream.c     |  70 ++++++++++
 sound/soc/sof/intel/hda.h            |   6 +
 sound/soc/sof/intel/lnl.c            |   2 -
 sound/soc/sof/intel/mtl.c            |  14 --
 sound/soc/sof/intel/mtl.h            |  10 --
 sound/soc/sof/ipc4-pcm.c             | 191 ++++++++++++++++++++++-----
 sound/soc/sof/ipc4-priv.h            |  14 --
 sound/soc/sof/ipc4-topology.c        |  22 ++-
 sound/soc/sof/ops.h                  |  24 +++-
 sound/soc/sof/pcm.c                  |   8 ++
 sound/soc/sof/sof-audio.h            |   9 +-
 sound/soc/sof/sof-priv.h             |  24 +++-
 16 files changed, 351 insertions(+), 89 deletions(-)

-- 
2.44.0


             reply	other threads:[~2024-03-21 13:07 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-21 13:07 Peter Ujfalusi [this message]
2024-03-21 13:07 ` [PATCH 01/17] ASoC: SOF: Add dsp_max_burst_size_in_ms member to snd_sof_pcm_stream Peter Ujfalusi
2024-03-21 13:07 ` [PATCH 02/17] ASoC: SOF: ipc4-topology: Save the DMA maximum burst size for PCMs Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 03/17] ASoC: SOF: Intel: hda-pcm: Use dsp_max_burst_size_in_ms to place constraint Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 04/17] ASoC: SOF: Intel: hda: Implement get_stream_position (Linear Link Position) Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 05/17] ASoC: SOF: Intel: mtl/lnl: Use the generic get_stream_position callback Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 06/17] ASoC: SOF: Introduce a new callback pair to be used for PCM delay reporting Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 07/17] ASoC: SOF: Intel: Set the dai/host get frame/byte counter callbacks Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 08/17] ASoC: SOF: ipc4-pcm: Use the snd_sof_pcm_get_dai_frame_counter() for pcm_delay Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 09/17] ASoC: SOF: Intel: hda-common-ops: Do not set the get_stream_position callback Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 10/17] ASoC: SOF: Remove " Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 11/17] ASoC: SOF: ipc4-pcm: Move struct sof_ipc4_timestamp_info definition locally Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 12/17] ASoC: SOF: ipc4-pcm: Combine the SOF_IPC4_PIPE_PAUSED cases in pcm_trigger Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 13/17] ASoC: SOF: ipc4-pcm: Invalidate the stream_start_offset in PAUSED state Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 14/17] ASoC: SOF: sof-pcm: Add pointer callback to sof_ipc_pcm_ops Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 15/17] ASoC: SOF: ipc4-pcm: Correct the delay calculation Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 16/17] ALSA: hda: Add pplcllpl/u members to hdac_ext_stream Peter Ujfalusi
2024-03-21 13:08 ` [PATCH 17/17] ASoC: SOF: Intel: hda: Compensate LLP in case it is not reset Peter Ujfalusi
2024-03-26 13:48 ` [PATCH 00/17] ASoC: SOF: ipc4/Intel: Fix delay reporting (for 6.9 / 6.8) Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240321130814.4412-1-peter.ujfalusi@linux.intel.com \
    --to=peter.ujfalusi@linux.intel.com \
    --cc=broonie@kernel.org \
    --cc=kai.vehmanen@linux.intel.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-sound@vger.kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=stable@vger.kernel.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox