mirror of
https://abf.rosa.ru/djam/kernel-5.15.git
synced 2025-02-23 10:32:54 +00:00
77 lines
2.7 KiB
Diff
77 lines
2.7 KiB
Diff
From ab940eb1f4b514b80a2ab8af48ff557f0dd7bfe5 Mon Sep 17 00:00:00 2001
|
|
From: Andrey Turkin <andrey.turkin@gmail.com>
|
|
Date: Mon, 25 Jul 2022 14:49:02 -0500
|
|
Subject: [PATCH 417/424] ASoC: Intel: sof_es8336: Fix GPIO quirks set via
|
|
module option
|
|
|
|
The two GPIO quirk bits only affected actual GPIO selection
|
|
when set by the quirks table. They were reported as being
|
|
in effect when set via module options but actually did nothing.
|
|
|
|
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
|
Signed-off-by: Andrey Turkin <andrey.turkin@gmail.com>
|
|
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
|
|
Link: https://lore.kernel.org/r/20220725194909.145418-4-pierre-louis.bossart@linux.intel.com
|
|
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
---
|
|
sound/soc/intel/boards/sof_es8336.c | 23 ++++++++++++-----------
|
|
1 file changed, 12 insertions(+), 11 deletions(-)
|
|
|
|
diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c
|
|
index 9d617831d..81e12f03e 100644
|
|
--- a/sound/soc/intel/boards/sof_es8336.c
|
|
+++ b/sound/soc/intel/boards/sof_es8336.c
|
|
@@ -77,8 +77,6 @@ static const struct acpi_gpio_mapping acpi_enable_both_gpios_rev_order[] = {
|
|
{ }
|
|
};
|
|
|
|
-static const struct acpi_gpio_mapping *gpio_mapping = acpi_speakers_enable_gpio0;
|
|
-
|
|
static void log_quirks(struct device *dev)
|
|
{
|
|
dev_info(dev, "quirk mask %#lx\n", quirk);
|
|
@@ -272,15 +270,6 @@ static int sof_es8336_quirk_cb(const struct dmi_system_id *id)
|
|
{
|
|
quirk = (unsigned long)id->driver_data;
|
|
|
|
- if (quirk & SOF_ES8336_HEADPHONE_GPIO) {
|
|
- if (quirk & SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK)
|
|
- gpio_mapping = acpi_enable_both_gpios;
|
|
- else
|
|
- gpio_mapping = acpi_enable_both_gpios_rev_order;
|
|
- } else if (quirk & SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK) {
|
|
- gpio_mapping = acpi_speakers_enable_gpio1;
|
|
- }
|
|
-
|
|
return 1;
|
|
}
|
|
|
|
@@ -529,6 +518,7 @@ static int sof_es8336_probe(struct platform_device *pdev)
|
|
struct acpi_device *adev;
|
|
struct snd_soc_dai_link *dai_links;
|
|
struct device *codec_dev;
|
|
+ const struct acpi_gpio_mapping *gpio_mapping;
|
|
unsigned int cnt = 0;
|
|
int dmic_be_num = 0;
|
|
int hdmi_num = 3;
|
|
@@ -635,6 +625,17 @@ static int sof_es8336_probe(struct platform_device *pdev)
|
|
}
|
|
|
|
/* get speaker enable GPIO */
|
|
+ if (quirk & SOF_ES8336_HEADPHONE_GPIO) {
|
|
+ if (quirk & SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK)
|
|
+ gpio_mapping = acpi_enable_both_gpios;
|
|
+ else
|
|
+ gpio_mapping = acpi_enable_both_gpios_rev_order;
|
|
+ } else if (quirk & SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK) {
|
|
+ gpio_mapping = acpi_speakers_enable_gpio1;
|
|
+ } else {
|
|
+ gpio_mapping = acpi_speakers_enable_gpio0;
|
|
+ }
|
|
+
|
|
ret = devm_acpi_dev_add_driver_gpios(codec_dev, gpio_mapping);
|
|
if (ret)
|
|
dev_warn(codec_dev, "unable to add GPIO mapping table\n");
|
|
--
|
|
2.35.2
|
|
|