ASoC: SOF: minor updates for 5.20
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>: One sanity check for SSP index reported by NHLT/BIOS and two updates for Mediatek and Intel Chromebooks related to already-merged firmware changes.
This commit is contained in:
commit
4782b7cb6f
@ -52,6 +52,8 @@
|
|||||||
#define SOF_DAI_INTEL_SSP_CLKCTRL_MCLK_ES BIT(6)
|
#define SOF_DAI_INTEL_SSP_CLKCTRL_MCLK_ES BIT(6)
|
||||||
/* bclk early start */
|
/* bclk early start */
|
||||||
#define SOF_DAI_INTEL_SSP_CLKCTRL_BCLK_ES BIT(7)
|
#define SOF_DAI_INTEL_SSP_CLKCTRL_BCLK_ES BIT(7)
|
||||||
|
/* mclk always on */
|
||||||
|
#define SOF_DAI_INTEL_SSP_CLKCTRL_MCLK_AON BIT(8)
|
||||||
|
|
||||||
/* DMIC max. four controllers for eight microphone channels */
|
/* DMIC max. four controllers for eight microphone channels */
|
||||||
#define SOF_DAI_INTEL_DMIC_NUM_CTRL 4
|
#define SOF_DAI_INTEL_DMIC_NUM_CTRL 4
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
/* SOF ABI version major, minor and patch numbers */
|
/* SOF ABI version major, minor and patch numbers */
|
||||||
#define SOF_ABI_MAJOR 3
|
#define SOF_ABI_MAJOR 3
|
||||||
#define SOF_ABI_MINOR 22
|
#define SOF_ABI_MINOR 23
|
||||||
#define SOF_ABI_PATCH 0
|
#define SOF_ABI_PATCH 0
|
||||||
|
|
||||||
/* SOF ABI version number. Format within 32bit word is MMmmmppp */
|
/* SOF ABI version number. Format within 32bit word is MMmmmppp */
|
||||||
|
@ -1527,6 +1527,7 @@ struct snd_soc_acpi_mach *hda_machine_select(struct snd_sof_dev *sdev)
|
|||||||
if (tplg_fixup &&
|
if (tplg_fixup &&
|
||||||
mach->tplg_quirk_mask & SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER &&
|
mach->tplg_quirk_mask & SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER &&
|
||||||
mach->mach_params.i2s_link_mask) {
|
mach->mach_params.i2s_link_mask) {
|
||||||
|
const struct sof_intel_dsp_desc *chip = get_chip_info(sdev->pdata);
|
||||||
int ssp_num;
|
int ssp_num;
|
||||||
|
|
||||||
if (hweight_long(mach->mach_params.i2s_link_mask) > 1 &&
|
if (hweight_long(mach->mach_params.i2s_link_mask) > 1 &&
|
||||||
@ -1536,6 +1537,12 @@ struct snd_soc_acpi_mach *hda_machine_select(struct snd_sof_dev *sdev)
|
|||||||
/* fls returns 1-based results, SSPs indices are 0-based */
|
/* fls returns 1-based results, SSPs indices are 0-based */
|
||||||
ssp_num = fls(mach->mach_params.i2s_link_mask) - 1;
|
ssp_num = fls(mach->mach_params.i2s_link_mask) - 1;
|
||||||
|
|
||||||
|
if (ssp_num >= chip->ssp_count) {
|
||||||
|
dev_err(sdev->dev, "Invalid SSP %d, max on this platform is %d\n",
|
||||||
|
ssp_num, chip->ssp_count);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
tplg_filename = devm_kasprintf(sdev->dev, GFP_KERNEL,
|
tplg_filename = devm_kasprintf(sdev->dev, GFP_KERNEL,
|
||||||
"%s%s%d",
|
"%s%s%d",
|
||||||
sof_pdata->tplg_filename,
|
sof_pdata->tplg_filename,
|
||||||
|
@ -115,6 +115,9 @@ static int sof_ipc3_pcm_hw_params(struct snd_soc_component *component,
|
|||||||
pcm.params.no_stream_position = 1;
|
pcm.params.no_stream_position = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (platform_params->cont_update_posn)
|
||||||
|
pcm.params.cont_update_posn = 1;
|
||||||
|
|
||||||
dev_dbg(component->dev, "stream_tag %d", pcm.params.stream_tag);
|
dev_dbg(component->dev, "stream_tag %d", pcm.params.stream_tag);
|
||||||
|
|
||||||
/* send hw_params IPC to the DSP */
|
/* send hw_params IPC to the DSP */
|
||||||
|
@ -126,6 +126,7 @@ struct snd_sof_platform_stream_params {
|
|||||||
bool use_phy_address;
|
bool use_phy_address;
|
||||||
u32 phy_addr;
|
u32 phy_addr;
|
||||||
bool no_ipc_position;
|
bool no_ipc_position;
|
||||||
|
bool cont_update_posn;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user