diff mbox

ASoC: Intel: byt-max98090 Fix GPIOs lookup

Message ID 20170609165017.GA2612@dtor-ws (mailing list archive)
State New, archived
Headers show

Commit Message

Dmitry Torokhov June 9, 2017, 4:50 p.m. UTC
From: Nicolas Porcel <nicolasporcel06@gmail.com>

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.

Signed-off-by: Nicolas Porcel <nicolasporcel06@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 sound/soc/intel/boards/byt-max98090.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Andy Shevchenko June 9, 2017, 6:22 p.m. UTC | #1
On Fri, Jun 9, 2017 at 7:50 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> From: Nicolas Porcel <nicolasporcel06@gmail.com>
>
> 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


>
> Signed-off-by: Nicolas Porcel <nicolasporcel06@gmail.com>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
>  sound/soc/intel/boards/byt-max98090.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/intel/boards/byt-max98090.c b/sound/soc/intel/boards/byt-max98090.c
> index d9f81b8d915d..a6e57d95c1e2 100644
> --- a/sound/soc/intel/boards/byt-max98090.c
> +++ b/sound/soc/intel/boards/byt-max98090.c
> @@ -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
diff mbox

Patch

diff --git a/sound/soc/intel/boards/byt-max98090.c b/sound/soc/intel/boards/byt-max98090.c
index d9f81b8d915d..a6e57d95c1e2 100644
--- a/sound/soc/intel/boards/byt-max98090.c
+++ b/sound/soc/intel/boards/byt-max98090.c
@@ -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,