linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [balbi-usb:testing/next 40/48] drivers/usb/dwc2/platform.c:593:1: warning: unused label 'error_debugfs'
@ 2020-07-26  9:08 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-07-26  9:08 UTC (permalink / raw)
  To: Martin Blumenstingl
  Cc: kbuild-all, clang-built-linux, linux-usb, linux-omap, Felipe Balbi

[-- Attachment #1: Type: text/plain, Size: 8246 bytes --]

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
config: x86_64-randconfig-a004-20200726 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 8bf4c1f4fb257774f66c8cda07adc6c5e8668326)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        git checkout 602fb68e303fb96c9e4a5eb5f25ad0ce999df37d
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/usb/dwc2/platform.c:593:1: warning: unused label 'error_debugfs' [-Wunused-label]
   error_debugfs:
   ^~~~~~~~~~~~~~
   1 warning generated.

vim +/error_debugfs +593 drivers/usb/dwc2/platform.c

   396	
   397	/**
   398	 * dwc2_driver_probe() - Called when the DWC_otg core is bound to the DWC_otg
   399	 * driver
   400	 *
   401	 * @dev: Platform device
   402	 *
   403	 * This routine creates the driver components required to control the device
   404	 * (core, HCD, and PCD) and initializes the device. The driver components are
   405	 * stored in a dwc2_hsotg structure. A reference to the dwc2_hsotg is saved
   406	 * in the device private data. This allows the driver to access the dwc2_hsotg
   407	 * structure on subsequent calls to driver methods for this device.
   408	 */
   409	static int dwc2_driver_probe(struct platform_device *dev)
   410	{
   411		struct dwc2_hsotg *hsotg;
   412		struct resource *res;
   413		int retval;
   414	
   415		hsotg = devm_kzalloc(&dev->dev, sizeof(*hsotg), GFP_KERNEL);
   416		if (!hsotg)
   417			return -ENOMEM;
   418	
   419		hsotg->dev = &dev->dev;
   420	
   421		/*
   422		 * Use reasonable defaults so platforms don't have to provide these.
   423		 */
   424		if (!dev->dev.dma_mask)
   425			dev->dev.dma_mask = &dev->dev.coherent_dma_mask;
   426		retval = dma_set_coherent_mask(&dev->dev, DMA_BIT_MASK(32));
   427		if (retval) {
   428			dev_err(&dev->dev, "can't set coherent DMA mask: %d\n", retval);
   429			return retval;
   430		}
   431	
   432		hsotg->regs = devm_platform_get_and_ioremap_resource(dev, 0, &res);
   433		if (IS_ERR(hsotg->regs))
   434			return PTR_ERR(hsotg->regs);
   435	
   436		dev_dbg(&dev->dev, "mapped PA %08lx to VA %p\n",
   437			(unsigned long)res->start, hsotg->regs);
   438	
   439		retval = dwc2_lowlevel_hw_init(hsotg);
   440		if (retval)
   441			return retval;
   442	
   443		spin_lock_init(&hsotg->lock);
   444	
   445		hsotg->irq = platform_get_irq(dev, 0);
   446		if (hsotg->irq < 0)
   447			return hsotg->irq;
   448	
   449		dev_dbg(hsotg->dev, "registering common handler for irq%d\n",
   450			hsotg->irq);
   451		retval = devm_request_irq(hsotg->dev, hsotg->irq,
   452					  dwc2_handle_common_intr, IRQF_SHARED,
   453					  dev_name(hsotg->dev), hsotg);
   454		if (retval)
   455			return retval;
   456	
   457		hsotg->vbus_supply = devm_regulator_get_optional(hsotg->dev, "vbus");
   458		if (IS_ERR(hsotg->vbus_supply)) {
   459			retval = PTR_ERR(hsotg->vbus_supply);
   460			hsotg->vbus_supply = NULL;
   461			if (retval != -ENODEV)
   462				return retval;
   463		}
   464	
   465		retval = dwc2_lowlevel_hw_enable(hsotg);
   466		if (retval)
   467			return retval;
   468	
   469		hsotg->needs_byte_swap = dwc2_check_core_endianness(hsotg);
   470	
   471		retval = dwc2_get_dr_mode(hsotg);
   472		if (retval)
   473			goto error;
   474	
   475		hsotg->need_phy_for_wake =
   476			of_property_read_bool(dev->dev.of_node,
   477					      "snps,need-phy-for-wake");
   478	
   479		/*
   480		 * Before performing any core related operations
   481		 * check core version.
   482		 */
   483		retval = dwc2_check_core_version(hsotg);
   484		if (retval)
   485			goto error;
   486	
   487		/*
   488		 * Reset before dwc2_get_hwparams() then it could get power-on real
   489		 * reset value form registers.
   490		 */
   491		retval = dwc2_core_reset(hsotg, false);
   492		if (retval)
   493			goto error;
   494	
   495		/* Detect config values from hardware */
   496		retval = dwc2_get_hwparams(hsotg);
   497		if (retval)
   498			goto error;
   499	
   500		/*
   501		 * For OTG cores, set the force mode bits to reflect the value
   502		 * of dr_mode. Force mode bits should not be touched at any
   503		 * other time after this.
   504		 */
   505		dwc2_force_dr_mode(hsotg);
   506	
   507		retval = dwc2_init_params(hsotg);
   508		if (retval)
   509			goto error;
   510	
   511		if (hsotg->params.activate_stm_id_vb_detection) {
   512			u32 ggpio;
   513	
   514			hsotg->usb33d = devm_regulator_get(hsotg->dev, "usb33d");
   515			if (IS_ERR(hsotg->usb33d)) {
   516				retval = PTR_ERR(hsotg->usb33d);
   517				if (retval != -EPROBE_DEFER)
   518					dev_err(hsotg->dev,
   519						"failed to request usb33d supply: %d\n",
   520						retval);
   521				goto error;
   522			}
   523			retval = regulator_enable(hsotg->usb33d);
   524			if (retval) {
   525				dev_err(hsotg->dev,
   526					"failed to enable usb33d supply: %d\n", retval);
   527				goto error;
   528			}
   529	
   530			ggpio = dwc2_readl(hsotg, GGPIO);
   531			ggpio |= GGPIO_STM32_OTG_GCCFG_IDEN;
   532			ggpio |= GGPIO_STM32_OTG_GCCFG_VBDEN;
   533			dwc2_writel(hsotg, ggpio, GGPIO);
   534		}
   535	
   536		if (hsotg->dr_mode != USB_DR_MODE_HOST) {
   537			retval = dwc2_gadget_init(hsotg);
   538			if (retval)
   539				goto error_init;
   540			hsotg->gadget_enabled = 1;
   541		}
   542	
   543		/*
   544		 * If we need PHY for wakeup we must be wakeup capable.
   545		 * When we have a device that can wake without the PHY we
   546		 * can adjust this condition.
   547		 */
   548		if (hsotg->need_phy_for_wake)
   549			device_set_wakeup_capable(&dev->dev, true);
   550	
   551		hsotg->reset_phy_on_wake =
   552			of_property_read_bool(dev->dev.of_node,
   553					      "snps,reset-phy-on-wake");
   554		if (hsotg->reset_phy_on_wake && !hsotg->phy) {
   555			dev_warn(hsotg->dev,
   556				 "Quirk reset-phy-on-wake only supports generic PHYs\n");
   557			hsotg->reset_phy_on_wake = false;
   558		}
   559	
   560		if (hsotg->dr_mode != USB_DR_MODE_PERIPHERAL) {
   561			retval = dwc2_hcd_init(hsotg);
   562			if (retval) {
   563				if (hsotg->gadget_enabled)
   564					dwc2_hsotg_remove(hsotg);
   565				goto error_init;
   566			}
   567			hsotg->hcd_enabled = 1;
   568		}
   569	
   570		platform_set_drvdata(dev, hsotg);
   571		hsotg->hibernated = 0;
   572	
   573		dwc2_debugfs_init(hsotg);
   574	
   575		/* Gadget code manages lowlevel hw on its own */
   576		if (hsotg->dr_mode == USB_DR_MODE_PERIPHERAL)
   577			dwc2_lowlevel_hw_disable(hsotg);
   578	
   579	#if IS_ENABLED(CONFIG_USB_DWC2_PERIPHERAL) || \
   580		IS_ENABLED(CONFIG_USB_DWC2_DUAL_ROLE)
   581		/* Postponed adding a new gadget to the udc class driver list */
   582		if (hsotg->gadget_enabled) {
   583			retval = usb_add_gadget_udc(hsotg->dev, &hsotg->gadget);
   584			if (retval) {
   585				hsotg->gadget.udc = NULL;
   586				dwc2_hsotg_remove(hsotg);
   587				goto error_debugfs;
   588			}
   589		}
   590	#endif /* CONFIG_USB_DWC2_PERIPHERAL || CONFIG_USB_DWC2_DUAL_ROLE */
   591		return 0;
   592	
 > 593	error_debugfs:
   594		dwc2_debugfs_exit(hsotg);
   595		if (hsotg->hcd_enabled)
   596			dwc2_hcd_remove(hsotg);
   597	error_init:
   598		if (hsotg->params.activate_stm_id_vb_detection)
   599			regulator_disable(hsotg->usb33d);
   600	error:
   601		if (hsotg->dr_mode != USB_DR_MODE_PERIPHERAL)
   602			dwc2_lowlevel_hw_disable(hsotg);
   603		return retval;
   604	}
   605	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 37992 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-07-26  9:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-26  9:08 [balbi-usb:testing/next 40/48] drivers/usb/dwc2/platform.c:593:1: warning: unused label 'error_debugfs' kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).