linux-loongson/sound/soc/intel/avs/lnl.c
Cezary Rojewski af1c968d25
ASoC: Intel: avs: PTL-based platforms support
Define handlers specific to ACE platforms, that Frisco Lake (FCL), a
PantherLake (PTL)-based platform, is founded upon. Most operations are
still inherited from their predecessors with the major difference being
AudioDSP cores management - replaced by DSP-domain power management.

Software has to ensure the DSP domain is both powered on and its
power-gating disabled before it can be utilized for streaming.

Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Link: https://patch.msgid.link/20250407112352.3720779-6-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-04-07 14:39:59 +01:00

28 lines
761 B
C

// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright(c) 2021-2025 Intel Corporation
*
* Authors: Cezary Rojewski <cezary.rojewski@intel.com>
* Amadeusz Slawinski <amadeuszx.slawinski@linux.intel.com>
*/
#include <sound/hdaudio_ext.h>
#include "avs.h"
#include "registers.h"
int avs_lnl_core_stall(struct avs_dev *adev, u32 core_mask, bool stall)
{
struct hdac_bus *bus = &adev->base.core;
struct hdac_ext_link *hlink;
int ret;
ret = avs_mtl_core_stall(adev, core_mask, stall);
/* On unstall, route interrupts from the links to the DSP firmware. */
if (!ret && !stall)
list_for_each_entry(hlink, &bus->hlink_list, list)
snd_hdac_updatel(hlink->ml_addr, AZX_REG_ML_LCTL, AZX_ML_LCTL_OFLEN,
AZX_ML_LCTL_OFLEN);
return ret;
}