* [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
* 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 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@cirrus.com, james.schulman@cirrus.com, linux-kernel@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, rf@opensource.cirrus.com 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
* [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@opensource.cirrus.com, 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, stable@vger.kernel.org [-- 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@ediswmail9.ad.cirrus.com Cc: Charles Keepax, sbinding@opensource.cirrus.com, 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, stable@vger.kernel.org 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 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@opensource.cirrus.com, 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, stable@vger.kernel.org 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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox