Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit feef1d95 authored by Cliff Cai's avatar Cliff Cai Committed by Greg Kroah-Hartman
Browse files

USB: audio gadget: free alsa devices when unloading

parent d16f1726
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -158,6 +158,7 @@ static int __init audio_bind(struct usb_composite_dev *cdev)

static int __exit audio_unbind(struct usb_composite_dev *cdev)
{
	gaudio_cleanup();
	return 0;
}

+1 −1
Original line number Diff line number Diff line
@@ -792,7 +792,7 @@ int __init audio_bind_config(struct usb_configuration *c)
	return status;

add_fail:
	gaudio_cleanup(&audio->card);
	gaudio_cleanup();
setup_fail:
	kfree(audio);
	return status;
+9 −3
Original line number Diff line number Diff line
@@ -288,6 +288,7 @@ static int gaudio_close_snd_dev(struct gaudio *gau)
	return 0;
}

static struct gaudio *the_card;
/**
 * gaudio_setup - setup ALSA interface and preparing for USB transfer
 *
@@ -303,6 +304,9 @@ int __init gaudio_setup(struct gaudio *card)
	if (ret)
		ERROR(card, "we need at least one control device\n");

	if (!the_card)
		the_card = card;

	return ret;

}
@@ -312,9 +316,11 @@ int __init gaudio_setup(struct gaudio *card)
 *
 * This is called to free all resources allocated by @gaudio_setup().
 */
void gaudio_cleanup(struct gaudio *card)
void gaudio_cleanup(void)
{
	if (card)
		gaudio_close_snd_dev(card);
	if (the_card) {
		gaudio_close_snd_dev(the_card);
		the_card = NULL;
	}
}
+1 −1
Original line number Diff line number Diff line
@@ -51,6 +51,6 @@ struct gaudio {
};

int gaudio_setup(struct gaudio *card);
void gaudio_cleanup(struct gaudio *card);
void gaudio_cleanup(void);

#endif /* __U_AUDIO_H */