On Thu, Mar 05, 2020 at 07:06:16AM -0600, Pierre-Louis Bossart wrote:
The gpiod handling is inspired from the bdw-rt5677 code. Apply same
gpiod -> GPIO descriptor
fix to avoid reference count issue while removing modules for consistency.
The SOF driver does not yet support this machine driver, and module load/unload with the SKL driver isn't well supported, so this was not tested on a device.
Suggested-by: Andy Shevchenko andriy.shevchenko@linux.intel.com Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com
sound/soc/intel/boards/kbl_rt5660.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/sound/soc/intel/boards/kbl_rt5660.c b/sound/soc/intel/boards/kbl_rt5660.c index e23dea9ab79a..3ff3afd36536 100644 --- a/sound/soc/intel/boards/kbl_rt5660.c +++ b/sound/soc/intel/boards/kbl_rt5660.c @@ -165,8 +165,8 @@ static int kabylake_rt5660_codec_init(struct snd_soc_pcm_runtime *rtd) dev_warn(component->dev, "Failed to add driver gpios\n");
/* Request rt5660 GPIO for lineout mute control, return if fails */
- ctx->gpio_lo_mute = devm_gpiod_get(component->dev, "lineout-mute",
GPIOD_OUT_HIGH);
- ctx->gpio_lo_mute = gpiod_get(component->dev, "lineout-mute",
if (IS_ERR(ctx->gpio_lo_mute)) { dev_err(component->dev, "Can't find GPIO_MUTE# gpio\n"); return PTR_ERR(ctx->gpio_lo_mute);GPIOD_OUT_HIGH);
@@ -207,6 +207,14 @@ static int kabylake_rt5660_codec_init(struct snd_soc_pcm_runtime *rtd) return 0; }
+static void kabylake_rt5660_codec_exit(struct snd_soc_pcm_runtime *rtd) +{
- struct kbl_codec_private *ctx = snd_soc_card_get_drvdata(rtd->card);
- if (!IS_ERR(ctx->gpio_lo_mute))
Same comment as per previous patch.
gpiod_put(ctx->gpio_lo_mute));
+}
static int kabylake_hdmi_init(struct snd_soc_pcm_runtime *rtd, int device) { struct kbl_codec_private *ctx = snd_soc_card_get_drvdata(rtd->card); @@ -421,6 +429,7 @@ static struct snd_soc_dai_link kabylake_rt5660_dais[] = { .id = 0, .no_pcm = 1, .init = kabylake_rt5660_codec_init,
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS,.exit = kabylake_rt5660_codec_exit,
-- 2.20.1