• Bard liao's avatar
    ASoC: hdac_hda: overwrite hdev type to HDA_DEV_ASOC · b60ee2e2
    Bard liao authored
    In ASoC driver, snd_hdac_device_register() will be called by
    snd_hdac_ext_bus_device_init() and snd_hdac_device_unregister()
    will called by snd_hdac_ext_bus_device_remove(). However when
    ASoC codec driver call snd_hda_codec_device_new() to create a
    new hda codec, it will assign snd_hda_codec_dev_free() to the
    dev_free ops and snd_hda_codec_dev_free() will call
    snd_hdac_device_unregister(). As a result, snd_hdac_device_unregister()
    will be called twice in ASoC driver. To prevent it, we use hdev
    type to determine if the hda codec is registered by legacy HDA
    driver or ASoC driver and unregister device in  snd_hda_codec_dev_free()
    only if it is a legacy HDA device.
    This patch will overwrite the hdev type so that we can know it is
    a ASoC device.
    Signed-off-by: default avatarBard liao <yung-chuan.liao@linux.intel.com>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    b60ee2e2
hdac_hda.c 13.6 KB