CC: [email protected] CC: [email protected] CC: [email protected] CC: Felipe Balbi <[email protected]> TO: Martin Blumenstingl <[email protected]> CC: Felipe Balbi <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git testing/next head: a1ff2f6769e39055e973b068070aeea0b3bcd90f commit: 602fb68e303fb96c9e4a5eb5f25ad0ce999df37d [40/48] usb: dwc2: Add missing cleanups when usb_add_gadget_udc() fails :::::: branch date: 32 hours ago :::::: commit date: 32 hours ago config: h8300-randconfig-s031-20200726 (attached as .config) compiler: h8300-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 # apt-get install sparse # sparse version: v0.6.2-93-g4c6cbe55-dirty git checkout 602fb68e303fb96c9e4a5eb5f25ad0ce999df37d # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=h8300 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> sparse warnings: (new ones prefixed by >>) >> drivers/usb/dwc2/platform.c:593:1: sparse: sparse: unused label >> 'error_debugfs' drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] b @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] b include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:44:11: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] b @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] b include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:44:11: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] b @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] b include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:44:11: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] b @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] b include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:44:11: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression arch/h8300/include/asm/io.h:26:18: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] b @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] b include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:44:11: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] b @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] b include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] drivers/usb/dwc2/platform.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h): arch/h8300/include/asm/io.h:44:11: sparse: sparse: cast removes address space '__iomem' of expression drivers/usb/dwc2/platform.c: note: in included file (through arch/h8300/include/asm/io.h, include/linux/scatterlist.h, include/linux/dma-mapping.h): include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 # https://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git/commit/?id=602fb68e303fb96c9e4a5eb5f25ad0ce999df37d git remote add balbi-usb https://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git git remote update balbi-usb git checkout 602fb68e303fb96c9e4a5eb5f25ad0ce999df37d vim +/error_debugfs +593 drivers/usb/dwc2/platform.c 65dc2e72528610 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-05-21 396 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 397 /** 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 398 * dwc2_driver_probe() - Called when the DWC_otg core is bound to the DWC_otg 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 399 * driver 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 400 * 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 401 * @dev: Platform device 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 402 * 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 403 * This routine creates the driver components required to control the device 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 404 * (core, HCD, and PCD) and initializes the device. The driver components are 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 405 * stored in a dwc2_hsotg structure. A reference to the dwc2_hsotg is saved 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 406 * in the device private data. This allows the driver to access the dwc2_hsotg 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 407 * structure on subsequent calls to driver methods for this device. 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 408 */ 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 409 static int dwc2_driver_probe(struct platform_device *dev) 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 410 { 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 411 struct dwc2_hsotg *hsotg; 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 412 struct resource *res; 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 413 int retval; 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 414 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 415 hsotg = devm_kzalloc(&dev->dev, sizeof(*hsotg), GFP_KERNEL); 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 416 if (!hsotg) 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 417 return -ENOMEM; 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 418 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 419 hsotg->dev = &dev->dev; 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 420 642f2ecc092f4d drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-05-17 421 /* 642f2ecc092f4d drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-05-17 422 * Use reasonable defaults so platforms don't have to provide these. 642f2ecc092f4d drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-05-17 423 */ 642f2ecc092f4d drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-05-17 424 if (!dev->dev.dma_mask) 642f2ecc092f4d drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-05-17 425 dev->dev.dma_mask = &dev->dev.coherent_dma_mask; 4cdbb4ff7fe456 drivers/staging/dwc2/platform.c Russell King 2013-06-10 426 retval = dma_set_coherent_mask(&dev->dev, DMA_BIT_MASK(32)); 42c6a25235677a drivers/usb/dwc2/platform.c Stefan Wahren 2018-02-12 427 if (retval) { 42c6a25235677a drivers/usb/dwc2/platform.c Stefan Wahren 2018-02-12 428 dev_err(&dev->dev, "can't set coherent DMA mask: %d\n", retval); 4cdbb4ff7fe456 drivers/staging/dwc2/platform.c Russell King 2013-06-10 429 return retval; 42c6a25235677a drivers/usb/dwc2/platform.c Stefan Wahren 2018-02-12 430 } 642f2ecc092f4d drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-05-17 431 5bf7e2883f1242 drivers/usb/dwc2/platform.c Dejin Zheng 2020-03-24 432 hsotg->regs = devm_platform_get_and_ioremap_resource(dev, 0, &res); 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 433 if (IS_ERR(hsotg->regs)) 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 434 return PTR_ERR(hsotg->regs); 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 435 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 436 dev_dbg(&dev->dev, "mapped PA %08lx to VA %p\n", 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 437 (unsigned long)res->start, hsotg->regs); 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 438 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 439 retval = dwc2_lowlevel_hw_init(hsotg); ecb176c63ac49d drivers/usb/dwc2/platform.c Mian Yousaf Kaukab 2015-04-29 440 if (retval) ecb176c63ac49d drivers/usb/dwc2/platform.c Mian Yousaf Kaukab 2015-04-29 441 return retval; ecb176c63ac49d drivers/usb/dwc2/platform.c Mian Yousaf Kaukab 2015-04-29 442 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 443 spin_lock_init(&hsotg->lock); 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 444 a40a00318c7fcd drivers/usb/dwc2/platform.c Heiko Stübner 2015-12-18 445 hsotg->irq = platform_get_irq(dev, 0); b33f37064b743d drivers/usb/dwc2/platform.c Stephen Boyd 2019-07-30 446 if (hsotg->irq < 0) a40a00318c7fcd drivers/usb/dwc2/platform.c Heiko Stübner 2015-12-18 447 return hsotg->irq; f74875dc36135e drivers/usb/dwc2/platform.c Stefan Wahren 2015-11-12 448 f74875dc36135e drivers/usb/dwc2/platform.c Stefan Wahren 2015-11-12 449 dev_dbg(hsotg->dev, "registering common handler for irq%d\n", a40a00318c7fcd drivers/usb/dwc2/platform.c Heiko Stübner 2015-12-18 450 hsotg->irq); a40a00318c7fcd drivers/usb/dwc2/platform.c Heiko Stübner 2015-12-18 451 retval = devm_request_irq(hsotg->dev, hsotg->irq, f74875dc36135e drivers/usb/dwc2/platform.c Stefan Wahren 2015-11-12 452 dwc2_handle_common_intr, IRQF_SHARED, f74875dc36135e drivers/usb/dwc2/platform.c Stefan Wahren 2015-11-12 453 dev_name(hsotg->dev), hsotg); f74875dc36135e drivers/usb/dwc2/platform.c Stefan Wahren 2015-11-12 454 if (retval) f74875dc36135e drivers/usb/dwc2/platform.c Stefan Wahren 2015-11-12 455 return retval; f74875dc36135e drivers/usb/dwc2/platform.c Stefan Wahren 2015-11-12 456 e0f681c2c11a25 drivers/usb/dwc2/platform.c Fabrice Gasnier 2018-09-05 457 hsotg->vbus_supply = devm_regulator_get_optional(hsotg->dev, "vbus"); e0f681c2c11a25 drivers/usb/dwc2/platform.c Fabrice Gasnier 2018-09-05 458 if (IS_ERR(hsotg->vbus_supply)) { e0f681c2c11a25 drivers/usb/dwc2/platform.c Fabrice Gasnier 2018-09-05 459 retval = PTR_ERR(hsotg->vbus_supply); e0f681c2c11a25 drivers/usb/dwc2/platform.c Fabrice Gasnier 2018-09-05 460 hsotg->vbus_supply = NULL; e0f681c2c11a25 drivers/usb/dwc2/platform.c Fabrice Gasnier 2018-09-05 461 if (retval != -ENODEV) e0f681c2c11a25 drivers/usb/dwc2/platform.c Fabrice Gasnier 2018-09-05 462 return retval; e0f681c2c11a25 drivers/usb/dwc2/platform.c Fabrice Gasnier 2018-09-05 463 } e0f681c2c11a25 drivers/usb/dwc2/platform.c Fabrice Gasnier 2018-09-05 464 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 465 retval = dwc2_lowlevel_hw_enable(hsotg); 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 466 if (retval) 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 467 return retval; 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 468 d9707490077bee drivers/usb/dwc2/platform.c Bruno Meirelles Herrera 2018-08-27 469 hsotg->needs_byte_swap = dwc2_check_core_endianness(hsotg); d9707490077bee drivers/usb/dwc2/platform.c Bruno Meirelles Herrera 2018-08-27 470 5268ed9d2e3b52 drivers/usb/dwc2/platform.c John Youn 2015-12-17 471 retval = dwc2_get_dr_mode(hsotg); 5268ed9d2e3b52 drivers/usb/dwc2/platform.c John Youn 2015-12-17 472 if (retval) a6ef3e02542a33 drivers/usb/dwc2/platform.c John Youn 2016-04-27 473 goto error; 5268ed9d2e3b52 drivers/usb/dwc2/platform.c John Youn 2015-12-17 474 c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 475 hsotg->need_phy_for_wake = c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 476 of_property_read_bool(dev->dev.of_node, c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 477 "snps,need-phy-for-wake"); c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 478 65dc2e72528610 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-05-21 479 /* 65dc2e72528610 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-05-21 480 * Before performing any core related operations 65dc2e72528610 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-05-21 481 * check core version. 65dc2e72528610 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-05-21 482 */ 65dc2e72528610 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-05-21 483 retval = dwc2_check_core_version(hsotg); 65dc2e72528610 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-05-21 484 if (retval) 65dc2e72528610 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-05-21 485 goto error; 65dc2e72528610 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-05-21 486 03b32e4c9bd1b5 drivers/usb/dwc2/platform.c John Youn 2016-01-11 487 /* 03b32e4c9bd1b5 drivers/usb/dwc2/platform.c John Youn 2016-01-11 488 * Reset before dwc2_get_hwparams() then it could get power-on real 03b32e4c9bd1b5 drivers/usb/dwc2/platform.c John Youn 2016-01-11 489 * reset value form registers. 03b32e4c9bd1b5 drivers/usb/dwc2/platform.c John Youn 2016-01-11 490 */ 13b1f8e25bfd1d drivers/usb/dwc2/platform.c Vardan Mikayelyan 2018-02-16 491 retval = dwc2_core_reset(hsotg, false); 13b1f8e25bfd1d drivers/usb/dwc2/platform.c Vardan Mikayelyan 2018-02-16 492 if (retval) 13b1f8e25bfd1d drivers/usb/dwc2/platform.c Vardan Mikayelyan 2018-02-16 493 goto error; 03b32e4c9bd1b5 drivers/usb/dwc2/platform.c John Youn 2016-01-11 494 03b32e4c9bd1b5 drivers/usb/dwc2/platform.c John Youn 2016-01-11 495 /* Detect config values from hardware */ 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 496 retval = dwc2_get_hwparams(hsotg); 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 497 if (retval) 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 498 goto error; 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 499 13b1f8e25bfd1d drivers/usb/dwc2/platform.c Vardan Mikayelyan 2018-02-16 500 /* 13b1f8e25bfd1d drivers/usb/dwc2/platform.c Vardan Mikayelyan 2018-02-16 501 * For OTG cores, set the force mode bits to reflect the value 13b1f8e25bfd1d drivers/usb/dwc2/platform.c Vardan Mikayelyan 2018-02-16 502 * of dr_mode. Force mode bits should not be touched at any 13b1f8e25bfd1d drivers/usb/dwc2/platform.c Vardan Mikayelyan 2018-02-16 503 * other time after this. 13b1f8e25bfd1d drivers/usb/dwc2/platform.c Vardan Mikayelyan 2018-02-16 504 */ 25362d318371e1 drivers/usb/dwc2/platform.c John Youn 2015-12-17 505 dwc2_force_dr_mode(hsotg); 263b7fb557f797 drivers/usb/dwc2/platform.c John Youn 2015-12-17 506 334bbd4ebe1b34 drivers/usb/dwc2/platform.c John Youn 2016-11-03 507 retval = dwc2_init_params(hsotg); 334bbd4ebe1b34 drivers/usb/dwc2/platform.c John Youn 2016-11-03 508 if (retval) 334bbd4ebe1b34 drivers/usb/dwc2/platform.c John Youn 2016-11-03 509 goto error; 334bbd4ebe1b34 drivers/usb/dwc2/platform.c John Youn 2016-11-03 510 a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 511 if (hsotg->params.activate_stm_id_vb_detection) { a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 512 u32 ggpio; a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 513 a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 514 hsotg->usb33d = devm_regulator_get(hsotg->dev, "usb33d"); a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 515 if (IS_ERR(hsotg->usb33d)) { a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 516 retval = PTR_ERR(hsotg->usb33d); a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 517 if (retval != -EPROBE_DEFER) a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 518 dev_err(hsotg->dev, a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 519 "failed to request usb33d supply: %d\n", a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 520 retval); a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 521 goto error; a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 522 } a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 523 retval = regulator_enable(hsotg->usb33d); a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 524 if (retval) { a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 525 dev_err(hsotg->dev, a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 526 "failed to enable usb33d supply: %d\n", retval); a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 527 goto error; a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 528 } a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 529 a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 530 ggpio = dwc2_readl(hsotg, GGPIO); a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 531 ggpio |= GGPIO_STM32_OTG_GCCFG_IDEN; a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 532 ggpio |= GGPIO_STM32_OTG_GCCFG_VBDEN; a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 533 dwc2_writel(hsotg, ggpio, GGPIO); a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 534 } a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 535 e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 536 if (hsotg->dr_mode != USB_DR_MODE_HOST) { f3768997013e1c drivers/usb/dwc2/platform.c Vardan Mikayelyan 2017-12-25 537 retval = dwc2_gadget_init(hsotg); 117777b2c3bb96 drivers/usb/dwc2/platform.c Dinh Nguyen 2014-11-11 538 if (retval) a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 539 goto error_init; e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 540 hsotg->gadget_enabled = 1; e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 541 } e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 542 c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 543 /* c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 544 * If we need PHY for wakeup we must be wakeup capable. c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 545 * When we have a device that can wake without the PHY we c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 546 * can adjust this condition. c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 547 */ c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 548 if (hsotg->need_phy_for_wake) c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 549 device_set_wakeup_capable(&dev->dev, true); c846b03ff76714 drivers/usb/dwc2/platform.c Douglas Anderson 2019-05-20 550 c40cf7705e13d2 drivers/usb/dwc2/platform.c Douglas Anderson 2019-04-16 551 hsotg->reset_phy_on_wake = c40cf7705e13d2 drivers/usb/dwc2/platform.c Douglas Anderson 2019-04-16 552 of_property_read_bool(dev->dev.of_node, c40cf7705e13d2 drivers/usb/dwc2/platform.c Douglas Anderson 2019-04-16 553 "snps,reset-phy-on-wake"); c40cf7705e13d2 drivers/usb/dwc2/platform.c Douglas Anderson 2019-04-16 554 if (hsotg->reset_phy_on_wake && !hsotg->phy) { c40cf7705e13d2 drivers/usb/dwc2/platform.c Douglas Anderson 2019-04-16 555 dev_warn(hsotg->dev, c40cf7705e13d2 drivers/usb/dwc2/platform.c Douglas Anderson 2019-04-16 556 "Quirk reset-phy-on-wake only supports generic PHYs\n"); c40cf7705e13d2 drivers/usb/dwc2/platform.c Douglas Anderson 2019-04-16 557 hsotg->reset_phy_on_wake = false; c40cf7705e13d2 drivers/usb/dwc2/platform.c Douglas Anderson 2019-04-16 558 } c40cf7705e13d2 drivers/usb/dwc2/platform.c Douglas Anderson 2019-04-16 559 e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 560 if (hsotg->dr_mode != USB_DR_MODE_PERIPHERAL) { 4fe160d51e4226 drivers/usb/dwc2/platform.c Heiner Kallweit 2017-01-25 561 retval = dwc2_hcd_init(hsotg); e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 562 if (retval) { e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 563 if (hsotg->gadget_enabled) 1f91b4cc03556b drivers/usb/dwc2/platform.c Felipe Balbi 2015-08-06 564 dwc2_hsotg_remove(hsotg); a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 565 goto error_init; e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 566 } e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 567 hsotg->hcd_enabled = 1; e39af88f18dfe9 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-03-10 568 } 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 569 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 570 platform_set_drvdata(dev, hsotg); 20fe440982e72d drivers/usb/dwc2/platform.c Vardan Mikayelyan 2018-02-16 571 hsotg->hibernated = 0; 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 572 f91eea447ac32d drivers/usb/dwc2/platform.c Mian Yousaf Kaukab 2015-04-29 573 dwc2_debugfs_init(hsotg); f91eea447ac32d drivers/usb/dwc2/platform.c Mian Yousaf Kaukab 2015-04-29 574 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 575 /* Gadget code manages lowlevel hw on its own */ 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 576 if (hsotg->dr_mode == USB_DR_MODE_PERIPHERAL) 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 577 dwc2_lowlevel_hw_disable(hsotg); 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 578 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 579 #if IS_ENABLED(CONFIG_USB_DWC2_PERIPHERAL) || \ 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 580 IS_ENABLED(CONFIG_USB_DWC2_DUAL_ROLE) 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 581 /* Postponed adding a new gadget to the udc class driver list */ 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 582 if (hsotg->gadget_enabled) { 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 583 retval = usb_add_gadget_udc(hsotg->dev, &hsotg->gadget); 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 584 if (retval) { ac66bc02b04eeb drivers/usb/dwc2/platform.c Marek Szyprowski 2020-07-16 585 hsotg->gadget.udc = NULL; 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 586 dwc2_hsotg_remove(hsotg); 602fb68e303fb9 drivers/usb/dwc2/platform.c Martin Blumenstingl 2020-07-04 587 goto error_debugfs; 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 588 } 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 589 } 207324a321a866 drivers/usb/dwc2/platform.c Minas Harutyunyan 2020-06-09 590 #endif /* CONFIG_USB_DWC2_PERIPHERAL || CONFIG_USB_DWC2_DUAL_ROLE */ 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 591 return 0; 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 592 602fb68e303fb9 drivers/usb/dwc2/platform.c Martin Blumenstingl 2020-07-04 @593 error_debugfs: 602fb68e303fb9 drivers/usb/dwc2/platform.c Martin Blumenstingl 2020-07-04 594 dwc2_debugfs_exit(hsotg); 602fb68e303fb9 drivers/usb/dwc2/platform.c Martin Blumenstingl 2020-07-04 595 if (hsotg->hcd_enabled) 602fb68e303fb9 drivers/usb/dwc2/platform.c Martin Blumenstingl 2020-07-04 596 dwc2_hcd_remove(hsotg); a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 597 error_init: a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 598 if (hsotg->params.activate_stm_id_vb_detection) a415083a11cc76 drivers/usb/dwc2/platform.c Amelie Delaunay 2020-01-24 599 regulator_disable(hsotg->usb33d); 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 600 error: ac66bc02b04eeb drivers/usb/dwc2/platform.c Marek Szyprowski 2020-07-16 601 if (hsotg->dr_mode != USB_DR_MODE_PERIPHERAL) 09a75e85779014 drivers/usb/dwc2/platform.c Marek Szyprowski 2015-10-14 602 dwc2_lowlevel_hw_disable(hsotg); 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 603 return retval; 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 604 } 5b9974b13e3648 drivers/staging/dwc2/platform.c Matthijs Kooijman 2013-04-22 605 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
