diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c index 366e7b6045e4..cda2159ba2cd 100644 --- a/drivers/usb/gadget/function/f_uac1.c +++ b/drivers/usb/gadget/function/f_uac1.c @@ -671,6 +671,11 @@ static int f_audio_get_alt(struct usb_function *f, unsigned intf) static void f_audio_disable(struct usb_function *f) { + struct f_audio *audio = func_to_audio(f); + struct usb_ep *out_ep = audio->out_ep; + + usb_ep_disable(out_ep); + return; } @@ -969,6 +974,7 @@ static void f_audio_free(struct usb_function *f) gaudio_cleanup(&audio->card); opts = container_of(f->fi, struct f_uac1_opts, func_inst); + opts->bound = false; kfree(audio); mutex_lock(&opts->lock); --opts->refcnt;