Skip to content

Commit

Permalink
Merge tag 'asoc-fix-v6.12-rc6' of https://git.kernel.org/pub/scm/linu…
Browse files Browse the repository at this point in the history
…x/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.
  • Loading branch information
Takashi Iwai committed Nov 8, 2024
2 parents dabc44c + 48b8653 commit fa59caa
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 5 deletions.
9 changes: 9 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -21697,6 +21697,15 @@ S: Supported
W: https://github.com/thesofproject/linux/
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
M: Vinod Koul <vkoul@kernel.org>
M: Bard Liao <yung-chuan.liao@linux.intel.com>
Expand Down
14 changes: 14 additions & 0 deletions sound/soc/amd/yc/acp6x-mach.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
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,
.matches = {
Expand Down Expand Up @@ -395,6 +402,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
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,
.matches = {
Expand Down
1 change: 1 addition & 0 deletions sound/soc/codecs/tas2781-fmwlib.c
Original file line number Diff line number Diff line change
Expand Up @@ -1992,6 +1992,7 @@ static int tasdevice_dspfw_ready(const struct firmware *fmw,
break;
case 0x202:
case 0x400:
case 0x401:
tas_priv->fw_parse_variable_header =
fw_parse_variable_header_git;
tas_priv->fw_parse_program_data =
Expand Down
10 changes: 9 additions & 1 deletion sound/soc/sof/amd/acp.c
Original file line number Diff line number Diff line change
Expand Up @@ -342,11 +342,19 @@ int acp_dma_status(struct acp_dev_data *adata, unsigned char ch)
{
struct snd_sof_dev *sdev = adata->dev;
unsigned int val;
unsigned int acp_dma_ch_sts;
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));
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_DMA_COMPLETE_TIMEOUT_US);
if (ret < 0)
Expand Down
1 change: 1 addition & 0 deletions sound/soc/sof/sof-client-probes-ipc4.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.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_PARAM_SIZE(sizeof(cfg) / sizeof(uint32_t));

msg.data_size = sizeof(cfg);
msg.data_ptr = &cfg;
Expand Down
6 changes: 3 additions & 3 deletions sound/soc/stm/stm32_sai_sub.c
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ static int stm32_sai_get_clk_div(struct stm32_sai_sub_data *sai,
int div;

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);
return -EINVAL;
}
Expand Down Expand Up @@ -378,8 +378,8 @@ static long stm32_sai_mclk_round_rate(struct clk_hw *hw, unsigned long rate,
int div;

div = stm32_sai_get_clk_div(sai, *prate, rate);
if (div < 0)
return div;
if (div <= 0)
return -EINVAL;

mclk->freq = *prate / div;

Expand Down
2 changes: 1 addition & 1 deletion sound/soc/stm/stm32_spdifrx.c
Original file line number Diff line number Diff line change
Expand Up @@ -939,7 +939,7 @@ static void stm32_spdifrx_remove(struct platform_device *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);

if (spdifrx->dmab)
Expand Down

0 comments on commit fa59caa

Please sign in to comment.