@@ -592,16 +592,25 @@ int u_audio_start_capture(struct g_audio *audio_dev)
592592 struct usb_ep * ep , * ep_fback ;
593593 struct uac_rtd_params * prm ;
594594 struct uac_params * params = & audio_dev -> params ;
595- int req_len , i ;
595+ int req_len , i , ret ;
596596
597597 prm = & uac -> c_prm ;
598598 dev_dbg (dev , "start capture with rate %d\n" , prm -> srate );
599599 ep = audio_dev -> out_ep ;
600- config_ep_by_speed (gadget , & audio_dev -> func , ep );
600+ ret = config_ep_by_speed (gadget , & audio_dev -> func , ep );
601+ if (ret < 0 ) {
602+ dev_err (dev , "config_ep_by_speed for out_ep failed (%d)\n" , ret );
603+ return ret ;
604+ }
605+
601606 req_len = ep -> maxpacket ;
602607
603608 prm -> ep_enabled = true;
604- usb_ep_enable (ep );
609+ ret = usb_ep_enable (ep );
610+ if (ret < 0 ) {
611+ dev_err (dev , "usb_ep_enable failed for out_ep (%d)\n" , ret );
612+ return ret ;
613+ }
605614
606615 for (i = 0 ; i < params -> req_number ; i ++ ) {
607616 if (!prm -> reqs [i ]) {
@@ -629,9 +638,18 @@ int u_audio_start_capture(struct g_audio *audio_dev)
629638 return 0 ;
630639
631640 /* Setup feedback endpoint */
632- config_ep_by_speed (gadget , & audio_dev -> func , ep_fback );
641+ ret = config_ep_by_speed (gadget , & audio_dev -> func , ep_fback );
642+ if (ret < 0 ) {
643+ dev_err (dev , "config_ep_by_speed in_ep_fback failed (%d)\n" , ret );
644+ return ret ; // TODO: Clean up out_ep
645+ }
646+
633647 prm -> fb_ep_enabled = true;
634- usb_ep_enable (ep_fback );
648+ ret = usb_ep_enable (ep_fback );
649+ if (ret < 0 ) {
650+ dev_err (dev , "usb_ep_enable failed for in_ep_fback (%d)\n" , ret );
651+ return ret ; // TODO: Clean up out_ep
652+ }
635653 req_len = ep_fback -> maxpacket ;
636654
637655 req_fback = usb_ep_alloc_request (ep_fback , GFP_ATOMIC );
@@ -687,13 +705,17 @@ int u_audio_start_playback(struct g_audio *audio_dev)
687705 struct uac_params * params = & audio_dev -> params ;
688706 unsigned int factor ;
689707 const struct usb_endpoint_descriptor * ep_desc ;
690- int req_len , i ;
708+ int req_len , i , ret ;
691709 unsigned int p_pktsize ;
692710
693711 prm = & uac -> p_prm ;
694712 dev_dbg (dev , "start playback with rate %d\n" , prm -> srate );
695713 ep = audio_dev -> in_ep ;
696- config_ep_by_speed (gadget , & audio_dev -> func , ep );
714+ ret = config_ep_by_speed (gadget , & audio_dev -> func , ep );
715+ if (ret < 0 ) {
716+ dev_err (dev , "config_ep_by_speed for in_ep failed (%d)\n" , ret );
717+ return ret ;
718+ }
697719
698720 ep_desc = ep -> desc ;
699721 /*
@@ -720,7 +742,11 @@ int u_audio_start_playback(struct g_audio *audio_dev)
720742 uac -> p_residue_mil = 0 ;
721743
722744 prm -> ep_enabled = true;
723- usb_ep_enable (ep );
745+ ret = usb_ep_enable (ep );
746+ if (ret < 0 ) {
747+ dev_err (dev , "usb_ep_enable failed for in_ep (%d)\n" , ret );
748+ return ret ;
749+ }
724750
725751 for (i = 0 ; i < params -> req_number ; i ++ ) {
726752 if (!prm -> reqs [i ]) {
0 commit comments