Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'soundwire-6.4-fixes' of git://git.kernel.org/pub/scm/linux/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

+23 -5
+7
drivers/soundwire/dmi-quirks.c
··· 100 100 .driver_data = (void *)intel_tgl_bios, 101 101 }, 102 102 { 103 + .matches = { 104 + DMI_MATCH(DMI_SYS_VENDOR, "HP"), 105 + DMI_MATCH(DMI_BOARD_NAME, "8709"), 106 + }, 107 + .driver_data = (void *)intel_tgl_bios, 108 + }, 109 + { 103 110 /* quirk used for NUC15 'Bishop County' LAPBC510 and LAPBC710 skews */ 104 111 .matches = { 105 112 DMI_MATCH(DMI_SYS_VENDOR, "Intel(R) Client Systems"),
+13 -4
drivers/soundwire/qcom.c
··· 1099 1099 } 1100 1100 1101 1101 sruntime = sdw_alloc_stream(dai->name); 1102 - if (!sruntime) 1103 - return -ENOMEM; 1102 + if (!sruntime) { 1103 + ret = -ENOMEM; 1104 + goto err_alloc; 1105 + } 1104 1106 1105 1107 ctrl->sruntime[dai->id] = sruntime; 1106 1108 ··· 1112 1110 if (ret < 0 && ret != -ENOTSUPP) { 1113 1111 dev_err(dai->dev, "Failed to set sdw stream on %s\n", 1114 1112 codec_dai->name); 1115 - sdw_release_stream(sruntime); 1116 - return ret; 1113 + goto err_set_stream; 1117 1114 } 1118 1115 } 1119 1116 1120 1117 return 0; 1118 + 1119 + err_set_stream: 1120 + sdw_release_stream(sruntime); 1121 + err_alloc: 1122 + pm_runtime_mark_last_busy(ctrl->dev); 1123 + pm_runtime_put_autosuspend(ctrl->dev); 1124 + 1125 + return ret; 1121 1126 } 1122 1127 1123 1128 static void qcom_swrm_shutdown(struct snd_pcm_substream *substream,
+3 -1
drivers/soundwire/stream.c
··· 2021 2021 2022 2022 skip_alloc_master_rt: 2023 2023 s_rt = sdw_slave_rt_find(slave, stream); 2024 - if (s_rt) 2024 + if (s_rt) { 2025 + alloc_slave_rt = false; 2025 2026 goto skip_alloc_slave_rt; 2027 + } 2026 2028 2027 2029 s_rt = sdw_slave_rt_alloc(slave, m_rt); 2028 2030 if (!s_rt) {