drivers/usb/gadget/udc/fsl_udc_core.c:2164:27: sparse: sparse: dereference of noderef expression

From: kernel test robot

Date: Fri Sep 04 2026 - 17:02:11 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 986c24e0fe44f844b44d365b71ce831947f50298
commit: a71f5aef1be98fb10f00e66a0ac4ef23ba9c877f USB: gadget: fsl-udc: enable compile testing
date: 8 weeks ago
config: mips-randconfig-r121-20260904 (https://download.01.org/0day-ci/archive/20260905/202609050437.vTOOVr5h-lkp@xxxxxxxxx/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 0edd1b088cc36b4faee80358c925a91e16006258)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260905/202609050437.vTOOVr5h-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: a71f5aef1be9 ("USB: gadget: fsl-udc: enable compile testing")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609050437.vTOOVr5h-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
drivers/usb/gadget/udc/fsl_udc_core.c:69:33: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] wMaxPacketSize @@ got int @@
drivers/usb/gadget/udc/fsl_udc_core.c:69:33: sparse: expected restricted __le16 [usertype] wMaxPacketSize
drivers/usb/gadget/udc/fsl_udc_core.c:69:33: sparse: got int
drivers/usb/gadget/udc/fsl_udc_core.c:509:30: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] max_pkt_length @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:509:30: sparse: expected unsigned int [usertype] max_pkt_length
drivers/usb/gadget/udc/fsl_udc_core.c:509:30: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:681:15: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:681:15: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:681:15: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:707:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] next_dtd_ptr @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:707:26: sparse: expected unsigned int [usertype] next_dtd_ptr
drivers/usb/gadget/udc/fsl_udc_core.c:707:26: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:711:30: sparse: sparse: invalid assignment: &=
drivers/usb/gadget/udc/fsl_udc_core.c:711:30: sparse: left side has type unsigned int
drivers/usb/gadget/udc/fsl_udc_core.c:711:30: sparse: right side has type restricted __le32
drivers/usb/gadget/udc/fsl_udc_core.c:739:44: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] next_td_ptr @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:739:44: sparse: expected unsigned int [usertype] next_td_ptr
drivers/usb/gadget/udc/fsl_udc_core.c:739:44: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:790:21: sparse: sparse: cast to restricted __le32
drivers/usb/gadget/udc/fsl_udc_core.c:792:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] size_ioc_sts @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:792:27: sparse: expected unsigned int [usertype] size_ioc_sts
drivers/usb/gadget/udc/fsl_udc_core.c:792:27: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:796:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr0 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:796:24: sparse: expected unsigned int [usertype] buff_ptr0
drivers/usb/gadget/udc/fsl_udc_core.c:796:24: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:797:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr1 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:797:24: sparse: expected unsigned int [usertype] buff_ptr1
drivers/usb/gadget/udc/fsl_udc_core.c:797:24: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:798:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr2 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:798:24: sparse: expected unsigned int [usertype] buff_ptr2
drivers/usb/gadget/udc/fsl_udc_core.c:798:24: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:799:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr3 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:799:24: sparse: expected unsigned int [usertype] buff_ptr3
drivers/usb/gadget/udc/fsl_udc_core.c:799:24: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:800:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr4 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:800:24: sparse: expected unsigned int [usertype] buff_ptr4
drivers/usb/gadget/udc/fsl_udc_core.c:800:24: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:824:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] size_ioc_sts @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:824:27: sparse: expected unsigned int [usertype] size_ioc_sts
drivers/usb/gadget/udc/fsl_udc_core.c:824:27: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:851:47: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] next_td_ptr @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:851:47: sparse: expected unsigned int [usertype] next_td_ptr
drivers/usb/gadget/udc/fsl_udc_core.c:851:47: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:859:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] next_td_ptr @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:859:26: sparse: expected unsigned int [usertype] next_td_ptr
drivers/usb/gadget/udc/fsl_udc_core.c:859:26: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:1369:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:1369:33: sparse: expected unsigned short [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:1369:33: sparse: got restricted __le16 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:1585:32: sparse: sparse: cast to restricted __le32
drivers/usb/gadget/udc/fsl_udc_core.c:1586:30: sparse: sparse: cast to restricted __le32
drivers/usb/gadget/udc/fsl_udc_core.c:1612:37: sparse: sparse: cast to restricted __le32
drivers/usb/gadget/udc/fsl_udc_core.c:1617:26: sparse: sparse: cast to restricted __le32
drivers/usb/gadget/udc/fsl_udc_core.c:1622:39: sparse: sparse: cast to restricted __le32
drivers/usb/gadget/udc/fsl_udc_core.c:1624:59: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] size_ioc_int_sts @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/fsl_udc_core.c:1624:59: sparse: expected unsigned int [usertype] size_ioc_int_sts
drivers/usb/gadget/udc/fsl_udc_core.c:1624:59: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/fsl_udc_core.c:1643:28: sparse: sparse: cast to restricted __le32
drivers/usb/gadget/udc/fsl_udc_core.c:2253:20: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:2253:20: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:2253:20: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:2286:36: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:2286:36: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:2286:36: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:2372:26: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:2372:26: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
drivers/usb/gadget/udc/fsl_udc_core.c:2372:26: sparse: sparse: undefined identifier '__builtin_infer_alloc_token'
>> drivers/usb/gadget/udc/fsl_udc_core.c:2164:27: sparse: sparse: dereference of noderef expression
drivers/usb/gadget/udc/fsl_udc_core.c:2167:27: sparse: sparse: dereference of noderef expression

vim +2164 drivers/usb/gadget/udc/fsl_udc_core.c

b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2025
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2026 static int fsl_proc_read(struct seq_file *m, void *v)
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2027 {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2028 unsigned long flags;
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2029 int i;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2030 u32 tmp_reg;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2031 struct fsl_ep *ep = NULL;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2032 struct fsl_req *req;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2033
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2034 struct fsl_udc *udc = udc_controller;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2035
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2036 spin_lock_irqsave(&udc->lock, flags);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2037
dc0d5c1e5c7532e drivers/usb/gadget/fsl_usb2_udc.c Joe Perches 2007-12-17 2038 /* ------basic driver information ---- */
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2039 seq_printf(m,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2040 DRIVER_DESC "\n"
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2041 "%s version: %s\n"
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2042 "Gadget driver: %s\n\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2043 driver_name, DRIVER_VERSION,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2044 udc->driver ? udc->driver->driver.name : "(none)");
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2045
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2046 /* ------ DR Registers ----- */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2047 tmp_reg = fsl_readl(&dr_regs->usbcmd);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2048 seq_printf(m,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2049 "USBCMD reg:\n"
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2050 "SetupTW: %d\n"
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2051 "Run/Stop: %s\n\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2052 (tmp_reg & USB_CMD_SUTW) ? 1 : 0,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2053 (tmp_reg & USB_CMD_RUN_STOP) ? "Run" : "Stop");
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2054
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2055 tmp_reg = fsl_readl(&dr_regs->usbsts);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2056 seq_printf(m,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2057 "USB Status Reg:\n"
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2058 "Dr Suspend: %d Reset Received: %d System Error: %s "
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2059 "USB Error Interrupt: %s\n\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2060 (tmp_reg & USB_STS_SUSPEND) ? 1 : 0,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2061 (tmp_reg & USB_STS_RESET) ? 1 : 0,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2062 (tmp_reg & USB_STS_SYS_ERR) ? "Err" : "Normal",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2063 (tmp_reg & USB_STS_ERR) ? "Err detected" : "No err");
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2064
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2065 tmp_reg = fsl_readl(&dr_regs->usbintr);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2066 seq_printf(m,
984e833c2bb6cba drivers/usb/gadget/fsl_udc_core.c Masanari Iida 2012-11-01 2067 "USB Interrupt Enable Reg:\n"
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2068 "Sleep Enable: %d SOF Received Enable: %d "
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2069 "Reset Enable: %d\n"
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2070 "System Error Enable: %d "
2003a419c7f3b59 drivers/usb/gadget/udc/fsl_udc_core.c Colin Ian King 2020-08-05 2071 "Port Change Detected Enable: %d\n"
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2072 "USB Error Intr Enable: %d USB Intr Enable: %d\n\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2073 (tmp_reg & USB_INTR_DEVICE_SUSPEND) ? 1 : 0,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2074 (tmp_reg & USB_INTR_SOF_EN) ? 1 : 0,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2075 (tmp_reg & USB_INTR_RESET_EN) ? 1 : 0,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2076 (tmp_reg & USB_INTR_SYS_ERR_EN) ? 1 : 0,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2077 (tmp_reg & USB_INTR_PTC_DETECT_EN) ? 1 : 0,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2078 (tmp_reg & USB_INTR_ERR_INT_EN) ? 1 : 0,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2079 (tmp_reg & USB_INTR_INT_EN) ? 1 : 0);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2080
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2081 tmp_reg = fsl_readl(&dr_regs->frindex);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2082 seq_printf(m,
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2083 "USB Frame Index Reg: Frame Number is 0x%x\n\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2084 (tmp_reg & USB_FRINDEX_MASKS));
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2085
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2086 tmp_reg = fsl_readl(&dr_regs->deviceaddr);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2087 seq_printf(m,
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2088 "USB Device Address Reg: Device Addr is 0x%x\n\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2089 (tmp_reg & USB_DEVICE_ADDRESS_MASK));
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2090
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2091 tmp_reg = fsl_readl(&dr_regs->endpointlistaddr);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2092 seq_printf(m,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2093 "USB Endpoint List Address Reg: "
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2094 "Device Addr is 0x%x\n\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2095 (tmp_reg & USB_EP_LIST_ADDRESS_MASK));
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2096
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2097 tmp_reg = fsl_readl(&dr_regs->portsc1);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2098 seq_printf(m,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2099 "USB Port Status&Control Reg:\n"
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2100 "Port Transceiver Type : %s Port Speed: %s\n"
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2101 "PHY Low Power Suspend: %s Port Reset: %s "
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2102 "Port Suspend Mode: %s\n"
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2103 "Over-current Change: %s "
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2104 "Port Enable/Disable Change: %s\n"
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2105 "Port Enabled/Disabled: %s "
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2106 "Current Connect Status: %s\n\n", ( {
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2107 const char *s;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2108 switch (tmp_reg & PORTSCX_PTS_FSLS) {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2109 case PORTSCX_PTS_UTMI:
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2110 s = "UTMI"; break;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2111 case PORTSCX_PTS_ULPI:
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2112 s = "ULPI "; break;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2113 case PORTSCX_PTS_FSLS:
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2114 s = "FS/LS Serial"; break;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2115 default:
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2116 s = "None"; break;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2117 }
e538dfdae85244f drivers/usb/gadget/fsl_udc_core.c Michal Nazarewicz 2011-08-30 2118 s;} ),
e538dfdae85244f drivers/usb/gadget/fsl_udc_core.c Michal Nazarewicz 2011-08-30 2119 usb_speed_string(portscx_device_speed(tmp_reg)),
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2120 (tmp_reg & PORTSCX_PHY_LOW_POWER_SPD) ?
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2121 "Normal PHY mode" : "Low power mode",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2122 (tmp_reg & PORTSCX_PORT_RESET) ? "In Reset" :
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2123 "Not in Reset",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2124 (tmp_reg & PORTSCX_PORT_SUSPEND) ? "In " : "Not in",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2125 (tmp_reg & PORTSCX_OVER_CURRENT_CHG) ? "Dected" :
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2126 "No",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2127 (tmp_reg & PORTSCX_PORT_EN_DIS_CHANGE) ? "Disable" :
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2128 "Not change",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2129 (tmp_reg & PORTSCX_PORT_ENABLE) ? "Enable" :
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2130 "Not correct",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2131 (tmp_reg & PORTSCX_CURRENT_CONNECT_STATUS) ?
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2132 "Attached" : "Not-Att");
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2133
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2134 tmp_reg = fsl_readl(&dr_regs->usbmode);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2135 seq_printf(m,
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2136 "USB Mode Reg: Controller Mode is: %s\n\n", ( {
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2137 const char *s;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2138 switch (tmp_reg & USB_MODE_CTRL_MODE_HOST) {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2139 case USB_MODE_CTRL_MODE_IDLE:
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2140 s = "Idle"; break;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2141 case USB_MODE_CTRL_MODE_DEVICE:
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2142 s = "Device Controller"; break;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2143 case USB_MODE_CTRL_MODE_HOST:
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2144 s = "Host Controller"; break;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2145 default:
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2146 s = "None"; break;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2147 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2148 s;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2149 } ));
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2150
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2151 tmp_reg = fsl_readl(&dr_regs->endptsetupstat);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2152 seq_printf(m,
9d9d88c80e80397 drivers/usb/gadget/fsl_usb2_udc.c Will Newton 2008-08-12 2153 "Endpoint Setup Status Reg: SETUP on ep 0x%x\n\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2154 (tmp_reg & EP_SETUP_STATUS_MASK));
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2155
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2156 for (i = 0; i < udc->max_ep / 2; i++) {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2157 tmp_reg = fsl_readl(&dr_regs->endptctrl[i]);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2158 seq_printf(m, "EP Ctrl Reg [0x%x]: = [0x%x]\n", i, tmp_reg);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2159 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2160 tmp_reg = fsl_readl(&dr_regs->endpointprime);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2161 seq_printf(m, "EP Prime Reg = [0x%x]\n\n", tmp_reg);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2162
2ea6698d7b9266d drivers/usb/gadget/fsl_udc_core.c Anatolij Gustschin 2011-04-18 2163 if (udc->pdata->have_sysif_regs) {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 @2164 tmp_reg = usb_sys_regs->snoop1;
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2165 seq_printf(m, "Snoop1 Reg : = [0x%x]\n\n", tmp_reg);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2166
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2167 tmp_reg = usb_sys_regs->control;
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2168 seq_printf(m, "General Control Reg : = [0x%x]\n\n", tmp_reg);
2ea6698d7b9266d drivers/usb/gadget/fsl_udc_core.c Anatolij Gustschin 2011-04-18 2169 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2170
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2171 /* ------fsl_udc, fsl_ep, fsl_request structure information ----- */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2172 ep = &udc->eps[0];
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2173 seq_printf(m, "For %s Maxpkt is 0x%x index is 0x%x\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2174 ep->ep.name, ep_maxpacket(ep), ep_index(ep));
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2175
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2176 if (list_empty(&ep->queue)) {
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2177 seq_puts(m, "its req queue is empty\n\n");
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2178 } else {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2179 list_for_each_entry(req, &ep->queue, queue) {
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2180 seq_printf(m,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2181 "req %p actual 0x%x length 0x%x buf %p\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2182 &req->req, req->req.actual,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2183 req->req.length, req->req.buf);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2184 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2185 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2186 /* other gadget->eplist ep */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2187 list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) {
79149b8bd0270a2 drivers/usb/gadget/fsl_udc_core.c Ido Shayevitz 2012-03-12 2188 if (ep->ep.desc) {
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2189 seq_printf(m,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2190 "\nFor %s Maxpkt is 0x%x "
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2191 "index is 0x%x\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2192 ep->ep.name, ep_maxpacket(ep),
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2193 ep_index(ep));
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2194
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2195 if (list_empty(&ep->queue)) {
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2196 seq_puts(m, "its req queue is empty\n\n");
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2197 } else {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2198 list_for_each_entry(req, &ep->queue, queue) {
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2199 seq_printf(m,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2200 "req %p actual 0x%x length "
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2201 "0x%x buf %p\n",
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2202 &req->req, req->req.actual,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2203 req->req.length, req->req.buf);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2204 } /* end for each_entry of ep req */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2205 } /* end for else */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2206 } /* end for if(ep->queue) */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2207 } /* end (ep->desc) */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2208
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2209 spin_unlock_irqrestore(&udc->lock, flags);
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2210 return 0;
77cd02c151cb6b7 drivers/usb/gadget/fsl_udc_core.c David Howells 2013-04-10 2211 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2212
3f3942aca6da351 drivers/usb/gadget/udc/fsl_udc_core.c Christoph Hellwig 2018-05-15 2213 #define create_proc_file() \
3f3942aca6da351 drivers/usb/gadget/udc/fsl_udc_core.c Christoph Hellwig 2018-05-15 2214 proc_create_single(proc_filename, 0, NULL, fsl_proc_read)
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2215 #define remove_proc_file() remove_proc_entry(proc_filename, NULL)
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2216
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2217 #else /* !CONFIG_USB_GADGET_DEBUG_FILES */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2218
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2219 #define create_proc_file() do {} while (0)
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2220 #define remove_proc_file() do {} while (0)
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2221
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2222 #endif /* CONFIG_USB_GADGET_DEBUG_FILES */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2223
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2224 /*-------------------------------------------------------------------------*/
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2225
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2226 /* Release udc structures */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2227 static void fsl_udc_release(struct device *dev)
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2228 {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2229 complete(udc_controller->done);
37c4fd8c7551c74 drivers/usb/gadget/fsl_udc_core.c Anton Vorontsov 2009-10-29 2230 dma_free_coherent(dev->parent, udc_controller->ep_qh_size,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2231 udc_controller->ep_qh, udc_controller->ep_qh_dma);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2232 kfree(udc_controller);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2233 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2234
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2235 /******************************************************************
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2236 Internal structure setup functions
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2237 *******************************************************************/
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2238 /*------------------------------------------------------------------
24b804e40f23a19 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2239 * init resource for global controller called by fsl_udc_probe()
24b804e40f23a19 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2240 * On success the udc handle is initialized, on failure it is
24b804e40f23a19 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2241 * unchanged (reset).
24b804e40f23a19 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2242 * Return 0 on success and -1 on allocation failure
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2243 ------------------------------------------------------------------*/
da150573648a190 drivers/usb/gadget/fsl_udc_core.c Peter Chen 2014-05-18 2244 static int struct_udc_setup(struct fsl_udc *udc,
4365831dadfeeeb drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-06-06 2245 struct platform_device *pdev)
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2246 {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2247 struct fsl_usb2_platform_data *pdata;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2248 size_t size;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2249
e01ee9f509a9271 drivers/usb/gadget/fsl_udc_core.c Jingoo Han 2013-07-30 2250 pdata = dev_get_platdata(&pdev->dev);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2251 udc->phy_mode = pdata->phy_mode;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2252
bf4afc53b77aeaa drivers/usb/gadget/udc/fsl_udc_core.c Linus Torvalds 2026-02-21 @2253 udc->eps = kzalloc_objs(struct fsl_ep, udc->max_ep);
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2254 if (!udc->eps) {
6025f20f16c25d2 drivers/usb/gadget/udc/fsl_udc_core.c Uwe Kleine-König 2024-03-04 2255 dev_err(&udc->gadget.dev, "kmalloc udc endpoint status failed\n");
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2256 goto eps_alloc_failed;
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2257 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2258
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2259 /* initialized QHs, take care of alignment */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2260 size = udc->max_ep * sizeof(struct ep_queue_head);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2261 if (size < QH_ALIGNMENT)
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2262 size = QH_ALIGNMENT;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2263 else if ((size % QH_ALIGNMENT) != 0) {
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2264 size += QH_ALIGNMENT + 1;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2265 size &= ~(QH_ALIGNMENT - 1);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2266 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2267 udc->ep_qh = dma_alloc_coherent(&pdev->dev, size,
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2268 &udc->ep_qh_dma, GFP_KERNEL);
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2269 if (!udc->ep_qh) {
6025f20f16c25d2 drivers/usb/gadget/udc/fsl_udc_core.c Uwe Kleine-König 2024-03-04 2270 dev_err(&udc->gadget.dev, "malloc QHs for udc failed\n");
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2271 goto ep_queue_alloc_failed;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2272 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2273
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2274 udc->ep_qh_size = size;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2275
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2276 /* Initialize ep0 status request structure */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2277 /* FIXME: fsl_alloc_request() ignores ep argument */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2278 udc->status_req = container_of(fsl_alloc_request(NULL, GFP_KERNEL),
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2279 struct fsl_req, req);
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2280 if (!udc->status_req) {
6025f20f16c25d2 drivers/usb/gadget/udc/fsl_udc_core.c Uwe Kleine-König 2024-03-04 2281 dev_err(&udc->gadget.dev, "kzalloc for udc status request failed\n");
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2282 goto udc_status_alloc_failed;
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2283 }
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2284
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2285 /* allocate a small amount of memory to get valid address */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2286 udc->status_req->req.buf = kmalloc(8, GFP_KERNEL);
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2287 if (!udc->status_req->req.buf) {
6025f20f16c25d2 drivers/usb/gadget/udc/fsl_udc_core.c Uwe Kleine-König 2024-03-04 2288 dev_err(&udc->gadget.dev, "kzalloc for udc request buffer failed\n");
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2289 goto udc_req_buf_alloc_failed;
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2290 }
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2291
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2292 udc->resume_state = USB_STATE_NOTATTACHED;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2293 udc->usb_state = USB_STATE_POWERED;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2294 udc->ep0_dir = 0;
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2295 udc->remote_wakeup = 0; /* default to 0 on reset */
b504882da539c17 drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-04-23 2296
4365831dadfeeeb drivers/usb/gadget/fsl_usb2_udc.c Li Yang 2007-06-06 2297 return 0;
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2298
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2299 udc_req_buf_alloc_failed:
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2300 kfree(udc->status_req);
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2301 udc_status_alloc_failed:
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2302 kfree(udc->ep_qh);
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2303 udc->ep_qh_size = 0;
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2304 ep_queue_alloc_failed:
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2305 kfree(udc->eps);
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2306 eps_alloc_failed:
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2307 udc->phy_mode = 0;
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2308 return -1;
4ab2b48c98f2ec9 drivers/usb/gadget/udc/fsl_udc_core.c Nicholas Mc Guire 2018-08-30 2309

:::::: The code at line 2164 was first introduced by commit
:::::: b504882da539c17ce6fee9da2a97f2fafabd495d USB: add Freescale high-speed USB SOC device controller driver

:::::: TO: Li Yang <leoli@xxxxxxxxxxxxx>
:::::: CC: Greg Kroah-Hartman <gregkh@xxxxxxx>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki