Merge branch 'asoc-5.2' into asoc-5.3
authorMark Brown <broonie@kernel.org>
Mon, 3 Jun 2019 17:38:15 +0000 (18:38 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 3 Jun 2019 17:38:15 +0000 (18:38 +0100)
1  2 
sound/pci/hda/hda_codec.c
sound/soc/intel/common/soc-acpi-intel-byt-match.c
sound/soc/sof/intel/byt.c
sound/soc/sof/intel/hda.c

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