Merge tag 'asoc-fix-v5.2-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git...
authorTakashi Iwai <tiwai@suse.de>
Thu, 13 Jun 2019 15:33:34 +0000 (17:33 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 13 Jun 2019 15:33:34 +0000 (17:33 +0200)
ASoC: Fixes for v5.2

There's an awful lot of fixes here, almost all for the newly introduced
SoF DSP drivers (including a few things it turned up in shared code).
This is a large and complex piece of code so it's not surprising that
there have been quite a few issues here, fortunately things seem to have
mostly calmed down now.  Otherwise there's just a smattering of small fixes.

1  2 
sound/hda/ext/hdac_ext_bus.c
sound/pci/hda/hda_codec.c
sound/soc/soc-dapm.c
sound/soc/soc-pcm.c

Simple merge
index b20eb7fc83eb277d9e0ebbe1353682aae3e59d82,6cdec64dc68ad0da42ddc6fa94cc2ad2029e38d2..fcdf2cd3783b5c19d1c4ce6c426bc794c6bc0b28
@@@ -832,15 -832,16 +832,22 @@@ static int snd_hda_codec_dev_free(struc
        struct hda_codec *codec = device->device_data;
  
        codec->in_freeing = 1;
 -      snd_hdac_device_unregister(&codec->core);
 +      /*
 +       * snd_hda_codec_device_new() is used by legacy HDA and ASoC driver.
 +       * We can't unregister ASoC device since it will be unregistered in
 +       * snd_hdac_ext_bus_device_remove().
 +       */
 +      if (codec->core.type == HDA_DEV_LEGACY)
 +              snd_hdac_device_unregister(&codec->core);
        codec_display_power(codec, false);
-       put_device(hda_codec_dev(codec));
+       /*
+        * In the case of ASoC HD-audio bus, the device refcount is released in
+        * snd_hdac_ext_bus_device_remove() explicitly.
+        */
+       if (codec->core.type == HDA_DEV_LEGACY)
+               put_device(hda_codec_dev(codec));
        return 0;
  }
  
Simple merge
Simple merge