mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
ASoC: SOF: Intel: add PTL specific power control register
PTL has some differences from MTL/LNL. Need to use different register to power up. Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Fred Oh <fred.oh@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://patch.msgid.link/20240802124011.173820-3-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
6a965fbaac
commit
42b4763ab3
|
|
@ -245,6 +245,18 @@ int mtl_dsp_pre_fw_run(struct snd_sof_dev *sdev)
|
|||
u32 cpa;
|
||||
u32 pgs;
|
||||
int ret;
|
||||
u32 dsppwrctl;
|
||||
u32 dsppwrsts;
|
||||
const struct sof_intel_dsp_desc *chip;
|
||||
|
||||
chip = get_chip_info(sdev->pdata);
|
||||
if (chip->hw_ip_version > SOF_INTEL_ACE_2_0) {
|
||||
dsppwrctl = PTL_HFPWRCTL2;
|
||||
dsppwrsts = PTL_HFPWRSTS2;
|
||||
} else {
|
||||
dsppwrctl = MTL_HFPWRCTL;
|
||||
dsppwrsts = MTL_HFPWRSTS;
|
||||
}
|
||||
|
||||
/* Set the DSP subsystem power on */
|
||||
snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_HFDSSCS,
|
||||
|
|
@ -264,14 +276,14 @@ int mtl_dsp_pre_fw_run(struct snd_sof_dev *sdev)
|
|||
}
|
||||
|
||||
/* Power up gated-DSP-0 domain in order to access the DSP shim register block. */
|
||||
snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_HFPWRCTL,
|
||||
snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, dsppwrctl,
|
||||
MTL_HFPWRCTL_WPDSPHPXPG, MTL_HFPWRCTL_WPDSPHPXPG);
|
||||
|
||||
usleep_range(1000, 1010);
|
||||
|
||||
/* poll with timeout to check if operation successful */
|
||||
pgs = MTL_HFPWRSTS_DSPHPXPGS_MASK;
|
||||
ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_HFPWRSTS, dsphfpwrsts,
|
||||
ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, dsppwrsts, dsphfpwrsts,
|
||||
(dsphfpwrsts & pgs) == pgs,
|
||||
HDA_DSP_REG_POLL_INTERVAL_US,
|
||||
HDA_DSP_RESET_TIMEOUT_US);
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
#define MTL_HFDSSCS_CPA_MASK BIT(24)
|
||||
#define MTL_HFSNDWIE 0x114C
|
||||
#define MTL_HFPWRCTL 0x1D18
|
||||
#define PTL_HFPWRCTL2 0x1D20
|
||||
#define MTL_HfPWRCTL_WPIOXPG(x) BIT((x) + 8)
|
||||
#define MTL_HFPWRCTL_WPDSPHPXPG BIT(0)
|
||||
#define MTL_HFPWRSTS 0x1D1C
|
||||
#define PTL_HFPWRSTS2 0x1D24
|
||||
#define MTL_HFPWRSTS_DSPHPXPGS_MASK BIT(0)
|
||||
#define MTL_HFINTIPPTR 0x1108
|
||||
#define MTL_IRQ_INTEN_L_HOST_IPC_MASK BIT(0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user