[balbi-usb:testing/next 78/89] drivers/usb/dwc3/gadget.c:2842:7: error: implicit declaration of function 'DWC3_VER_IS_WITHIN'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux