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@xxxxxxxxxxxxxxx> > Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> > --- > 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", > + GPIOD_OUT_HIGH); > 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); > @@ -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, > + .exit = kabylake_rt5660_codec_exit, > .dai_fmt = SND_SOC_DAIFMT_I2S | > SND_SOC_DAIFMT_NB_NF | > SND_SOC_DAIFMT_CBS_CFS, > -- > 2.20.1 > -- With Best Regards, Andy Shevchenko