* [PATCH AUTOSEL 6.7 06/44] ASoC: amd: acp: Add check for cpu dai link initialization
[not found] <20240207212142.1399-1-sashal@kernel.org>
@ 2024-02-07 21:20 ` Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 07/44] ASoC: codecs: wcd934x: drop unneeded regulator include Sasha Levin
` (8 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Venkata Prasad Potturu, Mark Brown, Sasha Levin, lgirdwood, perex,
tiwai, Syed.SabaKareem, alpernebiyasak, cristian.ciocaltea,
kuninori.morimoto.gx, posteuca, linux-sound
From: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
[ Upstream commit 6cc2aa9a75f2397d42b78d4c159bc06722183c78 ]
Add condition check for cpu dai link initialization for amplifier
codec path, as same pcm id uses for both headset and speaker path
for RENOIR platforms.
Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://msgid.link/r/20240118143023.1903984-3-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/amd/acp/acp-mach-common.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/sound/soc/amd/acp/acp-mach-common.c b/sound/soc/amd/acp/acp-mach-common.c
index 34b14f2611ba..12ff0a558ea8 100644
--- a/sound/soc/amd/acp/acp-mach-common.c
+++ b/sound/soc/amd/acp/acp-mach-common.c
@@ -1428,8 +1428,13 @@ int acp_sofdsp_dai_links_create(struct snd_soc_card *card)
if (drv_data->amp_cpu_id == I2S_SP) {
links[i].name = "acp-amp-codec";
links[i].id = AMP_BE_ID;
- links[i].cpus = sof_sp_virtual;
- links[i].num_cpus = ARRAY_SIZE(sof_sp_virtual);
+ if (drv_data->platform == RENOIR) {
+ links[i].cpus = sof_sp;
+ links[i].num_cpus = ARRAY_SIZE(sof_sp);
+ } else {
+ links[i].cpus = sof_sp_virtual;
+ links[i].num_cpus = ARRAY_SIZE(sof_sp_virtual);
+ }
links[i].platforms = sof_component;
links[i].num_platforms = ARRAY_SIZE(sof_component);
links[i].dpcm_playback = 1;
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH AUTOSEL 6.7 07/44] ASoC: codecs: wcd934x: drop unneeded regulator include
[not found] <20240207212142.1399-1-sashal@kernel.org>
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 06/44] ASoC: amd: acp: Add check for cpu dai link initialization Sasha Levin
@ 2024-02-07 21:20 ` Sasha Levin
2024-02-08 11:37 ` Mark Brown
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 10/44] ALSA: hda: Replace numeric device IDs with constant values Sasha Levin
` (7 subsequent siblings)
9 siblings, 1 reply; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Krzysztof Kozlowski, Mark Brown, Sasha Levin, srinivas.kandagatla,
bgoswami, lgirdwood, perex, tiwai, alsa-devel, linux-sound
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
[ Upstream commit 35314e39dabcfb256832654ad0e856a9fba744bd ]
Driver does not use any regulator code, so drop redundant include of
regulator/consumer.h header.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://msgid.link/r/20240117151208.1219755-3-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/codecs/wcd934x.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/sound/soc/codecs/wcd934x.c b/sound/soc/codecs/wcd934x.c
index 1b6e376f3833..6813268e6a19 100644
--- a/sound/soc/codecs/wcd934x.c
+++ b/sound/soc/codecs/wcd934x.c
@@ -13,7 +13,6 @@
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
-#include <linux/regulator/consumer.h>
#include <linux/slab.h>
#include <linux/slimbus.h>
#include <sound/pcm_params.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH AUTOSEL 6.7 07/44] ASoC: codecs: wcd934x: drop unneeded regulator include
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 07/44] ASoC: codecs: wcd934x: drop unneeded regulator include Sasha Levin
@ 2024-02-08 11:37 ` Mark Brown
2024-02-22 12:29 ` Sasha Levin
0 siblings, 1 reply; 12+ messages in thread
From: Mark Brown @ 2024-02-08 11:37 UTC (permalink / raw)
To: Sasha Levin
Cc: linux-kernel, stable, Krzysztof Kozlowski, srinivas.kandagatla,
bgoswami, lgirdwood, perex, tiwai, alsa-devel, linux-sound
[-- Attachment #1: Type: text/plain, Size: 357 bytes --]
On Wed, Feb 07, 2024 at 04:20:34PM -0500, Sasha Levin wrote:
> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>
> [ Upstream commit 35314e39dabcfb256832654ad0e856a9fba744bd ]
>
> Driver does not use any regulator code, so drop redundant include of
> regulator/consumer.h header.
This doesn't seem like an obvious stable candidate...
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH AUTOSEL 6.7 07/44] ASoC: codecs: wcd934x: drop unneeded regulator include
2024-02-08 11:37 ` Mark Brown
@ 2024-02-22 12:29 ` Sasha Levin
0 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-22 12:29 UTC (permalink / raw)
To: Mark Brown
Cc: linux-kernel, stable, Krzysztof Kozlowski, srinivas.kandagatla,
bgoswami, lgirdwood, perex, tiwai, alsa-devel, linux-sound
On Thu, Feb 08, 2024 at 11:37:54AM +0000, Mark Brown wrote:
>On Wed, Feb 07, 2024 at 04:20:34PM -0500, Sasha Levin wrote:
>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>>
>> [ Upstream commit 35314e39dabcfb256832654ad0e856a9fba744bd ]
>>
>> Driver does not use any regulator code, so drop redundant include of
>> regulator/consumer.h header.
>
>This doesn't seem like an obvious stable candidate...
Dropped, thanks!
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH AUTOSEL 6.7 10/44] ALSA: hda: Replace numeric device IDs with constant values
[not found] <20240207212142.1399-1-sashal@kernel.org>
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 06/44] ASoC: amd: acp: Add check for cpu dai link initialization Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 07/44] ASoC: codecs: wcd934x: drop unneeded regulator include Sasha Levin
@ 2024-02-07 21:20 ` Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 11/44] ALSA: hda: Increase default bdl_pos_adj for Apollo Lake Sasha Levin
` (6 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Rui Salvaterra, Amadeusz Sławiński, Takashi Iwai,
Sasha Levin, perex, tiwai, pierre-louis.bossart, kai.vehmanen,
maarten.lankhorst, siyanteng, jasontao, linux-sound
From: Rui Salvaterra <rsalvaterra@gmail.com>
[ Upstream commit 3526860f26febbe46960f9b37f5dbd5ccc109ea8 ]
We have self-explanatory constants for Intel HDA devices, let's use them instead
of magic numbers and code comments.
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20240122114512.55808-2-rsalvaterra@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/pci/hda/hda_intel.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 2d1df3654424..98b162c8eab6 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1729,8 +1729,8 @@ static int default_bdl_pos_adj(struct azx *chip)
/* some exceptions: Atoms seem problematic with value 1 */
if (chip->pci->vendor == PCI_VENDOR_ID_INTEL) {
switch (chip->pci->device) {
- case 0x0f04: /* Baytrail */
- case 0x2284: /* Braswell */
+ case PCI_DEVICE_ID_INTEL_HDA_BYT:
+ case PCI_DEVICE_ID_INTEL_HDA_BSW:
return 32;
}
}
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH AUTOSEL 6.7 11/44] ALSA: hda: Increase default bdl_pos_adj for Apollo Lake
[not found] <20240207212142.1399-1-sashal@kernel.org>
` (2 preceding siblings ...)
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 10/44] ALSA: hda: Replace numeric device IDs with constant values Sasha Levin
@ 2024-02-07 21:20 ` Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 15/44] ALSA: usb-audio: Check presence of valid altsetting control Sasha Levin
` (5 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Rui Salvaterra, Amadeusz Sławiński, Takashi Iwai,
Sasha Levin, perex, tiwai, pierre-louis.bossart, kai.vehmanen,
maarten.lankhorst, siyanteng, jasontao, linux-sound
From: Rui Salvaterra <rsalvaterra@gmail.com>
[ Upstream commit 56beedc88405fd8022edfd1c2e63d1bc6c95efcb ]
Apollo Lake seems to also suffer from IRQ timing issues. After being up for ~4
minutes, a Pentium N4200 system ends up falling back to workqueue-based IRQ
handling:
[ 208.019906] snd_hda_intel 0000:00:0e.0: IRQ timing workaround is activated
for card #0. Suggest a bigger bdl_pos_adj.
Unfortunately, the Baytrail and Braswell workaround value of 32 samples isn't
enough to fix the issue here. Default to 64 samples.
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20240122114512.55808-3-rsalvaterra@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/pci/hda/hda_intel.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 98b162c8eab6..a058de076e8a 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1732,6 +1732,8 @@ static int default_bdl_pos_adj(struct azx *chip)
case PCI_DEVICE_ID_INTEL_HDA_BYT:
case PCI_DEVICE_ID_INTEL_HDA_BSW:
return 32;
+ case PCI_DEVICE_ID_INTEL_HDA_APL:
+ return 64;
}
}
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH AUTOSEL 6.7 15/44] ALSA: usb-audio: Check presence of valid altsetting control
[not found] <20240207212142.1399-1-sashal@kernel.org>
` (3 preceding siblings ...)
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 11/44] ALSA: hda: Increase default bdl_pos_adj for Apollo Lake Sasha Levin
@ 2024-02-07 21:20 ` Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 16/44] ASoC: sunxi: sun4i-spdif: Add support for Allwinner H616 Sasha Levin
` (4 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Alexander Tsoy, Takashi Iwai, Sasha Levin, perex, tiwai,
linux-sound
From: Alexander Tsoy <alexander@tsoy.me>
[ Upstream commit 346f59d1e8ed0eed41c80e1acb657e484c308e6a ]
Many devices with a single alternate setting do not have a Valid
Alternate Setting Control and validation performed by
validate_sample_rate_table_v2v3() doesn't work on them and is not
really needed. So check the presense of control before sending
altsetting validation requests.
MOTU Microbook IIc is suffering the most without this check. It
takes up to 40 seconds to bootup due to how slow it switches
sampling rates:
[ 2659.164824] usb 3-2: New USB device found, idVendor=07fd, idProduct=0004, bcdDevice= 0.60
[ 2659.164827] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2659.164829] usb 3-2: Product: MicroBook IIc
[ 2659.164830] usb 3-2: Manufacturer: MOTU
[ 2659.166204] usb 3-2: Found last interface = 3
[ 2679.322298] usb 3-2: No valid sample rate available for 1:1, assuming a firmware bug
[ 2679.322306] usb 3-2: 1:1: add audio endpoint 0x3
[ 2679.322321] usb 3-2: Creating new data endpoint #3
[ 2679.322552] usb 3-2: 1:1 Set sample rate 96000, clock 1
[ 2684.362250] usb 3-2: 2:1: cannot get freq (v2/v3): err -110
[ 2694.444700] usb 3-2: No valid sample rate available for 2:1, assuming a firmware bug
[ 2694.444707] usb 3-2: 2:1: add audio endpoint 0x84
[ 2694.444721] usb 3-2: Creating new data endpoint #84
[ 2699.482103] usb 3-2: 2:1 Set sample rate 96000, clock 1
Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
Link: https://lore.kernel.org/r/20240129121254.3454481-1-alexander@tsoy.me
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/usb/format.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/sound/usb/format.c b/sound/usb/format.c
index ab5fed9f55b6..3b45d0ee7693 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -470,9 +470,11 @@ static int validate_sample_rate_table_v2v3(struct snd_usb_audio *chip,
int clock)
{
struct usb_device *dev = chip->dev;
+ struct usb_host_interface *alts;
unsigned int *table;
unsigned int nr_rates;
int i, err;
+ u32 bmControls;
/* performing the rate verification may lead to unexpected USB bus
* behavior afterwards by some unknown reason. Do this only for the
@@ -481,6 +483,24 @@ static int validate_sample_rate_table_v2v3(struct snd_usb_audio *chip,
if (!(chip->quirk_flags & QUIRK_FLAG_VALIDATE_RATES))
return 0; /* don't perform the validation as default */
+ alts = snd_usb_get_host_interface(chip, fp->iface, fp->altsetting);
+ if (!alts)
+ return 0;
+
+ if (fp->protocol == UAC_VERSION_3) {
+ struct uac3_as_header_descriptor *as = snd_usb_find_csint_desc(
+ alts->extra, alts->extralen, NULL, UAC_AS_GENERAL);
+ bmControls = le32_to_cpu(as->bmControls);
+ } else {
+ struct uac2_as_header_descriptor *as = snd_usb_find_csint_desc(
+ alts->extra, alts->extralen, NULL, UAC_AS_GENERAL);
+ bmControls = as->bmControls;
+ }
+
+ if (!uac_v2v3_control_is_readable(bmControls,
+ UAC2_AS_VAL_ALT_SETTINGS))
+ return 0;
+
table = kcalloc(fp->nr_rates, sizeof(*table), GFP_KERNEL);
if (!table)
return -ENOMEM;
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH AUTOSEL 6.7 16/44] ASoC: sunxi: sun4i-spdif: Add support for Allwinner H616
[not found] <20240207212142.1399-1-sashal@kernel.org>
` (4 preceding siblings ...)
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 15/44] ALSA: usb-audio: Check presence of valid altsetting control Sasha Levin
@ 2024-02-07 21:20 ` Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 17/44] ALSA: hda: cs35l41: Support additional ASUS Zenbook UX3402VA Sasha Levin
` (3 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Chen-Yu Tsai, Andre Przywara, Jernej Skrabec, Mark Brown,
Sasha Levin, lgirdwood, perex, tiwai, samuel,
kuninori.morimoto.gx, u.kleine-koenig, robh, ruanjinjie,
linux-sound, linux-arm-kernel, linux-sunxi
From: Chen-Yu Tsai <wens@csie.org>
[ Upstream commit 0adf963b8463faa44653e22e56ce55f747e68868 ]
The SPDIF hardware block found in the H616 SoC has the same layout as
the one found in the H6 SoC, except that it is missing the receiver
side.
Since the driver currently only supports the transmit function, support
for the H616 is identical to what is currently done for the H6.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Link: https://msgid.link/r/20240127163247.384439-4-wens@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/sunxi/sun4i-spdif.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sound/soc/sunxi/sun4i-spdif.c b/sound/soc/sunxi/sun4i-spdif.c
index 702386823d17..f41c30955857 100644
--- a/sound/soc/sunxi/sun4i-spdif.c
+++ b/sound/soc/sunxi/sun4i-spdif.c
@@ -577,6 +577,11 @@ static const struct of_device_id sun4i_spdif_of_match[] = {
.compatible = "allwinner,sun50i-h6-spdif",
.data = &sun50i_h6_spdif_quirks,
},
+ {
+ .compatible = "allwinner,sun50i-h616-spdif",
+ /* Essentially the same as the H6, but without RX */
+ .data = &sun50i_h6_spdif_quirks,
+ },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, sun4i_spdif_of_match);
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH AUTOSEL 6.7 17/44] ALSA: hda: cs35l41: Support additional ASUS Zenbook UX3402VA
[not found] <20240207212142.1399-1-sashal@kernel.org>
` (5 preceding siblings ...)
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 16/44] ASoC: sunxi: sun4i-spdif: Add support for Allwinner H616 Sasha Levin
@ 2024-02-07 21:20 ` Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 18/44] ALSA: hda: cs35l41: Support ASUS Zenbook UM3402YAR Sasha Levin
` (2 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Kenzo Gomez, Takashi Iwai, Sasha Levin, james.schulman,
david.rhodes, rf, perex, tiwai, alsa-devel, patches, linux-sound
From: Kenzo Gomez <kenzo.sgomez@gmail.com>
[ Upstream commit c16dfab33f99fc3ff43d48253bc2784ccb84c1de ]
Add new model entry into configuration table.
Signed-off-by: Kenzo Gomez <kenzo.sgomez@gmail.com>
Link: https://lore.kernel.org/r/20240127164621.26431-1-kenzo.sgomez@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/pci/hda/cs35l41_hda_property.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_hda_property.c
index 35277ce890a4..59504852adc6 100644
--- a/sound/pci/hda/cs35l41_hda_property.c
+++ b/sound/pci/hda/cs35l41_hda_property.c
@@ -76,6 +76,7 @@ static const struct cs35l41_config cs35l41_config_table[] = {
{ "10431533", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
{ "10431573", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
{ "10431663", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
+ { "104316A3", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
{ "104316D3", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
{ "104316F3", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
{ "104317F3", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
@@ -410,6 +411,7 @@ static const struct cs35l41_prop_model cs35l41_prop_model_table[] = {
{ "CSC3551", "10431533", generic_dsd_config },
{ "CSC3551", "10431573", generic_dsd_config },
{ "CSC3551", "10431663", generic_dsd_config },
+ { "CSC3551", "104316A3", generic_dsd_config },
{ "CSC3551", "104316D3", generic_dsd_config },
{ "CSC3551", "104316F3", generic_dsd_config },
{ "CSC3551", "104317F3", generic_dsd_config },
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH AUTOSEL 6.7 18/44] ALSA: hda: cs35l41: Support ASUS Zenbook UM3402YAR
[not found] <20240207212142.1399-1-sashal@kernel.org>
` (6 preceding siblings ...)
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 17/44] ALSA: hda: cs35l41: Support additional ASUS Zenbook UX3402VA Sasha Levin
@ 2024-02-07 21:20 ` Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 29/44] ASoC: wm_adsp: Don't overwrite fwf_name with the default Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 30/44] ALSA: usb-audio: Ignore clock selector errors for single connection Sasha Levin
9 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Chhayly Leang, Takashi Iwai, Sasha Levin, james.schulman,
david.rhodes, rf, perex, tiwai, alsa-devel, patches, linux-sound
From: Chhayly Leang <clw.leang@gmail.com>
[ Upstream commit be220d2e5544ff094142d263db5cf94d034b5e39 ]
Adds sound support for ASUS Zenbook UM3402YAR with missing DSD
Signed-off-by: Chhayly Leang <clw.leang@gmail.com>
Link: https://lore.kernel.org/r/20240126080912.87422-1-clw.leang@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/pci/hda/cs35l41_hda_property.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_hda_property.c
index 59504852adc6..d74cf11eef1e 100644
--- a/sound/pci/hda/cs35l41_hda_property.c
+++ b/sound/pci/hda/cs35l41_hda_property.c
@@ -76,6 +76,7 @@ static const struct cs35l41_config cs35l41_config_table[] = {
{ "10431533", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
{ "10431573", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
{ "10431663", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
+ { "10431683", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
{ "104316A3", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
{ "104316D3", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
{ "104316F3", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
@@ -411,6 +412,7 @@ static const struct cs35l41_prop_model cs35l41_prop_model_table[] = {
{ "CSC3551", "10431533", generic_dsd_config },
{ "CSC3551", "10431573", generic_dsd_config },
{ "CSC3551", "10431663", generic_dsd_config },
+ { "CSC3551", "10431683", generic_dsd_config },
{ "CSC3551", "104316A3", generic_dsd_config },
{ "CSC3551", "104316D3", generic_dsd_config },
{ "CSC3551", "104316F3", generic_dsd_config },
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH AUTOSEL 6.7 29/44] ASoC: wm_adsp: Don't overwrite fwf_name with the default
[not found] <20240207212142.1399-1-sashal@kernel.org>
` (7 preceding siblings ...)
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 18/44] ALSA: hda: cs35l41: Support ASUS Zenbook UM3402YAR Sasha Levin
@ 2024-02-07 21:20 ` Sasha Levin
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 30/44] ALSA: usb-audio: Ignore clock selector errors for single connection Sasha Levin
9 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Richard Fitzgerald, Mark Brown, Sasha Levin, lgirdwood, perex,
tiwai, simont, kuninori.morimoto.gx, dinghao.liu, ckeepax,
patches, linux-sound
From: Richard Fitzgerald <rf@opensource.cirrus.com>
[ Upstream commit daf3f0f99cde93a066240462b7a87cdfeedc04c0 ]
There's no need to overwrite fwf_name with a kstrdup() of the cs_dsp part
name. It is trivial to select either fwf_name or cs_dsp.part as the string
to use when building the filename in wm_adsp_request_firmware_file().
This leaves fwf_name entirely owned by the codec driver.
It also avoids problems with freeing the pointer. With the original code
fwf_name was either a pointer owned by the codec driver, or a kstrdup()
created by wm_adsp. This meant wm_adsp must free it if it set it, but not
if the codec driver set it. The code was handling this by using
devm_kstrdup().
But there is no absolute requirement that wm_adsp_common_init() must be
called from probe(), so this was a pseudo-memory leak - each new call to
wm_adsp_common_init() would allocate another block of memory but these
would only be freed if the owning codec driver was removed.
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://msgid.link/r/20240129162737.497-3-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/codecs/wm_adsp.c | 29 ++++++++++++-----------------
1 file changed, 12 insertions(+), 17 deletions(-)
diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c
index c01e31175015..9c0accf5e188 100644
--- a/sound/soc/codecs/wm_adsp.c
+++ b/sound/soc/codecs/wm_adsp.c
@@ -739,19 +739,25 @@ static int wm_adsp_request_firmware_file(struct wm_adsp *dsp,
const char *filetype)
{
struct cs_dsp *cs_dsp = &dsp->cs_dsp;
+ const char *fwf;
char *s, c;
int ret = 0;
+ if (dsp->fwf_name)
+ fwf = dsp->fwf_name;
+ else
+ fwf = dsp->cs_dsp.name;
+
if (system_name && asoc_component_prefix)
*filename = kasprintf(GFP_KERNEL, "%s%s-%s-%s-%s-%s.%s", dir, dsp->part,
- dsp->fwf_name, wm_adsp_fw[dsp->fw].file, system_name,
+ fwf, wm_adsp_fw[dsp->fw].file, system_name,
asoc_component_prefix, filetype);
else if (system_name)
*filename = kasprintf(GFP_KERNEL, "%s%s-%s-%s-%s.%s", dir, dsp->part,
- dsp->fwf_name, wm_adsp_fw[dsp->fw].file, system_name,
+ fwf, wm_adsp_fw[dsp->fw].file, system_name,
filetype);
else
- *filename = kasprintf(GFP_KERNEL, "%s%s-%s-%s.%s", dir, dsp->part, dsp->fwf_name,
+ *filename = kasprintf(GFP_KERNEL, "%s%s-%s-%s.%s", dir, dsp->part, fwf,
wm_adsp_fw[dsp->fw].file, filetype);
if (*filename == NULL)
@@ -863,29 +869,18 @@ static int wm_adsp_request_firmware_files(struct wm_adsp *dsp,
}
adsp_err(dsp, "Failed to request firmware <%s>%s-%s-%s<-%s<%s>>.wmfw\n",
- cirrus_dir, dsp->part, dsp->fwf_name, wm_adsp_fw[dsp->fw].file,
- system_name, asoc_component_prefix);
+ cirrus_dir, dsp->part,
+ dsp->fwf_name ? dsp->fwf_name : dsp->cs_dsp.name,
+ wm_adsp_fw[dsp->fw].file, system_name, asoc_component_prefix);
return -ENOENT;
}
static int wm_adsp_common_init(struct wm_adsp *dsp)
{
- char *p;
-
INIT_LIST_HEAD(&dsp->compr_list);
INIT_LIST_HEAD(&dsp->buffer_list);
- if (!dsp->fwf_name) {
- p = devm_kstrdup(dsp->cs_dsp.dev, dsp->cs_dsp.name, GFP_KERNEL);
- if (!p)
- return -ENOMEM;
-
- dsp->fwf_name = p;
- for (; *p != 0; ++p)
- *p = tolower(*p);
- }
-
return 0;
}
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH AUTOSEL 6.7 30/44] ALSA: usb-audio: Ignore clock selector errors for single connection
[not found] <20240207212142.1399-1-sashal@kernel.org>
` (8 preceding siblings ...)
2024-02-07 21:20 ` [PATCH AUTOSEL 6.7 29/44] ASoC: wm_adsp: Don't overwrite fwf_name with the default Sasha Levin
@ 2024-02-07 21:20 ` Sasha Levin
9 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2024-02-07 21:20 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Alexander Tsoy, Takashi Iwai, Sasha Levin, perex, tiwai,
linux-sound
From: Alexander Tsoy <alexander@tsoy.me>
[ Upstream commit eaa1b01fe709d6a236a9cec74813e0400601fd23 ]
For devices with multiple clock sources connected to a selector, we need
to check what a clock selector control request has returned. This is
needed to ensure that a requested clock source is indeed selected and for
autoclock feature to work.
For devices with single clock source connected, if we get an error there
is nothing else we can do about it. We can't skip clock selector setup as
it is required by some devices. So lets just ignore error in this case.
This should fix various buggy Mackie devices:
[ 649.109785] usb 1-1.3: parse_audio_format_rates_v2v3(): unable to find clock source (clock -32)
[ 649.111946] usb 1-1.3: parse_audio_format_rates_v2v3(): unable to find clock source (clock -32)
[ 649.113822] usb 1-1.3: parse_audio_format_rates_v2v3(): unable to find clock source (clock -32)
There is also interesting info from the Windows documentation [1] (this
is probably why manufacturers dont't even test this feature):
"The USB Audio 2.0 driver doesn't support clock selection. The driver
uses the Clock Source Entity, which is selected by default and never
issues a Clock Selector Control SET CUR request."
Link: https://learn.microsoft.com/en-us/windows-hardware/drivers/audio/usb-2-0-audio-drivers [1]
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217314
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218175
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218342
Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
Link: https://lore.kernel.org/r/20240201115308.17838-1-alexander@tsoy.me
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/usb/clock.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/sound/usb/clock.c b/sound/usb/clock.c
index 33db334e6556..a676ad093d18 100644
--- a/sound/usb/clock.c
+++ b/sound/usb/clock.c
@@ -328,8 +328,16 @@ static int __uac_clock_find_source(struct snd_usb_audio *chip,
if (chip->quirk_flags & QUIRK_FLAG_SKIP_CLOCK_SELECTOR)
return ret;
err = uac_clock_selector_set_val(chip, entity_id, cur);
- if (err < 0)
+ if (err < 0) {
+ if (pins == 1) {
+ usb_audio_dbg(chip,
+ "%s(): selector returned an error, "
+ "assuming a firmware bug, id %d, ret %d\n",
+ __func__, clock_id, err);
+ return ret;
+ }
return err;
+ }
}
if (!validate || ret > 0 || !chip->autoclock)
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread