soundwire fixes for 6.4
- HP Spectre x360 soundwire DMI quirk - Error path handling for qcom driver - Core fix for missing clear of alloc_slave_rt -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE+vs47OPLdNbVcHzyfBQHDyUjg0cFAmSEic8ACgkQfBQHDyUj g0ft3hAA1wsBxOoVlowj9N/5a0jVb3iRTqs32jh3MinCaoFig7xVZoPPC+261k21 3zrbUTzG1qVpGwLWKOCVY8T8oqbzFgVErTELeCG9gj+2C+H0H8fY9H/ZL9S/NtId lTJpXMZ+qA7tkcsliKRU4bOL3r6nroE+pNuU01KwFETM7xg3lrTQQgIv6IYitWB4 LnvHr6wRjQM7+Z0LtB/25iiqEHoMMes5mMf96/MGPin81Y5RgfQqUBmuW5te7sDi CYigt7p0YDtCBvf8RRDjjbtfG5N0A9aAPooVViMy/KT0hh6DFP7Xu+uPvrFkvbZc xTOQi2sI0W91QbQHjksf1AKKJn81Hq5oQzpHNH2ZfB1yemRGJhRJ0TE8aOKb06MT OcPmInjy2wdrIv/qEr26rp88c/fQprHhn/mwdrgpJgCuurMDJ1eOiyA2axG4+Rpy xV+wx+cKtEQpmfxvTcdXOaM+grd37Zpckl4Ph8LJpjH6ddgHXC5ha1X1N54I1dCm +I7Ivdi+Xv0DMbBDVW3mFF0SnkWTwLJANcpGB2UJ+8ihNZUm8tjqUHXNiK7TY32t wyhpIlY+7qyIngEm0ss6LdwJNr4NBjK7hMwl+BUt3OtrbvlZl5IBvINMly6DSZm4 XlQbDu14/pEvafvaAHxSZdY8RXNLcQGh33Z6RhefSmAXofBUJRw= =mINT -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
6be5e47b69
|
@ -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 = {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
@ -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,
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue