mirror of
https://github.com/torvalds/linux.git
synced 2024-11-13 23:51:39 +00:00
ASoC: Fixes for v6.12
A moderately large pile of small changes here, split fairly evenly between fixes and ID additions/quirks and all of it driver specific. -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmctPVAACgkQJNaLcl1U h9B2XQf/b3oVgw6qNlLq1Ljimy9C1fzsvN75ScCu2K8u9q0+tq8yYBI9sh5u2lXw Y+sdxjXki0VMWhbElQVwvRNt96bhMnmLv4wSMOOlAlwwSfS/8Wt3waqtzvynsdTa z9mTyD+DsXzebd4Ici2aCPS7dV0AdfgtcdvE5f3TXjdQZNzjgKzKAUKd5vbQdq6g bKQF4f3kf2JohAroSSk+JwXa/yaqOsBTErOzYv0Q06PLH4LE2Rv4J5PMU01MOfbb 6k37TV5jXbjUh7ZRlhr/St6/IkiGZFwDKHzugbOw/jlXURgf8IIpI7xhxaCxDpHL PpgvaPj0u5n8LAUlKqjzrnW5YQ/rTQ== =JukL -----END PGP SIGNATURE----- Merge tag 'asoc-fix-v6.12-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v6.12 A moderately large pile of small changes here, split fairly evenly between fixes and ID additions/quirks and all of it driver specific.
This commit is contained in:
commit
fa59caa785
@ -21697,6 +21697,15 @@ S: Supported
|
|||||||
W: https://github.com/thesofproject/linux/
|
W: https://github.com/thesofproject/linux/
|
||||||
F: sound/soc/sof/
|
F: sound/soc/sof/
|
||||||
|
|
||||||
|
SOUND - GENERIC SOUND CARD (Simple-Audio-Card, Audio-Graph-Card)
|
||||||
|
M: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||||
|
S: Supported
|
||||||
|
L: linux-sound@vger.kernel.org
|
||||||
|
F: sound/soc/generic/
|
||||||
|
F: include/sound/simple_card*
|
||||||
|
F: Documentation/devicetree/bindings/sound/simple-card.yaml
|
||||||
|
F: Documentation/devicetree/bindings/sound/audio-graph*.yaml
|
||||||
|
|
||||||
SOUNDWIRE SUBSYSTEM
|
SOUNDWIRE SUBSYSTEM
|
||||||
M: Vinod Koul <vkoul@kernel.org>
|
M: Vinod Koul <vkoul@kernel.org>
|
||||||
M: Bard Liao <yung-chuan.liao@linux.intel.com>
|
M: Bard Liao <yung-chuan.liao@linux.intel.com>
|
||||||
|
@ -227,6 +227,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
|
|||||||
DMI_MATCH(DMI_PRODUCT_NAME, "21M3"),
|
DMI_MATCH(DMI_PRODUCT_NAME, "21M3"),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.driver_data = &acp6x_card,
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "21M4"),
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.driver_data = &acp6x_card,
|
.driver_data = &acp6x_card,
|
||||||
.matches = {
|
.matches = {
|
||||||
@ -395,6 +402,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
|
|||||||
DMI_MATCH(DMI_PRODUCT_NAME, "Redmi Book Pro 15 2022"),
|
DMI_MATCH(DMI_PRODUCT_NAME, "Redmi Book Pro 15 2022"),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.driver_data = &acp6x_card,
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_BOARD_VENDOR, "TIMI"),
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "Xiaomi Book Pro 14 2022"),
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.driver_data = &acp6x_card,
|
.driver_data = &acp6x_card,
|
||||||
.matches = {
|
.matches = {
|
||||||
|
@ -1992,6 +1992,7 @@ static int tasdevice_dspfw_ready(const struct firmware *fmw,
|
|||||||
break;
|
break;
|
||||||
case 0x202:
|
case 0x202:
|
||||||
case 0x400:
|
case 0x400:
|
||||||
|
case 0x401:
|
||||||
tas_priv->fw_parse_variable_header =
|
tas_priv->fw_parse_variable_header =
|
||||||
fw_parse_variable_header_git;
|
fw_parse_variable_header_git;
|
||||||
tas_priv->fw_parse_program_data =
|
tas_priv->fw_parse_program_data =
|
||||||
|
@ -342,11 +342,19 @@ int acp_dma_status(struct acp_dev_data *adata, unsigned char ch)
|
|||||||
{
|
{
|
||||||
struct snd_sof_dev *sdev = adata->dev;
|
struct snd_sof_dev *sdev = adata->dev;
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
|
unsigned int acp_dma_ch_sts;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
switch (adata->pci_rev) {
|
||||||
|
case ACP70_PCI_ID:
|
||||||
|
acp_dma_ch_sts = ACP70_DMA_CH_STS;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
acp_dma_ch_sts = ACP_DMA_CH_STS;
|
||||||
|
}
|
||||||
val = snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP_DMA_CNTL_0 + ch * sizeof(u32));
|
val = snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP_DMA_CNTL_0 + ch * sizeof(u32));
|
||||||
if (val & ACP_DMA_CH_RUN) {
|
if (val & ACP_DMA_CH_RUN) {
|
||||||
ret = snd_sof_dsp_read_poll_timeout(sdev, ACP_DSP_BAR, ACP_DMA_CH_STS, val, !val,
|
ret = snd_sof_dsp_read_poll_timeout(sdev, ACP_DSP_BAR, acp_dma_ch_sts, val, !val,
|
||||||
ACP_REG_POLL_INTERVAL,
|
ACP_REG_POLL_INTERVAL,
|
||||||
ACP_DMA_COMPLETE_TIMEOUT_US);
|
ACP_DMA_COMPLETE_TIMEOUT_US);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
@ -125,6 +125,7 @@ static int ipc4_probes_init(struct sof_client_dev *cdev, u32 stream_tag,
|
|||||||
msg.primary |= SOF_IPC4_MSG_TARGET(SOF_IPC4_MODULE_MSG);
|
msg.primary |= SOF_IPC4_MSG_TARGET(SOF_IPC4_MODULE_MSG);
|
||||||
msg.extension = SOF_IPC4_MOD_EXT_DST_MOD_INSTANCE(INVALID_PIPELINE_ID);
|
msg.extension = SOF_IPC4_MOD_EXT_DST_MOD_INSTANCE(INVALID_PIPELINE_ID);
|
||||||
msg.extension |= SOF_IPC4_MOD_EXT_CORE_ID(0);
|
msg.extension |= SOF_IPC4_MOD_EXT_CORE_ID(0);
|
||||||
|
msg.extension |= SOF_IPC4_MOD_EXT_PARAM_SIZE(sizeof(cfg) / sizeof(uint32_t));
|
||||||
|
|
||||||
msg.data_size = sizeof(cfg);
|
msg.data_size = sizeof(cfg);
|
||||||
msg.data_ptr = &cfg;
|
msg.data_ptr = &cfg;
|
||||||
|
@ -317,7 +317,7 @@ static int stm32_sai_get_clk_div(struct stm32_sai_sub_data *sai,
|
|||||||
int div;
|
int div;
|
||||||
|
|
||||||
div = DIV_ROUND_CLOSEST(input_rate, output_rate);
|
div = DIV_ROUND_CLOSEST(input_rate, output_rate);
|
||||||
if (div > SAI_XCR1_MCKDIV_MAX(version)) {
|
if (div > SAI_XCR1_MCKDIV_MAX(version) || div <= 0) {
|
||||||
dev_err(&sai->pdev->dev, "Divider %d out of range\n", div);
|
dev_err(&sai->pdev->dev, "Divider %d out of range\n", div);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@ -378,8 +378,8 @@ static long stm32_sai_mclk_round_rate(struct clk_hw *hw, unsigned long rate,
|
|||||||
int div;
|
int div;
|
||||||
|
|
||||||
div = stm32_sai_get_clk_div(sai, *prate, rate);
|
div = stm32_sai_get_clk_div(sai, *prate, rate);
|
||||||
if (div < 0)
|
if (div <= 0)
|
||||||
return div;
|
return -EINVAL;
|
||||||
|
|
||||||
mclk->freq = *prate / div;
|
mclk->freq = *prate / div;
|
||||||
|
|
||||||
|
@ -939,7 +939,7 @@ static void stm32_spdifrx_remove(struct platform_device *pdev)
|
|||||||
{
|
{
|
||||||
struct stm32_spdifrx_data *spdifrx = platform_get_drvdata(pdev);
|
struct stm32_spdifrx_data *spdifrx = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
if (spdifrx->ctrl_chan)
|
if (!IS_ERR(spdifrx->ctrl_chan))
|
||||||
dma_release_channel(spdifrx->ctrl_chan);
|
dma_release_channel(spdifrx->ctrl_chan);
|
||||||
|
|
||||||
if (spdifrx->dmab)
|
if (spdifrx->dmab)
|
||||||
|
Loading…
Reference in New Issue
Block a user