hda-audio: exit cleanup
Add exit callback to the driver. Unregister the sound card properly on exit. [ v2: codestyle: add braces ] Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: malc <av1474@comtv.ru>
This commit is contained in:
parent
dc4b9240dc
commit
129dcd2c66
@ -808,6 +808,28 @@ static int hda_audio_init(HDACodecDevice *hda, const struct desc_codec *desc)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int hda_audio_exit(HDACodecDevice *hda)
|
||||||
|
{
|
||||||
|
HDAAudioState *a = DO_UPCAST(HDAAudioState, hda, hda);
|
||||||
|
HDAAudioStream *st;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
dprint(a, 1, "%s\n", __FUNCTION__);
|
||||||
|
for (i = 0; i < ARRAY_SIZE(a->st); i++) {
|
||||||
|
st = a->st + i;
|
||||||
|
if (st->node == NULL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (st->output) {
|
||||||
|
AUD_close_out(&a->card, st->voice.out);
|
||||||
|
} else {
|
||||||
|
AUD_close_in(&a->card, st->voice.in);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AUD_remove_card(&a->card);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int hda_audio_post_load(void *opaque, int version)
|
static int hda_audio_post_load(void *opaque, int version)
|
||||||
{
|
{
|
||||||
HDAAudioState *a = opaque;
|
HDAAudioState *a = opaque;
|
||||||
@ -879,6 +901,7 @@ static HDACodecDeviceInfo hda_audio_info_output = {
|
|||||||
.qdev.vmsd = &vmstate_hda_audio,
|
.qdev.vmsd = &vmstate_hda_audio,
|
||||||
.qdev.props = hda_audio_properties,
|
.qdev.props = hda_audio_properties,
|
||||||
.init = hda_audio_init_output,
|
.init = hda_audio_init_output,
|
||||||
|
.exit = hda_audio_exit,
|
||||||
.command = hda_audio_command,
|
.command = hda_audio_command,
|
||||||
.stream = hda_audio_stream,
|
.stream = hda_audio_stream,
|
||||||
};
|
};
|
||||||
@ -890,6 +913,7 @@ static HDACodecDeviceInfo hda_audio_info_duplex = {
|
|||||||
.qdev.vmsd = &vmstate_hda_audio,
|
.qdev.vmsd = &vmstate_hda_audio,
|
||||||
.qdev.props = hda_audio_properties,
|
.qdev.props = hda_audio_properties,
|
||||||
.init = hda_audio_init_duplex,
|
.init = hda_audio_init_duplex,
|
||||||
|
.exit = hda_audio_exit,
|
||||||
.command = hda_audio_command,
|
.command = hda_audio_command,
|
||||||
.stream = hda_audio_stream,
|
.stream = hda_audio_stream,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user