All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7
@ 2024-04-18 13:17 ArcticLampyrid
  2024-04-18 13:19 ` [PATCH v3 1/2] ALSA: cs35l41: obey the trigger type from DSDT ArcticLampyrid
  2024-04-18 13:20 ` [PATCH v3 2/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7 ArcticLampyrid
  0 siblings, 2 replies; 9+ messages in thread
From: ArcticLampyrid @ 2024-04-18 13:17 UTC (permalink / raw)
  To: sbinding
  Cc: david.rhodes, james.schulman, linux-kernel, linux-sound, patches,
	rf, ArcticLampyrid

This fixes the sound not working from internal speakers on
Lenovo Legion Y9000X 2022 IAH7 models.

Change from v2 ( https://lore.kernel.org/lkml/TYCP286MB253523D85F6E0ECAA3E03D58C40E2@TYCP286MB2535.JPNP286.PROD.OUTLOOK.COM/T/ ):
- Correct spkid gpio index

Change from v1 ( https://lore.kernel.org/lkml/TYCP286MB25352F3E995FED9CCE90F1F6C40B2@TYCP286MB2535.JPNP286.PROD.OUTLOOK.COM/T/ ):
- Add a patch for cs35l41 to obey the trigger type from DSDT
- Avoid disabling interupts for second amps


ArcticLampyrid (2):
  ALSA: cs35l41: obey the trigger type from DSDT
  ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7

 sound/pci/hda/cs35l41_hda.c          | 9 +++++++++
 sound/pci/hda/cs35l41_hda_property.c | 2 ++
 sound/pci/hda/patch_realtek.c        | 1 +
 3 files changed, 12 insertions(+)

-- 
2.44.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v3 1/2] ALSA: cs35l41: obey the trigger type from DSDT
  2024-04-18 13:17 [PATCH v3 0/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7 ArcticLampyrid
@ 2024-04-18 13:19 ` ArcticLampyrid
  2024-04-19 15:09   ` Stefan Binding
  2024-04-18 13:20 ` [PATCH v3 2/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7 ArcticLampyrid
  1 sibling, 1 reply; 9+ messages in thread
From: ArcticLampyrid @ 2024-04-18 13:19 UTC (permalink / raw)
  To: sbinding
  Cc: david.rhodes, james.schulman, linux-kernel, linux-sound, patches,
	rf, ArcticLampyrid

On some models, CSC3551's interrupt pin connected to
APIC. We need to obey the trigger type from DSDT in this case.

Signed-off-by: ArcticLampyrid <ArcticLampyrid@outlook.com>
---
 sound/pci/hda/cs35l41_hda.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index d3fa6e136744..d9c7b4034684 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -10,6 +10,7 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <sound/hda_codec.h>
+#include <linux/irq.h>
 #include <sound/soc.h>
 #include <linux/pm_runtime.h>
 #include <linux/spi/spi.h>
@@ -1511,6 +1512,14 @@ static int cs35l41_hda_apply_properties(struct cs35l41_hda *cs35l41)
 	irq_pol = cs35l41_gpio_config(cs35l41->regmap, hw_cfg);
 
 	if (cs35l41->irq && using_irq) {
+		struct irq_data *irq_data;
+
+		irq_data = irq_get_irq_data(cs35l41->irq);
+		if (irq_data && irqd_trigger_type_was_set(irq_data)) {
+			irq_pol = irqd_get_trigger_type(irq_data);
+			dev_info(cs35l41->dev, "Using configured IRQ Polarity: %d\n", irq_pol);
+		}
+
 		ret = devm_regmap_add_irq_chip(cs35l41->dev, cs35l41->regmap, cs35l41->irq,
 					       IRQF_ONESHOT | IRQF_SHARED | irq_pol,
 					       0, &cs35l41_regmap_irq_chip, &cs35l41->irq_data);
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 2/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7
  2024-04-18 13:17 [PATCH v3 0/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7 ArcticLampyrid
  2024-04-18 13:19 ` [PATCH v3 1/2] ALSA: cs35l41: obey the trigger type from DSDT ArcticLampyrid
@ 2024-04-18 13:20 ` ArcticLampyrid
  2024-04-18 13:59   ` Charles Keepax
  1 sibling, 1 reply; 9+ messages in thread
From: ArcticLampyrid @ 2024-04-18 13:20 UTC (permalink / raw)
  To: sbinding
  Cc: david.rhodes, james.schulman, linux-kernel, linux-sound, patches,
	rf, ArcticLampyrid, stable

This fixes the sound not working from internal speakers on
Lenovo Legion Y9000X 2022 IAH7 models.

Signed-off-by: ArcticLampyrid <ArcticLampyrid@outlook.com>
Cc: <stable@vger.kernel.org>
---
 sound/pci/hda/cs35l41_hda_property.c | 2 ++
 sound/pci/hda/patch_realtek.c        | 1 +
 2 files changed, 3 insertions(+)

diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_hda_property.c
index 8fb688e41414..ee195737d388 100644
--- a/sound/pci/hda/cs35l41_hda_property.c
+++ b/sound/pci/hda/cs35l41_hda_property.c
@@ -109,6 +109,7 @@ static const struct cs35l41_config cs35l41_config_table[] = {
 	{ "10431F1F", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 0, 0, 0 },
 	{ "10431F62", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
 	{ "10433A60", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
+	{ "17AA386E", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 2, -1, 0, 0, 0 },
 	{ "17AA386F", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, -1, -1, 0, 0, 0 },
 	{ "17AA3877", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
 	{ "17AA3878", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
@@ -500,6 +501,7 @@ static const struct cs35l41_prop_model cs35l41_prop_model_table[] = {
 	{ "CSC3551", "10431F1F", generic_dsd_config },
 	{ "CSC3551", "10431F62", generic_dsd_config },
 	{ "CSC3551", "10433A60", generic_dsd_config },
+	{ "CSC3551", "17AA386E", generic_dsd_config },
 	{ "CSC3551", "17AA386F", generic_dsd_config },
 	{ "CSC3551", "17AA3877", generic_dsd_config },
 	{ "CSC3551", "17AA3878", generic_dsd_config },
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index cdcb28aa9d7b..ac729187f6a7 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -10382,6 +10382,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x17aa, 0x3853, "Lenovo Yoga 7 15ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
 	SND_PCI_QUIRK(0x17aa, 0x3855, "Legion 7 16ITHG6", ALC287_FIXUP_LEGION_16ITHG6),
 	SND_PCI_QUIRK(0x17aa, 0x3869, "Lenovo Yoga7 14IAL7", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
+	SND_PCI_QUIRK(0x17aa, 0x386e, "Legion Y9000X 2022 IAH7", ALC287_FIXUP_CS35L41_I2C_2),
 	SND_PCI_QUIRK(0x17aa, 0x386f, "Legion 7i 16IAX7", ALC287_FIXUP_CS35L41_I2C_2),
 	SND_PCI_QUIRK(0x17aa, 0x3870, "Lenovo Yoga 7 14ARB7", ALC287_FIXUP_YOGA7_14ARB7_I2C),
 	SND_PCI_QUIRK(0x17aa, 0x3877, "Lenovo Legion 7 Slim 16ARHA7", ALC287_FIXUP_CS35L41_I2C_2),
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7
  2024-04-18 13:20 ` [PATCH v3 2/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7 ArcticLampyrid
@ 2024-04-18 13:59   ` Charles Keepax
  2024-04-18 14:19     ` Qi Qi
  2024-04-19 15:40     ` Qi Qi
  0 siblings, 2 replies; 9+ messages in thread
From: Charles Keepax @ 2024-04-18 13:59 UTC (permalink / raw)
  To: ArcticLampyrid
  Cc: sbinding, david.rhodes, james.schulman, linux-kernel,
	linux-sound, patches, rf, stable

On Thu, Apr 18, 2024 at 09:20:06PM +0800, ArcticLampyrid wrote:
> This fixes the sound not working from internal speakers on
> Lenovo Legion Y9000X 2022 IAH7 models.
> 
> Signed-off-by: ArcticLampyrid <ArcticLampyrid@outlook.com>

I would wait for Stefan to review the content before respinning
but you need to use your real name for the Signed-off-by line as
per Documentation/process/submitting-patches.rst, it's a legal
thing.

Thanks,
Charles

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7
  2024-04-18 13:59   ` Charles Keepax
@ 2024-04-18 14:19     ` Qi Qi
  2024-04-18 14:45       ` Greg KH
  2024-04-19 15:40     ` Qi Qi
  1 sibling, 1 reply; 9+ messages in thread
From: Qi Qi @ 2024-04-18 14:19 UTC (permalink / raw)
  To: Charles Keepax
  Cc: sbinding, david.rhodes, james.schulman, linux-kernel,
	linux-sound, patches, rf, stable

[-- Attachment #1: Type: text/plain, Size: 431 bytes --]

> I would wait for Stefan to review the content before respinning
> but you need to use your real name for the Signed-off-by line as
> per Documentation/process/submitting-patches.rst, it's a legal
> thing.

Thanks for the reminder.

My real name is Junhao Pei. 
My PGP fingerprint is 7DA8815C10FCDAB8C6D11C4BDC72A2519E77D6CF.

I claim that I own the copyright of these patches, and agree to license them 
under GPL v2.0 or later.

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7
  2024-04-18 14:19     ` Qi Qi
@ 2024-04-18 14:45       ` Greg KH
  0 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2024-04-18 14:45 UTC (permalink / raw)
  To: ZiEnWBbvmWwKqytK
  Cc: Charles Keepax, sbinding, david.rhodes, james.schulman,
	linux-kernel, linux-sound, patches, rf, stable

On Thu, Apr 18, 2024 at 02:19:04PM +0000, Qi Qi wrote:
> > I would wait for Stefan to review the content before respinning
> > but you need to use your real name for the Signed-off-by line as
> > per Documentation/process/submitting-patches.rst, it's a legal
> > thing.
> 
> Thanks for the reminder.
> 
> My real name is Junhao Pei. 
> My PGP fingerprint is 7DA8815C10FCDAB8C6D11C4BDC72A2519E77D6CF.
> 
> I claim that I own the copyright of these patches, and agree to license them 
> under GPL v2.0 or later.

You still need to resend the patch with that information, don't make
anyone have to "hand edit" your patch :(

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH v3 1/2] ALSA: cs35l41: obey the trigger type from DSDT
  2024-04-18 13:19 ` [PATCH v3 1/2] ALSA: cs35l41: obey the trigger type from DSDT ArcticLampyrid
@ 2024-04-19 15:09   ` Stefan Binding
  2024-04-19 15:43     ` Qi Qi
  0 siblings, 1 reply; 9+ messages in thread
From: Stefan Binding @ 2024-04-19 15:09 UTC (permalink / raw)
  To: 'ArcticLampyrid'
  Cc: david.rhodes, james.schulman, linux-kernel, linux-sound, patches, rf

Hi,

We are still investigating this issue, but I do not think this
solution is the correct one.
Configuring the interrupt in this way does not fix the interrupt, just
hides the issue.
We are still looking into what we can do to try and fix this.

Thanks,
Stefan

> -----Original Message-----
> From: ArcticLampyrid <ArcticLampyrid@outlook.com>
> Sent: Thursday, April 18, 2024 2:20 PM
> To: sbinding@opensource.cirrus.com
> Cc: david.rhodes@cirrus.com; james.schulman@cirrus.com; linux-
> kernel@vger.kernel.org; linux-sound@vger.kernel.org;
> patches@opensource.cirrus.com; rf@opensource.cirrus.com;
> ArcticLampyrid <ArcticLampyrid@outlook.com>
> Subject: [PATCH v3 1/2] ALSA: cs35l41: obey the trigger type from
DSDT
> 
> On some models, CSC3551's interrupt pin connected to
> APIC. We need to obey the trigger type from DSDT in this case.
> 
> Signed-off-by: ArcticLampyrid <ArcticLampyrid@outlook.com>
> ---
>  sound/pci/hda/cs35l41_hda.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/sound/pci/hda/cs35l41_hda.c
b/sound/pci/hda/cs35l41_hda.c
> index d3fa6e136744..d9c7b4034684 100644
> --- a/sound/pci/hda/cs35l41_hda.c
> +++ b/sound/pci/hda/cs35l41_hda.c
> @@ -10,6 +10,7 @@
>  #include <linux/module.h>
>  #include <linux/moduleparam.h>
>  #include <sound/hda_codec.h>
> +#include <linux/irq.h>
>  #include <sound/soc.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/spi/spi.h>
> @@ -1511,6 +1512,14 @@ static int
cs35l41_hda_apply_properties(struct
> cs35l41_hda *cs35l41)
>  	irq_pol = cs35l41_gpio_config(cs35l41->regmap, hw_cfg);
> 
>  	if (cs35l41->irq && using_irq) {
> +		struct irq_data *irq_data;
> +
> +		irq_data = irq_get_irq_data(cs35l41->irq);
> +		if (irq_data && irqd_trigger_type_was_set(irq_data)) {
> +			irq_pol = irqd_get_trigger_type(irq_data);
> +			dev_info(cs35l41->dev, "Using configured IRQ
> Polarity: %d\n", irq_pol);
> +		}
> +
>  		ret = devm_regmap_add_irq_chip(cs35l41->dev, cs35l41-
> >regmap, cs35l41->irq,
>  					       IRQF_ONESHOT |
> IRQF_SHARED | irq_pol,
>  					       0,
> &cs35l41_regmap_irq_chip, &cs35l41->irq_data);
> --
> 2.44.0
> 



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7
  2024-04-18 13:59   ` Charles Keepax
  2024-04-18 14:19     ` Qi Qi
@ 2024-04-19 15:40     ` Qi Qi
  1 sibling, 0 replies; 9+ messages in thread
From: Qi Qi @ 2024-04-19 15:40 UTC (permalink / raw)
  To: Charles Keepax
  Cc: sbinding, david.rhodes, james.schulman, linux-kernel,
	linux-sound, patches, rf, stable

I believe we should obey the type declared in DSDT table if it exists, in 
general case.

Could you please explain why it did not solve the interrupt? Is it a 
misleading item in DSDT?

Thanks for your reply.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 1/2] ALSA: cs35l41: obey the trigger type from DSDT
  2024-04-19 15:09   ` Stefan Binding
@ 2024-04-19 15:43     ` Qi Qi
  0 siblings, 0 replies; 9+ messages in thread
From: Qi Qi @ 2024-04-19 15:43 UTC (permalink / raw)
  To: Stefan Binding
  Cc: david.rhodes, james.schulman, linux-kernel, linux-sound, patches, rf

I believe we should obey the type declared in DSDT table if it exists, in 
general case.

Could you please explain why it did not solve the interrupt? Is it a 
misleading item in DSDT?

Thanks for your reply.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-04-19 15:43 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-18 13:17 [PATCH v3 0/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7 ArcticLampyrid
2024-04-18 13:19 ` [PATCH v3 1/2] ALSA: cs35l41: obey the trigger type from DSDT ArcticLampyrid
2024-04-19 15:09   ` Stefan Binding
2024-04-19 15:43     ` Qi Qi
2024-04-18 13:20 ` [PATCH v3 2/2] ALSA: hda/realtek: Fix internal speakers for Legion Y9000X 2022 IAH7 ArcticLampyrid
2024-04-18 13:59   ` Charles Keepax
2024-04-18 14:19     ` Qi Qi
2024-04-18 14:45       ` Greg KH
2024-04-19 15:40     ` Qi Qi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.