Skip to contentSkip to conversation

ASoC: Intel: byt-max98090 Fix GPIOs lookup

PATCH In review Dmitry Torokhov 2 participants 2 messages Jun 9, 2017

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ASoC: Intel: byt-max98090 Fix GPIOs lookup

From: Nicolas Porcel <[email protected]>

Commit 9c3c9bc9cc98 ("gpiolib: tighten up ACPI legacy gpio lookups") changed the way fallback to _CRS-defined GPIOs is executed by requiring drivers use common connection ID for all GPIOs fetched from _CRS. This broke byt-max98090 driver, which expected GPIO core to ignore the names it supplied and simply give GPIOs 0 and 1 from whatever block it finds.

By giving the same name to both GPIOs 0 and 1, the driver will perform the lookup for both of them instead of the first requested. This is the same behavior than before the commit.

---
 sound/soc/intel/boards/byt-max98090.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
sound/soc/intel/boards/byt-max98090.c +2 -2
index d9f81b8d915d..a6e57d95c1e2 100644
@@ -67,13 +67,13 @@ static struct snd_soc_jack_pin hs_jack_pins[] = {
 
 static struct snd_soc_jack_gpio hs_jack_gpios[] = {
 	{
-		.name		= "hp-gpio",
+		.name		= "byt_max98090",
 		.idx		= 0,
 		.report		= SND_JACK_HEADPHONE | SND_JACK_LINEOUT,
 		.debounce_time	= 200,
 	},
 	{
-		.name		= "mic-gpio",
+		.name		= "byt_max98090",
 		.idx		= 1,
 		.invert		= 1,
 		.report		= SND_JACK_MICROPHONE,
Signature · 5 lines
2.13.0.506.g27d5fe0cd-goog


-- 
Dmitry
#1 lore raw
Quoted 11 lines · Dmitry Torokhov

From: Nicolas Porcel <[email protected]>

Commit 9c3c9bc9cc98 ("gpiolib: tighten up ACPI legacy gpio lookups") changed the way fallback to _CRS-defined GPIOs is executed by requiring drivers use common connection ID for all GPIOs fetched from _CRS. This broke byt-max98090 driver, which expected GPIO core to ignore the names it supplied and simply give GPIOs 0 and 1 from whatever block it finds.

By giving the same name to both GPIOs 0 and 1, the driver will perform the lookup for both of them instead of the first requested. This is the same behavior than before the commit.

I don't think this is right solution.

We may add mapping table for _CRS which will make this robust.

I will send an RFC

Quoted 33 lines
---
 sound/soc/intel/boards/byt-max98090.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
sound/soc/intel/boards/byt-max98090.c +2 -3
index d9f81b8d915d..a6e57d95c1e2 100644
@@ -67,13 +67,13 @@ static struct snd_soc_jack_pin hs_jack_pins[] = {
 
 static struct snd_soc_jack_gpio hs_jack_gpios[] = {
        {
-               .name           = "hp-gpio",
+               .name           = "byt_max98090",
                .idx            = 0,
                .report         = SND_JACK_HEADPHONE | SND_JACK_LINEOUT,
                .debounce_time  = 200,
        },
        {
-               .name           = "mic-gpio",
+               .name           = "byt_max98090",
                .idx            = 1,
                .invert         = 1,
                .report         = SND_JACK_MICROPHONE,
--

2.13.0.506.g27d5fe0cd-goog

--
Dmitry

Signature · 2 lines
With Best Regards,
Andy Shevchenko