[PATCH 00/10] ALSA/ASoC: Intel: avs: HDAudio bus and general fixes
Cezary Rojewski <[email protected]>
| Newsgroups | gmane.linux.sound |
|---|---|
| Message-ID | <[email protected]> |
The first half of the patchset concentrates on the driver initialization procedure - a number of steps do not clean up after themselves when they fail. This is for both, HDAudio bus (ext) and the DSP part (avs) and targets following procedures: - stream initialization - link initialization - bus initialization The next five are loosely related fixes. First, split topology-loading error handling from request-firmware one. Currently -ENOENT coming from topology-loading, which is a real error, is ignored. Second, with deeper test coverage around corrupted firmware/DSP exception handling, new issues are unearthed. Switch to async d0ix_work cancellation to avoid deadlock when D0IX has been scheduled just before the recovery work. The 09/10 patch, init_config change fixes possible out-of-bounds bug. The fix is larger than what one could expect as instead of patching with if-statements I've decided to refactor the parsing of init_configs. The scenario that causes the problem no longer exists. Note: the solution does not impose any changes on the existing topology files (userspace). The remaining two, IMHO are self-explanatory. Cezary Rojewski (10): ALSA: hda: ext: Clean up links if their initialization fails ALSA: hda: ext: Clean up streams if their initialization fails ASoC: Intel: avs: Clean up the bus when its initialization fails ASoC: Intel: avs: Clean up the bus when fetching ML caps fails ASoC: Intel: avs: Clean up streams if their initialization fails ASoC: Intel: avs: Do not ignore -ENOENT when loading a topology ASoC: Intel: avs: Cancel d0ix_work asynchrounously during recovery ASoC: Intel: avs: Fix unbalanced module reference count ASoC: Intel: avs: Refactor and fix init_config access ASoC: Intel: avs: hda: Constrain MSBs on startup sound/hda/core/ext/controller.c | 11 +++++- sound/hda/core/ext/stream.c | 11 +++++- sound/soc/intel/avs/boards/hdaudio.c | 17 ++++++++ sound/soc/intel/avs/core.c | 59 +++++++++++++++++++--------- sound/soc/intel/avs/debugfs.c | 12 ++++-- sound/soc/intel/avs/ipc.c | 6 +-- sound/soc/intel/avs/path.c | 10 ++--- sound/soc/intel/avs/pcm.c | 34 +++++++++------- sound/soc/intel/avs/topology.c | 49 +++++++++++++---------- sound/soc/intel/avs/topology.h | 5 ++- 10 files changed, 144 insertions(+), 70 deletions(-) -- 2.34.1