Re: [PATCH 1/2] ALSA: hda: fix unregister device twice on ASoC driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 27 Apr 2019 22:53:39 +0200,
Bard liao wrote:
> 
> snd_hda_codec_device_new() is used by both legacy HDA and ASoC
> driver. However, we will call snd_hdac_device_unregister() in
> snd_hdac_ext_bus_device_remove() for ASoC device. This patch uses
> the type flag in hdac_device struct to determine is it a ASoC device
> or legacy HDA device and call snd_hdac_device_unregister() in
> snd_hda_codec_dev_free() only if it is a legacy HDA device.
> 
> Signed-off-by: Bard liao <yung-chuan.liao@xxxxxxxxxxxxxxx>

Applied, thanks.


Takashi


> ---
>  sound/pci/hda/hda_codec.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index 701a69d856f5..b20eb7fc83eb 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -832,7 +832,13 @@ static int snd_hda_codec_dev_free(struct snd_device *device)
>  	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));
>  	return 0;
> -- 
> 2.17.1
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux