tree:
https://android.googlesource.com/kernel/common android-4.19-stable
head: 2161be81430a1794020d29a2a2c4789d57ec7b6d
commit: 2161be81430a1794020d29a2a2c4789d57ec7b6d [5/5] BACKPORT: usb: musb: Add support
for MediaTek musb controller
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
cppcheck warnings: (new ones prefixed by >>)
> drivers/usb/musb/mediatek.c:457:6: warning: Variable
'ret' is reassigned a value before the old one has been used.
[redundantAssignment]
ret = of_platform_populate(np, NULL, NULL, dev);
^
drivers/usb/musb/mediatek.c:446:0: note: Variable 'ret' is reassigned a value
before the old one has been used.
int ret = -ENOMEM;
^
drivers/usb/musb/mediatek.c:457:6: note: Variable 'ret' is reassigned a value
before the old one has been used.
ret = of_platform_populate(np, NULL, NULL, dev);
^
vim +/ret +457 drivers/usb/musb/mediatek.c
438
439 static int mtk_musb_probe(struct platform_device *pdev)
440 {
441 struct musb_hdrc_platform_data *pdata;
442 struct mtk_glue *glue;
443 struct platform_device_info pinfo;
444 struct device *dev = &pdev->dev;
445 struct device_node *np = dev->of_node;
446 int ret = -ENOMEM;
447
448 glue = devm_kzalloc(dev, sizeof(*glue), GFP_KERNEL);
449 if (!glue)
450 return -ENOMEM;
451
452 glue->dev = dev;
453 pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
454 if (!pdata)
455 return -ENOMEM;
456
457 ret = of_platform_populate(np, NULL, NULL, dev);
458 if (ret) {
459 dev_err(dev, "failed to create child devices at %p\n", np);
460 return ret;
461 }
462
463 ret = mtk_musb_clks_get(glue);
464 if (ret)
465 return ret;
466
467 pdata->config = &mtk_musb_hdrc_config;
468 pdata->platform_ops = &mtk_musb_ops;
469 pdata->mode = usb_get_dr_mode(dev);
470
471 if (IS_ENABLED(CONFIG_USB_MUSB_HOST))
472 pdata->mode = USB_DR_MODE_HOST;
473 else if (IS_ENABLED(CONFIG_USB_MUSB_GADGET))
474 pdata->mode = USB_DR_MODE_PERIPHERAL;
475
476 switch (pdata->mode) {
477 case USB_DR_MODE_HOST:
478 glue->phy_mode = PHY_MODE_USB_HOST;
479 glue->role = USB_ROLE_HOST;
480 break;
481 case USB_DR_MODE_PERIPHERAL:
482 glue->phy_mode = PHY_MODE_USB_DEVICE;
483 glue->role = USB_ROLE_DEVICE;
484 break;
485 case USB_DR_MODE_OTG:
486 glue->phy_mode = PHY_MODE_USB_OTG;
487 glue->role = USB_ROLE_NONE;
488 break;
489 default:
490 dev_err(&pdev->dev, "Error 'dr_mode' property\n");
491 return -EINVAL;
492 }
493
494 glue->phy = devm_of_phy_get_by_index(dev, np, 0);
495 if (IS_ERR(glue->phy)) {
496 dev_err(dev, "fail to getting phy %ld\n",
497 PTR_ERR(glue->phy));
498 return PTR_ERR(glue->phy);
499 }
500
501 glue->usb_phy = usb_phy_generic_register();
502 if (IS_ERR(glue->usb_phy)) {
503 dev_err(dev, "fail to registering usb-phy %ld\n",
504 PTR_ERR(glue->usb_phy));
505 return PTR_ERR(glue->usb_phy);
506 }
507
508 glue->xceiv = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
509 if (IS_ERR(glue->xceiv)) {
510 dev_err(dev, "fail to getting usb-phy %d\n", ret);
511 ret = PTR_ERR(glue->xceiv);
512 goto err_unregister_usb_phy;
513 }
514
515 platform_set_drvdata(pdev, glue);
516 pm_runtime_enable(dev);
517 pm_runtime_get_sync(dev);
518
519 ret = mtk_musb_clks_enable(glue);
520 if (ret)
521 goto err_enable_clk;
522
523 pinfo = mtk_dev_info;
524 pinfo.parent = dev;
525 pinfo.res = pdev->resource;
526 pinfo.num_res = pdev->num_resources;
527 pinfo.data = pdata;
528 pinfo.size_data = sizeof(*pdata);
529
530 glue->musb_pdev = platform_device_register_full(&pinfo);
531 if (IS_ERR(glue->musb_pdev)) {
532 ret = PTR_ERR(glue->musb_pdev);
533 dev_err(dev, "failed to register musb device: %d\n", ret);
534 goto err_device_register;
535 }
536
537 return 0;
538
539 err_device_register:
540 mtk_musb_clks_disable(glue);
541 err_enable_clk:
542 pm_runtime_put_sync(dev);
543 pm_runtime_disable(dev);
544 err_unregister_usb_phy:
545 usb_phy_generic_unregister(glue->usb_phy);
546 return ret;
547 }
548
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org