mirror of
https://abf.rosa.ru/djam/kernel-5.15.git
synced 2025-02-23 10:32:54 +00:00
78 lines
2.7 KiB
Diff
78 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
|
||
|
|