mbox series

[00/20] ASoC: SOF: Re-visit firmware state and panic tracking/handling

Message ID 20211223113628.18582-1-peter.ujfalusi@linux.intel.com
Headers show
Series ASoC: SOF: Re-visit firmware state and panic tracking/handling | expand

Message

Peter Ujfalusi Dec. 23, 2021, 11:36 a.m. UTC
Hi,

this series will improve how we are tracking the firmware's state to be able to
avoid communication with it when it is not going to answer due to a panic and
we will attempt to force power cycle the DSP to recover at the next runtime
suspend time.

The state handling brings in other improvements on the way the kernel reports
errors and DSP panics to reduce the printed lines for normal users, but at the
same time allowing developers (or for bug reports) to have more precise
information available to track down the issue.

We can now place messages easily in the correct debug level and not bound to the
static ERROR for some of the print chains, causing excess amount or partial
information to be printed, confusing users and machines (CI).

I would have prefered to split this series up, but it was developed together to
achieve a single goal to reduce the noise, but also provide the details we need
to be able to rootcause issues.

Regards,
Peter
---
Peter Ujfalusi (20):
  ASoC: SOF: ops: Use dev_warn() if the panic offsets differ
  ASoC: SOF: Intel: hda-loader: Avoid re-defining the
    HDA_FW_BOOT_ATTEMPTS
  ASoC: SOF: core: Add simple wrapper to check flags in sof_core_debug
  ASoC: SOF: Use sof_debug_check_flag() instead of sof_core_debug
    directly
  ASoC: SOF: Add 'non_recoverable' parameter to snd_sof_dsp_panic()
  ASoC: SOF: Add a 'message' parameter to snd_sof_dsp_dbg_dump()
  ASoC: SOF: Introduce new firmware state: SOF_FW_CRASHED
  ASoC: SOF: Introduce new firmware state: SOF_FW_BOOT_READY_OK
  ASoC: SOF: Move the definition of enum snd_sof_fw_state to global
    header
  ASoC: SOF: Rename 'enum snd_sof_fw_state' to 'enum sof_fw_state'
  ASoC: SOF: ipc: Only allow sending of an IPC in SOF_FW_BOOT_COMPLETE
    state
  ASoC: SOF: Set SOF_FW_BOOT_FAILED in case we have failure during boot
  ASoC: SOF: pm: Force DSP off on suspend in BOOT_FAILED state also
  ASoc: SOF: core: Update the FW boot state transition diagram
  ASoC: SOF: ops: Always print DSP Panic message but use different
    message
  ASoC: SOF: dsp_arch_ops: add kernel log level parameter for oops and
    stack
  ASoC: SOF: Rename snd_sof_get_status() and add kernel log level
    parameter
  ASoC: SOF: Add clarifying comments for sof_core_debug and DSP dump
    flags
  ASoC: SOF: debug: Use DEBUG log level for optional prints
  ASoC: SOF: Intel: hda: Use DEBUG log level for optional prints

 include/sound/sof.h              |  22 ++++++
 sound/soc/sof/core.c             | 119 +++++++++++++++++++------------
 sound/soc/sof/debug.c            |  35 +++++----
 sound/soc/sof/imx/imx-common.c   |   4 +-
 sound/soc/sof/imx/imx8.c         |   2 +-
 sound/soc/sof/imx/imx8m.c        |   2 +-
 sound/soc/sof/intel/atom.c       |   8 +--
 sound/soc/sof/intel/bdw.c        |   8 +--
 sound/soc/sof/intel/cnl.c        |  21 +++++-
 sound/soc/sof/intel/hda-ipc.c    |  19 ++++-
 sound/soc/sof/intel/hda-loader.c |  24 ++++---
 sound/soc/sof/intel/hda.c        |  20 +++---
 sound/soc/sof/intel/hda.h        |   2 +-
 sound/soc/sof/ipc.c              |   4 +-
 sound/soc/sof/loader.c           |  16 ++---
 sound/soc/sof/ops.c              |  47 ++++++++----
 sound/soc/sof/ops.h              |   4 +-
 sound/soc/sof/pm.c               |  10 +++
 sound/soc/sof/sof-priv.h         |  44 +++++-------
 sound/soc/sof/topology.c         |  12 ++--
 sound/soc/sof/xtensa/core.c      |  44 +++++++-----
 21 files changed, 299 insertions(+), 168 deletions(-)