alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Baytrail/Cherrytrail audio fixes - take2
@ 2017-02-01 18:27 Pierre-Louis Bossart
  2017-02-01 18:27 ` [PATCH 1/2] ASoC: rt5645: fix error handling for gpio detection Pierre-Louis Bossart
  2017-02-01 18:27 ` [PATCH 2/2] ASoC: cht-bsw-rt5645: fix unused variable compiler warning Pierre-Louis Bossart
  0 siblings, 2 replies; 7+ messages in thread
From: Pierre-Louis Bossart @ 2017-02-01 18:27 UTC (permalink / raw)
  To: alsa-devel; +Cc: tiwai, broonie, Pierre-Louis Bossart

Correction to previous series (applies on top for Mark's for-next)
 - better handling of missing gpiod, continue only on -ENOENT
 - compiler warning

Pierre-Louis Bossart (2):
  ASoC: rt5645: fix error handling for gpio detection
  ASoC: cht-bsw-rt5645: fix unused variable compiler warning

 sound/soc/codecs/rt5645.c               | 10 ++++++++--
 sound/soc/intel/boards/cht_bsw_rt5645.c |  1 -
 2 files changed, 8 insertions(+), 3 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] ASoC: rt5645: fix error handling for gpio detection
  2017-02-01 18:27 [PATCH 0/2] Baytrail/Cherrytrail audio fixes - take2 Pierre-Louis Bossart
@ 2017-02-01 18:27 ` Pierre-Louis Bossart
  2017-02-02  2:40   ` Takashi Sakamoto
  2017-02-02 11:06   ` Applied "ASoC: rt5645: fix error handling for gpio detection" to the asoc tree Mark Brown
  2017-02-01 18:27 ` [PATCH 2/2] ASoC: cht-bsw-rt5645: fix unused variable compiler warning Pierre-Louis Bossart
  1 sibling, 2 replies; 7+ messages in thread
From: Pierre-Louis Bossart @ 2017-02-01 18:27 UTC (permalink / raw)
  To: alsa-devel; +Cc: tiwai, broonie, Pierre-Louis Bossart

Optional gpio handling should not cause an error status and prevent
probing if it's missing.  Remove error return for -ENOENT case and
move error message to dev_info

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 sound/soc/codecs/rt5645.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
index 65ac841..e149f3c 100644
--- a/sound/soc/codecs/rt5645.c
+++ b/sound/soc/codecs/rt5645.c
@@ -3660,8 +3660,14 @@ static int rt5645_i2c_probe(struct i2c_client *i2c,
 						       GPIOD_IN);
 
 	if (IS_ERR(rt5645->gpiod_hp_det)) {
-		dev_err(&i2c->dev, "failed to initialize gpiod\n");
-		return PTR_ERR(rt5645->gpiod_hp_det);
+		dev_info(&i2c->dev, "failed to initialize gpiod\n");
+		ret = PTR_ERR(rt5645->gpiod_hp_det);
+		/*
+		 * Continue if optional gpiod is missing, bail for all other
+		 * errors, including -EPROBE_DEFER
+		 */
+		if (ret != -ENOENT)
+			return ret;
 	}
 
 	for (i = 0; i < ARRAY_SIZE(rt5645->supplies); i++)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] ASoC: cht-bsw-rt5645: fix unused variable compiler warning
  2017-02-01 18:27 [PATCH 0/2] Baytrail/Cherrytrail audio fixes - take2 Pierre-Louis Bossart
  2017-02-01 18:27 ` [PATCH 1/2] ASoC: rt5645: fix error handling for gpio detection Pierre-Louis Bossart
@ 2017-02-01 18:27 ` Pierre-Louis Bossart
  2017-02-02 11:06   ` Applied "ASoC: cht-bsw-rt5645: fix unused variable compiler warning" to the asoc tree Mark Brown
  1 sibling, 1 reply; 7+ messages in thread
From: Pierre-Louis Bossart @ 2017-02-01 18:27 UTC (permalink / raw)
  To: alsa-devel; +Cc: tiwai, broonie, Pierre-Louis Bossart

Missed unused variable in previous changes, oops.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 sound/soc/intel/boards/cht_bsw_rt5645.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sound/soc/intel/boards/cht_bsw_rt5645.c b/sound/soc/intel/boards/cht_bsw_rt5645.c
index b972b65..5bcde01 100644
--- a/sound/soc/intel/boards/cht_bsw_rt5645.c
+++ b/sound/soc/intel/boards/cht_bsw_rt5645.c
@@ -262,7 +262,6 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
 	int jack_type;
 	struct snd_soc_codec *codec = runtime->codec;
 	struct snd_soc_card *card = runtime->card;
-	struct snd_soc_dai *codec_dai = runtime->codec_dai;
 	struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card);
 
 	if ((cht_rt5645_quirk & CHT_RT5645_SSP2_AIF2) ||
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] ASoC: rt5645: fix error handling for gpio detection
  2017-02-01 18:27 ` [PATCH 1/2] ASoC: rt5645: fix error handling for gpio detection Pierre-Louis Bossart
@ 2017-02-02  2:40   ` Takashi Sakamoto
  2017-02-02  5:41     ` Pierre-Louis Bossart
  2017-02-02 11:06   ` Applied "ASoC: rt5645: fix error handling for gpio detection" to the asoc tree Mark Brown
  1 sibling, 1 reply; 7+ messages in thread
From: Takashi Sakamoto @ 2017-02-02  2:40 UTC (permalink / raw)
  To: Pierre-Louis Bossart, alsa-devel; +Cc: tiwai, broonie

Hi,

On Feb 2 2017 03:27, Pierre-Louis Bossart wrote:
> Optional gpio handling should not cause an error status and prevent
> probing if it's missing.  Remove error return for -ENOENT case and
> move error message to dev_info
>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> ---
>  sound/soc/codecs/rt5645.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
> index 65ac841..e149f3c 100644
> --- a/sound/soc/codecs/rt5645.c
> +++ b/sound/soc/codecs/rt5645.c
> @@ -3660,8 +3660,14 @@ static int rt5645_i2c_probe(struct i2c_client *i2c,
>  						       GPIOD_IN);
>
>  	if (IS_ERR(rt5645->gpiod_hp_det)) {
> -		dev_err(&i2c->dev, "failed to initialize gpiod\n");
> -		return PTR_ERR(rt5645->gpiod_hp_det);
> +		dev_info(&i2c->dev, "failed to initialize gpiod\n");
> +		ret = PTR_ERR(rt5645->gpiod_hp_det);
> +		/*
> +		 * Continue if optional gpiod is missing, bail for all other
> +		 * errors, including -EPROBE_DEFER
> +		 */
> +		if (ret != -ENOENT)
> +			return ret;
>  	}
>
>  	for (i = 0; i < ARRAY_SIZE(rt5645->supplies); i++)

(sound/soc/codecs/rt5645.c)
rt5645_i2c_probe()
  (drivers/gpio/devres.c)
  ->devm_gpiod_get_optional()
    ->devm_gpiod_get_index_optional()

As long as seeing current implementation of 
'devm_gpiod_get_index_optional()', this function never returns ENOENT. 
In this case, it returns NULL.
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpio/devres.c#n185

IS_ERR(NULL) is false, thus the additional condition is useless. When 
entering the branch, error code should be always returned.

For your purpose, checking NULL at first, then handles the error 
properly, like:

$ git diff
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
index 1ac96ef..a588454 100644
--- a/sound/soc/codecs/rt5645.c
+++ b/sound/soc/codecs/rt5645.c
@@ -3656,10 +3656,15 @@ static int rt5645_i2c_probe(struct i2c_client *i2c,

         rt5645->gpiod_hp_det = devm_gpiod_get_optional(&i2c->dev, 
"hp-detect",
                                                        GPIOD_IN);
-
-       if (IS_ERR(rt5645->gpiod_hp_det)) {
-               dev_err(&i2c->dev, "failed to initialize gpiod\n");
-               return PTR_ERR(rt5645->gpiod_hp_det);
+       if (rt5645->gpiod_hp_det && IS_ERR(rt5645->gpiod_hp_det)) {
+               dev_info(&i2c->dev, "failed to initialize gpiod\n");
+               ret = PTR_ERR(rt5645->gpiod_hp_det);
+               /*
+                * Continue if optional gpiod is missing, bail for all other
+                * errors, including -EPROBE_DEFER. -ENOENT is never returns
+                * according to implementation of devm_gpiod_get_optional().
+                */
+               return ret;
         }

         for (i = 0; i < ARRAY_SIZE(rt5645->supplies); i++)


Regards

Takashi Sakamoto

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] ASoC: rt5645: fix error handling for gpio detection
  2017-02-02  2:40   ` Takashi Sakamoto
@ 2017-02-02  5:41     ` Pierre-Louis Bossart
  0 siblings, 0 replies; 7+ messages in thread
From: Pierre-Louis Bossart @ 2017-02-02  5:41 UTC (permalink / raw)
  To: Takashi Sakamoto, alsa-devel; +Cc: tiwai, broonie


>>      if (IS_ERR(rt5645->gpiod_hp_det)) {
>> -        dev_err(&i2c->dev, "failed to initialize gpiod\n");
>> -        return PTR_ERR(rt5645->gpiod_hp_det);
>> +        dev_info(&i2c->dev, "failed to initialize gpiod\n");
>> +        ret = PTR_ERR(rt5645->gpiod_hp_det);
>> +        /*
>> +         * Continue if optional gpiod is missing, bail for all other
>> +         * errors, including -EPROBE_DEFER
>> +         */
>> +        if (ret != -ENOENT)
>> +            return ret;
>>      }
>>
>>      for (i = 0; i < ARRAY_SIZE(rt5645->supplies); i++)
>
> (sound/soc/codecs/rt5645.c)
> rt5645_i2c_probe()
>  (drivers/gpio/devres.c)
>  ->devm_gpiod_get_optional()
>    ->devm_gpiod_get_index_optional()
>
> As long as seeing current implementation of 
> 'devm_gpiod_get_index_optional()', this function never returns ENOENT. 
> In this case, it returns NULL.
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpio/devres.c#n185 
>
Thanks for pointing this out, I didn't see it and naively thought that 
everyone followed the same conventions. Oh well. I'll respin a v2.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Applied "ASoC: cht-bsw-rt5645: fix unused variable compiler warning" to the asoc tree
  2017-02-01 18:27 ` [PATCH 2/2] ASoC: cht-bsw-rt5645: fix unused variable compiler warning Pierre-Louis Bossart
@ 2017-02-02 11:06   ` Mark Brown
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2017-02-02 11:06 UTC (permalink / raw)
  To: Pierre-Louis Bossart; +Cc: tiwai, alsa-devel, broonie

The patch

   ASoC: cht-bsw-rt5645: fix unused variable compiler warning

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From 77e546b7ba3e39e8a739cb18489582044222b7ba Mon Sep 17 00:00:00 2001
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date: Wed, 1 Feb 2017 12:27:05 -0600
Subject: [PATCH] ASoC: cht-bsw-rt5645: fix unused variable compiler warning

Missed unused variable in previous changes, oops.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/intel/boards/cht_bsw_rt5645.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sound/soc/intel/boards/cht_bsw_rt5645.c b/sound/soc/intel/boards/cht_bsw_rt5645.c
index b972b6526176..5bcde01d15e6 100644
--- a/sound/soc/intel/boards/cht_bsw_rt5645.c
+++ b/sound/soc/intel/boards/cht_bsw_rt5645.c
@@ -262,7 +262,6 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
 	int jack_type;
 	struct snd_soc_codec *codec = runtime->codec;
 	struct snd_soc_card *card = runtime->card;
-	struct snd_soc_dai *codec_dai = runtime->codec_dai;
 	struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card);
 
 	if ((cht_rt5645_quirk & CHT_RT5645_SSP2_AIF2) ||
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Applied "ASoC: rt5645: fix error handling for gpio detection" to the asoc tree
  2017-02-01 18:27 ` [PATCH 1/2] ASoC: rt5645: fix error handling for gpio detection Pierre-Louis Bossart
  2017-02-02  2:40   ` Takashi Sakamoto
@ 2017-02-02 11:06   ` Mark Brown
  1 sibling, 0 replies; 7+ messages in thread
From: Mark Brown @ 2017-02-02 11:06 UTC (permalink / raw)
  To: Pierre-Louis Bossart; +Cc: tiwai, alsa-devel, broonie

The patch

   ASoC: rt5645: fix error handling for gpio detection

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From cec55827dde1e87f6b91e34f205744d70a7225bc Mon Sep 17 00:00:00 2001
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date: Wed, 1 Feb 2017 12:27:04 -0600
Subject: [PATCH] ASoC: rt5645: fix error handling for gpio detection

Optional gpio handling should not cause an error status and prevent
probing if it's missing.  Remove error return for -ENOENT case and
move error message to dev_info

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/codecs/rt5645.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
index 37fb2b6c34a5..e09fa19f44c0 100644
--- a/sound/soc/codecs/rt5645.c
+++ b/sound/soc/codecs/rt5645.c
@@ -3658,8 +3658,14 @@ static int rt5645_i2c_probe(struct i2c_client *i2c,
 						       GPIOD_IN);
 
 	if (IS_ERR(rt5645->gpiod_hp_det)) {
-		dev_err(&i2c->dev, "failed to initialize gpiod\n");
-		return PTR_ERR(rt5645->gpiod_hp_det);
+		dev_info(&i2c->dev, "failed to initialize gpiod\n");
+		ret = PTR_ERR(rt5645->gpiod_hp_det);
+		/*
+		 * Continue if optional gpiod is missing, bail for all other
+		 * errors, including -EPROBE_DEFER
+		 */
+		if (ret != -ENOENT)
+			return ret;
 	}
 
 	for (i = 0; i < ARRAY_SIZE(rt5645->supplies); i++)
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-02-02 11:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-01 18:27 [PATCH 0/2] Baytrail/Cherrytrail audio fixes - take2 Pierre-Louis Bossart
2017-02-01 18:27 ` [PATCH 1/2] ASoC: rt5645: fix error handling for gpio detection Pierre-Louis Bossart
2017-02-02  2:40   ` Takashi Sakamoto
2017-02-02  5:41     ` Pierre-Louis Bossart
2017-02-02 11:06   ` Applied "ASoC: rt5645: fix error handling for gpio detection" to the asoc tree Mark Brown
2017-02-01 18:27 ` [PATCH 2/2] ASoC: cht-bsw-rt5645: fix unused variable compiler warning Pierre-Louis Bossart
2017-02-02 11:06   ` Applied "ASoC: cht-bsw-rt5645: fix unused variable compiler warning" to the asoc tree Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).