Unverified Commit a536f3c5 authored by Vijendar Mukunda's avatar Vijendar Mukunda Committed by Mark Brown
Browse files

ASoC: SOF: amd: enable soundwire host wake irq mask



Enable SoundWire host wake interrupt mask during acp init
sequence based on wake enable checks for each SoundWire manager
instance for ACP7.0 & ACP7.1 platforms.

Signed-off-by: default avatarVijendar Mukunda <Vijendar.Mukunda@amd.com>
Reviewed-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20250502154445.3008598-8-Vijendar.Mukunda@amd.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 169c5e44
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -131,4 +131,9 @@
#define ACP_SW0_EN				0x3000
#define ACP_SW1_EN				0x3C00
#define ACP70_PME_EN				0x1400
#define ACP70_EXTERNAL_INTR_CNTL1		0x1A08
#define ACP70_SW0_WAKE_EN			0x1458
#define ACP70_SW1_WAKE_EN			0x1460
#define ACP70_SDW_HOST_WAKE_MASK		0x0C00000

#endif
+7 −0
Original line number Diff line number Diff line
@@ -563,6 +563,7 @@ static int acp_init(struct snd_sof_dev *sdev)
{
	const struct sof_amd_acp_desc *desc = get_chip_info(sdev->pdata);
	struct acp_dev_data *acp_data;
	unsigned int sdw0_wake_en, sdw1_wake_en;
	int ret;

	/* power on */
@@ -591,6 +592,12 @@ static int acp_init(struct snd_sof_dev *sdev)
	switch (acp_data->pci_rev) {
	case ACP70_PCI_ID:
	case ACP71_PCI_ID:
		sdw0_wake_en = snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP70_SW0_WAKE_EN);
		sdw1_wake_en = snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP70_SW1_WAKE_EN);
		if (sdw0_wake_en || sdw1_wake_en)
			snd_sof_dsp_update_bits(sdev, ACP_DSP_BAR, ACP70_EXTERNAL_INTR_CNTL1,
						ACP70_SDW_HOST_WAKE_MASK, ACP70_SDW_HOST_WAKE_MASK);

		snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP70_PME_EN, 1);
		break;
	}