RE: [PATCH v3 1/2] ALSA: cs35l41: obey the trigger type from DSDT
From: Stefan Binding
Date: Fri Apr 19 2024 - 11:10:17 EST
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@xxxxxxxxxxx>
> Sent: Thursday, April 18, 2024 2:20 PM
> To: sbinding@xxxxxxxxxxxxxxxxxxxxx
> Cc: david.rhodes@xxxxxxxxxx; james.schulman@xxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; linux-sound@xxxxxxxxxxxxxxx;
> patches@xxxxxxxxxxxxxxxxxxxxx; rf@xxxxxxxxxxxxxxxxxxxxx;
> ArcticLampyrid <ArcticLampyrid@xxxxxxxxxxx>
> 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@xxxxxxxxxxx>
> ---
> 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
>