tree: https://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git testing/next head: 405a813dbc9e261f9a025386c04f0d133996995e commit: 1a31a103ce6e5a49c4c04e0709a0da431bcbadd4 [78/89] usb: dwc3: gadget: Use SET_EP_PRIME for NoStream config: parisc-allyesconfig (attached as .config) compiler: hppa-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 1a31a103ce6e5a49c4c04e0709a0da431bcbadd4 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=parisc If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <lkp@xxxxxxxxx> Note: the balbi-usb/testing/next HEAD 405a813dbc9e261f9a025386c04f0d133996995e builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>, old ones prefixed by <<): drivers/usb/dwc3/gadget.c: In function 'dwc3_gadget_endpoint_stream_event': >> drivers/usb/dwc3/gadget.c:2842:7: error: implicit declaration of function 'DWC3_VER_IS_WITHIN' [-Werror=implicit-function-declaration] 2842 | if (DWC3_VER_IS_WITHIN(DWC32, 100A, ANY)) { | ^~~~~~~~~~~~~~~~~~ >> drivers/usb/dwc3/gadget.c:2842:26: error: 'DWC32' undeclared (first use in this function) 2842 | if (DWC3_VER_IS_WITHIN(DWC32, 100A, ANY)) { | ^~~~~ drivers/usb/dwc3/gadget.c:2842:26: note: each undeclared identifier is reported only once for each function it appears in >> drivers/usb/dwc3/gadget.c:2842:33: error: invalid suffix "A" on integer constant 2842 | if (DWC3_VER_IS_WITHIN(DWC32, 100A, ANY)) { | ^~~~ >> drivers/usb/dwc3/gadget.c:2842:39: error: 'ANY' undeclared (first use in this function) 2842 | if (DWC3_VER_IS_WITHIN(DWC32, 100A, ANY)) { | ^~~ cc1: some warnings being treated as errors vim +/DWC3_VER_IS_WITHIN +2842 drivers/usb/dwc3/gadget.c 2793 2794 static void dwc3_gadget_endpoint_stream_event(struct dwc3_ep *dep, 2795 const struct dwc3_event_depevt *event) 2796 { 2797 struct dwc3 *dwc = dep->dwc; 2798 2799 if (event->status == DEPEVT_STREAMEVT_FOUND) { 2800 dep->flags |= DWC3_EP_FIRST_STREAM_PRIMED; 2801 goto out; 2802 } 2803 2804 /* Note: NoStream rejection event param value is 0 and not 0xFFFF */ 2805 switch (event->parameters) { 2806 case DEPEVT_STREAM_PRIME: 2807 /* 2808 * If the host can properly transition the endpoint state from 2809 * idle to prime after a NoStream rejection, there's no need to 2810 * force restarting the endpoint to reinitiate the stream. To 2811 * simplify the check, assume the host follows the USB spec if 2812 * it primed the endpoint more than once. 2813 */ 2814 if (dep->flags & DWC3_EP_FORCE_RESTART_STREAM) { 2815 if (dep->flags & DWC3_EP_FIRST_STREAM_PRIMED) 2816 dep->flags &= ~DWC3_EP_FORCE_RESTART_STREAM; 2817 else 2818 dep->flags |= DWC3_EP_FIRST_STREAM_PRIMED; 2819 } 2820 2821 break; 2822 case DEPEVT_STREAM_NOSTREAM: 2823 if ((dep->flags & DWC3_EP_IGNORE_NEXT_NOSTREAM) || 2824 !(dep->flags & DWC3_EP_FORCE_RESTART_STREAM) || 2825 !(dep->flags & DWC3_EP_WAIT_TRANSFER_COMPLETE)) 2826 break; 2827 2828 /* 2829 * If the host rejects a stream due to no active stream, by the 2830 * USB and xHCI spec, the endpoint will be put back to idle 2831 * state. When the host is ready (buffer added/updated), it will 2832 * prime the endpoint to inform the usb device controller. This 2833 * triggers the device controller to issue ERDY to restart the 2834 * stream. However, some hosts don't follow this and keep the 2835 * endpoint in the idle state. No prime will come despite host 2836 * streams are updated, and the device controller will not be 2837 * triggered to generate ERDY to move the next stream data. To 2838 * workaround this and maintain compatibility with various 2839 * hosts, force to reinitate the stream until the host is ready 2840 * instead of waiting for the host to prime the endpoint. 2841 */ > 2842 if (DWC3_VER_IS_WITHIN(DWC32, 100A, ANY)) { 2843 unsigned int cmd = DWC3_DGCMD_SET_ENDPOINT_PRIME; 2844 2845 dwc3_send_gadget_generic_command(dwc, cmd, dep->number); 2846 } else { 2847 dep->flags |= DWC3_EP_DELAY_START; 2848 dwc3_stop_active_transfer(dep, true, true); 2849 return; 2850 } 2851 break; 2852 } 2853 2854 out: 2855 dep->flags &= ~DWC3_EP_IGNORE_NEXT_NOSTREAM; 2856 } 2857 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip