ASoC: Intel: byt-max98090 Fix GPIOs lookup
Subsystems (3)
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
@@ -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
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
Signed-off-by Nicolas Porcel <[email protected]>Signed-off-by Dmitry Torokhov <[email protected]>--- sound/soc/intel/boards/byt-max98090.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)sound/soc/intel/boards/byt-max98090.c +2
-3@@ -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