Skip to content

Commit

Permalink
Merge tag 'soundwire-6.4-fixes' of git://git.kernel.org/pub/scm/linux…
Browse files Browse the repository at this point in the history
…/kernel/git/vkoul/soundwire

Pull soundwire fixes from Vinod Koul:
 "Core fix for missing flag clear, error patch handling in qcom driver
  and BIOS quirk for HP Spectre x360:

   - HP Spectre x360 soundwire DMI quirk

   - Error path handling for qcom driver

   - Core fix for missing clear of alloc_slave_rt"

* tag 'soundwire-6.4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire:
  soundwire: stream: Add missing clear of alloc_slave_rt
  soundwire: qcom: add proper error paths in qcom_swrm_startup()
  soundwire: dmi-quirks: add new mapping for HP Spectre x360
  • Loading branch information
Linus Torvalds committed Jun 10, 2023
2 parents 859c745 + 58d9588 commit 6be5e47
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 5 deletions.
7 changes: 7 additions & 0 deletions drivers/soundwire/dmi-quirks.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,13 @@ static const struct dmi_system_id adr_remap_quirk_table[] = {
},
.driver_data = (void *)intel_tgl_bios,
},
{
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "HP"),
DMI_MATCH(DMI_BOARD_NAME, "8709"),
},
.driver_data = (void *)intel_tgl_bios,
},
{
/* quirk used for NUC15 'Bishop County' LAPBC510 and LAPBC710 skews */
.matches = {
Expand Down
17 changes: 13 additions & 4 deletions drivers/soundwire/qcom.c
Original file line number Diff line number Diff line change
Expand Up @@ -1099,8 +1099,10 @@ static int qcom_swrm_startup(struct snd_pcm_substream *substream,
}

sruntime = sdw_alloc_stream(dai->name);
if (!sruntime)
return -ENOMEM;
if (!sruntime) {
ret = -ENOMEM;
goto err_alloc;
}

ctrl->sruntime[dai->id] = sruntime;

Expand All @@ -1110,12 +1112,19 @@ static int qcom_swrm_startup(struct snd_pcm_substream *substream,
if (ret < 0 && ret != -ENOTSUPP) {
dev_err(dai->dev, "Failed to set sdw stream on %s\n",
codec_dai->name);
sdw_release_stream(sruntime);
return ret;
goto err_set_stream;
}
}

return 0;

err_set_stream:
sdw_release_stream(sruntime);
err_alloc:
pm_runtime_mark_last_busy(ctrl->dev);
pm_runtime_put_autosuspend(ctrl->dev);

return ret;
}

static void qcom_swrm_shutdown(struct snd_pcm_substream *substream,
Expand Down
4 changes: 3 additions & 1 deletion drivers/soundwire/stream.c
Original file line number Diff line number Diff line change
Expand Up @@ -2021,8 +2021,10 @@ int sdw_stream_add_slave(struct sdw_slave *slave,

skip_alloc_master_rt:
s_rt = sdw_slave_rt_find(slave, stream);
if (s_rt)
if (s_rt) {
alloc_slave_rt = false;
goto skip_alloc_slave_rt;
}

s_rt = sdw_slave_rt_alloc(slave, m_rt);
if (!s_rt) {
Expand Down

0 comments on commit 6be5e47

Please sign in to comment.